Repository navigation
Link fictional dues to disposable staging memberships - #720
Merged
Merged
Conversation
✅ Deploy Preview for luminous-fox-7c393f ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
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.
Outcome
Closes only the source part of #719: deliberately link one immutable fictional dues receipt to one owner-marked disposable pending account and activate its unchanged current test term in the isolated staging service. Keep #719 open until native deployment, hosted acceptance and exact cleanup.
Officer impact: supervised screen-only fictional linking and member cancellation/expiry verification. No real membership or money moves.
Officer documentation: OFFICER_START_HERE.md; docs/officers/{README,STAGING_COMMUNITY,ACCESS_CONTINUITY,EVENTS_SHOP_MEMBERS,SYSTEM_MAPS,GLOSSARY}.md. All new behavior is source-prepared/NOT AVAILABLE YET until hosted proof.
Deployment evidence: local source only in this PR. Existing staging baseline is communityActions v3/d212fab; profiles remain v2/v1/2843388. Fixed staging scripts require all six exact-main jobs before deployment. Production/runmprc.com/provider payments are not touched.
Security and compatibility
Separate exact v3 association capability; old v1/v2 permissions never acquire it. Recent verified native TOTP/App Check, strict caller/fields, owner-marked expiring disposable target, authoritative verified/enabled Auth lookup, pending null authority/revision and immutable current receipt are required. One transaction creates the separate link, derived authority and append-only command/audit. One receipt or pending UID has one winner; exact replay rechecks live officer permission first. Receipt and original term are unchanged; cancellation preserves that term and server-clock expiry removes entitlement. No claims, profile writes, prices/dates from client, roster/contact projection, dependency/service/schedule/IAM expansion or migration. Rules remain default-deny for both new collections. Project-level runtime IAM remains an existing limitation, not collection-scoped isolation.
Validation / review
Backend full: 77 suites / 7,783 passed; emulator-only cases are separate (3 suites/69 skipped in non-emulator run). Community real Firestore/Auth demo suite: all 5 tests passed, including link races. Frontend full: 21 suites / 1,376 passed. Rules full: 5 suites / 434 passed. Release contract: 7 passed. TypeScript, backend lint, strict nonmutating frontend lint (126 files/113 reviewed legacy errors/6 reviewed legacy warnings), diagnostic staging build and diff whitespace passed. No baseline/lockfile updates. Test-only fixture correction rerun separately.
Actual diff self-reviewed under the sole maintainer's standing authorization for authorization, App Check, exact fields/input bounds, no secret/request logging, transaction/read ordering, impossible transitions, immutable retry/revocation and fail-closed staging fallback. Provider/website proof remains pending; green CI is not live acceptance. Existing generic Function release reporting failure is not repaired or hidden here; independently inspect the native archive/state before any retry.