Skip to content

notes-history-user-data

GDPR (Art. 20 export / Art. 17 erasure) coverage for the notes-history feature’s note-entry and note-mention entities. Mounts the export hook so a user’s authored notes are included in the user-data export bundle; the note-entry delete hook crypto-shreds the row-subject key of each note that structurally @-mentions the forgotten user (note-mention) or hangs on the user as host entity (regardless of the host entity’s retention strategy: the note text is free PII, the host’s anonymize/blockDelete protects the row, not the content), keeping the append-only history intact for all other notes. The manual crypto-shredding forget-subject command reaches the same notes for user and record subjects through the exported eraseNoteBodiesReachingSubject, and the export lists them under note-mention. note-mention’s own hooks are a no-op — it is a plain FK pointer, not separately exportable content. Kept separate from notes-history so notes consumers without the user-data-rights pipeline don’t pull a hard dependency — requires user-data-rights, optionalRequires notes-history.

What this feature needs to run (Requires).

flowchart TB
  n_notes_history_user_data["notes-history-user-data"]
  subgraph how_reqs["Requires / optional"]
    n_user_data_rights["user-data-rights"]
    n_notes_history["notes-history"]
  end
  n_user_data_rights --> n_notes_history_user_data
  n_notes_history -.->|optional| n_notes_history_user_data
  • Registers extension: userData → note-entry, userData → note-mention