synapse-invite-checker/README.md

53 lines
2 KiB
Markdown
Raw Normal View History

2024-09-14 17:17:15 +00:00
# Synapse Invite Checker Module
2024-09-14 18:17:43 +00:00
This is a Synapse module that checks incoming invites based on allowlist and blocklist rules. The module allows or blocks invites from certain homeservers depending on whether they appear in a dynamically fetched allowlist or blocklist JSON file.
2024-09-14 17:17:15 +00:00
## Features
2024-09-14 21:16:32 +00:00
- **Allowlist and Blocklist**: Allows invites from homeservers in the allowlist, blocks invites from homeservers in the blocklist.
2024-09-14 18:17:43 +00:00
- **Dynamic Fetching**: The allowlist and blocklist are fetched dynamically from a provided URL, and cached.
2024-09-14 21:16:32 +00:00
- **Support for MSC2313 Policy Rooms**: This module now supports fetching blocklists from MSC2313 policy rooms to block invites
2024-09-14 17:17:15 +00:00
## Configuration
Add this module to your Synapse's `homeserver.yaml` under the `modules` section. Heres an example configuration:
```yaml
modules:
- module: synapse_invite_checker.InviteChecker
2024-09-14 17:12:42 +00:00
config:
2024-09-14 18:17:43 +00:00
# URL to fetch the JSON file containing the allowlist and blocklist
blocklist_allowlist_url: "https://example.com/invite-checker-lists.json"
2024-09-14 21:16:32 +00:00
# Optionally specify policy rooms for dynamic blocklist fetching via MSC2313
policy_rooms:
- "!policy-room-1:matrix.org"
- "!policy-room-2:matrix.org"
2024-09-14 18:17:43 +00:00
# Whether to use the allowlist to allow certain homeservers (default: true)
use_allowlist: true
# Whether to use the blocklist to block certain homeservers (default: true)
use_blocklist: true
blocklist_rooms:
- "#test:matrix.org"
2024-09-14 21:16:32 +00:00
- "!dkgsemSiSMrGfxEwCb:ubuntu.com"
2024-09-14 21:16:32 +00:00
Example for the contents of the URL with the JSON data:
```json
{
"use_allowlist": true,
"use_blocklist": true,
"allowlist": [
"trusted-homeserver.com",
"another-trusted-server.org"
],
"blocklist": [
"malicious-homeserver.com",
"blocked-server.org"
],
"blocklist_rooms": [
"#test:matrix.org", // Room alias to be resolved to room_id
"#private-room:example.org", // Another room alias
"!abc123:matrix.org" // Direct room ID
]
}
2024-09-14 21:16:32 +00:00
```