Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Move RoomContextHandler out of Handlers | Erik Johnston | 2018-07-18 | 1 | -1/+5 |
| | | | | This is in preparation for moving GET /context/ to a worker | ||||
* | Split MessageHandler into read only and writers | Erik Johnston | 2018-07-18 | 1 | -1/+13 |
| | | | | | This will let us call the read only parts from workers, and so be able to move some APIs off of master, e.g. the `/state` API. | ||||
* | run isort | Amber Brown | 2018-07-09 | 1 | -17/+17 |
| | |||||
* | Pass around the reactor explicitly (#3385) | Amber Brown | 2018-06-22 | 1 | -4/+15 |
| | |||||
* | Stub out ServerNoticesSender on the workers | Richard van der Hoff | 2018-05-22 | 1 | -0/+7 |
| | | | | | ... and have the sync endpoints call it directly rather than obsure indirection via PresenceHandler | ||||
* | Send users a server notice about consent | Richard van der Hoff | 2018-05-22 | 1 | -0/+5 |
| | | | | | When a user first syncs, we will send them a server notice asking them to consent to the privacy policy if they have not already done so. | ||||
* | Infrastructure for a server notices room | Richard van der Hoff | 2018-05-17 | 1 | -0/+5 |
| | | | | | | | Server Notices use a special room which the user can't dismiss. They are created on demand when some other bit of the code calls send_notice. (This doesn't actually do much yet becuse we don't call send_notice anywhere) | ||||
* | Move RoomCreationHandler out of synapse.handlers.Handlers | Richard van der Hoff | 2018-05-17 | 1 | -0/+5 |
| | | | | | | | Handlers is deprecated nowadays, so let's move this out before I add a new dependency on it. Also fix the docstrings on create_room. | ||||
* | ConsentResource to gather policy consent from users | Richard van der Hoff | 2018-05-15 | 1 | -0/+3 |
| | | | | | Hopefully there are enough comments and docs in this that it makes sense on its own. | ||||
* | Burminate v1auth | Adrian Tschira | 2018-04-30 | 1 | -10/+0 |
| | | | | | | | | | | | | | | | | | | This closes #2602 v1auth was created to account for the differences in status code between the v1 and v2_alpha revisions of the protocol (401 vs 403 for invalid tokens). However since those protocols were merged, this makes the r0 version/endpoint internally inconsistent, and violates the specification for the r0 endpoint. This might break clients that rely on this inconsistency with the specification. This is said to affect the legacy angular reference client. However, I feel that restoring parity with the spec is more important. Either way, it is critical to inform developers about this change, in case they rely on the illegal behaviour. Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | Split RoomMemberWorkerHandler to separate file | Erik Johnston | 2018-03-14 | 1 | -3/+2 |
| | |||||
* | Implement RoomMemberWorkerHandler | Erik Johnston | 2018-03-13 | 1 | -2/+4 |
| | |||||
* | Merge pull request #2987 from matrix-org/erikj/split_room_member_handler | Erik Johnston | 2018-03-13 | 1 | -2/+4 |
|\ | | | | | Split RoomMemberHandler into base and master class | ||||
| * | Raise, don't return, exception | Erik Johnston | 2018-03-13 | 1 | -1/+1 |
| | | |||||
| * | Split RoomMemberHandler into base and master class | Erik Johnston | 2018-03-13 | 1 | -2/+4 |
| | | | | | | | | | | | | | | | | The intention here is to split the class into the bits that can be done on workers and the bits that have to be done on the master. In future there will also be a class that can be run on the worker, which will delegate work to the master when necessary. | ||||
* | | s/replication_client/federation_client/ | Erik Johnston | 2018-03-13 | 1 | -2/+2 |
| | | |||||
* | | s/replication_server/federation_server | Erik Johnston | 2018-03-13 | 1 | -2/+2 |
| | | |||||
* | | Split replication layer into two | Erik Johnston | 2018-03-13 | 1 | -4/+9 |
|/ | |||||
* | Split out edu/query registration to a separate class | Erik Johnston | 2018-03-13 | 1 | -0/+5 |
| | |||||
* | Move RoomMemberHandler out of Handlers | Erik Johnston | 2018-03-01 | 1 | -0/+5 |
| | |||||
* | Update places where we create events | Erik Johnston | 2018-02-05 | 1 | -0/+5 |
| | |||||
* | Factor out resolve_state_groups to a separate handler | Richard van der Hoff | 2018-02-01 | 1 | -1/+5 |
| | | | | | | We extract the storage-independent bits of the state group resolution out to a separate functiom, and stick it in a new handler, in preparation for its use from the storage layer. | ||||
* | Factor out get_db_conn to HomeServer base class | Richard van der Hoff | 2018-01-26 | 1 | -0/+17 |
| | | | | | This function is identical to all subclasses, so we may as well push it up to the base class to reduce duplication (and make use of it in the tests) | ||||
* | Merge branch 'develop' into matthew/search-all-local-users | Matthew Hodgson | 2017-11-30 | 1 | -17/+35 |
|\ | |||||
| * | Move set_password into its own handler | Richard van der Hoff | 2017-11-29 | 1 | -0/+5 |
| | | | | | | | | | | | | Non-functional refactoring to move set_password. This means that we'll be able to properly deactivate devices and access tokens without introducing a dependency loop. | ||||
| * | Move deactivate_account into its own handler | Richard van der Hoff | 2017-11-29 | 1 | -0/+5 |
| | | | | | | | | | | | | Non-functional refactoring to move deactivate_account. This means that we'll be able to properly deactivate devices and access tokens without introducing a dependency loop. | ||||
| * | Build MediaRepositoryResource as a homeserver dependency | Richard van der Hoff | 2017-11-22 | 1 | -1/+10 |
| | | | | | | | | | | | | This avoids the scenario where we have four different PreviewUrlResources configured on a single app, each of which have their own caches and cache clearing jobs. | ||||
| * | Clean up dependency list | Richard van der Hoff | 2017-11-21 | 1 | -16/+15 |
| | | | | | | | | | | remove those that aren't used at all, and replace the ones that don't have builders with simple getters rather than dynamically-generated methods. | ||||
* | | Add user_directory_include_pattern config param to expand search results to ↵ | Matthew Hodgson | 2017-11-29 | 1 | -2/+2 |
|/ | | | | | | | | | | additional users Initial commit; this doesn't work yet - the LIKE filtering seems too aggressive. It also needs _do_initial_spam to be aware of prepopulating the whole user_directory_search table with all users... ...and it needs a handle_user_signup() or something to be added so that new signups get incrementally added to the table too. Committing it here as a WIP | ||||
* | Merge branch 'develop' into erikj/groups_merged | David Baker | 2017-10-02 | 1 | -0/+5 |
|\ | |||||
| * | Make the spam checker a module | David Baker | 2017-09-26 | 1 | -0/+5 |
| | | |||||
* | | Split out profile handler to fix tests | Erik Johnston | 2017-08-25 | 1 | -0/+5 |
| | | |||||
* | | Add local group server support | Erik Johnston | 2017-07-17 | 1 | -0/+5 |
| | | |||||
* | | Initial group server implementation | Erik Johnston | 2017-07-10 | 1 | -0/+14 |
|/ | |||||
* | Add user_directory to database | Erik Johnston | 2017-05-31 | 1 | -0/+5 |
| | |||||
* | Store ActionGenerator in HomeServer | Erik Johnston | 2017-05-19 | 1 | -0/+5 |
| | |||||
* | Finish implementing RM endpoint | Luke Barnard | 2017-04-11 | 1 | -0/+5 |
| | | | | | - This change causes a 405 to be sent if "m.read_marker" is set via /account_data - This also fixes-up the RM endpoint so that it actually Works. | ||||
* | Update all the workers and master to use TCP replication | Erik Johnston | 2017-04-03 | 1 | -0/+4 |
| | |||||
* | Fix email push in pusher worker | Erik Johnston | 2017-02-02 | 1 | -1/+5 |
| | | | | | | This was broken when device list updates were implemented, as Mailer could no longer instantiate an AuthHandler due to a dependency on federation sending. | ||||
* | Shuffle receipt handler around so that worker apps don't need to load it | Erik Johnston | 2016-11-23 | 1 | -0/+5 |
| | |||||
* | Ensure only main or federation_sender process can send federation traffic | Erik Johnston | 2016-11-23 | 1 | -2/+11 |
| | |||||
* | Hook up the send queue and create a federation sender worker | Erik Johnston | 2016-11-16 | 1 | -1/+5 |
| | |||||
* | Add transaction queue and transport layer to DI | Erik Johnston | 2016-11-16 | 1 | -0/+10 |
| | |||||
* | Support /initialSync in synchrotron worker | Erik Johnston | 2016-09-21 | 1 | -0/+5 |
| | |||||
* | Move RoomListHandler into a separate file | Erik Johnston | 2016-09-14 | 1 | -1/+1 |
| | |||||
* | Send device messages over federation | Mark Haines | 2016-09-06 | 1 | -0/+5 |
| | |||||
* | Make synchrotron accept /events | Erik Johnston | 2016-08-12 | 1 | -0/+9 |
| | |||||
* | Move e2e query logic into a handler | Richard van der Hoff | 2016-08-01 | 1 | -21/+24 |
| | |||||
* | Add device_id support to /login | Richard van der Hoff | 2016-07-18 | 1 | -0/+5 |
| | | | | | | | | | | | | | Add a 'devices' table to the storage, as well as a 'device_id' column to refresh_tokens. Allow the client to pass a device_id, and initial_device_display_name, to /login. If login is successful, then register the device in the devices table if it wasn't known already. If no device_id was supplied, make one up. Associate the device_id with the access token and refresh token, so that we can get at it again later. Ensure that the device_id is copied from the refresh token to the access_token when the token is refreshed. | ||||
* | Implement purge_media_cache admin API | Erik Johnston | 2016-06-29 | 1 | -0/+5 |
| | |||||
* | Split out the auth handler | David Baker | 2016-06-02 | 1 | -0/+5 |
| | |||||
* | Move the AS handler out of the Handlers object. | Mark Haines | 2016-05-31 | 1 | -0/+15 |
| | | | | | | Access it directly from the homeserver itself. It already wasn't inheriting from BaseHandler storing it on the Handlers object was already somewhat dubious. | ||||
* | Split out the room list handler | David Baker | 2016-05-31 | 1 | -0/+5 |
| | | | | So I can use it from federation bits without pulling in all the handlers. | ||||
* | Move typing handler out of the Handlers object | Mark Haines | 2016-05-17 | 1 | -0/+5 |
| | |||||
* | Move SyncHandler out of the Handlers object | Mark Haines | 2016-05-16 | 1 | -0/+5 |
| | |||||
* | Move the presence handler out of the Handlers object | Mark Haines | 2016-05-16 | 1 | -0/+5 |
| | |||||
* | Optionally split out the pushers into a separate process | Mark Haines | 2016-04-21 | 1 | -0/+3 |
| | |||||
* | Fix flake8 warnings for new flake8 | Daniel Wagner-Hall | 2016-02-02 | 1 | -1/+1 |
| | |||||
* | Clean up a bit. Add comment | Erik Johnston | 2016-01-28 | 1 | -2/+2 |
| | |||||
* | PEP 8 | Erik Johnston | 2016-01-27 | 1 | -1/+0 |
| | |||||
* | Add a Homeserver.setup method. | Erik Johnston | 2016-01-26 | 1 | -15/+17 |
| | | | | | | This is for setting up dependencies that require work on startup. This is useful for the DataStore that wants to read a bunch from the database before initiliazing. | ||||
* | Remove redundated BaseHomeServer | Erik Johnston | 2016-01-26 | 1 | -49/+57 |
| | |||||
* | Use split rather than endswith | Erik Johnston | 2016-01-19 | 1 | -2/+1 |
| | |||||
* | Add regex cache. Only caculate push actions for users that have sent read ↵ | Erik Johnston | 2016-01-19 | 1 | -0/+4 |
| | | | | receipts, and are on that server | ||||
* | copyrights | Matthew Hodgson | 2016-01-07 | 1 | -1/+1 |
| | |||||
* | Actually host r0 and unstable prefixes | Daniel Wagner-Hall | 2015-12-08 | 1 | -2/+1 |
| | |||||
* | Remove the LockManager class because it wasn't being used | Mark Haines | 2015-11-04 | 1 | -5/+0 |
| | |||||
* | Use shorter config key name | Daniel Wagner-Hall | 2015-09-15 | 1 | -1/+2 |
| | |||||
* | Rename context factory | Daniel Wagner-Hall | 2015-09-15 | 1 | -2/+2 |
| | | | | Mjark is officially no fun. | ||||
* | Allow configuration to ignore invalid SSL certs | Daniel Wagner-Hall | 2015-09-09 | 1 | -0/+14 |
| | | | | | This will be useful for sytest, and sytest only, hence the aggressive config key name. | ||||
* | Correctly handle x_forwaded listener option | Erik Johnston | 2015-06-12 | 1 | -10/+2 |
| | |||||
* | Manually generate the default config yaml, remove most of the commandline ↵ | Mark Haines | 2015-04-30 | 1 | -1/+0 |
| | | | | arguments for synapse anticipating that people will use the yaml instead. Simpify implementing config options by not requiring the classes to hit the super class | ||||
* | Merge branch 'develop' into key_distribution | Mark Haines | 2015-04-29 | 1 | -0/+10 |
|\ | | | | | | | | | Conflicts: synapse/config/homeserver.py | ||||
| * | Merge branch 'develop' into csauth | David Baker | 2015-04-17 | 1 | -1/+0 |
| |\ | |||||
| * | | 1) Pushers are now associated with an access token | David Baker | 2015-03-24 | 1 | -0/+10 |
| | | | | | | | | | | | | 2) Change places where we mean unauthenticated to 401, not 403, in C/S v2: hack so it stays as 403 in v1 because web client relies on it. | ||||
* | | | Add a version 2 of the key server api | Mark Haines | 2015-04-14 | 1 | -0/+1 |
| |/ |/| | |||||
* | | Remove appservice REST servlets | Kegan Dougal | 2015-03-31 | 1 | -1/+0 |
|/ | |||||
* | Build MetricsResource as a specific HomeServer dependency | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -0/+1 |
| | |||||
* | Expose 'config' as a real HomeServer dependency key | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -0/+1 |
| | |||||
* | Actually treat this as static content, not random Resources. | Kegan Dougal | 2015-02-23 | 1 | -0/+1 |
| | |||||
* | Merge branch 'develop' into application-services | Kegan Dougal | 2015-02-02 | 1 | -0/+10 |
|\ | | | | | | | | | | | Conflicts: synapse/handlers/__init__.py synapse/storage/__init__.py | ||||
| * | Merge changes from develop | Mark Haines | 2015-01-29 | 1 | -0/+5 |
| |\ | |||||
| | * | Merge branch 'develop' into pushers | David Baker | 2015-01-28 | 1 | -39/+1 |
| | |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/handlers/events.py synapse/server.py | ||||
| | * \ | Merge branch 'develop' into pushers | David Baker | 2015-01-22 | 1 | -1/+1 |
| | |\ \ | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/rest/__init__.py | ||||
| | * \ \ | Merge branch 'develop' into pushers | David Baker | 2015-01-13 | 1 | -3/+3 |
| | |\ \ \ | |||||
| | * \ \ \ | Merge branch 'develop' into pushers | David Baker | 2014-12-18 | 1 | -15/+17 |
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/api/errors.py synapse/server.py synapse/storage/__init__.py | ||||
| | * | | | | | Start creating a module to do generic notifications (just prints them to ↵ | David Baker | 2014-11-19 | 1 | -0/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | stdout currently!) | ||||
| * | | | | | | Initial trivial implementation of an actual 'Filtering' object; move storage ↵ | Paul "LeoNerd" Evans | 2015-01-27 | 1 | -0/+5 |
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | of user filters into there | ||||
* / | | | | | Add stub application services REST API. | Kegan Dougal | 2015-01-27 | 1 | -0/+1 |
|/ / / / / | |||||
* | | | | | Remove unused import from server.py | Mark Haines | 2015-01-26 | 1 | -1/+0 |
| | | | | | |||||
* | | | | | Pass the current time to serialize event, rather than passing an | Mark Haines | 2015-01-26 | 1 | -3/+0 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HS and getting a clock from it and calling time_msec on the clock. Remove the serialize_event method from the HS since it is no longer needed. | ||||
* | | | | | Add client v2_alpha resource to synapse server resource tree | Mark Haines | 2015-01-23 | 1 | -0/+1 |
| | | | | | |||||
* | | | | | Remove hs.parse_eventid | Mark Haines | 2015-01-23 | 1 | -9/+0 |
| | | | | | |||||
* | | | | | Replace hs.parse_roomalias with RoomAlias.from_string | Mark Haines | 2015-01-23 | 1 | -6/+1 |
| | | | | | |||||
* | | | | | Replace hs.parse_roomid with RoomID.from_string | Mark Haines | 2015-01-23 | 1 | -6/+1 |
| | | | | | |||||
* | | | | | Replace hs.parse_userid with UserID.from_string | Mark Haines | 2015-01-23 | 1 | -6/+0 |
| | | | | | |||||
* | | | | | Merge rest servlets into the client json resource object | Mark Haines | 2015-01-23 | 1 | -10/+0 |
| |_|_|/ |/| | | | |||||
* | | | | Move rest APIs back under the rest directory | Mark Haines | 2015-01-22 | 1 | -1/+1 |
| | | | | |||||
* | | | | Move client v1 api rest servlets into a "client/v1" directory | Mark Haines | 2015-01-22 | 1 | -1/+1 |
| |_|/ |/| | | |||||
* | | | Return the raw federation event rather than adding extra keys for federation ↵ | Kegan Dougal | 2015-01-08 | 1 | -2/+2 |
| | | | | | | | | | | | | data. | ||||
* | | | Add 'raw' query parameter to expose the event graph and signatures to savvy ↵ | Kegan Dougal | 2015-01-08 | 1 | -2/+2 |
| | | | | | | | | | | | | clients. | ||||
* | | | Update copyright notices | Mark Haines | 2015-01-06 | 1 | -1/+1 |
| |/ |/| | |||||
* | | Kill off synapse.api.events.* | Erik Johnston | 2014-12-16 | 1 | -10/+0 |
| | | |||||
* | | Merge branch 'develop' of github.com:matrix-org/synapse into events_refactor | Erik Johnston | 2014-12-11 | 1 | -0/+1 |
|\ \ | | | | | | | | | | | | | Conflicts: setup.py | ||||
| * | | Get uploads working with new media repo | Mark Haines | 2014-12-02 | 1 | -0/+1 |
| |/ | |||||
* | | Start making more things use EventContext rather than event.* | Erik Johnston | 2014-12-05 | 1 | -1/+1 |
| | | |||||
* | | Convert rest and handlers to use new event structure | Erik Johnston | 2014-12-04 | 1 | -0/+8 |
| | | |||||
* | | Change DomainSpecificString so that it doesn't use a HomeServer object | Erik Johnston | 2014-12-02 | 1 | -4/+7 |
|/ | |||||
* | Add an EventValidator. Fix bugs in auth ++ storage | Erik Johnston | 2014-11-10 | 1 | -0/+5 |
| | |||||
* | Convert event ids to be of the form :example.com | Erik Johnston | 2014-10-30 | 1 | -1/+6 |
| | |||||
* | Merge branch 'develop' into server2server_signing | Mark Haines | 2014-09-30 | 1 | -0/+12 |
|\ | | | | | | | | | | | Conflicts: synapse/storage/__init__.py tests/rest/test_presence.py | ||||
| * | Track the IP users connect with. Add an admin column to users table. | Erik Johnston | 2014-09-26 | 1 | -0/+12 |
| | | |||||
* | | SYN-75 Verify signatures on server to server transactions | Mark Haines | 2014-09-30 | 1 | -0/+5 |
| | | |||||
* | | Add a _matrix/key/v1 resource with the verification keys of the local server | Mark Haines | 2014-09-23 | 1 | -0/+1 |
|/ | |||||
* | Merge remote-tracking branch 'origin/develop' into test-sqlite-memory | Paul "LeoNerd" Evans | 2014-09-15 | 1 | -0/+4 |
|\ | |||||
| * | Correctly handle the 'age' key in events and pdus | Erik Johnston | 2014-09-15 | 1 | -0/+4 |
| | | |||||
* | | Move database preparing code out of homserver.py into storage where it belongs | Paul "LeoNerd" Evans | 2014-09-10 | 1 | -0/+1 |
|/ | |||||
* | fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org ↵ | Matthew Hodgson | 2014-09-03 | 1 | -1/+1 |
| | | | | hasn't been incorporated in time for launch. | ||||
* | Add ratelimiting function to basehandler | Mark Haines | 2014-09-02 | 1 | -0/+5 |
| | |||||
* | Fix pyflakes warnings | Mark Haines | 2014-08-28 | 1 | -5/+0 |
| | |||||
* | Merge branch 'develop' into storage_transactions | Mark Haines | 2014-08-27 | 1 | -1/+6 |
|\ | | | | | | | | | | | Conflicts: synapse/handlers/room.py synapse/storage/stream.py | ||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor | Erik Johnston | 2014-08-27 | 1 | -1/+14 |
| |\ | | | | | | | | | | | | | | | | | | | Conflicts: synapse/handlers/events.py synapse/rest/events.py synapse/rest/room.py | ||||
| * | | WIP: Completely change how event streaming and pagination work. This ↵ | Erik Johnston | 2014-08-26 | 1 | -1/+6 |
| | | | | | | | | | | | | reflects the change in the underlying storage model. | ||||
* | | | Merge branch 'develop' into storage_transactions | Mark Haines | 2014-08-27 | 1 | -0/+5 |
|\ \ \ | | |/ | |/| | |||||
| * | | Added parse_roomid() helper | Paul "LeoNerd" Evans | 2014-08-27 | 1 | -0/+5 |
| | | | |||||
* | | | Merge branch 'develop' into storage_transactions | Mark Haines | 2014-08-27 | 1 | -1/+9 |
|\| | | |||||
| * | | Modified /join/$identifier to support $identifier being a room ID in ↵ | Kegan Dougal | 2014-08-27 | 1 | -1/+9 |
| |/ | | | | | | | addition to a room alias. | ||||
* / | Fold federation/handler into handlers/federation | Mark Haines | 2014-08-26 | 1 | -5/+0 |
|/ | |||||
* | Add ts field to all events. | Erik Johnston | 2014-08-21 | 1 | -1/+1 |
| | |||||
* | Added /matrix/content path, HS resource_for_content_repo attribute and ↵ | Kegan Dougal | 2014-08-18 | 1 | -0/+2 |
| | | | | FileUploadResource. Added stub methods. | ||||
* | Removed http_server from HomeServer. Updated unit tests to use either ↵ | Kegan Dougal | 2014-08-14 | 1 | -2/+3 |
| | | | | resource_for_federation or resource_for_client depending on what is being tested. | ||||
* | Start phasing out HttpServer: we should be using Resources instead. Added ↵ | Kegan Dougal | 2014-08-14 | 1 | -4/+4 |
| | | | | resource_for_client/federation/web_client to the HomeServer and hooked the C-S servlets to operate on resource_for_client. Dynamically construct the Resource tree. | ||||
* | Add a HomeServer.parse_roomalias() to avoid having to ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 1 | -1/+6 |
| | | | | RoomAlias.from_sring(..., hs=hs) - similar to parse_userid() | ||||
* | Don't pass host_web_client flag to register_servlets, it needs to be a ↵ | Kegan Dougal | 2014-08-13 | 1 | -3/+1 |
| | | | | Resource not a RestServlet. | ||||
* | Added a -w flag which will host the web client if specified. Currently this ↵ | Kegan Dougal | 2014-08-13 | 1 | -4/+10 |
| | | | | just delegates to the webclient RestServlet. | ||||
* | add in whitespace after copyright statements to improve legibility | Matthew Hodgson | 2014-08-13 | 1 | -0/+1 |
| | |||||
* | Reference Matrix Home Server | matrix.org | 2014-08-12 | 1 | -0/+176 |