-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathChangeLog
313 lines (223 loc) · 18 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
2015-08-11 Nui Narongwet <[email protected]>
Add a lookup table from database table name to slumber model
2015-06-03 Yothin Muangsommuk <[email protected]>
Add slumber RemoteForeignKey data_mapping in json formatting for server.
2015-05-12 Kirit Saelensminde <[email protected]>
Added some limited support for Django admin for the example projects.
2015-04-14 Kirit Saelensminde <[email protected]>
Fix a model lookup to use the correct API instead of looking in the data itself.
2015-04-10 Kirit Saelensminde <[email protected]>
Added Django 1.8 to the test set, but the tests are not passing.
Added the `atomic` wrapper around the Slumber views where available.
2015-04-09 Kirit Saelensminde <[email protected]>
Add Django 1.7 to the test set.
2015-04-08 Kirit Saelensminde <[email protected]>
Fix some pylint errors about use of `type` and `isinstance`.
2015-04-02 Yothin Muangsommuk <[email protected]>
Add Field deconstruction to support Django 1.7 migration.
2014-10-21 Kirit Saelensminde <[email protected]>
Fix the data_link function so that it works with instances that happen to be `None`.
2014-09-30 Kirit Saelensminde <[email protected]>
Add PUT and DELETE support to the instance data (normally `/data/`). This will soon deprecate the current update and delete operations.
2014-09-29 Kirit Saelensminde <[email protected]>
Add a new operation superclass `Operation` that does not pass along the application name or model name parameters (as they're already on the operation).
2014-05-27 Kirit Saelensminde <[email protected]>
Fix a problem when using the create operation on a model where the primary key is also a foreign key.
2014-05-27 Suhrid Satyal <[email protected]>
Add utf-8 charset to json and xml response by default
2014-04-22 Siraset Jirapatchandej <[email protected]>
Handle blank request.body
2014-04-10 Chirapat Harigulrak <[email protected]>
Implement require permissions decorator which take list of permissions as parameter.
2014-03-13 Eddy Zhow <[email protected]>
Add charset to html response content type.
2013-12-10 Chirapat Harigulrak <[email protected]>
make html parser support any type of object
2013-12-09 Kirit Saelensminde <[email protected]>
Allow sub-parts of the response object to be used for JSON and XML output.
2013-12-05 Kirit Saelensminde <[email protected]>
Implemented proper pagination support for the HAL instance list and broke out a re-usable API for them over any query set.
Guess at some output to linkify in the HTML output.
2013-12-04 Kirit Saelensminde <[email protected]>
Allow the removal of built-in operations from models and also changes to the URIs they are mounted at.
Make HTML the default for browsers rather than XML.
Add new APIs for building URIs for operations.
2013-12-03 Kirit Saelensminde <[email protected]>
Allow operations to be mounted at any URL below the Slumber mount point.
2013-11-26 Kirit Saelensminde <[email protected]>
Changed the way that the URLs are configured to be compatible with Django 1.6.
Other changes for Django 1.6 compatibility.
2013-11-25 Siraset Jirapatchandej <[email protected]>
Merge html response handler from nattakit
Merge xml response handler chirapat
2013-11-20 Chirapat Harigulrak <[email protected]>
Create xml response handler
2013-11-12 Kirit Saelensminde <[email protected]>
Django applicatoins that are imported on the server side are now able to take a configuration that appears when the service URL is fetched.
2013-10-31 Kirit Saelensminde <[email protected]>
Allow checking if the user making a request has a given permission.
2013-10-28 Kirit Saelensminde <[email protected]>
Allow us to set up a POST expectation, but not test on the post data itself by setting the expected data to None.
2013-09-24 Kirit Saelensminde <[email protected]>
The decorator `slumber.connector.ua.for_user` now copies the wrapped function name so that it can be used for tests etc. where the original function name is still needed.
2013-09-18 Chirapat Harigulrak <[email protected]>
Make the create operation work for models who don't have a primary key of a numeric sequence.
2013-07-11 Kirit Saelensminde <[email protected]>
UTF-7 encode the user name in the Authorization header and in the X-FOST-User header.
Allow for Unicode data in user names and passwords when remote authenticating.
2013-06-04 Kirit Saelensminde <[email protected]>
Fixed up some NULL handling problems for the database fields on RemoteForeignKey thanks to Jsaytoe.
2013-04-18 Kirit Saelensminde <[email protected]>
Added in a Django 1.5 test project and made suitable changes to the code to account for it.
Add a South introspection rule for the custom remote foreign key field.
2013-02-14 Kirit Saelensminde <[email protected]>
Fixed a bug in the caching code that meant that the cache never had any data added to it.
The create operation now adds a `pk` data field in the root which can be used to fetch the primary key value that was issued and a `created` one which determines whether a new instance was made or not.
Allow a setting `SLUMBER_LOCAL_PREFIX` to be used to override the local prefix calculated from the service name for older configurations that don't make use of a service name.
2012-10-04 Chokchai Phatharamalai <[email protected]>
Change the instance cache to be thread safe.
2012-10-02 ruxo <[email protected]>
Instantiate FakeClient every time. Singleton of Fakeclient keeps error state of previous web call which will eventually raise again on the subsequent call no matter if it is success or not.
2012-08-06 jsaytoe <[email protected]>
Added `update` method to mock instances to make writing tests using it simpler.
2012-08-06 Dui Satsana <[email protected]>
Added `update` method to proxy base class so all remote objects can update easily.
2012-07-17 Kirit Saelensminde <[email protected]>
Fixed a bug where GET requests against remote servers using query strings weren't always signed correctly.
2012-06-29 Kirit Saelensminde <[email protected]>
Added a `for_user` decorator to the user agent that can be used to set the user name used for requests to other services.
2012-06-18 Kirit Saelensminde <[email protected]>
Allow us to bypass redirects with the fake HTTP client in the user agent. Useful for testing redirects.
2012-06-14 Kirit Saelensminde <[email protected]>
Added a create member to the mock models on the mock client.
If the client instance is not given an explicit `pk` member then we will try to build its URL from the `id` member if it has that.
Fixed a bug where mock instances were not found for some configurations.
2012-06-07 Kirit Saelensminde <[email protected]>
The mock client model method `get` now returns an instance proxy as it should (when it can). If there isn't enough information to build a proper instance URL then it will continue to return the mock instance directly.
Have had to change the URL scheme for the operation URLs in the mock client from slumber: to http: as Python's urlparse.urljoin won't work otherwise. Have also changed the instance operations to include the primary key (if given).
2012-06-05 Kirit Saelensminde <[email protected]>
Make sure that if a URL is used in a query directly it is properly converted to a Slumber URL as appropriate.
2012-05-31 Kirit Saelensminde <[email protected]>
The mock client now uses the same model type constructor as the real client. This means that proxies are properly applied.
The mock `get` method now tries to convert both values to unicode and if they compare then it will accept that. This avoids a problem where strings wouldn't compare properly with numbers.
When instances are fetched from a remote service the mock client is checked first to see if it is already holding the instance. If it is then it is used.
Added a new `mock_ua` test decorator that can be used to set expectations for the user agent so that proxies (and other communication with the Slumber user agent) can be much more easily tested.
Allow `slumber.connector.api.get_instance` to take Slumber scheme URLs for both the model and the instance to make instances easier to pass between services and in tests.
2012-05-30 Kirit Saelensminde <[email protected]>
Changed the type name for the instance type so we no longer need to do any model look ups to calculate the name.
2012-05-24 Kirit Saelensminde <[email protected]>
Optimised the solution to application of the client proxies to delay as long as possible HTTP requests. Many uses of remote instances no longer trigger any HTTP requests at all.
2012-05-23 Kirit Saelensminde <[email protected]>
Fixed a problem where client proxies weren't always being applied properly when instances were fetched out of the database. The current solution solves it by forcing a HTTP request, but there should be a better way of doing this.
2012-05-18 Kirit Saelensminde <[email protected]>
Fixed a problem with deep copies of remote objects that was causing Django to throw errors when they were used in certain types of query.
Added a number of attributes to the instance proxy that it will never have, so just throw an attribute error for them straight away. This cuts down on HTTP chatter, especially in tests.
2012-05-17 Kirit Saelensminde <[email protected]>
The create operation now resets the sequence numbers in case a primary key on an auto-increment field is specified.
The user agent get function can now also be given status codes that it will accept as expected.
The TTL on proxies is now set to two seconds. There are circumstances under which this might be unsafe. The user agent remains with a zero second TTL.
2012-05-16 Kirit Saelensminde <[email protected]>
The mock client instances can now be used in queries properly. Added some extra tests to make sure that normal remote instances, or their normalised URLs work as expected in queries.
2012-05-15 Kirit Saelensminde <[email protected]>
Fixed a problem where the create operation would always convert values to strings. This broke `null` values sent over the wire.
Set a httplib2 option so that SSL certificates are not checked.
2012-05-14 Kirit Saelensminde <[email protected]>
Treat any request whose Content-Type starts with 'application/json' as JSON rather than look for an exact match.
2012-05-08 Kirit Saelensminde <[email protected]>
Altered the RemoteForeignKey field's get_prep_value so that it uses the super method of the same name instead of delegating to the get_db_prep_value method. This fixes a problem on Django 1.4 in queries.
2012-05-01 Kirit Saelensminde <[email protected]>
The internal (fake HTTP) requests will now prefer to send JSON to the client as it is a richer data format that the standard HTTP media types.
2012-04-29 Kirit Saelensminde <[email protected]>
The conversion of types to JSON no longer takes a request as the first parameter. This allows objects to be converted without having to do it within the context of a request.
Added JSON handler for the server side of the field type NullBooleanField.
Fixed a bug where the user agent would sign the wrong POST data.
The update operation no longer returns a redirect.
Many to many fields now appear in the data arrays section of the instance fields rather than with the other fields.
The user agent POST requester can now be provided with a list of status codes that it will accept as successful and if it cannot parse the JSON body it will return an empty dict.
2012-04-18 Kirit Saelensminde <[email protected]>
Fixed a problem where forwarded authentication could lead to an infinite recursion error.
2012-04-13 Kirit Saelensminde <[email protected]>
Try to be much stricter about which applications get which models. This fixes a problem where models were associated with applications that made use of them, rather than just the one that defined them.
2012-04-05 Kirit Saelensminde <[email protected]>
The authentication forwarding backend is now properly compatible with the real Fost authn request signing.
The type of the user_id that we see is important as it tells us what we need to look it up with.
2012-04-02 Kirit Saelensminde <[email protected]>
Requests are now signed when going back to another service.
Added a Realm to the WWW-Authentication header.
Added django-fost-authn to the setup.py requirements.
2012-03-30 Kirit Saelensminde <[email protected]>
Client side proxies are now loaded via the new SLUMBER_CLIENT_APPS setting.
2012-03-28 Kirit Saelensminde <[email protected]>
Permissions are now checked on several of the default operations.
2012-03-27 Kirit Saelensminde <[email protected]>
Better error responses are returned to the client based on a number of exceptions that might be thrown.
2012-03-23 Kirit Saelensminde <[email protected]>
Added a form field and basic widget for the RemoteForeignKey model field type.
2012-03-20 Kirit Saelensminde <[email protected]>
The server side operations can now be added to.
2012-02-23 Kirit Saelensminde <[email protected]>
Added a form field and basic widget for the RemoteForeignKey model field type.
2012-02-22 Kirit Saelensminde <[email protected]>
Added a RemoteForeignKey field type which can be used to handle Slumber objects running in the same or remote services.
2012-02-18 Kirit Saelensminde <[email protected]>
Added a proxy method for the model create operation. This has also changed the data returned by the old create operation.
Added CSRF bypassing on the Slumber views (if the version of Django uses CSRF).
Internal services now get the application directly rather than what would have been the service root.
2012-02-17 Kirit Saelensminde <[email protected]>
Added tests for Django 1.4.
Added an incomplete version of a new configuration that will allow specific Django applications to be exposed on specific service names.
2012-01-30 Kirit Saelensminde <[email protected]>
Forced the model URL used for the type name to be a str as some Windows boxes seem to get Unicode strings for the URLs where most machines gets normal Python strings.
2012-01-16 Kirit Saelensminde <[email protected]>
The server side conversion to JSON compatible Python objects now includes the request so that, for example, URIs can be handled correctly.
The Slumber configuration now also allows us to add in JSON transform functions for specific types for when property values are processed.
2012-01-12 Kirit Saelensminde <[email protected]>
Renamed the slumber_test folder to slumber_examples.
Added the beginnings of the server side configuration by allowing model properties to be exposed.
2011-12-29 Kirit Saelensminde <[email protected]>
Fixed the license information in the setup tags.
Removed the .idea files generated by some IDE.
2011-12-02 Kirit Saelensminde <[email protected]>
The authentication back end now copies across the attribute values and resets them on the local user each time the user is fetched from the backend.
2011-11-29 Kirit Saelensminde <[email protected]>
Added HTTP caching that can be controlled on a per-model basis.
The POST method in the connector user agent now also creates a new Http object for each request.
2011-11-28 Kirit Saelensminde <[email protected]>
Changed the model `get` operation so that it returns the data directly without doing a redirect first thus saving a HTTP request.
Get requests from the client will now get retried up to three times.
Added an implementation for get_profile which will bring the profile from the auth service to the auth client.
2011-11-02 Kirit Saelensminde <[email protected]>
Fixed a bug where the Django session would result in the wrong user, or a failed log in when the remote and local users had different primary key values.
2011-11-02 Chokchai Phatharamalai <[email protected]>
Changed the way that Httplib2 is used so that the same Http object is no longer re-used. This should improve reliability, but will have a (hopefully minimal) impact on performance.
2011-10-26 Kirit Saelensminde <[email protected]>
Allow an authentication request to be passed on to another auth service elsewhere.
2011-10-20 Kirit Saelensminde <[email protected]>
Added a remote authentication capability that allows a remote authentication/authorization service to be used for local authentication.
2011-10-16 Kirit Saelensminde <[email protected]>
Added in the ability to handle multiple services spread across multiple Django projects.
2011-09-06 Kirit Saelensminde <[email protected]>
Added a User operation that allows permissions to be checked.
2011-08-27 Kirit Saelensminde <[email protected]>
Added an instance cache together with some cache flushing middleware. This should improve the efficiency of the cache and reduce the number of requests to fetch objects from the back end.
2011-08-25 Kirit Saelensminde <[email protected]>
We are now able to authenticate Django Users.
2011-08-22 Kirit Saelensminde <[email protected]>
Added a delete operation for instances.
2011-08-10 Kirit Saelensminde <[email protected]>
The type of the returned instances in the client from `get` now makes sense.
2011-08-08 Kirit Saelensminde <[email protected]>
Added a server side implementation for updating instances.
The model `get` method can now be passed any unique combination of attributes and the right instance will be returned.
2011-08-05 Kirit Saelensminde <[email protected]>
The server operations can now implement either `operation` or the HTTP method that they need to execute with. Unsupported methods will return a 403.
Refactored the layout of the operations.
2011-07-28 Kirit Saelensminde <[email protected]>
Added some simple mocking capability so that client code that uses Slumber can be tested.
2011-07-27 Kirit Saelensminde <[email protected]>
The Slumber client now includes (more or less) full support for the object graph structure.
2011-07-22 juacompe <[email protected]>
Added a skeleton for a Slumber client.
2011-07-20 Kirit Saelensminde <[email protected]>
Initial version that shows how Slumber should look when completed.
Added ChangeLog