CI-001B2: protect backend-first releases - #138
Merged
Merged
Conversation
✅ Deploy Preview for luminous-fox-7c393f ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
10 tasks
daliu
marked this pull request as ready for review
July 13, 2026 09:49
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #135
Outcome
A merge now runs CI only. Releasing is a separate manual operation for one full commit at the current tip of
main. The gate fails closed, uses a fixed profile-recovery target set, waits for protected approval, rechecks currentmainand the newest exact CI run, verifies the retained artifact, obtains short-lived cloud authority only inside the backend job, and permits Pages publication only after exact Firebase provider readback.Git-triggered Netlify production builds are paused while public read-only previews remain available. Future Pages artifacts no longer contain a
runmprc.comCNAME. This source change does not clear the existing Pages provider setting or create a protected Netlify publication path.Security invariants
maincommit and the newest exactpushCI run; queued, running, failed, or superseded runs fail.main, CI jobs, request age, and artifact availability after the protected-environment wait and before OIDC.createMemberOnSignUp, andensureMemberProfilefor this plan.cloud.firestore/(default), validate its canonicalcloud.firestoreresponse identity, and require one exactfirestore.rulessource.runmprc.comdomain.Verification
Exact source commit:
4da12d6f3dea8559a2d30a0453dd1c20c2c758acactionlint1.7.12: both workflow files passExternal-state boundary
No Firebase, Pages, Netlify production,
runmprc.com, Stripe, email, DNS, or member-data operation was run. The repository default branch was separately verified and corrected to canonicalmain; legacydevwas not deleted.GitHub currently has no configured protected
staging/productionenvironments, WIF authority, or public browser variable. The release remains NOT AVAILABLE YET until #133 and #136. The Pages API still reportsrunmprc.comas its custom domain and the default Pages URL redirects there; removingpublic/CNAMEchanges future source only. A protected WEB-001 child is now an explicit dependency of #136 for exact-commit Netlify publication and rollback.The committed Firebase CLI is 13.7.0. Its
(default)Rules release naming is now explicit. #133 must still prove ADC/WIF behavior in isolated staging or open a separate reviewed tooling-upgrade issue.This PR intentionally uses
Refs, notCloses: after merge and exact main-push CI, #135 still requires a safe negative dispatch showing missing configuration/authority is red and publishes neither Firebase, Pages, nor Netlify. Only then may #135 close.Officer handoff
Officer impact: Merging, requesting a release, and approving the protected backend are separate. Missing authority, a stale commit/CI run, an expired request/artifact, wrong project/scope, failed Firebase deployment, or failed provider verification becomes a red stop before publication.
Officer documentation:
OFFICER_START_HERE.md,OFFICER_HANDBOOK.md,SYSTEM_DESIGN.md,docs/officers/README.md,docs/officers/PUBLISH_AND_CHECK.md,docs/officers/ACCESS_CONTINUITY.md,docs/officers/REQUEST_A_CHANGE.md,docs/officers/EVENTS_SHOP_MEMBERS.md,docs/officers/SYSTEM_MAPS.md, anddocs/officers/GLOSSARY.md.Deployment evidence: Source/tests only. No website, Firebase, Netlify, provider, CNAME setting, or production behavior is claimed live.
runmprc.comremains the separately hosted Netlify surface.