You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Officer impact: None — member and officer screens/tasks are unchanged; this tracker removes or proves containment of diagnostic payloads.
Officer documentation: None — no officer procedure, navigation, permission, collected field, deployment duty, or external account changed. Engineering evidence is in SECURITY.md and OPERATIONS_RUNBOOK.md.
Deployment evidence: Closure records source/tests/merge separately from website publication, exact runmprc.com, Firebase deployment, outside-provider configuration, and live behavior. Source completion does not prove any production surface.
Problem
Current source sent a signed-in user's email to Sentry user context, enabled Sentry replay for every captured error, and logged the raw signup email in functions/signup.js. Authentication, member, event, registration, payment, and account screens can contain personal data or capability-bearing URL state. Firebase Analytics was also enabled without a repository-proven event allowlist, consent decision, payload audit, or retention decision.
This created avoidable exposure to logs and monitoring vendors even when the underlying feature worked correctly.
Atomic outcome
Make the existing frontend monitoring, analytics wrapper, Auth signup logging, and covered browser diagnostics fail closed for personal data, with synthetic tests that inspect the emitted payloads. This issue removes current exposure; it does not build the broader payment metrics/SLO program or approve future telemetry.
Scope
Remove raw email and other direct member identifiers from Sentry user context.
No raw email, phone, address, DOB, emergency contact, OAuth/Auth token, provider response, password/reset material, capability-bearing query/fragment, arbitrary form value, or request body is sent by the covered code.
Sentry replay is off, or sensitive-route exclusion and masking are verified by payload inspection with no form text or URL state visible.
Signup success/failure logs contain only allowlisted event/result identifiers and sanitized codes.
Analytics accepts only documented low-cardinality event names/parameters and rejects or drops unknown/sensitive fields.
Synthetic canary values are absent from captured Sentry events/replays, Analytics calls, console/function logs, test artifacts, and CI output.
Local and CI tests make no production network calls and use synthetic identities only.
Broader metrics, alerting, payment reconciliation, and incident SLOs remain under the existing OBS/commerce program.
Explicitly out of scope
Adding new analytics, advertising, fingerprinting, or replay vendors.
Designing dashboards, payment metrics, alerts, or incident response.
Changing membership authority, OAuth scopes, Firestore authorization, data retention jobs, or the public privacy policy.
Enabling monitoring in local/test or contacting live services from tests.
Claim protocol
Creation is not a claim. Do not edit files until dependencies are complete, the issue is assigned, and a timestamped CLAIMED by <canonical agent> at <UTC>; branch <branch> comment is posted and re-read. Earliest valid claim wins.
Officer impact: None — member and officer screens/tasks are unchanged; this tracker removes or proves containment of diagnostic payloads.
Officer documentation: None — no officer procedure, navigation, permission, collected field, deployment duty, or external account changed. Engineering evidence is in
SECURITY.mdandOPERATIONS_RUNBOOK.md.Deployment evidence: Closure records source/tests/merge separately from website publication, exact
runmprc.com, Firebase deployment, outside-provider configuration, and live behavior. Source completion does not prove any production surface.Problem
Current source sent a signed-in user's email to Sentry user context, enabled Sentry replay for every captured error, and logged the raw signup email in
functions/signup.js. Authentication, member, event, registration, payment, and account screens can contain personal data or capability-bearing URL state. Firebase Analytics was also enabled without a repository-proven event allowlist, consent decision, payload audit, or retention decision.This created avoidable exposure to logs and monitoring vendors even when the underlying feature worked correctly.
Atomic outcome
Make the existing frontend monitoring, analytics wrapper, Auth signup logging, and covered browser diagnostics fail closed for personal data, with synthetic tests that inspect the emitted payloads. This issue removes current exposure; it does not build the broader payment metrics/SLO program or approve future telemetry.
Scope
Acceptance criteria
Completed atomic children
13ccc1b67dd57f69091e808b12e1287a1bc05b2f.a925dbdada35b6d7ceb28f6ba2b10cc5679c9634.36b531c8e741442af7c688c23a780d2dcd4ed374.f2caaae3b3f25adfd4fc552008871408f18e5931.8d250073d8911d42031fa694c8c0e784911461b0.Dependencies and coordination
Explicitly out of scope
Claim protocol
Creation is not a claim. Do not edit files until dependencies are complete, the issue is assigned, and a timestamped
CLAIMED by <canonical agent> at <UTC>; branch <branch>comment is posted and re-read. Earliest valid claim wins.