aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-07-06Updated functionality for updating Yggdrasil config in iOS demoNeil Alexander
2020-07-03Implement local redaction (#1182)Kegsay
* Create redaction events and apply checks (but do not send them) * Send redactions to the roomserver * Linting * Slightly better wording
2020-07-03Wake up destination queues more aggressively (#1183)Neil Alexander
* Wake up destination queues more aggressively * We don't really need Ch here do we
2020-07-03Add public rooms provider into gobind buildNeil Alexander
2020-07-03Yggdrasil demo initial public room directory (#1181)Neil Alexander
* Don't return null to public directory request * Initial support for finding public rooms in Yggdrasil demo (incomplete) * Increase QUIC idle time to 15 minutes
2020-07-03Blacklist a testKegan Dougal
2020-07-03Implement ExtraPublicRoomsProvider for p2p demos (#1180)Kegsay
* Change API and rename to ExtraPublicRoomsProvider * Make dendritejs work again * Maybe make libp2p demo work again * Linting
2020-07-03Hydrate destination queues at startup (#1179)Neil Alexander
* Hydrate destination queues at startup * Review comments
2020-07-03Fix joins to rooms that we know about that have room IDs with our server ↵Neil Alexander
part (#1178)
2020-07-02Yggdrasil+QUIC demo, federation sender tweaks (#1177)Neil Alexander
* Initial QUIC work * Update Yggdrasil demo * Make sure that the federation sender knows how many pending events are in the database when the worker starts * QUIC tunables * pprof * Don't spin * Set build info for Yggdrasil
2020-07-02Remove publicroomsapi (#1176)Kegsay
* Remove all of publicroomsapi * Remove references to publicroomsapi * Remove doc references to publicroomsapi
2020-07-02Replace publicroomsapi with a combination of ↵Kegsay
clientapi/roomserver/currentstateserver (#1174) * Use content_value instead of membership * Fix build * Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver - All public rooms paths are now handled by clientapi - Requests to (un)publish rooms are sent to the roomserver via `PerformPublish` which are stored in a new `published_table.go` - Requests for public rooms are handled in clientapi by: * Fetch all room IDs which are published using `QueryPublishedRooms` on the roomserver. * Apply pagination parameters to the slice. * Do a `QueryBulkStateContent` request to the currentstateserver to pull out required state event *content* (not entire events). * Aggregate and return the chunk. Mostly but not fully implemented (DB queries on currentstateserver are missing) * Fix pq query * Make postgres work * Make sqlite work * Fix tests * Unbreak pagination tests * Linting
2020-07-01Update Yggdrasil demo peer countNeil Alexander
2020-07-01Fix Yggdrasil gobind build, set display name at registrationNeil Alexander
2020-07-01Persistent federation sender queues (PDUs) (#1173)Neil Alexander
* Initial work on persistent queues * Update index for event ID and server name * Put things into database (postgres for now) * Duplicate postgres code into sqlite for now just to stop build errors, will fix SQLite soon * Fix table name * Fix index * Fix table name * Use RETURNING because LastInsertID is not supported by postgres * Use functions * Marshal headered event * Don't error on now rows * Don't block if there are PDUs waiting * Try to tidy up JSON * Debug logging * Fix query, use transactions in postgres * Clean up * Rehydrate more opportunistically * Fix SQLite * remove unused types * Review comments * Shuffle things around a bit * Clean up transaction properly * Don't send empty transactions * Reduce unnecessary retries * Count PDUs to make more resilient * Don't stop when there is work to be done * Try to limit wakeups * well this is tedious * Fix race in incomplete transactions * Thread safety on transaction ID/count
2020-06-30Remove membership table from account DB (#1172)Kegsay
* Remove membership table from account DB And make code which needs that data use the currentstate server * Unbreak tests; use a membership enum for space
2020-06-30Add a new component: currentstateserver (#1171)Kegsay
* Add a new component: currentstateserver - Add a skeleton for it, with databases and a single query method. - Add integration tests for it. - Add listen/address fields in the config (breaking as this will force people to specify this to validate) Not currently hooked up to anything yet. * Unbreak config tests * Add current_state to sample config * comments
2020-06-30Update awsy listKegan Dougal
2020-06-29Don't include current state in processEventWithMissingState (#1126)Neil Alexander
* Don't include current state in processEventWithMissingState * Remove lookupCurrentState as not needed Co-authored-by: Kegsay <kegan@matrix.org>
2020-06-26Implement /sync `limited` and read timeline limit from stored filters (#1168)Kegsay
* Move filter table to syncapi where it is used * Implement /sync `limited` and read timeline limit from stored filters We now fully handle `room.timeline.limit` filters (in-line + stored) and return the right value for `limited` syncs. * Update whitelist * Default to the default timeline limit if it's unset, also strip the extra event correctly * Update whitelist
2020-06-26Honour event size limits and return 413 (#1167)Kegsay
2020-06-26Fix div 0 error and add new tests to listKegan Dougal
2020-06-26Finish implementing retiring invites (#1166)Kegsay
* Pass retired invites to the syncapi with the event ID of the invite * Implement retire invite streaming * Update whitelist
2020-06-25Reject non-numeric ports (done in GMSL)Kegan Dougal
2020-06-25Handle invite v1 (#1165)Kegsay
* Implement invite v1 for sytest mainly * Bump gmsl version which falls back to invite v1 if v2 404s * Update whitelist
2020-06-25Add missing typing testKegan Dougal
2020-06-25Return remote errors from FS.PerformJoin (#1164)Kegsay
* Return remote errors from FS.PerformJoin Follows the same pattern as PerformJoin on roomserver (no error return). Also return the right format for incompatible room version errors. Makes a bunch of tests pass! * Handle network errors better when returning remote HTTP errors * Linting * Fix tests * Update whitelist, pass network errors through in API=1 mode
2020-06-25Remove trailing slash in client api proxy (#1163)Ashley Nelson
Signed-off-by: Ashley Nelson <amn@fantashley.com>
2020-06-24Hopefully fix databased is locked errors on sqlite account creation (#1162)Kegsay
2020-06-24Refactor SendMembership - make ban test pass (#1160)Kegsay
* Refactor SendMembership - make ban test pass * Only check invite auth events for local invites
2020-06-24Make same membership transitions 403, add sytests (#1161)Kegsay
* Make same membership transitions 403, add sytests * Update blacklist
2020-06-24Add PerformInvite and refactor how errors get handled (#1158)Kegsay
* Add PerformInvite and refactor how errors get handled - Rename `JoinError` to `PerformError` - Remove `error` from the API function signature entirely. This forces errors to be bundled into `PerformError` which makes it easier for callers to detect and handle errors. On network errors, HTTP clients will make a `PerformError`. * Unbreak everything; thanks Go! * Send back JSONResponse according to the PerformError * Update federation invite code too
2020-06-24This doesn't passKegan Dougal
2020-06-24Update whitelistKegan Dougal
2020-06-24Pass join errors through internal API boundaries (#1157)Kegsay
* Pass join errors through internal API boundaries Required for certain invite sytests. We will need to think of a better way of handling this going forwards. * Include m.room.avatar in stripped state; handle trailing slashes when GETing state events * Update whitelist * Update whitelist
2020-06-23LintingKegan Dougal
2020-06-23Add instrumented main for coverageKegan Dougal
2020-06-23Add /send restrictions and return correct error codes (#1156)Kegsay
* Add /send restrictions and return correct error codes - Max 50 PDUs / 100 EDUs - Fail the transaction when PDUs contain bad JSON * Update whitelist * Unbreak test * Linting
2020-06-23Fix room checks for /state and /state_ids (#1155)Kegsay
We would return a 403 first (as the server would not be allowed to see this event) and only then return a 404 if the event is not in the given room. We now invert those checks for /state and /state_ids to make the tests pass.
2020-06-23/send auth errors are silent (#1149)Kegsay
* /send auth errors are silent * Fix test
2020-06-23Push serverkeyapi docker image to registry as well (#1154)Martin Honermeyer
Signed-off-by: Martin Honermeyer <maze@strahlungsfrei.de>
2020-06-20Add appservices component to docker scripts (#1153)Ashley Nelson
Signed-off-by: Ashley Nelson <amn@fantashley.com>
2020-06-19Bind build support, further Yggdrasil demo updates (#1152)Neil Alexander
* Add gobind builds for Yggdrasil demo * Massage client API a bit * Fix build * Fix gobind build * Fix gobind client API setup * Tweaks * Tweaks * Update sytest-whitelist, add comment * Default to sending push rules on initial sync
2020-06-19User API polylith component (#1151)Neil Alexander
* User API polylith component * Add docker-pull.sh
2020-06-19Fix comment in InputAccountDataRequestNeil Alexander
2020-06-18Refactor account data (#1150)Neil Alexander
* Refactor account data * Tweak database fetching * Tweaks * Restore syncProducer notification * Various tweaks, update tag behaviour * Fix initial sync
2020-06-18Fix embed Riot Web into Yggdrasil demoNeil Alexander
2020-06-17Hacks for supporting Riot iOS (#1148)Neil Alexander
* Join room body is optional * Support deprecated login by user/password * Implement dummy key upload endpoint * Make a very determinate end to /messages if we hit the create event in back-pagination * Linting
2020-06-17Make account data sytests pass (#1147)Kegsay
2020-06-17Missing sytestsKegan Dougal