Capacity unblock (cc-ci RAM 4→8GB) cleared the deploy timeout. Additionally:
- recipe_meta.py: dropped ENABLE_REGISTRATION=true (synapse refuses to start without
enable_registration_without_verification=true, which the recipe doesn't expose); kept
TIMEOUT=900.
- functional/test_register_and_message.py: pivoted from public client-API register to the
shared-secret admin endpoint called via container localhost () — bypasses the public router (where
/_synapse/admin/* is not exposed), uses the abra-generated registration_shared_secret with
HMAC-SHA1, doesn't require ENABLE_REGISTRATION.
Cold-verifiable on cc-ci (log /root/ccci-q41-matrix-r7.log):
RECIPE=matrix-synapse STAGES=install,custom cc-ci-run runner/run_recipe_ci.py
install + custom both PASS; deploy-count=1; 5 assertions PASS:
- generic + cc-ci install overlay
- federation_version (server.name=Synapse + non-empty version)
- health_check (client/versions)
- register_and_message (two users register, send/receive, marker round-trips)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
17 lines
1.1 KiB
Python
17 lines
1.1 KiB
Python
# Per-recipe harness config for matrix-synapse (recipe #4 — DB + media store; the large-volume /
|
|
# DB-backed category). Base recipe = synapse `app` + postgres `db` + nginx `web`. server_name is
|
|
# DOMAIN (set by abra), so no EXTRA_ENV needed. Synapse + postgres startup is slow -> long timeouts.
|
|
HEALTH_PATH = "/_matrix/client/versions" # 200 JSON once synapse is serving the client API
|
|
HEALTH_OK = (200,)
|
|
DEPLOY_TIMEOUT = 600
|
|
HTTP_TIMEOUT = 600
|
|
|
|
# TIMEOUT=900 overrides the recipe's default 300s abra-deploy convergence timeout — synapse +
|
|
# postgres-autoupgrade cold-start frequently exceeds 300s on this host.
|
|
# NOTE: we do NOT set ENABLE_REGISTRATION=true here — synapse refuses to start with open
|
|
# registration unless `enable_registration_without_verification=true` is ALSO set, which the
|
|
# recipe does not expose as an env. The register-and-message test uses the shared-secret admin
|
|
# register endpoint via `exec_in_app` (curl localhost from inside the container) — that path
|
|
# bypasses the public router and does NOT require ENABLE_REGISTRATION to be true.
|
|
EXTRA_ENV = {"TIMEOUT": "900"}
|