* Clean roomserver consumer
* Make account data sync incremental
* Use a different name for the sync AD table
* Improved error logging
* Created missing topic in tests
* Add client API topic to tests
* Add client API topic to common
* Move data batch retrieval
* Add database index for data retrieval
* Fix typo in table name
* Fix indentation
* Add database functions to interact with aliases
* Save room alias
* Check if alias already exists
* Implement local alias lookup
* Implement alias removal
* Move alias API
* Handle case with no alias set for a room
* Apply requested changes
* Save function for account data
* Fix upsert + add empty routes and function
* Save account data
* Retrieval functions
* Implement retrieval in /sync
* Fix arrays not correctly initialised
* Merge account data retrieval functions
* Request DB only once per request
* Initialise array
* Fix comment
* Use gomatrixserverlib function to split user ID
* Propagate profile update via m.room.member events
* Send profile data on room join
* Send profile data on room creation
* Rename variable
* Move membership update to roomserver consumer
* Improve iteration
* Move event update from client API server to sync API server
* Change the way buildMembershipEvents is called
* Forbid update of someone else's profile
* Use gomatrixserverlib method
* Fix depth and previous events not being set
* Fix wrong removal in latest commit
* Update all events instead of only memberships
* Handle case where there is no state key
* Fix test
* Use HTTP API for roomserver input.
* Use synchronous HTTP API for writing events to the roomserver
* Remove unused config for kafka topic
* Tweak comments
* Saving memberships
* Removed unused index
* Removed useless log
* Fixed membership not being saved on the right conditions + added membership removal
* Updated outdated comment
* Use server lib method + check server name + use new roomserver API
* Better handling of events from the room server
* Fixed membership removal
* Corrected indentation
* Fix tests (hopefully)
* Replace broken kafka mirror
* Apply requested changes on database management
* Remove useless check and function
* Moved memberships update to the database package
* Use new common function
* Remove useless function
* Make the roomserver output format more flexible
* Fix the sync server integration testdata
* Fix roomserver testdata
* Actually fix the sync server tests
* Fix typo
* Profile retrieval
* Saving avatar (without propagating it)
* Saving display name (without propagating it)
* Getters for display name and avatar URL
* Doc'd
* Introduced new Kafka topic and producer
* Updated config with new kafka topic
* Switched to samara producer and now sending messages
* Doc'd
* Put kafka update after the database insert
* Doc'd profileUpdate structure
* Removed unused parameter
* Moved user updates producer to clientapi/producers
* Add a component for sending event to remote matrix servers using federation
* Use named constants
* Comment on why we combine the deltas
* Comments
* Copyright headers!
* Fix the copy+Pasted comment
* Add tests for combineDeltas
* Review comments
* More review comments
* More comments
* Even more comments
* Name the mutexes
* Document what the mutexes are protecting
* Simplify the SQL, and more comments
* Set depth of events and whether they need to be federated.
Set the depth of each new event to one greater than the maximum depth
of it's direct ancestors.
Add a flag to each event passing through the roomserver that tells us
whether the event needs to be sent over federation.
We do this by passing the name of the server to send the event as.
We will need this capability if we want to support vhosting as it is
not possible to tell from the event alone which server to send it as.
(The reason for this is that sometimes a event needs to be sent on
behalf of a different remote matrix server)
* Update roomserver integration tests
* More comments
* Constants and comments
* Fix comments
* Document the int64 returned by LatestEventIDs
* Include the state before the event in roomserver output
* Fix roomserver integration test
* Remove VisibilityEventIDs from the JSON
* More comments
* Remove spurious TODO