Kegan Dougal
82515c6e2a
Add NOT NULL to columns
2017-03-30 14:17:00 +01:00
Kegan Dougal
f480c32038
Panic if we cannot keep room state updated
2017-03-30 14:08:24 +01:00
Kegan Dougal
254b207a92
Docs
2017-03-29 15:46:51 +01:00
Kegan Dougal
0c7d8a989c
Fix up err redeclarations
2017-03-29 14:11:36 +01:00
Kegan Dougal
9277bfd6d9
Merge branch 'master' into kegan/syncserver-store-room-events
2017-03-29 14:10:53 +01:00
Kegsay
2d2c7e7169
sync-server config: Read from a YAML file rather than hard-coded variables ( #53 )
2017-03-29 14:09:27 +01:00
Kegsay
a423008987
Read roomserver output log and remember position across restarts ( #52 )
2017-03-29 14:05:43 +01:00
Kegan Dougal
edd7feecf0
Write OutputRoomEvents into the database and remember the arrival order
...
The arrival order will eventually be used to generate streaming tokens to
return to the client as a sync token.
2017-03-27 14:42:20 +01:00
Kegan Dougal
12b19a712c
sync-server config: Read from a YAML file rather than hard-coded variables
2017-03-27 13:20:19 +01:00
Kegan Dougal
7b5fcd1bdc
Merge branch 'master' into kegan/syncserver-config
2017-03-27 13:06:25 +01:00
Kegan Dougal
7ab0436689
Add yaml dependency
2017-03-27 13:05:46 +01:00
Kegan Dougal
32ae63ee40
Log messages as they are consumed. Fix bug with remembering offsets
2017-03-27 11:58:16 +01:00
Kegan Dougal
02f1d353b9
Merge branch 'master' into kegan/sync-server-consumer
2017-03-27 10:20:31 +01:00
Kegsay
a974b90ee9
Factor out Consumer from the roomserver ( #50 )
2017-03-27 10:00:28 +01:00
Kegan Dougal
66db5a9f55
Add SyncServer and remove needless abstractions
2017-03-24 17:38:04 +00:00
Kegan Dougal
81943b63f3
Glue up RoomserverConsumer to a database backend
2017-03-24 17:15:16 +00:00
Kegan Dougal
d2ef1a6a4b
Merge branch 'kegan/factor-consumer' into kegan/sync-server-consumer
2017-03-24 16:21:05 +00:00
Kegan Dougal
39f129918a
Add a RoomserverConsumer
2017-03-24 16:20:39 +00:00
Kegan Dougal
5c1be7c043
Restore comments
2017-03-24 16:10:52 +00:00
Kegan Dougal
349b991178
Fix comments
2017-03-24 14:59:29 +00:00
Kegan Dougal
fb20ec09da
Make roomserver Consumer use the factored out Consumer
2017-03-24 11:55:38 +00:00
Kegan Dougal
f04769efb3
Make roomserver use the factored out partition offsets table
2017-03-24 11:24:08 +00:00
Kegan Dougal
6094195b68
Factor out Consumer from the roomserver
...
This will be used in the sync server.
2017-03-24 11:13:54 +00:00
Mark Haines
e3f3eb8f3d
Add metrics for the various ways of calculating room state ( #49 )
2017-03-23 14:14:25 +00:00
Kegsay
e347aa05fe
Make a dendrite-sync-server binary ( #48 )
...
Currently the HTTP handlers are attached to an API mux which is created inside
Setup(). In the future, we'll want to split this out so a single mux can have
both sync and clientapi handlers attached to it.
2017-03-22 17:39:08 +00:00
Kegsay
d6a03039dc
Prefix 'dendrite-' onto dendrite binaries ( #47 )
...
This distinguishes them from tools like 'kafka-producer'
which are not required to run a dendrite server.
The prefix also groups together the dendrite binaries nicely
on `ls` as well as making it nicer to tab-complete.
2017-03-21 17:43:13 +00:00
Kegsay
83b9cfeb2b
Move binaries to /cmd ( #46 )
2017-03-21 17:14:17 +00:00
Mark Haines
a82ccf5b31
Add notes on what message sending will look like in dendrite ( #45 )
2017-03-20 16:46:07 +00:00
Kegsay
346f5d6334
Use gomatrixserverlib.StateKeyTuple and helper functions for auth ( #44 )
...
* Update gomatrixserverib dep
* Use helper functions when creating rooms
* Use gomatrixserverlib.StateKeyTuple
2017-03-17 16:28:15 +00:00
Mark Haines
44c63254a7
Tool for writing messages to a single partition in kafka. ( #43 )
2017-03-17 16:27:45 +00:00
Mark Haines
812fdbe22a
gb vendor update github.com/matrix-org/gomatrixserverlib
2017-03-17 13:10:25 +00:00
Mark Haines
ac66d07177
Add option to stop processing input after a given number of messages ( #38 )
...
* Add option to stop processing input after a given number of messages
2017-03-17 13:01:07 +00:00
Kegsay
a7390953dd
Implement /state event sending ( #41 )
2017-03-17 11:21:52 +00:00
Mark Haines
f2163c31c6
Implement state conflict resolution ( #37 )
...
* Implement state conflict resolution
2017-03-15 13:47:12 +00:00
Kegsay
742e4aca85
Factor out writing events to the roomserver input log ( #40 )
2017-03-15 13:36:26 +00:00
Kegsay
6739f65752
Implement event sending part of /rooms/$roomid/send/$type/$txnid ( #39 )
...
This involves:
- Parsing the HTTP request
- Requesting auth events from the roomserver via the Query API
- Building the event
- Doing auth checks on the event
- Sending it to the roomserver input log
2017-03-15 11:22:40 +00:00
Mark Haines
aa664f0eb7
Tool for creating room events ( #36 )
...
* Tool for creating room events
2017-03-14 17:05:02 +00:00
Kegsay
b9a4551075
Create README.md
2017-03-13 15:56:26 +00:00
Kegsay
414ea314a6
Update gomatrixserverlib and use AuthEventProvider ( #35 )
2017-03-10 17:54:17 +00:00
Kegsay
8ccff1e40f
Log fatal errors at error level and return generic 500s ( #34 )
...
Previously, the error responses:
- were not valid matrix errors (no `errcode`)
- returned the `err.Error()` message which may contain sensitive information.
- did not get logged (at all, let alone set the level correctly).
Now the error responses:
- return valid matrix errors (`M_UNKNOWN`)
- return a generic "Internal Server Error" string
- get logged at `ERROR` level.
2017-03-10 16:50:41 +00:00
Kegsay
2fcf6fd6eb
Send /createRoom events to kafka ( #33 )
2017-03-10 16:19:23 +00:00
Kegsay
49ed708ca4
Create the initial set of state events for room creation ( #32 )
2017-03-10 11:32:53 +00:00
Mark Haines
e667f17e14
Include the requested current state alongside the latest events in the query API. ( #30 )
...
* Return the requested portions of current state in the query API
* Use Unique from github.com/matrix-org/util
* rewrite bulkSelectFilteredStateBlockEntries to use append for clarity
* Add test for stateKeyTupleSorter
* Replace current with a new StateEntryList rather than individually setting the fields
2017-03-09 15:07:18 +00:00
Kegsay
e82090e277
Update gomatrixserverlib dep and add basic /createRoom validation ( #31 )
2017-03-09 11:47:06 +00:00
Mark Haines
1d18da1189
Move the functions for reading room state to a separate package. ( #29 )
...
This should:
1) Make the input package a bit cleaner.
2) Allow use to reuse the state reading code from the query package.
2017-03-08 15:10:26 +00:00
Mark Haines
84682b33c9
Use Unique from github.com/matrix-org/util ( #28 )
...
* Update github.com/matrix-org/util
* Use Unique from github.com/matrix-org/util
2017-03-08 13:27:21 +00:00
Kegsay
8ba9d4af04
Add /createRoom endpoint and unmarshal HTTP body ( #27 )
2017-03-07 16:11:08 +00:00
Kegsay
5552e1f3a8
Extract access tokens from HTTP requests ( #15 )
2017-03-07 13:43:32 +00:00
Mark Haines
8084beb6f7
Add helper method for preparing lists of statements. ( #25 )
...
* Add helper method for preparing lists of statements.
2017-03-07 10:37:41 +00:00
Mark Haines
96fc9294cc
Track the current state of the room ( #24 )
...
* Add method for calculating the room state after a list of events
* Fill out AddsState and RemovesState fields in the output event
* comment on return value
* Fix whitespace
* Clarify the meaning of LastEventIDSent
* Be more explicit on what the snapshot is
* Fix comments
* Comment on why we want the state after the previous events
2017-03-07 10:25:01 +00:00