Commit Graph

301 Commits (0393e8751989e0d6333450fd8c83555241a0eec6)

Author SHA1 Message Date
Paul "LeoNerd" Evans 05fa81fee4 A reliable logger.info() message /after/ the TCP port has been opened and is listening; this is essential for avoiding races in wrapper scripts e.g. integration testing 2014-08-27 13:08:55 +01:00
Paul "LeoNerd" Evans 5eff05a4ce Initial typing notification support - EDU federation, but no timers, and no actual push to clients 2014-08-27 11:45:16 +01:00
Paul "LeoNerd" Evans d63f775e06 Added parse_roomid() helper 2014-08-27 11:45:16 +01:00
Paul "LeoNerd" Evans e677a3114e Use SQLite's PRAGMA user_version to check if the database file really matches the schema we have in mind 2014-08-27 11:45:16 +01:00
Paul "LeoNerd" Evans 648796ef1d Neater database setup at application startup time; only .connect() it once, not once per schema file; don't build the db_pool twice 2014-08-27 11:45:16 +01:00
Kegan Dougal 135a1aa229 Final url modifications: renamed /presence_list to /presence/list to keep the top-level namespace clean. Updated tests. 2014-08-27 11:37:53 +01:00
Mark Haines 474dcecb11 Remove unused populate_previous_pdus 2014-08-27 11:34:31 +01:00
Kegan Dougal dd661769e1 Renamed /rooms to /createRoom. Removed ability to PUT raw room IDs, and removed tests which tested that. Updated cmdclient and webclient. 2014-08-27 11:33:56 +01:00
Mark Haines bf05218c4b Merge branch 'develop' into storage_transactions 2014-08-27 11:19:37 +01:00
Kegan Dougal c65885e166 Added support for GET /events/$eventid with auth checks. 2014-08-27 10:33:01 +01:00
Kegan Dougal dfa0cd1d90 Modified /join/$identifier to support $identifier being a room ID in addition to a room alias. 2014-08-27 09:43:42 +01:00
Mark Haines d2798de660 Fold federation/handler into handlers/federation 2014-08-26 19:49:42 +01:00
Erik Johnston 67c5f89244 Enable presence again. Fix up api to match old api. 2014-08-26 19:40:29 +01:00
Erik Johnston c1cf0b334e Fix exceptions so that the event stream works. Presence like events are turned off currently. 2014-08-26 19:18:11 +01:00
Erik Johnston 93cff1668c Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor 2014-08-26 18:57:55 +01:00
Erik Johnston 3a2a5b959c WIP: Completely change how event streaming and pagination work. This reflects the change in the underlying storage model. 2014-08-26 18:57:46 +01:00
Mark Haines 6966971a28 Use store.persist_event rather than pdu_actions.persist_outgoing/pdu_actions.persist_received 2014-08-26 18:57:17 +01:00
Mark Haines a498df0428 Move new event boilerplate in room handlers into a method on a base clase. 2014-08-26 18:49:51 +01:00
Mark Haines 64e2a5d58e Move pdu and event persistence into a single persist_event function 2014-08-26 18:01:36 +01:00
Kegan Dougal f84ddc75cb Pepper UT TODOs 2014-08-26 17:54:18 +01:00
Kegan Dougal 5a3df1d029 Feedback: Removed FeedbackRestServlet. Modified keys on FeedbackEvent. Expanded the feedback constants to fully explain what type of feedback they are. 2014-08-26 17:49:46 +01:00
Kegan Dougal 5a93bfe1f0 Removed MessageRestServlet, use RoomSendEventRestServlet instead. Updated cmdclient, tests and webclient. All appears to work. 2014-08-26 17:21:48 +01:00
Kegan Dougal ad6d5ac06c Added RoomSendEventRestServlet to send generic non-state events. It even appears to work..! 2014-08-26 17:00:24 +01:00
Erik Johnston 8885c8546c Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor 2014-08-26 16:29:44 +01:00
Erik Johnston 9a93e83d90 Respect 'limit' param in initialSync api 2014-08-26 16:26:30 +01:00
Mark Haines 66a4d33524 Merge branch 'develop' into storage_transactions 2014-08-26 16:20:50 +01:00
Kegan Dougal d0103400b5 Merge branch 'client_server_url_rename' into develop 2014-08-26 16:19:44 +01:00
Kegan Dougal 2e70de09b9 Renaming: /im/sync >> /initialSync. /rooms/$roomid/members/list >> /rooms/$roomid/members. /rooms$roomid/messages/list >> /room/$roomid/messages. Updated cmdclient, tests and webclient. 2014-08-26 16:19:17 +01:00
Mark Haines 47c1a3d454 Merge branch 'develop' into storage_transactions 2014-08-26 16:15:49 +01:00
Mark Haines 3281fec07a Use state_key rather than target_user_id 2014-08-26 16:14:54 +01:00
Mark Haines a29d12a18a Use state_key rather than target_user_id 2014-08-26 16:13:32 +01:00
Mark Haines 4b63b06cad Merge branch 'develop' into storage_transactions
Conflicts:
	synapse/api/auth.py
	synapse/handlers/room.py
	synapse/storage/__init__.py
2014-08-26 16:07:05 +01:00
Erik Johnston 3df5cb804f Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor 2014-08-26 16:03:56 +01:00
Mark Haines ac21dfff6d Fix pyflakes errors 2014-08-26 16:02:59 +01:00
Mark Haines 32347bfcc9 fix a few pyflakes errors 2014-08-26 16:01:29 +01:00
Erik Johnston ff3709e577 Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor 2014-08-26 15:45:03 +01:00
Kegan Dougal 27979028b2 Merge branch 'develop' of github.com:matrix-org/synapse into client_server_url_rename 2014-08-26 14:59:54 +01:00
Kegan Dougal 5c0be8fde3 Implemented /rooms/$roomid/[invite|join|leave] with POST / PUT (incl txn ids) 2014-08-26 14:49:44 +01:00
Mark Haines 4b2ad549d5 Move the event storage into a single transaction 2014-08-26 14:36:03 +01:00
Kegan Dougal 732d954f89 Added basic in-memory REST transaction storage. Only the latest transaction for a given path/access_token combo is stored in order to prevent storing ALL request/response pairs. 2014-08-26 14:13:32 +01:00
Erik Johnston 485bb64ddb Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor 2014-08-26 13:55:37 +01:00
Erik Johnston 1291ac93f3 Add the ability to turn on the twisted manhole telnet service. 2014-08-26 13:43:55 +01:00
Erik Johnston a664ec20e0 Add a do_users_share_a_room method and use that in the presence handler. 2014-08-26 13:38:26 +01:00
Kegan Dougal 7d79021c42 Added servlet for /rooms/$roomid/[invite|join|leave] 2014-08-26 12:54:43 +01:00
Kegan Dougal 5796232cb1 Adjusted webclient to use new state paths. Updated membership msg template to actually show the person invited. Factored out common membership functions in matrix service. 2014-08-26 10:24:47 +01:00
Kegan Dougal 52b64617f9 Merge branch 'develop' of github.com:matrix-org/synapse into client_server_url_rename 2014-08-26 10:04:26 +01:00
Erik Johnston fea7b60cf3 Add 'state_key' to valid_keys 2014-08-26 09:40:58 +01:00
Erik Johnston b52b33acf6 Send down state_key to clients 2014-08-26 09:40:29 +01:00
Kegan Dougal 47c3a089c5 Merge branch 'develop' of github.com:matrix-org/synapse into client_server_url_rename 2014-08-26 09:26:33 +01:00
Kegan Dougal cab3095803 Removed member list servlet: now using generic state paths. 2014-08-26 09:26:07 +01:00
Erik Johnston be6abdff19 Order 'get_recent_events_for_room' correctly. 2014-08-26 09:22:58 +01:00
Erik Johnston 2c4908ed26 Ensure that we don't have duplicate hosts in the pdu destinations list 2014-08-24 14:35:13 +01:00
Erik Johnston 0c3b4a1f63 For the content repo, don't just use homeserver.hostname as that might not include the port due to SRV. 2014-08-24 11:56:55 +01:00
Erik Johnston 9d86c8c7a6 Add a unique constraint on the room hosts table 2014-08-24 11:29:29 +01:00
Erik Johnston a9a5329a11 Encode unicode from json as utf-8. This was required to allow people to register on my laptop 2014-08-24 11:29:29 +01:00
Erik Johnston cda4ff8519 Oops, we need to use defer.returnValue. 2014-08-22 18:23:02 +01:00
Erik Johnston 5b058a79cb Make is_presence_visible always return true as it was thrashing the database. 2014-08-22 18:21:21 +01:00
Erik Johnston b18db63c06 Turn off more spammy logging. 2014-08-22 18:13:50 +01:00
Erik Johnston 537ecd4e99 Turn off spammy logging 2014-08-22 18:12:38 +01:00
Erik Johnston 9f514915af Add indices to schema 2014-08-22 18:03:39 +01:00
Mark Haines 1379dcae6f Take a snapshot of the state of the room before performing updates 2014-08-22 17:00:10 +01:00
Kegan Dougal f690b7b827 Impl: /rooms/roomid/state/eventtype/state_key - Renamed RoomTopicRestServlet to RoomStateEventRestServlet. Support generic state event sending. 2014-08-22 15:59:15 +01:00
Erik Johnston 808f663ed1 Don't return state event outlier's when paginating. 2014-08-22 13:06:07 +01:00
Erik Johnston c2e983b8db Bump versions to 0.0.1 2014-08-22 12:06:50 +01:00
Erik Johnston acf5127604 Make the content repo work with in daemon mode. Return the full url on upload. Update the webclient to use new content repo api. 2014-08-22 10:25:32 +01:00
Matthew Hodgson 1b0d427285 host a webclient by default 2014-08-21 23:35:45 +01:00
Erik Johnston 5670da1c1e Add ts field to all events. 2014-08-21 17:46:52 +01:00
Erik Johnston e7ee0b9fc1 Change IM sync api to also return the current presence list. 2014-08-21 16:40:21 +01:00
Erik Johnston 3d1cae0e79 In the initial sync api, return the inviter for rooms in the 'invited' state 2014-08-21 15:07:08 +01:00
Erik Johnston c6950b18cc Return the current state in the initial sync api. 2014-08-21 15:06:22 +01:00
Erik Johnston 063e1b22e6 Stop internal keys from getting into SynapseEvents 2014-08-21 15:06:00 +01:00
Erik Johnston 1587ea26fe Wait for getting a Join in response to an invite/join dance. 2014-08-21 14:38:22 +01:00
Erik Johnston 81a95937de Use new StreamToken in pagination config 2014-08-21 11:01:33 +01:00
Erik Johnston 7bec359408 Add in StreamToken type 2014-08-21 11:01:33 +01:00
Erik Johnston ebd3c41ede Make event stream storage return all membership events about the user, regardless of if they were in the room or not. 2014-08-20 17:09:44 +01:00
Paul "LeoNerd" Evans 583add34fe Use the "collect_presencelike_data" distributor signal instead of re-implementing its behaviour 2014-08-20 16:06:47 +01:00
Paul "LeoNerd" Evans 50718825bd Fix exception name in _fill_out_join_content() exception 2014-08-20 16:06:47 +01:00
Paul "LeoNerd" Evans e01bdf2432 Define __copy__ and __deepcopy__ as identity functions on DomainSpecificString, so that copy.deepcopy() will work on them 2014-08-20 16:06:47 +01:00
Paul "LeoNerd" Evans 9c0e570496 Kill the "_homeserver_" injected messages for room membership changes 2014-08-20 16:06:47 +01:00
Erik Johnston e8244c23ba Give the event_id of the failed event 2014-08-20 15:53:07 +01:00
Erik Johnston 5ef0948eaa Better handle the edge cases of trying to remote join rooms 2014-08-20 14:42:47 +01:00
Erik Johnston 849627b82e Don't generate room membership messages. Include previous state of in membership messages. 2014-08-20 11:53:57 +01:00
Erik Johnston d4fb1c8a92 Only hit get_room_events_stream if we have a valid user_id 2014-08-19 17:18:19 +01:00
Erik Johnston ae493c9418 Fix token to correct format 2014-08-19 16:45:55 +01:00
Erik Johnston e2b861cc67 Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor 2014-08-19 16:41:13 +01:00
Erik Johnston eea2dc7dde Remove debug logging from token parsing funcs. 2014-08-19 16:40:38 +01:00
Erik Johnston d94765999d Add comment about what strorage.stream does 2014-08-19 16:40:25 +01:00
Erik Johnston 7c60905ee7 Default from param to 'END' 2014-08-19 15:52:10 +01:00
Erik Johnston 5c00614aab PresenceStreamData was expecting *_key to be ints 2014-08-19 15:51:10 +01:00
Paul "LeoNerd" Evans 89cabba3e0 Don't delete OFFLINE users from the presence cache, so we can report on their offline mtime 2014-08-19 14:51:15 +01:00
Erik Johnston 347242a5c4 Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
Conflicts:
	tests/rest/test_presence.py
	tests/rest/test_rooms.py
	tests/utils.py
2014-08-19 14:48:19 +01:00
Erik Johnston 840771190f Fix bug where we sometimes set min_token to None. 2014-08-19 14:32:47 +01:00
Erik Johnston 234128586b Print out stacktrace when we failed to persist event. 2014-08-19 14:30:28 +01:00
Paul "LeoNerd" Evans 992782b9f5 Ensure that federation's .send_edu() returns a Deferred 2014-08-19 14:26:06 +01:00
Erik Johnston 75b6d982a0 Add a 'backfill room' button 2014-08-19 14:20:03 +01:00
Erik Johnston 598a1d8ff9 Change the way pagination works to support out of order events. 2014-08-19 14:19:48 +01:00
Kegan Dougal caef65d819 More unquotes. Also, don't return the room_id on membership state changes, they already know it. 2014-08-19 12:30:28 +01:00
Kegan Dougal ece7a6d995 Unquote sender IDs. 2014-08-19 11:50:57 +01:00
Paul "LeoNerd" Evans 88f7482b92 Perform the 'REST'-level tests of Presence against the real Presence handler as well, mocking out the datastore beneath it 2014-08-19 11:16:23 +01:00
Paul "LeoNerd" Evans 83f031207e Implement and test presence dropping of remote users 2014-08-19 11:16:23 +01:00
Paul "LeoNerd" Evans 6fafa878f6 Deny __iter__ on UserID/RoomID/RoomName instances as it's a subtle bug that will bite you 2014-08-19 11:16:23 +01:00
Kegan Dougal f48792eec4 Reduce the amount of incredibly spammy stack traces. Expected errors (e.g. SynapseErrors) shouldn't have their full trace logged every time. Don't send responses to disconnected requests. 2014-08-19 10:56:43 +01:00
Kegan Dougal e37b040bc3 Small amounts of cleanup and bonus round comments. 2014-08-18 17:22:31 +01:00
Kegan Dougal 58548ab557 Implemented GETs for the ContentRepoResource. It all actually appears to be working. 2014-08-18 17:18:54 +01:00
Kegan Dougal 590ab24c85 hs: Make the uploads directory if it doesn't exist. Namespace uploads by the base64 encoded user id of the uploader. Make a reasonable attempt to retry clashing upload paths. Try to guess a sensible file extension depending on the content type. 2014-08-18 17:18:54 +01:00
Kegan Dougal 35da1bf4a3 Auth content uploads. Added a mapping function from request > filename. Added exception handling for content uploads. webclient: Only prefix the client API path on doRequest, not doBaseRequest (this would've broken the identity server auth too). Added matrixService.uploadContent. May not require mFileUpload anymore. 2014-08-18 17:18:54 +01:00
Kegan Dougal a18b1a649c Added /matrix/content path, HS resource_for_content_repo attribute and FileUploadResource. Added stub methods. 2014-08-18 17:18:54 +01:00
Erik Johnston 1422a22970 Fix typos in SQL and where we still had rowid's (which no longer exist) 2014-08-18 16:25:18 +01:00
Erik Johnston 4eb8f84aa8 Make snapshot_all_rooms return results in the correct form, including start and end tokens. 2014-08-18 16:20:21 +01:00
Erik Johnston 709a92cee8 SQL doesn't allow AUTOINCREMENT on non PRIMARY KEY columns. 2014-08-18 16:00:46 +01:00
Erik Johnston b4a1f2ccb5 Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor 2014-08-18 15:53:40 +01:00
Erik Johnston fc26275bb3 Add two different columns for ordering the events table, one which can be used for pagination and one which can be as tokens for notifying clients. Also add a 'processed' field which is currently always set to True 2014-08-18 15:50:41 +01:00
Kegan Dougal b37ced8f63 Update the default longpoll timeout time. 2014-08-18 14:30:07 +01:00
Paul "LeoNerd" Evans faf25e3a83 Allow room presence visibility between users who share a room 2014-08-18 13:41:43 +01:00
Paul "LeoNerd" Evans 7d324612ec Precent lack of presence visiblity from causing room /members/list to fail 2014-08-18 13:17:35 +01:00
Erik Johnston 1c2caacd67 Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor 2014-08-18 11:14:57 +01:00
Erik Johnston 291010f100 Not all event streams returns SynapseEvents 2014-08-18 11:06:59 +01:00
Erik Johnston 2f91d16033 We don't need to do a json.loads here 2014-08-18 11:00:22 +01:00
Erik Johnston 1a1e0384ef Ensure we have a 'membership' key in RoomMemberEvents 2014-08-18 10:59:57 +01:00
Erik Johnston dccb2f57be Disable the ability to GET individualy messages. We need to think about the correct API to do this, as the current one doesn't make much sense. 2014-08-18 10:59:04 +01:00
Matthew Hodgson 98ed3d0222 improve comment 2014-08-16 01:52:03 +01:00
Matthew Hodgson fc846aa771 emergency bodges to turn off presence ACLs in order to make
matrix.org:8080 actually work
2014-08-16 01:47:17 +01:00
Matthew Hodgson 0f9b633af7 retcols is mandatory. i have no idea how this could ever have worked? 2014-08-16 01:46:35 +01:00
Erik Johnston 7f5c7ddea9 Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor 2014-08-15 17:50:27 +01:00
Paul "LeoNerd" Evans 9c41f635a9 When starting to poll for presence, also include members of all shared rooms 2014-08-15 17:12:07 +01:00
Erik Johnston 40c020ad13 Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor 2014-08-15 16:48:16 +01:00
Paul "LeoNerd" Evans ec1fd20e59 Also include users' presence when responding to /rooms/:room_id/members/list 2014-08-15 16:47:50 +01:00
Erik Johnston 0e938b1ff7 Rename method name to not clash with other ones in storage. 2014-08-15 16:47:48 +01:00
Erik Johnston 6efc688917 Fix typo of key name 2014-08-15 16:47:26 +01:00
Erik Johnston 506711749f We no longer need to special case room config events. 2014-08-15 16:45:16 +01:00
Erik Johnston d260a42ca2 PEP8 cleanups 2014-08-15 16:17:36 +01:00
Erik Johnston 8fa3cc37f9 Comment. 2014-08-15 16:11:25 +01:00
Erik Johnston 19946509a4 Support generic events. 2014-08-15 16:06:08 +01:00
Erik Johnston cd2967d271 Fix bug when generating a key when get_room_events_stream returned zero rows 2014-08-15 16:05:46 +01:00
Erik Johnston 86be66c34e Actually use MAX_STREAM_SIZE constant. 2014-08-15 16:04:54 +01:00
Erik Johnston 8d1f763209 Fix pagination to work with new db schema 2014-08-15 15:53:06 +01:00
Paul "LeoNerd" Evans 3c532314ec Fix imsync's SELECT query to only find the rooms I'm actually joined in, not every room I have ever joined 2014-08-15 15:44:53 +01:00
Erik Johnston 01f089d9fb Correctly return new token when returning events. Serialize events correctly. 2014-08-15 15:28:54 +01:00
Erik Johnston 114984a236 Start chagning the events stream to work with the new DB schema 2014-08-15 13:58:28 +01:00
Erik Johnston d72f897f07 Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
Conflicts:
	synapse/storage/stream.py
2014-08-15 11:50:14 +01:00
Erik Johnston c5f2da5875 Add a check to make sure that during state conflict res we only request a PDU we don't have. 2014-08-15 11:47:01 +01:00
Erik Johnston 1a26905cc9 Fix pontenial bug in state resolution handler that compared dicts rather than their id's 2014-08-15 11:41:20 +01:00
Paul "LeoNerd" Evans 33d62c2c66 Remember to reflect membership LEAVE events to the leaving member so they know it happened 2014-08-15 11:40:58 +01:00
Erik Johnston 5002efa31b Reimplement the get public rooms api to work with new DB schema 2014-08-15 10:26:35 +01:00
Erik Johnston 2c46bb6208 Fix up typos and correct sql queries 2014-08-14 18:40:50 +01:00
Erik Johnston 7e681ad778 Update StreamStore 2014-08-14 18:01:39 +01:00
Erik Johnston 661c711765 Start fixing places that use the data store. 2014-08-14 17:34:37 +01:00
Erik Johnston 78b501eba6 Fix typo 2014-08-14 17:09:28 +01:00
Erik Johnston 2529f2bc01 Rename _execute_query 2014-08-14 16:58:51 +01:00
Kegan Dougal fef3183461 Pass back the user_id in the response to /login in case it has changed. Store and use that on the webclient rather than the input field. 2014-08-14 16:40:15 +01:00