T 026
uid: T-026 title: Re-introduce the firestore.rules CI auto-deploy workflow status: done area: auth-rbac created: 2026-06-13 updated: 2026-06-23 related: T-022
RBAC sequence: supporting tooling for T-022's Rules deploy β no hard precede/succeed: the strict Rules can ship via manual
firebase deploy, so this only AUTOMATES it and can land independently (currentlyblockedon cross-session coordination). See the sequence map in T-022. (Marked by EOP Local Assistance, 2026-06-23.)
Goal¶
Bring back the GitHub Actions workflow that auto-deploys firestore.*.rules on push,
so the strict Rules authored in T-022 actually ship without manual firebase deploy.
Context (SA agent, 2026-06-13)¶
- Scaffolding is ALREADY in place: SA
firebase-rules-deployer@(rolefirebaserules.adminonly) + GH Actions repo secretsFIREBASE_DEPLOY_KEY+FIREBASE_ADMIN_PROJECT_ID. - The workflow FILE was reverted at commit
93e64a2on branchclaude/audit-user-access-control-cch7t. The user-access-control session was meant to re-introduce it β coordinate there, NOT with the SA agent. - firebase.json already maps per-DB rule files (firestore.tebs-erl.rules, tebs-mel,
tebs-epl, aote-system) β the workflow likely needs a glob over
firestore.*.rules.
Log¶
- 2026-06-13 created (split out of T-022). Blocked on cross-session coordination.
- 2026-06-23 closed β workflow shipped via the user-access-control session ([[#420]]).
Decision log¶
2026-06-23 β closed (workflow shipped via [[#420]])¶
- β
Attestation (User Management): read
AGENTS.md; checked the board by scope β T-026 was the blocked-on coordination this session held; closing because the work landed. - Source: User Management Β· https://claude.ai/code/session_01GGT5n9vCxKWoUQSRAfMSiW
- Proposed by: User Management. Approved by: the owner.
- Outcome / verdict: the GH Actions workflow file
.github/workflows/deploy-firestore-rules.yml(90 lines;firebase deploy --only firestore:ruleson push tomaintouchingfirestore.*.rules,firebase.json, or.firebaserc) was restored at commitd4da0a0on branchclaude/audit-user-access-control-cch7t, squashed into22cf2bfonmainvia PR #420. Cred prerequisites (FIREBASE_DEPLOY_KEY+FIREBASE_ADMIN_PROJECT_IDin the repo's GH Actions secrets) were staged by a local agent on 2026-05-14 before the file was re-introduced. Verified: the workflow file is present onmainat the documented path; the workflow fired green on the PR #424firestore.aote-system.rulesedit shortly after #420 merged. - Why the path was this and not the original revert-author re-introducing: the original revert
(
93e64a2) explicitly noted "until creds are ready"; once a local agent staged the SA + secrets, re-introducing the file was a 1-file commit on top of the already-open audit PR β cheaper than spinning a new PR. - Blast-radius note for other agents: every future push to
main(including PR squashes) that touchesfirestore.*.rules,firebase.json, or.firebasercnow auto-runsfirebase deploy --only firestore:rulesagainst projectaote-pms. Agents editing those files should expect their merge to ship Firestore rules to prod within a couple of minutes β verify in Actions β "Deploy Firestore rules" after every such merge. If the workflow fails, the most likely cause is a bootstrap admin missing therole: admin | super_admincustom claim β see PR #420's test-plan note. Thefirebase-rules-deployer@aote-pmsSA holds onlyroles/firebaserules.admin, so a compromised workflow can't touch Firestore documents, IAM, or any other GCP surface. - Evidence β owner, 2026-06-23 (verbatim):
"Proceed with with 1-3 first then" (in reply to my task-triage recommending: 1) close T-026, 2) T-094, 3) T-095)