Commit graph

132 commits

Author SHA1 Message Date
Tyson Clugg
0bbf5ac10c Add missing import for Python 2 print(). 2015-10-13 11:13:59 +11:00
Tyson Clugg
b14b2a427e New setting DDP_API_ENDPOINT_DECORATORS.
Takes a list of dotted import paths to decorators which are applied to API
endpoints.  For example, enable New Relic instrumentation with the following:

```
DDP_API_ENDPOINT_DECORATORS = ['newrelic.agent.background_task']
```
2015-10-13 11:05:02 +11:00
Tyson Clugg
397e044ddd Work towards #16 -- Use psycopg2cffi compatibility if psycopg2 not installed. 2015-10-08 11:58:42 +11:00
Tyson Clugg
73465d6ed4 Fixed #7 -- Warn if using DB engines other than psycopg2. 2015-10-08 11:37:03 +11:00
Tyson Clugg
05e3356b93 Pass all attributes from logging.LogRecord via dddp.logs collection. 2015-09-25 11:32:04 +10:00
Tyson Clugg
f15efc0930 Use select_related() and resultant cached relational fields to speed up Colleciton.serialize(). 2015-09-25 11:30:48 +10:00
Tyson Clugg
33052f4835 Fix bug in get_meteor_ids() which caused extra database hits. 2015-09-25 11:29:38 +10:00
Tyson Clugg
cefe6fe62d Account security tokens are now calculated for each minute allowing for finer grained token expiry. 2015-09-22 18:11:45 +10:00
Tyson Clugg
56c850948f Update dddp/test/meteor_todos/ app to Meteor 1.2.0 (still works fine with older versions though). 2015-09-22 17:01:18 +10:00
Tyson Clugg
81824e5bfe Fix dddp.test.test_project URL config and options for MiniMongo collections. 2015-09-22 17:00:03 +10:00
Tyson Clugg
9cf2ec3a0b Correctly handle serving app content from the root path of a domain. 2015-09-22 16:58:19 +10:00
Tyson Clugg
d7ea54539c Show API endpoints when dddp command run with verbosity above 1. 2015-09-22 11:55:35 +10:00
Tyson Clugg
5e545ee7c2 Stop printing path to stderr by default when handling GET on Meteor URLs. 2015-09-22 11:51:06 +10:00
Tyson Clugg
9a9e119c36 Fix error in logging call during exception handling. 2015-09-22 11:49:56 +10:00
Tyson Clugg
ef414f50c4 Don't rely on HTTP_REFERER header which may not be present. 2015-09-22 11:48:24 +10:00
Tyson Clugg
7cf4bf5c8c Fix bug in serialization of logging.LogRecord to show formatted message. 2015-09-22 11:46:50 +10:00
Tyson Clugg
2264ddbdc2 Abstract DDPLauncher out from dddp.main.serve to permit use from other contexts. 2015-09-18 17:47:26 +10:00
Tyson Clugg
d03b259226 Allow Ctrl-C (Break) handling at any time, only run async DB connection when PostgresGreenlet is running. 2015-09-18 17:47:26 +10:00
Tyson Clugg
f756ec445f Include name and levelno attributes in DDP emitted log records. 2015-09-18 17:43:23 +10:00
Tyson Clugg
61e5d8dcf8 Don't attempt to monkey patch more than once. 2015-09-18 17:42:41 +10:00
Tyson Clugg
da70e10857 Include exception info in logger.error logging call. 2015-09-18 17:42:11 +10:00
Tyson Clugg
282fe36b7e Set blank=True on AleaIdField, allowing adding items without inventing IDs yourself. 2015-08-27 14:25:26 +10:00
Tyson Clugg
7c54f4c324 Added migration for changed field defaults on Connection.connection_id. 2015-08-13 09:47:16 +10:00
Tyson Clugg
04ef1ab8a0 More aggressive searching for local AleaIdField(unique=True) when translating between meteor/object identifiers. 2015-08-13 09:46:31 +10:00
Tyson Clugg
489175d9a9 Added helper for migrations involving AleaIdField to populate fields from ObjectMapping table. 2015-08-13 09:44:45 +10:00
Tyson Clugg
b32e5aa547 Add missing imports 2015-08-13 09:43:38 +10:00
Tyson Clugg
4a5988854f Merge branch 'develop' into feature/AleaIdField_as_primary_key 2015-08-12 12:03:16 +10:00
Tyson Clugg
f02df498a2 Remove console noise from logging handler init. 2015-08-12 12:02:56 +10:00
Tyson Clugg
93abd0a6b7 Merge branch 'develop' into feature/AleaIdField_as_primary_key
Conflicts:
	dddp/server/views.py
	dddp/views.py
2015-08-11 15:36:54 +10:00
Tyson Clugg
e5784ac4ca Drop dddp.server app, dddp.server.views moved to dddp.views 2015-08-11 14:55:43 +10:00
Tyson Clugg
00b1432974 Allow support for multiple meteor apps in a single django-ddp enabled project by reading METEOR_STAR_JSON as part of view init instead of app ready. 2015-08-11 09:49:12 +10:00
Tyson Clugg
5939d47af6 Normalise paths in dddp.server.views before comparison. 2015-08-11 09:48:00 +10:00
Tyson Clugg
7663405702 Honour AleaIdField(max_length=...) when generating IDs. 2015-08-11 09:44:54 +10:00
Tyson Clugg
7083c5c92f Chunked payload for NOTIFY/LISTEN to get around 8KB limit on payload. 2015-08-10 18:47:04 +10:00
Tyson Clugg
5ec27b669c Add BackdoorServer support to dddp command, add "Logs" publication. 2015-08-10 16:34:39 +10:00
Tyson Clugg
6ea0e71a74 Bugfix dddp.accounts forgot_password feature. 2015-07-28 14:04:11 +10:00
Tyson Clugg
8d340c022d Merge branch 'develop' into feature/AleaIdField_as_primary_key 2015-07-23 11:07:57 +10:00
Tyson Clugg
aa89ead1ed Allow support for multiple meteor apps in a single django-ddp enabled project by reading METEOR_STAR_JSON as part of view init instead of app ready. 2015-07-23 11:07:20 +10:00
Tyson Clugg
d7dd9f2bb5 Merge branch 'develop' into feature/AleaIdField_as_primary_key 2015-07-23 08:53:59 +10:00
Tyson Clugg
d762fa45c4 Updated error handling to ensure error reply to method messages when appropriate. 2015-07-22 10:33:21 +10:00
Tyson Clugg
e7b38b89db Stop running request middleware upon connection.
This change deserves a more thorough explanation.  All currently
released versions of Django are based around the concept of receiving a
request and immediately dispatching a response.

WebSocket connections don't follow this convention, and the `request` hangs
around for long periods of time.  As such, things like `request.user` don't
really make sense as a user may login, then logout, then login again all
within the life of a single request.

Given that the concepts applied in Django are based upon a premise that
doesn't hold true for WebSockets (that a request is short-lived), it
doesn't make sense to apply those concepts in django-ddp.
2015-07-21 21:24:14 +10:00
Tyson Clugg
d358ce413a Never assume this.user_id is available. 2015-07-21 21:23:37 +10:00
Tyson Clugg
305b00bc3d Add ThreadLocal factory for this.user which is retrieved from the datbase on demand. 2015-07-21 21:19:55 +10:00
Tyson Clugg
5088c0016d Move thread local factories out of ThreadLocal so other modules may add their own factories. 2015-07-21 21:17:23 +10:00
Tyson Clugg
36199d27c1 Call ready() for each registered API provider as part of AppConfig.ready(). 2015-07-21 19:17:21 +10:00
Tyson Clugg
a462fc52b6 Refactor dddp.accounts.ddp to not use this.request.user or any of django.contrib.sessions. 2015-07-21 19:00:07 +10:00
Tyson Clugg
adf8a5b9c3 Some pylint cleanups to dddp.accounts.ddp module. 2015-07-21 18:53:49 +10:00
Tyson Clugg
b059fe37da Allow silent sub/unsub to support Meteor null publications. 2015-07-21 09:55:55 +10:00
Tyson Clugg
4608996e9f Fix issue with incorrect ordering of messages during login/logout. 2015-07-18 14:09:50 +10:00
Tyson Clugg
8eb2a3d492 Add short_description to get_meteor_id helper for use in ModelAdmin list_display. 2015-07-17 17:49:23 +10:00