# Per-recipe harness config for bluesky-pds (Phase 2 Q4.3 — TLS-passthrough atproto PDS). # The recipe routes via Traefik with TLS termination at cc-ci (the wildcard cert covers the # bare DOMAIN; the gateway TLS-passthroughs the wildcard zone). atproto PDS exposes XRPC # endpoints under /xrpc/* for the public protocol. HEALTH_PATH = "/xrpc/_health" # PDS health endpoint; returns {"version": ...} on success HEALTH_OK = (200,) DEPLOY_TIMEOUT = 600 HTTP_TIMEOUT = 600 # UPGRADE rung: published versions exist (0.1.1+v0.4, 0.2.0+v0.4) but BOTH pin the moving image # tag ghcr.io/bluesky-social/pds:0.4, which upstream republished with main-branch builds # (@atproto/pds 0.5.1, Node 24, /app/index.ts — no index.js), so NO published version can deploy # as an upgrade base anymore: the base crash-loops MODULE_NOT_FOUND before the PR head is ever # exercised (phase bsky root cause; cc-ci-plan/upstream/bluesky-pds.md). Declared intentional # until a fixed exact-pinned version (0.3.0+v0.4.219, mirror PR #2) is merged AND published — # then DROP this and set UPGRADE_BASE_VERSION = "0.3.0+v0.4.219" so the upgrade rung is # exercised again from the first deployable base. EXPECTED_NA = { "upgrade": "no deployable upgrade base: every published version pins the moving tag " "pds:0.4, which upstream republished with incompatible main builds (index.js removed) — " "re-enable via UPGRADE_BASE_VERSION once a fixed version is published post-merge", } # canon §2.B: enroll as a DATA-WARM canonical (all recipes enrolled — operator 2026-06-17). # The weekly sweep promotes this recipe's canonical to its latest green RELEASE TAG. WARM_CANONICAL = True