Repository navigation
COST-002 — Link isolated staging to the club free trial and verify cost alerts #693
Description
Outcome
Link only run-mprc-staging to the existing club-owned Google Cloud Free Trial billing account, with a separately verified gross-usage warning budget. Do not upgrade the account to paid, link production, enable runtime APIs, deploy Functions, or change member data.
Owner direction: Dave Liu started the trial under runmprc@gmail.com and requested continued Firebase backend setup with minimal cost and complexity. Current Console evidence on 2026-10-11 shows Free Trial, $300 unused, expiry January 10, 2027. A separate read-only check sees one open club-accessible billing account; staging and production remain unlinked. Exact financial identifiers remain private.
Officer impact: The isolated engineering staging project can use the trial for later reviewed backend work, with early cost warnings. This does not make member registration, payments, refunds or any production feature available.
Officer documentation: Update docs/officers/LOW_COST_COMMUNITY.md and relevant current-state engineering/officer references after provider readback; keep historical checkpoints dated and intact.
Deployment evidence: None. This outcome changes billing metadata and notification settings only. Website, Functions, Auth, Firestore records, Stripe, DNS, production billing and production behavior must remain unchanged.
Invariants and allowed actions
- Account is exactly runmprc@gmail.com; target is exactly run-mprc-staging.
- Use only the existing account that is linked to the verified trial project. Stop if account selection is ambiguous or the visible account is paid rather than Free Trial.
- Allow the Cloud Billing Budget API only in staging if needed; no Functions, Cloud Build, Artifact Registry or other runtime API enablement.
- Create or reuse one staging-scoped monthly USD10 alerts-only budget, thresholds 50%, 90%, 100%, excluding credits so the trial cannot hide gross usage. Keep existing default billing IAM recipients; do not add access, external recipients or Pub/Sub automation.
- A budget is not a spending cap or approval for ongoing club expenditure. No spend-cap shutdown automation or paid upgrade is included.
- Never print or put billing IDs, private URLs, tokens, account/payment details or member data in public evidence.
- Linking billing does not authorize deployment under CI-001D — Prove backend-first staging and deploy the profile repair #136; BACKEND-001 — Audit the Firebase cutover and approve legacy data disposition #113/CI-001C — Configure protected short-lived Firebase deployment identity #133 and the protected release evidence remain separate gates.
Acceptance
- Revalidate the exact existing club trial account and staging baseline before mutation.
- Budget API enabled only if necessary; no runtime API enabled.
- One staging-scoped monthly USD10 gross-usage warning budget is read back, with three exact thresholds and default recipients enabled.
- Staging billing reads enabled and matches the verified existing trial account.
- Production remains unlinked, and pre/post enabled staging API sets differ only by the explicitly allowed Budget API.
- No Functions/website/provider payment configuration or data deployment occurred.
- Officer/engineering handoff records current state, trial expiry, budget limits, named financial owner, and separate release prerequisites.
Failure and undo
Stop on trial/account mismatch, denied authority, unexpected services or an ambiguous existing budget. If notification setup fails, do not deploy or enable runtime APIs; report the exact bounded failure and leave live commerce disabled. Reverting a billing link or disabling an API requires checking for newly dependent resources first; do not improvise a whole-project shutdown. No production rollback is applicable because production is out of scope.
Claim
Post and read back a timestamped claim before provider mutation. Keep sensitive provider evidence out of GitHub. This issue is a bounded cost prerequisite under #136/#105, not completion of those parent releases.
Activity
daliu commentedon Oct 11, 2026
CLAIMED by Codex at 2026-10-11T18:12:34.906Z; branch codex/693-staging-trial-billing; exact current main a4e8b0e. Scope is only COST-002 trial-linked staging billing and one gross-usage warning budget. No paid upgrade, production link, runtime API, IAM, deployment or data operation.
daliu commentedon Oct 11, 2026
COST-002 provider acceptance — 2026-10-11
Verified current state under the club account:
The first budget attempt returned INVALID_ARGUMENT while staging was unlinked. The existing-budget inventory remained empty; the same configuration succeeded after the verified staging trial link. A transient initial post-API read was resolved by a fresh read. Exactly one budget is present; no duplicate or failed runtime deployment needs cleanup.
Officer impact: engineering trial/cost warnings can be privately reviewed; no member feature is made available.
Officer documentation: PR #694, head d718ba8, updates the cost procedure, entry points, engineering status and billing diagram. Full diff and git diff --check reviewed; existing PR CI is running. Backup-officer walkthrough reached the named budget in Console without terminal or settings changes; specialist setup/release remains explicit.
Deployment evidence: billing metadata and warning settings verified separately. Website/Firebase Functions/Stripe/production unchanged. #113/#133/#136 are not closed by this result.