How we keep ourselves accountable
Personal data breach response
Use this procedure when personal data that Wamemba me holds is lost, destroyed, changed, disclosed or accessed without authority, by accident or on purpose. It follows the regulator's guidance:
- ICO, Personal data breaches: https://ico.org.uk/for-organisations/report-a-breach/personal-data-breach/
- ICO, Report a breach: https://ico.org.uk/for-organisations/report-a-breach/
- ICO, Self-assessment: https://ico.org.uk/for-organisations/report-a-breach/personal-data-breach-assessment/
The regulator has been the Information Commission since 30 September 2026; its reporting pages are still on ico.org.uk (unverified after the change: check the URL at the first report). This document is not legal advice.
1. The rules in short
- Log every breach (section 7), also when you do not report it (Art. 33(5)).
- Report to the regulator within 72 hours of becoming aware, unless the breach is unlikely to result in a risk to people (Art. 33(1)). The 72 hours include nights and weekends.
- If facts are missing at 72 hours, report what you know and add the rest later (Art. 33(4)).
- Tell the families affected without undue delay if the risk to them is high (Art. 34).
- Any confirmed unauthorised access to a family's sayings, children's names or birthdays, or voice clips, linked to that family, is high risk. Children are involved and the harm can't be undone. Report it and tell the families.
- If the app is offered in the EU (open,
ropa.md2.2), an EU authority may also need a report. Check at the first breach.
"Aware" means a reasonable degree of certainty that a security incident affected personal data. A short investigation is allowed; it must not be used to delay.
2. Roles
| Role | Who | Does what |
|---|---|---|
| Breach lead | Garth Watson, director and privacy lead | Owns the response; decides to report and to tell families; signs the report |
| Technical lead | The engineering agents | Contain, keep evidence, assess scope from logs, draft the report and the notice, fix the cause through the quality gate |
| Communications | Breach lead | Approves every message; the agents draft them |
If the breach lead cannot be reached within 24 hours, the technical lead completes containment and writes the draft report in the log. If the breach lead has not answered by hour 60, the technical lead submits the initial report on behalf of The Doxa Way Ltd, with hello@wamemba.me as the contact, and records this. The deadline must not depend on one person.
3. Contacts
| Who | How |
|---|---|
| Regulator, breach report (online) | https://ico.org.uk/for-organisations/report-a-breach/ |
| Regulator helpline | 0303 123 1113 (Monday to Friday) |
| Wamemba me | hello@wamemba.me |
| Action Fraud (crime) | https://www.actionfraud.police.uk/ , 0300 123 2040 |
| NCSC (significant cyber incident) | https://report.ncsc.gov.uk/ |
| Child safety concern (an image or content putting a child at risk) | Police (999 in an emergency); NSPCC 0808 800 5000; CEOP https://www.ceop.police.uk/ |
| Processors | Each vendor's security contact (DPA links in register/subprocessors.json) |
Supabase commits to notify without undue delay and, where feasible, within 48 hours. Most others say only "without undue delay". Do not wait for a vendor if we learn of a breach another way.
4. Procedure
Hour 0: detect and log
- Write the first log entry: time of awareness, who found it, what is known.
- Write the 72-hour deadline in the log.
- Tell the breach lead at once.
Hours 0 to 24: contain and assess
- Contain. For example: revert or tighten an RLS policy; revoke share links in bulk (
share_links.revoked_at, coming); rotate a leaked key; turn off a function or page; sign out sessions; ask a recipient who got data by mistake to delete it and confirm. - Keep evidence: Supabase and Vercel logs, Sentry and PostHog records, the commit or deploy that caused it. Do not delete evidence while containing.
- Scope: how many families and children; which data (names, birthdays, sayings, meanings, clips, emails); exposed to whom; for how long.
- Assess risk (section 5).
Hours 24 to 72: decide and report
- Decide whether to report and whether to tell families. Record the decision and reason, also when it is "do not report".
- Report with the online form before the deadline if section 5 says so: what happened; categories and approximate numbers of people and records; likely consequences; measures; contact. Save a copy and the reference in the log.
Without undue delay: tell families (if high risk)
- A notice in plain words (Art. 34(2)), in the brand's voice but never soft on facts: what happened; which data; what it could mean; what we did; what the parent can do (for example, switch off a link, delete a saying); how to reach us. Email where we have one, and an in-app notice. A notification's lock-screen text must not quote content.
- Art. 34(3): no notice is needed if the data was unintelligible to the recipient, or later measures removed the high risk. If individual notices need disproportionate effort, use a public notice.
After: learn and fix
- Fix the cause through the quality gate, with a test that fails without the fix.
- Update
dpia.mdif the breach shows a new risk. - Close the log entry with lessons learned.
5. Assess the risk
| Factor | Raises the risk |
|---|---|
| Data | A child's name with their words, age or birthday; a voice clip; a word's private meaning |
| Identifiability | Linked to a parent's email, Apple identity or a surname found elsewhere |
| Number | More families, more risk |
| Vulnerability | Children are always involved in the content |
| Recipient | Unknown, hostile, or public exposure (indexed, posted) |
| Permanence | Clips or text copied or published |
| Outcome | Action |
|---|---|
| Unlikely to result in a risk (for example, an email address sent to a processor by mistake and deleted) | Log only |
| Risk | Log, and report within 72 hours |
| High risk | Log, report, and tell the families |
6. Scenarios specific to Wamemba me
| Scenario | First action |
|---|---|
| An RLS error lets one family read another's sayings | Revert the policy; query logs for cross-family reads |
| A share page returns a field it must never show (birthday, surname, meaning) | Take the page down; revoke links if needed; check who loaded it |
| Share links become discoverable (indexed by a search engine) | Revoke or rotate tokens; request removal from the search engine; check noindex |
| A signed clip URL leaks with a long life | Shorten signed-URL life; rotate; check access logs |
| A key leaks (Supabase service key, RevenueCat webhook secret) | Rotate at once; check vendor logs for use |
| Telemetry carries content (a saying in a Sentry event or PostHog property) | Delete the events at the vendor; fix the scrubber with a test |
| A vendor reports a breach | Get scope; we send no content to vendors except Supabase, so assess what that vendor held |
| A parent's phone or account is taken over | Sign out sessions; help the parent; log |
7. Breach log template
Keep the log in docs/privacy/breach-log.md (create it at the first entry). No names, emails or saying content in the log: use a SHA-256 hash of the lower-case email where a person must be identified. Keep each entry 6 years.
## <YYYY-MM-DD> <short title>
| Field | Entry |
|---|---|
| Breach ID | WM-BR-<YYYY>-<NN> |
| Found by / how | |
| Time of awareness (UTC) | |
| 72-hour deadline (UTC) | |
| What happened | |
| Systems and vendors involved | |
| Data categories (children's names? birthdays? sayings? clips? meanings?) | |
| Families affected (approx.) | |
| Records (approx.) | |
| Containment actions and times | |
| Risk (severity x likelihood, reason) | |
| Reported to the regulator? | yes / no, and why |
| Reference and date | |
| Families told? | no / yes, date, channel |
| Cause | |
| Fix (PR) and test added | |
| Lessons learned | |
| Closed (date, by) | |
8. Test and review
Run a tabletop test once a year, and before the public launch (first by 2027-04-15). Review with ropa.md.
