Repository navigation
ABUSE-001A2A: enforce native App Check for profile recovery - #696
Merged
Merged
Conversation
✅ Deploy Preview for luminous-fox-7c393f ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
Author
|
Reviewed the full six-path diff: one native runtime option on the exact recovery callable, 18 real-SDK request-wrapper regressions with synthetic verifiers/stores, and focused officer/engineering handoff. No provider, dependency, schema, shared helper, callback, role, resource-limit or logging change. All six exact-head CI jobs in run 38164814554 succeeded; test/build steps actually ran. Closing-issue references contain only #695. Using the existing sole-maintainer review override for merge; no test, release gate or hosted verification is waived. |
10 tasks
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
Profile recovery now requires native Firebase App Check independently of the optional environment flag. Only ensureMemberProfile gains enforceAppCheck: true; signup, resource limits, Auth/schema/claims and all other callables remain unchanged.
Closes #695 (source/test outcome only). Related deployment work #113, #133 and #136 remains open.
Officer impact: The future recovery service rejects unverified app requests before profile work even if an environment setting is absent/false. This does not activate a hosted member feature.
Officer documentation: docs/officers/LOW_COST_COMMUNITY.md includes the read-only attestation review, stop/proof/undo/escalation and matching release diagram. Engineering: SECURITY.md, OPERATIONS_RUNBOOK.md, GITHUB_ISSUES.md.
Deployment evidence: None. No Google/Firebase API, billing, IAM, Auth/Firestore data, Function, website, DNS, Stripe, token or provider configuration changed in this source slice. #693 trial billing/alerts remain a separate verified prerequisite.
Defect and validation
Review / compatibility
One runtime option is added to the exact callable. CommonJS, first generation, min0/max2/256MB/30 seconds, create-once transactions, pending schema and claim preservation remain unchanged. No migration/backfill or new secret/permission is needed. Shared requireAppCheck and callback-dependent lookupRegistration, lookupOrder and stravaExchangeCode are untouched. Tests use only synthetic values; no credential or provider network is used. Local requests without attestation must also fail rather than falling back to production. Future hosted rollout must prove denial/valid recovery and use a compatible rollback that preserves enforcement.
This is a prerequisite repair, not completion of the full membership/events/MPRC-race payment/cancellation/bib-transfer/refund goal.