summary refs log tree commit diff
path: root/synapse/api/constants.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Support MSC3289: Room version 8 (#10449)Patrick Cloke2021-08-091-1/+1
| | | This adds support for MSC3289: room version 8. This is room version 7 + MSC3083.
* Make historical events discoverable from backfill for servers without any ↵Eric Eastwood2021-07-281-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | scrollback history (MSC2716) (#10245) * Make historical messages available to federated servers Part of MSC2716: https://github.com/matrix-org/matrix-doc/pull/2716 Follow-up to https://github.com/matrix-org/synapse/pull/9247 * Debug message not available on federation * Add base starting insertion point when no chunk ID is provided * Fix messages from multiple senders in historical chunk Follow-up to https://github.com/matrix-org/synapse/pull/9247 Part of MSC2716: https://github.com/matrix-org/matrix-doc/pull/2716 --- Previously, Synapse would throw a 403, `Cannot force another user to join.`, because we were trying to use `?user_id` from a single virtual user which did not match with messages from other users in the chunk. * Remove debug lines * Messing with selecting insertion event extremeties * Move db schema change to new version * Add more better comments * Make a fake requester with just what we need See https://github.com/matrix-org/synapse/pull/10276#discussion_r660999080 * Store insertion events in table * Make base insertion event float off on its own See https://github.com/matrix-org/synapse/pull/10250#issuecomment-875711889 Conflicts: synapse/rest/client/v1/room.py * Validate that the app service can actually control the given user See https://github.com/matrix-org/synapse/pull/10276#issuecomment-876316455 Conflicts: synapse/rest/client/v1/room.py * Add some better comments on what we're trying to check for * Continue debugging * Share validation logic * Add inserted historical messages to /backfill response * Remove debug sql queries * Some marker event implemntation trials * Clean up PR * Rename insertion_event_id to just event_id * Add some better sql comments * More accurate description * Add changelog * Make it clear what MSC the change is part of * Add more detail on which insertion event came through * Address review and improve sql queries * Only use event_id as unique constraint * Fix test case where insertion event is already in the normal DAG * Remove debug changes * Switch to chunk events so we can auth via power_levels Previously, we were using `content.chunk_id` to connect one chunk to another. But these events can be from any `sender` and we can't tell who should be able to send historical events. We know we only want the application service to do it but these events have the sender of a real historical message, not the application service user ID as the sender. Other federated homeservers also have no indicator which senders are an application service on the originating homeserver. So we want to auth all of the MSC2716 events via power_levels and have them be sent by the application service with proper PL levels in the room. * Switch to chunk events for federation * Add unstable room version to support new historical PL * Fix federated events being rejected for no state_groups Add fix from https://github.com/matrix-org/synapse/pull/10439 until it merges. * Only connect base insertion event to prev_event_ids Per discussion with @erikjohnston, https://matrix.to/#/!UytJQHLQYfvYWsGrGY:jki.re/$12bTUiObDFdHLAYtT7E-BvYRp3k_xv8w0dUQHibasJk?via=jki.re&via=matrix.org * Make it possible to get the room_version with txn * Allow but ignore historical events in unsupported room version See https://github.com/matrix-org/synapse/pull/10245#discussion_r675592489 We can't reject historical events on unsupported room versions because homeservers without knowledge of MSC2716 or the new room version don't reject historical events either. Since we can't rely on the auth check here to stop historical events on unsupported room versions, I've added some additional checks in the processing/persisting code (`synapse/storage/databases/main/events.py` -> `_handle_insertion_event` and `_handle_chunk_event`). I've had to do some refactoring so there is method to fetch the room version by `txn`. * Move to unique index syntax See https://github.com/matrix-org/synapse/pull/10245#discussion_r675638509 * High-level document how the insertion->chunk lookup works * Remove create_event fallback for room_versions See https://github.com/matrix-org/synapse/pull/10245/files#r677641879 * Use updated method name
* Merge tag 'v1.39.0rc3' into developErik Johnston2021-07-281-0/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synapse 1.39.0rc3 (2021-07-28) ============================== Bugfixes -------- - Fix a bug introduced in Synapse 1.38 which caused an exception at startup when SAML authentication was enabled. ([\#10477](https://github.com/matrix-org/synapse/issues/10477)) - Fix a long-standing bug where Synapse would not inform clients that a device had exhausted its one-time-key pool, potentially causing problems decrypting events. ([\#10485](https://github.com/matrix-org/synapse/issues/10485)) - Fix reporting old R30 stats as R30v2 stats. Introduced in v1.39.0rc1. ([\#10486](https://github.com/matrix-org/synapse/issues/10486)) Internal Changes ---------------- - Fix an error which prevented the Github Actions workflow to build the docker images from running. ([\#10461](https://github.com/matrix-org/synapse/issues/10461)) - Fix release script to correctly version debian changelog when doing RCs. ([\#10465](https://github.com/matrix-org/synapse/issues/10465))
| * Always communicate device OTK counts to clients (#10485)Andrew Morgan2021-07-271-0/+8
| | | | | | Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* | Support for MSC2285 (hidden read receipts) (#10413)Šimon Brandner2021-07-281-0/+4
| | | | | | Implementation of matrix-org/matrix-doc#2285
* | Switch to `chunk` events so we can auth via power_levels (MSC2716) (#10432)Eric Eastwood2021-07-211-2/+4
|/ | | | | | | | | | | | | | Previously, we were using `content.chunk_id` to connect one chunk to another. But these events can be from any `sender` and we can't tell who should be able to send historical events. We know we only want the application service to do it but these events have the sender of a real historical message, not the application service user ID as the sender. Other federated homeservers also have no indicator which senders are an application service on the originating homeserver. So we want to auth all of the MSC2716 events via power_levels and have them be sent by the application service with proper PL levels in the room.
* Do not recurse into non-spaces in the spaces summary. (#10256)Patrick Cloke2021-06-291-0/+6
| | | | | Previously m.child.room events in non-space rooms would be treated as part of the room graph, but this is no longer supported.
* Add endpoints for backfilling history (MSC2716) (#9247)Eric Eastwood2021-06-221-0/+15
| | | Work on https://github.com/matrix-org/matrix-doc/pull/2716
* Update MSC3083 support per changes in the MSC. (#10189)Patrick Cloke2021-06-171-0/+6
| | | Adds a "type" field and generalize "space" to "room_id".
* Remove support for unstable MSC1772 prefixes. (#10161)Patrick Cloke2021-06-151-3/+0
| | | | The stable prefixes have been supported since v1.34.0. The unstable prefixes are not supported by any known clients.
* Remove the experimental flag for knocking and use stable prefixes / ↵Patrick Cloke2021-06-151-2/+2
| | | | | | | endpoints. (#10167) * Room version 7 for knocking. * Stable prefixes and endpoints (both client and federation) for knocking. * Removes the experimental configuration flag.
* Implement knock feature (#6739)Sorunome2021-06-091-2/+2
| | | | | | This PR aims to implement the knock feature as proposed in https://github.com/matrix-org/matrix-doc/pull/2403 Signed-off-by: Sorunome mail@sorunome.de Signed-off-by: Andrew Morgan andrewm@element.io
* Fix `m.room_key_request` to-device messages (#9961)Richard van der Hoff2021-05-111-1/+4
| | | fixes #9960
* Follow-up to #9915 to correct the identifier for room types.Patrick Cloke2021-05-051-1/+1
|
* Support stable MSC1772 spaces identifiers. (#9915)Patrick Cloke2021-05-051-0/+3
| | | | Support both the unstable and stable identifiers. A future release will disable the unstable identifiers.
* Improved validation for received requests (#9817)Richard van der Hoff2021-04-231-0/+3
| | | | | | * Simplify `start_listening` callpath * Correctly check the size of uploaded files
* Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-141-1/+0
| | | | | | | Part of #9744 Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now. `Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>`
* Require AppserviceRegistrationType (#9548)Will Hunt2021-04-121-0/+5
| | | This change ensures that the appservice registration behaviour follows the spec. We decided to do this for Dendrite, so it made sense to also make a PR for synapse to correct the behaviour.
* Add an experimental room version to support restricted join rules. (#9717)Patrick Cloke2021-03-311-0/+2
| | | Per MSC3083.
* Merge branch 'develop' into babolivier/msc3026Brendan Abolivier2021-03-191-0/+6
|\
| * Initial spaces summary API (#9643)Richard van der Hoff2021-03-181-0/+6
| | | | | | This is very bare-bones for now: federation will come soon, while pagination is descoped for now but will come later.
* | Implement MSC3026: busy presence stateBrendan Abolivier2021-03-181-0/+1
|/
* Ratelimit cross-user key sharing requests. (#8957)Patrick Cloke2021-02-191-2/+5
|
* Add type hints to groups code. (#9393)Patrick Cloke2021-02-171-0/+5
|
* Update black, and run auto formatting over the codebase (#9381)Eric Eastwood2021-02-161-2/+1
| | | | | | | - Update black version to the latest - Run black auto formatting over the codebase - Run autoformatting according to [`docs/code_style.md `](https://github.com/matrix-org/synapse/blob/80d6dc9783aa80886a133756028984dbf8920168/docs/code_style.md) - Update `code_style.md` docs around installing black to use the correct version
* Try and drop stale extremities. (#8929)Erik Johnston2020-12-181-0/+2
| | | | If we see stale extremities while persisting events, and notice that they don't change the result of state resolution, we drop them.
* Do not assume that the contents dictionary includes history_visibility. (#8945)Patrick Cloke2020-12-161-0/+7
|
* Do not assume that account data is of the correct form. (#8454)Patrick Cloke2020-10-051-0/+5
| | | | This fixes a bug where `m.ignored_user_list` was assumed to be a dict, leading to odd behavior for users who set it to something else.
* Stop sub-classing object (#8249)Patrick Cloke2020-09-041-13/+13
|
* Add option to enable encryption by default for new rooms (#7639)Andrew Morgan2020-06-101-0/+5
| | | | | | | | | Fixes https://github.com/matrix-org/synapse/issues/2431 Adds config option `encryption_enabled_by_default_for_room_type`, which determines whether encryption should be enabled with the default encryption algorithm in private or public rooms upon creation. Whether the room is private or public is decided based upon the room creation preset that is used. Part of this PR is also pulling out all of the individual instances of `m.megolm.v1.aes-sha2` into a constant variable to eliminate typos ala https://github.com/matrix-org/synapse/pull/7637 Based on #7637
* Update to the stable SSO prefix for UI Auth. (#7630)Patrick Cloke2020-06-051-1/+1
|
* Remove some unused constants. (#7644)Richard van der Hoff2020-06-051-4/+0
|
* Stop the master relaying USER_SYNC for other workers (#7318)Richard van der Hoff2020-04-221-0/+2
| | | | | | | Long story short: if we're handling presence on the current worker, we shouldn't be sending USER_SYNC commands over replication. In an attempt to figure out what is going on here, I ended up refactoring some bits of the presencehandler code, so the first 4 commits here are non-functional refactors to move this code slightly closer to sanity. (There's still plenty to do here :/). Suggest reviewing individual commits. Fixes (I hope) #7257.
* Support SAML in the user interactive authentication workflow. (#7102)Patrick Cloke2020-04-011-0/+1
|
* Fix detecting unknown devices from remote encrypted events. (#6848)Erik Johnston2020-02-041-2/+1
| | | | | | | | We were looking at the wrong event type (`m.room.encryption` vs `m.room.encrypted`). Also fixup the duplicate `EvenTypes` entries. Introduced in #6776.
* Merge pull request #6329 from matrix-org/babolivier/context_filtersBrendan Abolivier2019-12-041-1/+2
|\ | | | | Filter state, events_before and events_after in /context requests
| * Merge branch 'develop' into babolivier/context_filtersBrendan Abolivier2019-12-041-0/+2
| |\
| * | Update copyrightsBrendan Abolivier2019-11-051-1/+2
| | |
* | | Add ephemeral messages support (MSC2228) (#6409)Brendan Abolivier2019-12-031-0/+4
| |/ |/| | | | | | | | | | | | | Implement part [MSC2228](https://github.com/matrix-org/matrix-doc/pull/2228). The parts that differ are: * the feature is hidden behind a configuration flag (`enable_ephemeral_messages`) * self-destruction doesn't happen for state events * only implement support for the `m.self_destruct_after` field (not the `m.self_destruct` one) * doesn't send synthetic redactions to clients because for this specific case we consider the clients to be able to destroy an event themselves, instead we just censor it (by pruning its JSON) in the database
* | Implement per-room message retention policiesBrendan Abolivier2019-11-041-0/+2
|/
* Incorporate reviewBrendan Abolivier2019-11-011-1/+1
|
* LintBrendan Abolivier2019-11-011-0/+1
|
* Incorporate reviewBrendan Abolivier2019-11-011-1/+4
|
* Store labels for new eventsBrendan Abolivier2019-10-301-0/+3
|
* Option to suppress resource exceeded alerting (#6173)Neil Johnson2019-10-241-0/+7
| | | | The expected use case is to suppress MAU limiting on small instances
* rip out some unreachable codeRichard van der Hoff2019-10-171-2/+0
| | | | The only possible rejection reason is AUTH_ERROR, so all of this is unreachable.
* Add bot typeHalf-Shot2019-08-231-1/+2
|
* Run Black. (#5482)Amber Brown2019-06-201-21/+25
|
* Room Statistics (#4338)Amber Brown2019-05-211-0/+1
|
* Rename relation types to match MSCErik Johnston2019-05-201-2/+2
|
* Merge pull request #5209 from matrix-org/erikj/reactions_baseErik Johnston2019-05-201-0/+8
|\ | | | | Land basic reaction and edit support.
| * Add simple send_relation API and track in DBErik Johnston2019-05-151-0/+8
| |
* | Limit UserIds to a length that fits in a state key (#5198)ReidAnderson2019-05-201-0/+3
|/
* Do checks on aliases for incoming m.room.aliases events (#5128)Brendan Abolivier2019-05-081-0/+3
| | | | | Follow-up to #5124 Also added a bunch of checks to make sure everything (both the stuff added on #5124 and this PR) works as intended.
* Remove periods from copyright headers (#5046)Andrew Morgan2019-04-111-1/+1
|
* Transfer related groups on room upgrade (#4990)Andrew Morgan2019-04-021-0/+1
| | | Transfers the m.room.related_groups state event on room upgrade.
* Collect room-version variations into one place (#4969)Richard van der Hoff2019-04-011-40/+0
| | | | Collect all the things that make room-versions different to one another into one place, so that it's easier to define new room versions.
* Merge remote-tracking branch 'origin/release-v0.99.0' into developRichard van der Hoff2019-01-301-1/+1
|\
| * Update constants.pyNeil Johnson2019-01-301-1/+1
| | | | | | remove trailing ,
* | by default include m.room.encryption on invites (#3902)Matthew Hodgson2019-01-301-0/+1
|/ | | | | | | | * by default include m.room.encryption on invites * fix constant * changelog
* Merge branch 'develop' into neilj/room_capabilitiesNeil Johnson2019-01-301-2/+16
|\
| * Enable room version v3Erik Johnston2019-01-291-1/+2
| |
| * Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-01-291-0/+2
| |\ | | | | | | | | | erikj/redactions_eiah
| | * Implement event format v2Erik Johnston2019-01-291-0/+2
| | |
| * | Drop vdh supportErik Johnston2019-01-291-2/+0
| | |
| * | Finish comment...Erik Johnston2019-01-291-1/+1
| | |
| * | Add RoomVersions.V3 constant, without enabling itErik Johnston2019-01-291-0/+1
| |/ | | | | | | | | | | We add the constant, but don't add it to the known room versions. This lets us start adding V3 logic, but the servers will never join or create V3 rooms
| * Add support for persisting event format versionsErik Johnston2019-01-231-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we only have the one event format version defined, but this adds the necessary infrastructure to persist and fetch the format versions alongside the events. We specify the format version rather than the room version as: 1. We don't necessarily know the room version, existing events may be either v1 or v2. 2. We'd need to be careful to prevent/handle correctly if different events in the same room reported to be of different versions, which sounds annoying.
* | define room dispositions for use in exposing room capabilitiesNeil Johnson2019-01-301-0/+5
| |
* | reflect that rooms v3 is a stable room versionNeil Johnson2019-01-301-0/+1
| |
* | backout v3Neil Johnson2019-01-251-1/+0
| |
* | track unstable room v3Neil Johnson2019-01-251-0/+2
|/
* Migrate encryption state on room upgrade (#4411)Andrew Morgan2019-01-211-0/+1
| | | | | | | | * Migrate encryption state on room upgrade Signed-off-by: Andrew Morgan <andrew@amorgan.xyz> * Add changelog file
* ALL_USER_TYPES should be a tupleNeil Johnson2019-01-151-1/+1
|
* Merge pull request #4307 from matrix-org/erikj/v2_roomsRichard van der Hoff2018-12-241-0/+2
|\ | | | | Add v2 room version
| * Add v2 room versionErik Johnston2018-12-181-0/+2
| |
* | create support user (#4141)Neil Johnson2018-12-141-0/+8
|/ | | | | | Allow for the creation of a support user. A support user can access the server, join rooms, interact with other users, but does not appear in the user directory nor does it contribute to monthly active user limits.
* Merge pull request #4004 from matrix-org/travis/login-termsTravis Ralston2018-11-011-0/+1
|\ | | | | Add m.login.terms to the registration flow
| * Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-311-0/+1
| |\
| * | Incorporate Dave's work for GDPR login flowsTravis Ralston2018-10-031-0/+1
| | | | | | | | | As per https://github.com/vector-im/riot-web/issues/7168#issuecomment-419996117
* | | Add STATE_V2_TEST room versionErik Johnston2018-11-011-1/+6
| |/ |/|
* | Basic initial support for room upgradesRichard van der Hoff2018-10-251-0/+1
|/ | | | | Currently just creates a new, empty, room, and sends a tombstone in the old room.
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2018-08-221-3/+7
|\ | | | | | | neilj/server_notices_on_blocking
| * Add constants for room versionsErik Johnston2018-08-091-2/+7
| |
* | Update notice formatErik Johnston2018-08-221-2/+4
| |
* | add new event typesNeil Johnson2018-08-151-0/+1
| |
* | support server notice state events for resource limitsNeil Johnson2018-08-141-0/+2
|/
* Don't expose default_room_version as config optRichard van der Hoff2018-08-071-0/+3
|
* Basic support for room versioningRichard van der Hoff2018-08-031-0/+6
| | | | | | | | This is the first tranche of support for room versioning. It includes: * setting the default room version in the config file * new room_version param on the createRoom API * storing the version of newly-created rooms in the m.room.create event * fishing the version of existing rooms out of the m.room.create event
* Implementation of server_aclsRichard van der Hoff2018-07-041-0/+2
| | | | | ... as described at https://docs.google.com/document/d/1EttUVzjc2DWe2ciw4XPtNpUpIl9lWXGEsy2ewDS7rtw.
* Apply some limits to depth to counter abuseRichard van der Hoff2018-05-011-0/+3
| | | | | | | * When creating a new event, cap its depth to 2^63 - 1 * When receiving events, reject any without a sensible depth As per https://docs.google.com/document/d/1I3fi2S-XnpO45qrpCsowZv8P8dHcNZ4fsBsbOW7KABI
* Support registration / login with phone numberDavid Baker2017-03-131-0/+2
| | | | Changes from https://github.com/matrix-org/synapse/pull/1971
* Revert "Support registration & login with phone number"Erik Johnston2017-03-131-2/+0
|
* WIP support for msisdn 3pid proxy methodsDavid Baker2017-02-141-0/+2
|
* Remove a few aspirational but unused constantsDavid Baker2017-02-081-3/+0
| | | | from the Kegan era
* Move ThirdPartyEntityKind into api.constants so the expectation becomes that ↵Paul "LeoNerd" Evans2016-08-251-0/+5
| | | | the value is significant
* Check presence state is a valid oneErik Johnston2016-02-181-1/+0
|
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* Allow guest users to join and message roomsDaniel Wagner-Hall2015-11-101-0/+1
|
* Merge branch 'develop' into daniel/3pidinvitesDaniel Wagner-Hall2015-10-051-0/+1
|\
| * Add 'trusted_private_chat' to room creation presetsErik Johnston2015-10-021-0/+1
| |
* | Implement third party identifier invitesDaniel Wagner-Hall2015-10-011-0/+1
|/
* Remove undocumented and unimplemented 'feedback' parameter from the ↵Mark Haines2015-09-091-11/+0
| | | | Client-Server API
* Add m.room.avatar to default power levels. Change default required power ↵Erik Johnston2015-08-201-0/+1
| | | | levels of such events to 50
* Add canonical alias to the default power levelsErik Johnston2015-08-191-0/+1
|
* Capitalize contantsErik Johnston2015-07-141-2/+2
|
* Implement presets at room creationErik Johnston2015-07-131-0/+5
|
* Add basic impl for room history ACL on GET /messages client APIErik Johnston2015-07-021-0/+2
|
* Dummy login so we can do the first POST request to get login flows without ↵David Baker2015-04-151-0/+1
| | | | it just succeeding
* Add app service auth back in to v2 registerDavid Baker2015-04-021-3/+1
|
* Add shared secret auth into register v2 and switch the script over.David Baker2015-04-021-1/+3
|
* New registration for C/S API v2. Only ReCAPTCHA working currently.David Baker2015-03-301-0/+2
|
* Implement registering with shared secret.Erik Johnston2015-03-131-0/+1
|
* Add m.login.application_service registration procedure.Kegan Dougal2015-02-051-0/+1
| | | | | This allows known application services to register any user ID under their own user namespace(s).
* Start implementing auth conflict resErik Johnston2015-01-281-0/+6
|
* Update copyright noticesMark Haines2015-01-061-1/+1
|
* Kill off synapse.api.events.*Erik Johnston2014-12-161-0/+1
|
* Validate message, topic and name event contentsErik Johnston2014-12-121-0/+5
|
* PEP8Erik Johnston2014-12-091-1/+1
|
* WIP for new way of managing events.Erik Johnston2014-12-031-0/+9
|
* Fix pep8 warningsMark Haines2014-10-301-1/+1
|
* Added LoginType constants. Created general structure for processing ↵Kegan Dougal2014-09-151-0/+9
| | | | registrations.
* fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org ↵Matthew Hodgson2014-09-031-1/+1
| | | | hasn't been incorporated in time for launch.
* Add beginnings of ban support.Erik Johnston2014-09-011-1/+2
|
* Create the correct events with the right configuration when creating a new room.Erik Johnston2014-08-281-0/+7
|
* Feedback: Removed FeedbackRestServlet. Modified keys on FeedbackEvent. ↵Kegan Dougal2014-08-261-2/+2
| | | | Expanded the feedback constants to fully explain what type of feedback they are.
* Removed member list servlet: now using generic state paths.Kegan Dougal2014-08-261-0/+1
|
* Use strings instead of opaque magic-number constants for presence states; ↵Paul "LeoNerd" Evans2014-08-131-4/+4
| | | | rename AWAY to UNAVAILABLE
* add in whitespace after copyright statements to improve legibilityMatthew Hodgson2014-08-131-0/+1
|
* Reference Matrix Home Servermatrix.org2014-08-121-0/+42