Skip to content

COST-002 — Link isolated staging to the club free trial and verify cost alerts #693

Closed

Description

@daliu

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

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

  1. daliu commented on Oct 11, 2026

    @daliu
    ContributorAuthor

    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.

  2. daliu commented on Oct 11, 2026

    @daliu
    ContributorAuthor

    COST-002 provider acceptance — 2026-10-11

    Verified current state under the club account:

    • The existing billing account is Free Trial, not paid; Console shows $300 unused and January 10, 2027 expiry.
    • Only engineering staging was linked to that same account; separate post-link readback confirms enabled billing. Production remains disabled/unlinked.
    • Enabled staging services increased from 44 to 45 solely by billingbudgets.googleapis.com. Functions, Cloud Build and Artifact Registry APIs remain disabled. Linking billing caused no additional enabled-service delta.
    • One budget named MPRC staging gross usage alerts exists: calendar month, USD10, staging-only project filter, no service restriction, credits excluded, current-spend thresholds 0.50/0.90/1.00, default IAM recipients enabled, no additional recipient or Pub/Sub/shutdown automation. API readback and the Console budget row agree.
    • Alert delivery, service caps, artifact cleanup, hosted Functions and member/payment behavior were not tested or claimed.
    • No paid upgrade, IAM/credential change, runtime deployment, website/DNS, Stripe, production data, payment or email operation occurred.

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions