Dendrite is a second-generation Matrix homeserver written in Go!
Go to file
Thibaut CHARLES 76e4ebaf78 State events filtering database api (#438)
This PR adds a gomatrixserverlib.Filter parameter to functions handling the syncapi_current_room_state table. It does not implement any filtering logic inside the syncapi IncrementalSync/CompleteSync functions, just the APIs for future use.

Default filters are provided as placeholders in IncrementalSync/CompleteSync, so behaviour should be unchanged (except the default 20 event limit)

SQL table will be changed. You can upgrade an existing database using:

```
ALTER TABLE syncapi_current_room_state  ADD COLUMN IF NOT EXISTS sender text;
UPDATE syncapi_current_room_state SET sender=(event_json::json->>'sender');
ALTER TABLE syncapi_current_room_state ALTER COLUMN sender SET NOT NULL;
ALTER TABLE syncapi_current_room_state  ADD COLUMN IF NOT EXISTS contains_url bool;
UPDATE syncapi_current_room_state SET contains_url=(event_json::json->>'content')::json->>'url' IS NOT NULL;
ALTER TABLE syncapi_current_room_state ALTER COLUMN contains_url SET NOT NULL;
```

Note: This depends on #436 (and includes all its commits). I'm not sure if Github will remove the duplicated commits once #436 is merged.
2019-08-07 11:12:09 +01:00
.circleci Run CircleCI on pull request branches (#710) 2019-05-29 11:34:36 +01:00
.github Add SyTest support to CI (#704) 2019-05-24 15:00:03 +01:00
appservice Implement profile retrieval over federation (#726) 2019-08-07 00:02:12 +08:00
clientapi Fix permission and 404 response for alias deletion - #654 (#706) 2019-08-07 11:00:58 +08:00
cmd Replace membership and visibility values with constants (#774) 2019-08-06 15:07:36 +01:00
common Implement profile retrieval over federation (#726) 2019-08-07 00:02:12 +08:00
docker Update Docker files and remove references to gb (#703) 2019-05-22 10:44:25 +01:00
docs Fix testfile path hardcoded in show-expected-fail-tests.sh (#719) 2019-06-25 11:50:19 +01:00
federationapi Replace membership and visibility values with constants (#774) 2019-08-06 15:07:36 +01:00
federationsender Replace membership and visibility values with constants (#774) 2019-08-06 15:07:36 +01:00
hooks run commit hook on what we're committing (#356) 2017-11-27 12:19:04 +00:00
mediaapi Remove unnecessary http method checks (#747) 2019-07-18 15:40:10 +08:00
publicroomsapi Replace membership and visibility values with constants (#774) 2019-08-06 15:07:36 +01:00
roomserver Fix permission and 404 response for alias deletion - #654 (#706) 2019-08-07 11:00:58 +08:00
scripts Backup and restore go.mod & go.sum during linting (#735) 2019-07-12 14:23:27 +01:00
syncapi State events filtering database api (#438) 2019-08-07 11:12:09 +01:00
typingserver Lots of small typo fixes (#737) 2019-07-12 16:43:01 +01:00
.editorconfig Add .editorconfig (#179) 2017-08-05 02:25:40 +01:00
.gitignore use go module for dependencies (#594) 2019-05-21 21:56:55 +01:00
.golangci.yml Fix pipeline, emoji and syntax (#713) 2019-06-19 14:05:03 +01:00
build.sh Not all systems have bash (#720) 2019-06-24 13:35:29 +01:00
CODE_STYLE.md Code Style: Prefer WithFields over Infof (#349) 2017-11-22 09:35:25 +00:00
CONTRIBUTING.md Update Docker files and remove references to gb (#703) 2019-05-22 10:44:25 +01:00
dendrite-config.yaml Remove riot.im from the list of trusted ID servers in the default config (#688) 2019-01-31 10:06:11 +00:00
DESIGN.md Clean up README a bit (#289) 2017-10-10 09:33:41 +01:00
go.mod Replace membership and visibility values with constants (#774) 2019-08-06 15:07:36 +01:00
go.sum Replace membership and visibility values with constants (#774) 2019-08-06 15:07:36 +01:00
INSTALL.md Fix broken Kafka download URL in INSTALL.md (#740) 2019-07-16 16:16:43 +01:00
LICENSE Add Apache Version 2.0 license and headers to all golang files 2017-04-21 00:40:52 +02:00
README.md Scope the buildkite build badge only to tests running on master (#779) 2019-08-06 20:26:15 +01:00
show-expected-fail-tests.sh Update testfile and fix empty warning in show-expected-fail-tests.sh (#729) 2019-07-05 12:42:23 +01:00
testfile Implement profile retrieval over federation (#726) 2019-08-07 00:02:12 +08:00
WIRING.md Document internal APIs and Application Services component (#499) 2018-07-06 02:33:53 -07:00

Dendrite Build Status CircleCI Dendrite Dev on Matrix Dendrite on Matrix

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. Development discussion should happen in #dendrite-dev:matrix.org.

Progress

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