Repository navigation
CI-001D1 — Provision empty staging Firestore and deploy exact Rules/indexes #669
Description
Outcome
Provision the empty (default) Cloud Firestore database in the club-owned run-mprc-staging project and deploy only the exact reviewed Firestore Rules and indexes from current main. Prove the hosted browser boundary is fail-closed without creating real or synthetic application records.
This is the no-billing data-boundary child of #136, #133, and #105. It does not deploy Functions, configure sign-in providers, migrate production data, or make the static staging website safe for private use.
Location and safety decision
- Use Firestore Native, Standard edition,
(default), inus-west2, matching the already-existing production default database region. - Enable database delete protection.
- Keep point-in-time recovery disabled because billing is not approved.
- Never inspect, export, copy, or migrate a production document.
Invariants
- Every command names
run-mprc-stagingexplicitly;.firebasercremains the non-deployable demo default. - Deploy only
firestore:rules,firestore:indexesfrom one exact current-main commit with the lockfile Firebase CLI. - No Function, Hosting, Auth provider, App Check, Storage, outside provider, billing, DNS, Netlify, Pages, or production mutation.
- Run the complete Rules emulator suite before provider mutation.
- Prove the database is empty before any optional synthetic test.
- Anonymous reads and writes to server-only control, secret, financial, audit, and rate-limit paths remain denied.
- Public logs and issues contain no token, private provider locator, response body, application data, or credential.
Acceptance criteria
- Firestore API is enabled in staging only.
-
(default)database readback is Native/Standard,us-west2, ACTIVE, delete protection enabled, and PITR disabled. - Exact-main Rules and indexes deploy successfully with Firebase CLI 15.24.0.
- Provider readback records the active Rules release and index state without application data.
- Emulator Rules suite passes under Node 20 and Java 21.
- Anonymous hosted negative probes return denial for fixed nonexistent server-only paths and create no document.
- Database count/readback confirms no application records were created.
- Engineering and officer docs distinguish database provision, Rules deployment, backend Functions, website publication, and production behavior.
Officer impact: Staging receives a protected empty database boundary. Officers still do not sign in, enter data, run commands, or publish a backend.
Officer documentation: Update OPERATIONS_RUNBOOK.md, OFFICER_START_HERE.md, docs/officers/PUBLISH_AND_CHECK.md, and docs/officers/README.md.
Deployment evidence: Record exact source commit, emulator tests, database configuration, Rules/index readback, negative probes, and every unchanged surface separately.
Stop conditions
Stop if creation needs billing, a different or ambiguous region, production data, a Firestore mode other than Native Standard, disabled delete protection, a broad Firebase deploy, a Function/Hosting/Auth/provider change, a real user record, or weakened Rules.
Claim protocol
Assign one agent and post CLAIMED by <canonical agent> at <UTC>; branch <branch> before source or provider mutation.
Activity
daliu commentedon Aug 26, 2026
CLAIMED by Codex at 2026-08-26T19:49:27Z; branch codex/issue-669-staging-firestore
daliu commentedon Aug 26, 2026
CI-001D1 completed on 2026-08-26.
Source and merge
mainee16bd16220ab58bd3a2add80dd2f39a1d514dd7.fe3f53302db76df5febf7e9d242d82a6b6bec0c0b574ecc8253f1034f1a77dba.c015e9bd6aab5dc75a24d61a258ed5873645ef670f70286aa5ca2e697f5f0e90.07b229644b40467556940da59274021b676bea84.044fc9b624334d7e560d9ee6d9d4a70fb5fe0411.Firebase readback
runmprc@gmail.com.run-mprc-staging.(default), Firestore Native, Standard edition,us-west2.mail,stripeEvents, andauditEventsdocuments each returned 403.Test and UI evidence
https://run-mprc-staging.web.app/eventsrendered the normal empty state with no browser error. The only warning was the documented disabled App Check boundary.3ffadcf2ac8cc760.Containment and unchanged surfaces
runmprc.combehavior changed.Officer impact: staging has a protected empty database boundary. Officers still do not sign in, enter data, run commands, edit Firebase, or publish a backend.
Officer documentation:
OFFICER_START_HERE.md,docs/officers/PUBLISH_AND_CHECK.md, anddocs/officers/README.mdupdated in PR #670.Deployment evidence: website, Firebase, and unchanged provider surfaces are recorded separately above.