mirror of
https://github.com/matrix-org/mjolnir.git
synced 2024-10-01 01:36:06 -04:00
fa5fbee229
Traditionally, when a user clicks "report" in a Matrix client, this goes to the homeserver administrator, who often is the wrong person for the job. MSC3215 introduces a mechanism to let clients cooperate with a bot to send the report to the moderator instead. Client support has landed in Element Web (behind a Labs flag) in in 2021. This allows Mjölnir to serve as the partner bot.
94 lines
2.9 KiB
YAML
94 lines
2.9 KiB
YAML
name: mjolnir
|
|
|
|
up:
|
|
before:
|
|
- docker run --rm --network $MX_TEST_NETWORK_NAME --name mjolnir-test-postgres --domainname mjolnir-test-postgres -e POSTGRES_PASSWORD=mjolnir-test -e POSTGRES_USER=mjolnir-tester -e POSTGRES_DB=mjolnir-test-db -d -p 127.0.0.1:8083:5432 postgres
|
|
# Wait until postgresql is ready
|
|
- until psql postgres://mjolnir-tester:mjolnir-test@localhost:8083/mjolnir-test-db -c ""; do echo "Waiting for psql..."; sleep 1s; done
|
|
# Make table in postgres
|
|
- psql postgres://mjolnir-tester:mjolnir-test@localhost:8083/mjolnir-test-db -c "CREATE TABLE mjolnir (local_part VARCHAR(255), owner VARCHAR(255), management_room TEXT)"
|
|
# Launch the reverse proxy, listening for connections *only* on the local host.
|
|
- docker run --rm --network host --name mjolnir-test-reverse-proxy -p 127.0.0.1:8081:80 -v $MX_TEST_CWD/test/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
|
|
- yarn install
|
|
- npx ts-node src/appservice/cli.ts -r -u "http://host.docker.internal:9000"
|
|
- cp mjolnir-registration.yaml $MX_TEST_SYNAPSE_DIR/data/
|
|
after:
|
|
# Wait until Synapse is ready
|
|
- until curl localhost:9999 --stderr /dev/null > /dev/null; do echo "Waiting for Synapse..."; sleep 1s; done
|
|
- echo "Synapse is ready"
|
|
|
|
run:
|
|
- yarn test:integration
|
|
|
|
down:
|
|
finally:
|
|
- docker stop mjolnir-test-postgres || true
|
|
- docker stop mjolnir-test-reverse-proxy || true
|
|
|
|
modules:
|
|
- name: mjolnir
|
|
build:
|
|
- cp -r synapse_antispam $MX_TEST_MODULE_DIR/
|
|
config:
|
|
module: mjolnir.Module
|
|
config: {}
|
|
|
|
|
|
homeserver:
|
|
# Basic configuration.
|
|
server_name: localhost:9999
|
|
public_baseurl: http://localhost:9999
|
|
registration_shared_secret: REGISTRATION_SHARED_SECRET
|
|
# Make manual testing easier
|
|
enable_registration: true
|
|
enable_registration_without_verification: true
|
|
|
|
app_service_config_files:
|
|
- "/data/mjolnir-registration.yaml"
|
|
|
|
# We remove rc_message so we can test rate limiting,
|
|
# but we keep the others because of https://github.com/matrix-org/synapse/issues/11785
|
|
# and we don't want to slow integration tests down.
|
|
rc_registration:
|
|
per_second: 10000
|
|
burst_count: 10000
|
|
|
|
rc_login:
|
|
address:
|
|
per_second: 10000
|
|
burst_count: 10000
|
|
account:
|
|
per_second: 10000
|
|
burst_count: 10000
|
|
failed_attempts:
|
|
per_second: 10000
|
|
burst_count: 10000
|
|
|
|
rc_admin_redaction:
|
|
per_second: 10000
|
|
burst_count: 10000
|
|
|
|
rc_joins:
|
|
local:
|
|
per_second: 10000
|
|
burst_count: 10000
|
|
remote:
|
|
per_second: 10000
|
|
burst_count: 10000
|
|
|
|
# Creating a few users simplifies testing.
|
|
users:
|
|
- localname: admin
|
|
admin: true
|
|
rooms:
|
|
- public: true
|
|
name: "List of users"
|
|
alias: access-control-list
|
|
members:
|
|
- admin
|
|
- user_in_mjolnir_for_all
|
|
# This user can use Mjölnir-for-all
|
|
- localname: user_in_mjolnir_for_all
|
|
# This user cannot
|
|
- localname: user_regular
|