Part of: MSC4354 whose experimental feature tracking issue is https://github.com/element-hq/synapse/issues/19409 Follows: #19340 (a necessary bugfix for `/event/` to set this metadata) Partially supersedes: #18968 This PR implements the first batch of work to support MSC4354 Sticky Events. Sticky events are events that have been configured with a finite 'stickiness' duration, capped to 1 hour per current MSC draft. Whilst an event is sticky, we provide stronger delivery guarantees for the event, both to our clients and to remote homeservers, essentially making it reliable delivery as long as we have a functional connection to the client/server and until the stickiness expires. This PR merely supports creating sticky events and receiving the sticky TTL metadata in clients. It is not suitable for trialling sticky events since none of the other semantics are implemented. Contains a temporary SQLite workaround due to a bug in our supported version enforcement: https://github.com/element-hq/synapse/issues/19452 --------- Signed-off-by: Olivier 'reivilibre <oliverw@matrix.org> Co-authored-by: Eric Eastwood <erice@element.io>
166 lines
3.7 KiB
Django/Jinja
166 lines
3.7 KiB
Django/Jinja
{#
|
|
This file extends the default 'shared' configuration file (from the 'synapse-workers'
|
|
docker image) with Complement-specific tweak.
|
|
|
|
The base configuration is moved out of the default path to `shared-orig.yaml.j2`
|
|
in the Complement Dockerfile and below we include that original file.
|
|
#}
|
|
|
|
## Server ##
|
|
public_baseurl: http://127.0.0.1:8008/
|
|
report_stats: False
|
|
trusted_key_servers: []
|
|
enable_registration: true
|
|
enable_registration_without_verification: true
|
|
bcrypt_rounds: 4
|
|
url_preview_enabled: true
|
|
url_preview_ip_range_blacklist: []
|
|
|
|
## Registration ##
|
|
|
|
# Needed by Complement to register admin users
|
|
# DO NOT USE in a production configuration! This should be a random secret.
|
|
registration_shared_secret: complement
|
|
|
|
## Federation ##
|
|
|
|
# trust certs signed by Complement's CA
|
|
federation_custom_ca_list:
|
|
- /complement/ca/ca.crt
|
|
|
|
# unblacklist RFC1918 addresses
|
|
federation_ip_range_blacklist: []
|
|
|
|
# Disable server rate-limiting
|
|
rc_federation:
|
|
window_size: 1000
|
|
sleep_limit: 10
|
|
sleep_delay: 500
|
|
reject_limit: 99999
|
|
concurrent: 3
|
|
|
|
rc_message:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
|
|
rc_registration:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
|
|
rc_login:
|
|
address:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
account:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
failed_attempts:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
|
|
rc_admin_redaction:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
|
|
rc_joins:
|
|
local:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
remote:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
|
|
rc_joins_per_room:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
|
|
rc_3pid_validation:
|
|
per_second: 1000
|
|
burst_count: 1000
|
|
|
|
rc_invites:
|
|
per_room:
|
|
per_second: 1000
|
|
burst_count: 1000
|
|
per_user:
|
|
per_second: 1000
|
|
burst_count: 1000
|
|
per_issuer:
|
|
per_second: 1000
|
|
burst_count: 1000
|
|
|
|
rc_presence:
|
|
per_user:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
|
|
rc_delayed_event_mgmt:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
|
|
rc_room_creation:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
|
|
rc_user_directory:
|
|
per_second: 9999
|
|
burst_count: 9999
|
|
|
|
federation_rr_transactions_per_room_per_second: 9999
|
|
|
|
allow_device_name_lookup_over_federation: true
|
|
|
|
## Experimental Features ##
|
|
|
|
experimental_features:
|
|
# Enable support for polls
|
|
msc3381_polls_enabled: true
|
|
# Enable deleting device-specific notification settings stored in account data
|
|
msc3890_enabled: true
|
|
# Enable removing account data support
|
|
msc3391_enabled: true
|
|
# Filtering /messages by relation type.
|
|
msc3874_enabled: true
|
|
# no UIA for x-signing upload for the first time
|
|
msc3967_enabled: true
|
|
# Expose a room summary for public rooms
|
|
msc3266_enabled: true
|
|
# Send to-device messages to application services
|
|
msc2409_to_device_messages_enabled: true
|
|
# Allow application services to masquerade devices
|
|
msc3202_device_masquerading: true
|
|
# Sending device list changes, one-time key counts and fallback key usage to application services
|
|
msc3202_transaction_extensions: true
|
|
# Proxy OTK claim requests to exclusive ASes
|
|
msc3983_appservice_otk_claims: true
|
|
# Proxy key queries to exclusive ASes
|
|
msc3984_appservice_key_query: true
|
|
# Invite filtering
|
|
msc4155_enabled: true
|
|
# Thread Subscriptions
|
|
msc4306_enabled: true
|
|
# Sticky Events
|
|
msc4354_enabled: true
|
|
|
|
server_notices:
|
|
system_mxid_localpart: _server
|
|
system_mxid_display_name: "Server Alert"
|
|
system_mxid_avatar_url: ""
|
|
room_name: "Server Alert"
|
|
|
|
# Enable delayed events (msc4140)
|
|
max_event_delay_duration: 24h
|
|
|
|
|
|
# Disable sync cache so that initial `/sync` requests are up-to-date.
|
|
caches:
|
|
sync_response_cache_duration: 0
|
|
|
|
|
|
# Complement assumes that it can publish to the room list by default.
|
|
room_list_publication_rules:
|
|
- action: allow
|
|
|
|
|
|
{% include "shared-orig.yaml.j2" %}
|