Charlotte's custom fork of the Dendrite matrix homeserver
Find a file
Andrew Morgan 7736e247b7
Send Application Service Events (#477)
* Prevent sql scanning into nil value in accounts_table

Signed-off-by: Andrew Morgan <andrewm@matrix.org>

* Remove uneccessary logging, null checking

* Don't forget to set the localpart

* Simplify error checking

* Store And Send Application Service Events

* Modify INSTALL.md and dendrite-config.yaml for the new appservice database
* Correct all instances of casing on 'application service' to align with
spec
* Store incoming events that an app service is interested in in the
database to be later read by transaction workers.
* Retrieve these events from transaction workers, one per AS.
* Minimal transaction ID data is stored as well to recover after
server failure.
* Send events to AS and exponentially backoff on failure.

Signed-off-by: Andrew Morgan <andrewm@matrix.org>

* Finish my own sentences.

* Fix up database interaction

* Change to event-based AS sending

* Reduce cyclomatic complexity

* Appease the errcheck gods

* Delete by int ID instead of string.

This was causing some events to not be deleted, as < an eventID doesn't
really make much sense.

* Check if there are more events to send before sleeping

* Send same transaction if last send attempt failed

* Don't backoff on non-200s, tight send loop, 1 event query

* Remove tight send loop. Fix events not being deleted

* Additionally order by event id, track main.go

* Return the last txnID, which our events are using

* Remove old main.go file

* Prevent duplicate events from being sent...

* Strip event content if it doesn't contain anything

Signed-off-by: Andrew Morgan <andrewm@matrix.org>

* Update gomatrixserverlib and use Unsigned AS event prop

* Fixes

* Fix sync server comment
* Remove unnecessary printlns
* Use logrus Fields
* Worker state methods
* Remove sillyness

* Fix up event filtering

* Handle transaction event limit in loop

* Switch to using a sequence for transaction IDs

* Don't verify self-signed AS certificates

* Fix logging

* Use gmsl.Event instead of AS-only event in transactions

Also clear up the logic on lookupStateEvents a little bit.

* Change invalid_txn_id to global (for efficiency)

* Use a bool for EventsReady instead of an int
2018-07-05 09:34:59 -07:00
docker Set up a development environment with docker (#387) 2018-01-02 18:26:37 +00:00
docs Add some basic docs about opentracing (#366) 2017-12-05 14:55:27 +00:00
hooks run commit hook on what we're committing (#356) 2017-11-27 12:19:04 +00:00
jenkins use matching sytest branch, or develop 2017-09-20 12:08:24 +01:00
scripts Make travis builds a bit faster (#382) 2017-12-19 14:09:15 +00:00
src/github.com/matrix-org/dendrite Send Application Service Events (#477) 2018-07-05 09:34:59 -07:00
vendor Send Application Service Events (#477) 2018-07-05 09:34:59 -07:00
.editorconfig Add .editorconfig (#179) 2017-08-05 02:25:40 +01:00
.gitignore Set up a development environment with docker (#387) 2018-01-02 18:26:37 +00:00
.travis.yml Make travis builds a bit faster (#382) 2017-12-19 14:09:15 +00:00
CODE_STYLE.md Code Style: Prefer WithFields over Infof (#349) 2017-11-22 09:35:25 +00:00
CONTRIBUTING.md Added notes for contributing to dependencies (#435) 2018-05-09 13:34:50 +01:00
dendrite-config.yaml Send Application Service Events (#477) 2018-07-05 09:34:59 -07:00
DESIGN.md Clean up README a bit (#289) 2017-10-10 09:33:41 +01:00
INSTALL.md Send Application Service Events (#477) 2018-07-05 09:34:59 -07:00
LICENSE Add Apache Version 2.0 license and headers to all golang files 2017-04-21 00:40:52 +02:00
linter-fast.json Update gometalinter, and disable gas (#371) 2017-12-08 19:13:17 +00:00
linter.json Update gometalinter, and disable gas (#371) 2017-12-08 19:13:17 +00:00
README.md Clean up README a bit (#289) 2017-10-10 09:33:41 +01:00
WIRING.md Small cleanup to WIRING.md 2018-05-22 14:13:26 +01:00

Dendrite Build Status

Dendrite will be a matrix homeserver written in go.

It's still very much a work in progress, but installation instructions can be found in INSTALL.md

An overview of the design can be found in DESIGN.md

Contributing

Everyone is welcome to help out and contribute! See CONTRIBUTING.md to get started!

We aim to try and make it as easy as possible to jump in.

Discussion

For questions about Dendrite we have a dedicated room on Matrix #dendrite:matrix.org.

Progress

There's plenty still to do to make Dendrite usable! We're tracking progress in a spreadsheet.