Skip to content

πŸ”’ GDPR registry leaf β€” modules/users/lib/dataProvider.registry.js (Map-keyed)Β #3883

@PierreBrisorgueil

Description

@PierreBrisorgueil

Config-free, import-safe leaf registry that optional modules use to self-register a GDPR data provider β€” mirrors modules/organizations/lib/orgRemoval.registry.js, but Map-keyed by a stable string key (not a Set of fn identities β†’ an inline-arrow registration in a *.init.js can't double-register).

Scope β€” modules/users/lib/dataProvider.registry.js

  • registerDataProvider({ key, axis: 'user'|'org', retention: 'delete'|'anonymize', export?, erase? }) β€” TypeError on bad key / non-fn export/erase.
  • runDataExport(payload) β†’ { data: { [key]: … }, modules: [...] } (the modules manifest makes export completeness auditable).
  • runDataErasure(payload) β†’ per-provider result manifest; sequential for…of await, errors propagate (fail-closed).
  • _reset() test helper.
  • Imports no service (avoids the import cycle that forced the previous removal).

DoD

  • Unit suite: single-provider run, registration order, error-propagate-and-abort, zero-provider no-throw, non-fn rejection, _reset clears, key-dedup (re-register same key overwrites, not duplicates).
  • /verify green; coverage β‰₯ threshold.

Depends on: none (foundation).

Created via /dev:issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions