Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/v0.4.1 #4

Merged
merged 106 commits into from
Aug 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
4691adc
Update MSC2946 implementation for stable spaces (#1859)
t3chguy May 18, 2021
140cae8
Update dendrite-demo-pinecone
neilalexander May 18, 2021
e9e0309
Merge branch 'master' of github.com:matrix-org/dendrite
neilalexander May 18, 2021
08a4370
Update go.mod/go.sum
neilalexander May 18, 2021
2948ffd
Update go.mod/go.sum
neilalexander May 18, 2021
d2d2164
Update pinecone demo
neilalexander May 24, 2021
79c5485
Allow clearing federation blacklist at startup for P2P demos
neilalexander May 24, 2021
a7f2845
Demo tweaks
neilalexander May 24, 2021
30f0217
Update go.mod/go.sum
neilalexander May 25, 2021
3f84cd6
Update go.mod/go.sum
neilalexander May 25, 2021
3797d81
Update gomatrixserverlib to matrix-org/gomatrixserverlib#259
neilalexander May 25, 2021
b0aa101
Update go.mod/go.sum for matrix-org/pinecone (Build 79)
neilalexander Jun 2, 2021
f18001e
Split the select+update query for txn_id counter (#1855)
bodqhrohro Jun 7, 2021
c488d3d
Fix SIGSEGV in IsInterestedInRoomID (#1846)
bodqhrohro Jun 7, 2021
8b22c42
Use LimitReader to prevent DoS risk (#1843)
S7evinK Jun 7, 2021
89a6787
Try to optimize SelectOneTimeKeys (#1851)
S7evinK Jun 7, 2021
6fa5743
Add missing IPv6 "ssl" keyword in nginx config examples (#1854)
toadjaune Jun 7, 2021
caa5c89
Link to Synapse (#1863)
benlangfeld Jun 7, 2021
2c9a390
Add CORS to nginx config (#1791)
Cogitri Jun 7, 2021
bd9dec8
Pinecone demo updates
neilalexander Jun 14, 2021
051cd63
Update go.mod/go.sum
neilalexander Jun 14, 2021
eae1c46
Use NotFound instead of Forbidden for missing account data (#1872)
adamgreig Jun 14, 2021
183f43d
Add parameters to specify password (#1868)
S7evinK Jun 14, 2021
ce574f5
Fix Key Generation Docs - resolves #1759 (#1865)
benyanke Jun 14, 2021
9633ed7
Remove mention of enabling naffka in install instructions, as it is t…
toadjaune Jun 14, 2021
9ed0440
Set MaxFileSizeBytes <= 0 to "unlimited" (#1875)
S7evinK Jun 14, 2021
5ec7d3a
Update go.mod/go.sum
neilalexander Jun 14, 2021
30e9353
Ensure user IDs match the spec (matrix-org/gomatrixserverlib#261)
neilalexander Jun 15, 2021
3a77bca
Revert "Ensure user IDs match the spec (matrix-org/gomatrixserverlib#…
neilalexander Jun 16, 2021
5357df3
Fix panic in roomserver
neilalexander Jun 21, 2021
79181f2
✂️ Media API: Handle unlimited file size (#1881)
database64128 Jun 22, 2021
6ae976a
dendrite-demo-pinecone: Accept any origin
neilalexander Jun 22, 2021
097a583
dendritejs-pinecone
neilalexander Jun 25, 2021
bd7b0b1
Update go.mod/go.sum
neilalexander Jun 25, 2021
a6f7e83
Fix bugs in P2P demos
neilalexander Jun 25, 2021
7c3991e
Use a custom FIFO queue for the RS input API (#1888)
neilalexander Jun 28, 2021
4417f24
Protect processEventWithMissingState with per-room mutex, to prevent …
neilalexander Jun 28, 2021
f645646
Restore the getServers RS query (needs optimisation)
neilalexander Jun 29, 2021
e2b6a90
Put gmectx back to 5 minutes
neilalexander Jun 29, 2021
c849e74
db migration: fix #1844 and add additional assertions (#1889)
kegsay Jun 29, 2021
3afb161
Reduce memory usage in federation /send endpoint (#1890)
neilalexander Jun 30, 2021
0e69212
Give up on loops when the context expires (#1891)
neilalexander Jun 30, 2021
b7a2d36
Change how servers are selected for missing auth/prev events (#1892)
neilalexander Jun 30, 2021
2647f6e
Fix concurrent map read/write on haveEvents (#1893)
neilalexander Jun 30, 2021
192a7a7
Roomserver input backpressure metric
neilalexander Jul 2, 2021
5732089
Federation API workers for /send to reduce memory usage (#1897)
neilalexander Jul 2, 2021
6bb994b
Update to matrix-org/gomatrixserverlib#265 for faster power level con…
neilalexander Jul 2, 2021
355ce7e
Update to matrix-org/gomatrixserverlib#266 (+ missing file)
neilalexander Jul 2, 2021
7f02eab
Remove processEventWithMissingStateMutex
neilalexander Jul 5, 2021
99d8e1c
Federation API fixes (#1899)
neilalexander Jul 5, 2021
bcd3ef3
Track expiry rate on pduCountTotal
neilalexander Jul 5, 2021
d72d634
Add dendrite-upgrade-test (#1901)
kegsay Jul 7, 2021
bb6e448
dendrite-upgrade-test: support --from HEAD-N, cleanup on startup (#1903)
kegsay Jul 7, 2021
5a09290
db migration: handle create events with no state blocks from v0.1.0 (…
kegsay Jul 7, 2021
f297472
Fix concurrent map reads/writes on t.hadEvents (#1902)
neilalexander Jul 7, 2021
717d163
Improve error handling and close files post-tarring
kegsay Jul 8, 2021
3fb5ee7
linting
kegsay Jul 8, 2021
ef331c5
dendrite-upgrade-test: tweaks to get it to run under CI in docker (#1…
kegsay Jul 8, 2021
70e4bbd
Only log filename and not entire path (#1906)
kegsay Jul 8, 2021
816e1a4
Fix bug when rejecting invites (#1907)
neilalexander Jul 8, 2021
3e50bac
bugfix: order the state blocks so recreating state snapshots works co…
kegsay Jul 9, 2021
c8408a6
Add more optimised code path for checking if we're in a room (#1909)
neilalexander Jul 9, 2021
1ed732c
Implement /_synapse/admin/v1/register (#1911)
kegsay Jul 9, 2021
acec6fa
Move a couple of callers to helpers.IsServerCurrentlyInRoom over to t…
neilalexander Jul 9, 2021
e48a08f
Propose config better (#1758)
melroy89 Jul 12, 2021
0530302
Add shared secret sytests to whitelist
kegsay Jul 12, 2021
89a16bd
Version 0.4.0
neilalexander Jul 12, 2021
48bdd79
Fix attribution in changelog
neilalexander Jul 12, 2021
ea477d7
Update blacklist
kegsay Jul 12, 2021
b130fab
Update are we synapse groupings (#1913)
kegsay Jul 12, 2021
93cf1e7
Actually bump GMSL
kegsay Jul 12, 2021
f698142
update whitelist (#1914)
kegsay Jul 12, 2021
f8ae391
Expose more data when outputting output room events (#1916)
kegsay Jul 13, 2021
7df3e69
Fix failing complement test (#1917)
kegsay Jul 13, 2021
e80098e
bugfix: retire invites even when we cannot talk to the remote server …
kegsay Jul 14, 2021
2713d19
AWSY: update list and shuffle groups (#1919)
kegsay Jul 14, 2021
fa1397c
Remove unused binaries
neilalexander Jul 14, 2021
e8de96b
sytests: fix failing PL tests by updating GMSL (#1920)
kegsay Jul 14, 2021
c211fdf
Add missing sytest to whitelist
kegsay Jul 14, 2021
1827dd7
Update dendrite-demo-yggdrasil to Yggdrasil 0.4 (#1921)
neilalexander Jul 15, 2021
c102ada
fedsender: add cache tables for notary keys (#1923)
kegsay Jul 15, 2021
728061d
fedsender: try to satisfy all notary key requests from the cache firs…
kegsay Jul 16, 2021
b954343
Fix DNS CacheLifetime (#1926)
S7evinK Jul 16, 2021
af64e64
Fix failing Complement tests (#1931)
kegsay Jul 19, 2021
628e4cc
Update to matrix-org/gomatrixserverlib#269
neilalexander Jul 19, 2021
b20d402
dendrite_roomserver_calculate_state_duration_microseconds as histogra…
neilalexander Jul 19, 2021
eb2a8e4
Set buckets for dendrite_roomserver_calculate_state_duration_microsec…
neilalexander Jul 19, 2021
09d3bab
Metric fixes
neilalexander Jul 19, 2021
5094bc8
Set MaxFileSizeBytes <= 0 to unlimited (#1876)
S7evinK Jul 19, 2021
8d8fe48
Fix failing ban tests (#1884)
DavidSpenler Jul 19, 2021
da2023b
Rename Riot to Element (#1874)
S7evinK Jul 20, 2021
0ff078e
Fixed log printing bug (closes #1885)
neilalexander Jul 20, 2021
f63068d
Only include go-sqlite3 on the relevant binaries (#1900)
neilalexander Jul 20, 2021
034f5ae
Add startup testing for Wasm Pinecone build (#1910)
jryans Jul 20, 2021
c6acb94
Update to matrix-org/gomatrixserverlib#270
neilalexander Jul 20, 2021
2f5e4f5
Support initial_state properly in `/createRoom` (#1932)
neilalexander Jul 21, 2021
f0f8c7f
Optimise QueryServerJoinedToRoom (#1933)
neilalexander Jul 21, 2021
c1447a5
Various alias fixes (#1934)
neilalexander Jul 21, 2021
7650998
Update to matrix-org/gomatrixserverlib#271
neilalexander Jul 21, 2021
9008b1c
Update to matrix-org/gomatrixserverlib@ae88543
neilalexander Jul 21, 2021
43ac66e
Update to matrix-org/gomatrixserverlib@b9eb787
neilalexander Jul 22, 2021
39e8d1c
Track knocking in membership updater (#1935)
neilalexander Jul 22, 2021
75d0f00
Don't set prev state when it is the same as the event it replaces (#1…
neilalexander Jul 22, 2021
fa1ec48
fix:Inviting to an unsupported room version return M_BAD_JSON instead…
meenal06 Jul 26, 2021
16bf94f
Not finding the snapshot is not fatal (#1940)
kegsay Jul 26, 2021
e367979
Version 0.4.1
neilalexander Jul 26, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/wasm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: WebAssembly

on:
push:
pull_request:

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Install Go
uses: actions/setup-go@v2
with:
go-version: 1.16.5

- uses: actions/cache@v2
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-

- name: Install Node
uses: actions/setup-node@v2
with:
node-version: 14

- uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-

- name: Reconfigure Git to use HTTPS auth for repo packages
run: >
git config --global url."https://github.com/".insteadOf
ssh://[email protected]/

- name: Install test dependencies
working-directory: ./test/wasm
run: npm ci

- name: Test
run: ./test-dendritejs.sh
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
# Hidden files
.*

# Allow GitHub config
!.github

# Downloads
/.downloads

Expand Down Expand Up @@ -36,6 +39,7 @@ _testmain.go
*.exe
*.test
*.prof
*.wasm

# Generated keys
*.pem
Expand All @@ -53,3 +57,6 @@ dendrite.yaml

# Generated code
cmd/dendrite-demo-yggdrasil/embed/fs*.go

# Test dependencies
test/wasm/node_modules
61 changes: 61 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,66 @@
# Changelog

## Dendrite 0.4.1 (2021-07-26)

### Features

* Support for room version 7 has been added
* Key notary support is now more complete, allowing Dendrite to be used as a notary server for looking up signing keys
* State resolution v2 performance has been optimised further by caching the create event, power levels and join rules in memory instead of parsing them repeatedly
* The media API now handles cases where the maximum file size is configured to be less than 0 for unlimited size
* The `initial_state` in a `/createRoom` request is now respected when creating a room
* Code paths for checking if servers are joined to rooms have been optimised significantly

### Fixes

* A bug resulting in `cannot xref null state block with snapshot` during the new state storage migration has been fixed
* Invites are now retired correctly when rejecting an invite from a remote server which is no longer reachable
* The DNS cache `cache_lifetime` option is now handled correctly (contributed by [S7evinK](https://github.com/S7evinK))
* Invalid events in a room join response are now dropped correctly, rather than failing the entire join
* The `prev_state` of an event will no longer be populated incorrectly to the state of the current event
* Receiving an invite to an unsupported room version will now correctly return the `M_UNSUPPORTED_ROOM_VERSION` error code instead of `M_BAD_JSON` (contributed by [meenal06](https://github.com/meenal06))

## Dendrite 0.4.0 (2021-07-12)

### Features

* All-new state storage in the roomserver, which dramatically reduces disk space utilisation
* State snapshots and blocks are now aggressively deduplicated and reused wherever possible, with state blocks being reduced by up to 15x and snapshot references being reduced up to 2x
* Dendrite will upgrade to the new state storage automatically on the first run after upgrade, although this may take some time depending on the size of the state storage
* Appservice support has been improved significantly, with many bridges now working correctly with Dendrite
* Events are now correctly sent to appservices based on room memberships
* Aliases and namespaces are now handled correctly, calling the appservice to query for aliases as needed
* Appservice user registrations are no longer being subject to incorrect validation checks
* Shared secret registration has now been implemented correctly
* The roomserver input API implements a new queuing system to reduce backpressure across rooms
* Checking if the local server is in a room has been optimised substantially, reducing CPU usage
* State resolution v2 has been optimised further by improving the power level checks, reducing CPU usage
* The federation API `/send` endpoint now deduplicates missing auth and prev events more aggressively to reduce memory usage
* The federation API `/send` endpoint now uses workers to reduce backpressure across rooms
* The bcrypt cost for password storage is now configurable with the `user_api.bcrypt_cost` option
* The federation API will now use significantly less memory when calling `/get_missing_events`
* MSC2946 Spaces endpoints have been updated to stable endpoint naming
* The media API can now be configured without a maximum file size
* A new `dendrite-upgrade-test` test has been added for verifying database schema upgrades across versions
* Added Prometheus metrics for roomserver backpressure, excessive device list updates and federation API event processing summaries
* Sentry support has been added for error reporting

### Fixes

* Removed the legacy `/v1` register endpoint. Dendrite only implements `/r0` of the CS API, and the legacy `/v1` endpoint had implementation errors which made it possible to bypass shared secret registration (thanks to Jakob Varmose Bentzen for reporting this)
* Attempting to register an account that already exists now returns a sensible error code rather than a HTTP 500
* Dendrite will no longer attempt to `/make_join` with itself if listed in the request `server_names`
* `/sync` will no longer return immediately if there is nothing to sync, which happened particularly with new accounts, causing high CPU usage
* Malicious media uploads can no longer exhaust all available memory (contributed by [S7evinK](https://github.com/S7evinK))
* Selecting one-time keys from the database has been optimised (contributed by [S7evinK](https://github.com/S7evinK))
* The return code when trying to fetch missing account data has been fixed (contributed by [adamgreig](https://github.com/adamgreig))
* Dendrite will no longer attempt to use `/make_leave` over federation when rejecting a local invite
* A panic has been fixed in `QueryMembershipsForRoom`
* A panic on duplicate membership events has been fixed in the federation sender
* A panic has been fixed in in `IsInterestedInRoomID` (contributed by [bodqhrohro](https://github.com/bodqhrohro))
* A panic in the roomserver has been fixed when handling empty state sets
* A panic in the federation API has been fixed when handling cached events

## Dendrite 0.3.11 (2021-03-02)

### Fixes
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Dendrite [![Build Status](https://badge.buildkite.com/4be40938ab19f2bbc4a6c6724517353ee3ec1422e279faf374.svg?branch=master)](https://buildkite.com/matrix-dot-org/dendrite) [![Dendrite](https://img.shields.io/matrix/dendrite:matrix.org.svg?label=%23dendrite%3Amatrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#dendrite:matrix.org) [![Dendrite Dev](https://img.shields.io/matrix/dendrite-dev:matrix.org.svg?label=%23dendrite-dev%3Amatrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#dendrite-dev:matrix.org)

Dendrite is a second-generation Matrix homeserver written in Go.
It intends to provide an **efficient**, **reliable** and **scalable** alternative to Synapse:
It intends to provide an **efficient**, **reliable** and **scalable** alternative to [Synapse](https://github.com/matrix-org/synapse):
- Efficient: A small memory footprint with better baseline performance than an out-of-the-box Synapse.
- Reliable: Implements the Matrix specification as written, using the
[same test suite](https://github.com/matrix-org/sytest) as Synapse as well as
Expand Down
1 change: 0 additions & 1 deletion appservice/storage/sqlite3/storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (
"github.com/matrix-org/dendrite/internal/sqlutil"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/gomatrixserverlib"
_ "github.com/mattn/go-sqlite3"
)

// Database stores events intended to be later sent to application services
Expand Down
17 changes: 15 additions & 2 deletions appservice/storage/sqlite3/txn_id_counter_table.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,18 @@ INSERT OR IGNORE INTO appservice_counters (name, last_id) VALUES('txn_id', 1);
`

const selectTxnIDSQL = `
SELECT last_id FROM appservice_counters WHERE name='txn_id';
UPDATE appservice_counters SET last_id=last_id+1 WHERE name='txn_id';
SELECT last_id FROM appservice_counters WHERE name='txn_id'
`

const updateTxnIDSQL = `
UPDATE appservice_counters SET last_id=last_id+1 WHERE name='txn_id'
`

type txnStatements struct {
db *sql.DB
writer sqlutil.Writer
selectTxnIDStmt *sql.Stmt
updateTxnIDStmt *sql.Stmt
}

func (s *txnStatements) prepare(db *sql.DB, writer sqlutil.Writer) (err error) {
Expand All @@ -54,6 +58,10 @@ func (s *txnStatements) prepare(db *sql.DB, writer sqlutil.Writer) (err error) {
return
}

if s.updateTxnIDStmt, err = db.Prepare(updateTxnIDSQL); err != nil {
return
}

return
}

Expand All @@ -63,6 +71,11 @@ func (s *txnStatements) selectTxnID(
) (txnID int, err error) {
err = s.writer.Do(s.db, nil, func(txn *sql.Tx) error {
err := s.selectTxnIDStmt.QueryRowContext(ctx).Scan(&txnID)
if err != nil {
return err
}

_, err = s.updateTxnIDStmt.ExecContext(ctx)
return err
})
return
Expand Down
30 changes: 25 additions & 5 deletions are-we-synapse-yet.list
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ reg POST /register rejects registration of usernames with '£'
reg POST /register rejects registration of usernames with 'é'
reg POST /register rejects registration of usernames with '\n'
reg POST /register rejects registration of usernames with '''
reg POST /register allows registration of usernames with 'q'
reg POST /register allows registration of usernames with '3'
reg POST /register allows registration of usernames with '.'
reg POST /register allows registration of usernames with '_'
reg POST /register allows registration of usernames with '='
reg POST /register allows registration of usernames with '-'
reg POST /register allows registration of usernames with '/'
reg POST /r0/admin/register with shared secret
reg POST /r0/admin/register admin with shared secret
reg POST /r0/admin/register with shared secret downcases capitals
Expand Down Expand Up @@ -76,7 +83,7 @@ rst GET /rooms/:room_id/state/m.room.topic gets topic
rst GET /rooms/:room_id/state fetches entire room state
crm POST /createRoom with creation content
ali PUT /directory/room/:room_alias creates alias
nsp GET /rooms/:room_id/aliases lists aliases
ali GET /rooms/:room_id/aliases lists aliases
jon POST /rooms/:room_id/join can join a room
jon POST /join/:room_alias can join a room
jon POST /join/:room_id can join a room
Expand All @@ -95,6 +102,7 @@ typ Typing notifications don't leak (3 subtests)
rst GET /rooms/:room_id/state/m.room.power_levels can fetch levels
rst PUT /rooms/:room_id/state/m.room.power_levels can set levels
rst PUT power_levels should not explode if the old power levels were empty
rst Users cannot set notifications powerlevel higher than their own (2 subtests)
rst Both GET and PUT work
rct POST /rooms/:room_id/receipt can create receipts
red POST /rooms/:room_id/read_markers can create read marker
Expand Down Expand Up @@ -175,7 +183,7 @@ ali Users with sufficient power-level can delete other's aliases
ali Can delete canonical alias
ali Alias creators can delete alias with no ops
ali Alias creators can delete canonical alias with no ops
ali Only room members can list aliases of a room
msc Only room members can list aliases of a room
inv Can invite users to invite-only rooms
inv Uninvited users cannot join the room
inv Invited user can reject invite
Expand Down Expand Up @@ -353,6 +361,7 @@ syn Syncing a new room with a large timeline limit isn't limited
syn A full_state incremental update returns only recent timeline
syn A prev_batch token can be used in the v1 messages API
syn A next_batch token can be used in the v1 messages API
syn A prev_batch token from incremental sync can be used in the v1 messages API
syn User sees their own presence in a sync
syn User is offline if they set_presence=offline in their sync
syn User sees updates to presence from other users in the incremental sync.
Expand Down Expand Up @@ -574,6 +583,7 @@ fqu Outbound federation can query profile data
fqu Inbound federation can query profile data
fqu Outbound federation can query room alias directory
fqu Inbound federation can query room alias directory
fsj Membership event with an invalid displayname in the send_join response should not cause room join to fail
fsj Outbound federation can query v1 /send_join
fsj Outbound federation can query v2 /send_join
fmj Outbound federation passes make_join failures through to the client
Expand All @@ -596,7 +606,7 @@ fsj Inbound: send_join rejects invalid JSON for room version 6
fed Outbound federation can send events
fed Inbound federation can receive events
fed Inbound federation can receive redacted events
fed Ephemeral messages received from servers are correctly expired
msc Ephemeral messages received from servers are correctly expired
fed Events whose auth_events are in the wrong room do not mess up the room state
fed Inbound federation can return events
fed Inbound federation redacts events from erased users
Expand Down Expand Up @@ -743,6 +753,10 @@ nsp Set group joinable and join it
nsp Group is not joinable by default
nsp Group is joinable over federation
nsp Room is transitioned on local and remote groups upon room upgrade
nsp POST /_synapse/admin/v1/register with shared secret
nsp POST /_synapse/admin/v1/register admin with shared secret
nsp POST /_synapse/admin/v1/register with shared secret downcases capitals
nsp POST /_synapse/admin/v1/register with shared secret disallows symbols
3pd Can bind 3PID via home server
3pd Can bind and unbind 3PID via homeserver
3pd Can unbind 3PID via homeserver when bound out of band
Expand Down Expand Up @@ -859,8 +873,14 @@ jso Invalid JSON special values
inv Can invite users to invite-only rooms (2 subtests)
plv setting 'm.room.name' respects room powerlevel (2 subtests)
psh Messages that notify from another user increment notification_count
psh Messages that org.matrix.msc2625.mark_unread from another user increment org.matrix.msc2625.unread_count
msc Messages that org.matrix.msc2625.mark_unread from another user increment org.matrix.msc2625.unread_count
dvk Can claim one time key using POST (2 subtests)
fdk Can query remote device keys using POST (1 subtests)
fdk Can claim remote one time key using POST (2 subtests)
fmj Inbound /make_join rejects attempts to join rooms where all users have left
fmj Inbound /make_join rejects attempts to join rooms where all users have left
msc Local users can peek into world_readable rooms by room ID
msc We can't peek into rooms with shared history_visibility
msc We can't peek into rooms with invited history_visibility
msc We can't peek into rooms with joined history_visibility
msc Local users can peek by room alias
msc Peeked rooms only turn up in the sync for the device who peeked them
4 changes: 4 additions & 0 deletions are-we-synapse-yet.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
"nsp": "Non-Spec API",
"unk": "Unknown API (no group specified)",
"app": "Application Services API",
"msc": "MSCs",
"f": "Federation", # flag to mark test involves federation

"federation_apis": {
Expand Down Expand Up @@ -223,6 +224,7 @@ def main(results_tap_path, verbose):
},
"nonspec": {
"nsp": {},
"msc": {},
"unk": {}
},
}
Expand All @@ -237,6 +239,8 @@ def main(results_tap_path, verbose):
summary["nonspec"]["unk"][name] = test_result["ok"]
if group_id == "nsp":
summary["nonspec"]["nsp"][name] = test_result["ok"]
elif group_id == "msc":
summary["nonspec"]["msc"][name] = test_result["ok"]
elif group_id == "app":
summary["appservice"]["app"][name] = test_result["ok"]
elif group_id in test_mappings["federation_apis"]:
Expand Down
2 changes: 1 addition & 1 deletion build-dendritejs.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/sh -eu

export GIT_COMMIT=$(git rev-list -1 HEAD) && \
GOOS=js GOARCH=wasm go build -ldflags "-X main.GitCommit=$GIT_COMMIT" -o main.wasm ./cmd/dendritejs
GOOS=js GOARCH=wasm go build -ldflags "-X main.GitCommit=$GIT_COMMIT" -o bin/main.wasm ./cmd/dendritejs-pinecone
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ mkdir -p bin

CGO_ENABLED=1 go build -trimpath -ldflags "$FLAGS" -v -o "bin/" ./cmd/...

CGO_ENABLED=0 GOOS=js GOARCH=wasm go build -trimpath -ldflags "$FLAGS" -o bin/main.wasm ./cmd/dendritejs
CGO_ENABLED=0 GOOS=js GOARCH=wasm go build -trimpath -ldflags "$FLAGS" -o bin/main.wasm ./cmd/dendritejs-pinecone
30 changes: 15 additions & 15 deletions build/docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,28 +28,29 @@ There are three sample `docker-compose` files:
The `docker-compose` files refer to the `/etc/dendrite` volume as where the
runtime config should come from. The mounted folder must contain:

- `dendrite.yaml` configuration file (based on the sample `dendrite-config.yaml`
in the `docker/config` folder in the [Dendrite repository](https://github.com/matrix-org/dendrite)
- `dendrite.yaml` configuration file (based on the [`dendrite-config.yaml`](https://raw.githubusercontent.com/matrix-org/dendrite/master/dendrite-config.yaml)
sample in the `build/docker/config` folder of this repository.)
- `matrix_key.pem` server key, as generated using `cmd/generate-keys`
- `server.crt` certificate file
- `server.key` private key file for the above certificate

To generate keys:

```
go run github.com/matrix-org/dendrite/cmd/generate-keys \
--private-key=matrix_key.pem \
--tls-cert=server.crt \
--tls-key=server.key
docker run --rm --entrypoint="" \
-v $(pwd):/mnt \
matrixdotorg/dendrite-monolith:latest \
/usr/bin/generate-keys \
-private-key /mnt/matrix_key.pem \
-tls-cert /mnt/server.crt \
-tls-key /mnt/server.key
```

## Starting Dendrite as a monolith deployment
The key files will now exist in your current working directory, and can be mounted into place.

Create your config based on the `dendrite.yaml` configuration file in the `docker/config`
folder in the [Dendrite repository](https://github.com/matrix-org/dendrite). Additionally,
make the following changes to the configuration:
## Starting Dendrite as a monolith deployment

- Enable Naffka: `use_naffka: true`
Create your config based on the [`dendrite-config.yaml`](https://raw.githubusercontent.com/matrix-org/dendrite/master/dendrite-config.yaml) configuration file in the `build/docker/config` folder of this repository. And rename the config file to `dendrite.yml` (and put it in your `config` directory).

Once in place, start the PostgreSQL dependency:

Expand All @@ -65,8 +66,7 @@ docker-compose -f docker-compose.monolith.yml up

## Starting Dendrite as a polylith deployment

Create your config based on the `dendrite.yaml` configuration file in the `docker/config`
folder in the [Dendrite repository](https://github.com/matrix-org/dendrite).
Create your config based on the [`dendrite-config.yaml`](https://raw.githubusercontent.com/matrix-org/dendrite/master/dendrite-config.yaml) configuration file in the `build/docker/config` folder of this repository. And rename the config file to `dendrite.yml` (and put it in your `config` directory).

Once in place, start all the dependencies:

Expand All @@ -82,10 +82,10 @@ docker-compose -f docker-compose.polylith.yml up

## Building the images

The `docker/images-build.sh` script will build the base image, followed by
The `build/docker/images-build.sh` script will build the base image, followed by
all of the component images.

The `docker/images-push.sh` script will push them to Docker Hub (subject
The `build/docker/images-push.sh` script will push them to Docker Hub (subject
to permissions).

If you wish to build and push your own images, rename `matrixdotorg/dendrite` to
Expand Down
Loading