Skip to main content

๐Ÿšจ Personal-Data Breach Response Runbook

GDPR Art. 33 (72 h regulator notification) + Art. 34 (subject notification if high risk) + equivalent state obligations. Goal: contain within 1 h, assess within 24 h, notify within 72 h.


0. When this runbook firesโ€‹

A personal-data breach is any accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to personal data. In this product, that includes:

  • Someone outside the user's account gains read access to their video, profile, or analysis.
  • The users/, jobs/, or mail/ collections are queryable by unintended principals.
  • A sub-processor or recipient (Firebase, RunPod, Resend, Apple, Google Play, or Stripe) reports an incident that touches our data.
  • A lost laptop with a firebase login session or a leaked API key (RESEND_API_KEY, App Store Connect key, Google Play service-account credential, RunPod key, or Stripe secret/webhook secret).
  • Stripe, App Store, or Google Play customer, subscription, purchase-event, or entitlement data is exposed or altered. Card details are collected on Stripe-hosted pages, but a payment incident still requires immediate provider-account and log review.
  • Ransomware / malware infection on a developer machine.

If in doubt: treat it as a breach and run the runbook. Better to discover it's a false alarm than miss the 72 h clock.


1. Immediate containment โ€” within 1 h of discoveryโ€‹

StepActionOwner
1.1Page the on-call engineer in #acesense-oncallDiscoverer
1.2Assemble the breach response team: Eng lead + DPO + FounderOn-call
1.3If exploit is active, rotate or revoke the affected credential first: Firebase (reauth + revoke sessions), Resend, App Store Connect, Google Play service account, RunPod, or Stripe API/webhook credential. Verify webhook destinations after rotation.Eng lead
1.4If data in the mail/ or jobs/ collections is exposed, tighten security rules to block further readsEng lead
1.5Preserve logs. Export Cloud Functions logs, Storage access logs, Firestore audit logs for the 30 days pre-incident + ongoingEng lead
1.6Open a private incident doc incidents/YYYY-MM-DD-shortname.md in acesense-docsDPO

Do not tweet, blog, Slack-publicly, or email customers yet.


2. Assessment โ€” within 24 hโ€‹

Answer these in the incident doc:

  1. What happened? Root cause โ€” best guess backed by logs.
  2. What data was affected? Categories + approximate volume + whether the data included children's records, biometric-adjacent data, or special categories.
  3. How many data subjects? Approximate โ€” underestimates are worse than overestimates.
  4. Where were the subjects located? EEA, UK, US (which states), elsewhere โ€” this drives the notification map.
  5. Is the data recoverable / is the exposure ongoing?
  6. Likelihood and severity of adverse consequences for subjects: identity theft? financial loss? physical harm? discrimination? reputational damage? Pick each applicable.
  7. Measures already taken + measures proposed.

Output: a completed incident doc + an Art. 33(3) draft (see ยง4 below).


3. Notification map (by jurisdiction)โ€‹

RegimeTriggerDeadlineAuthority / method
GDPR (EU 27 + EEA)Any breach unless "unlikely to result in a risk"72 h from becoming awareSupervisory authority of the DPO's Member State; if none designated, lead authority of each affected state
UK GDPRSame as GDPR72 hICO notification form
CCPA/CPRA (California)Any breach of unencrypted personal info"Most expedient time possible, without unreasonable delay" โ€” typically interpreted as โ‰ค30 daysCalifornia AG (via web form) + affected residents
Other US statesState-specific โ€” most require notification; several (VA, CO, CT) follow GDPR-ish timeframes30โ€“60 days typicallyState AG + affected residents
LGPD (Brazil)Relevant breaches"Reasonable timeframe" (ANPD guidance: 2 business days)ANPD
PIPEDA (Canada)Real risk of significant harm"As soon as feasible"OPC + subjects
PDPA (Singapore)โ‰ฅ500 affected OR significant harm72 h + subject notificationPDPC
APPI (Japan)Certain categories (health, minors, >1,000)3โ€“5 daysPPC
Australia Privacy ActEligible data breach (serious harm likely)30 daysOAIC
POPIA (South Africa)"Unauthorized acquisition"ASAPInformation Regulator
DPDP (India)Any breach72 hData Protection Board (once in force)
Apple App StoreSignificant breach7 daysDeveloper-relations contact
Google PlaySame7 daysPlay Console

When multiple apply, notify the earliest deadline across the set.


4. Drafting the notification (Art. 33(3) template)โ€‹

1. Nature of the breach:
- Description: โ€ฆ
- Affected categories of data subjects: (e.g. active users in DE, FR)
- Affected categories of personal data: (e.g. email, age attestation,
tennis video, derived pose coordinates, billing customer/subscription metadata)
- Approximate number of data subjects affected: โ€ฆ
- Approximate number of records affected: โ€ฆ
2. Name + contact of the DPO:
Email: dpo@acesense.io
3. Likely consequences of the breach:
โ€ฆ
4. Measures taken or proposed to address the breach and mitigate
adverse effects:
โ€ฆ

Keep the draft inside the incident doc. Send only after DPO sign-off.


5. Notifying data subjects (Art. 34)โ€‹

Required when the breach is likely to result in a high risk. In this product, that bar is hit when:

  • Videos, analyses, or account credentials of individual users are exposed to a third party.
  • Biometric-adjacent (pose) data is exposed to a third party.
  • Age-attestation, billing-customer, or subscription metadata is exposed in a way likely to enable fraud, phishing, or account compromise.

Channel: transactional email via Resend + in-app banner inside AceSense. Draft stored in the incident doc before send.

Content must cover (in plain language):

  • What happened.
  • What data was involved.
  • What you are doing about it.
  • What they should do (change password; watch for phishing; contact us).
  • Name + contact for follow-up.

6. Post-incidentโ€‹

  1. Close the incident doc with root-cause analysis + remediation.
  2. Update this runbook if gaps appeared.
  3. Hold a blameless post-mortem within 5 business days.
  4. File with the board / advisors if material.
  5. If notification deadlines were missed, document the reason โ€” regulators are more forgiving about delays you document honestly than ones you try to hide.

7. Drill cadenceโ€‹

  • Quarterly โ€” pick a scenario, run it cold, time it, note where you fell off the process.
  • Annually โ€” full tabletop with an external observer if possible.

Last drill: 2026-Q2 drill 1. Schedule the next drill for 2026-Q3.