Skip to content

Privacy Center (future): federation of privacy records + household subjects #2148

Description

@atomantic

Part of epic #2138. Parked for a later cycle — promote to plan once the core Privacy Center (Phases 1–8) has shipped. Design record: docs/plans/2026-07-04-privacy-center-pii-vault-broker-optout.md ("Deferred / open questions").

Summary

Two deliberate v1 exclusions, parked with their open questions so they can be picked up cold:

1. Federation of privacy records across peers (void/null/NaN/undefined):

  • v1 privacy tables are machine-local. Syncing them needs: (a) a key-distribution decision for PRIVACY_VAULT_KEY — same key on all peers (user copies it, simplest) vs per-peer re-encryption (better isolation, more machinery); (b) sync-wire version gating via server/lib/schemaVersions.js so a newer peer can't corrupt an older one; (c) tombstone semantics for deleted vault records/orgs consistent with the existing record-sharing patterns; (d) a decision on whether broker cases should sync at all (they're per-user, not per-machine — probably yes, with the ledger's single-writer assumption revisited).
  • Recommended starting point: same-key sync of privacy_vault_records (ciphertext travels as-is), orgs + holdings as plain records, cases excluded initially.

2. Household subjects (unbroker manages multiple consenting people):

  • Schema already leaves room (privacy_consents.subject, currently only 'self'). Adding family members means: per-subject vault records + consent records (method: how consent was captured, per unbroker's no-consent-no-action rule), subject scoping on orgs/holdings/cases, and subject filters across the Privacy UI.
  • Hard rule carried over from unbroker: no scanning/opt-out for a subject without a recorded consent; the engine refuses, not just the UI.

Acceptance criteria (to be refined at promotion time)

  • A second PortOS peer shows the same vault (masked) and org registry after sync, with no plaintext on the wire beyond what the transport already protects.
  • A household member can be added with recorded consent and worked through the broker engine independently of self.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:federationCross-machine sync & federationarea:privacyPII vault, trusted-org registry, data-broker opt-outblockedBlocked on another issue/PR — skip in autonomous claim runsenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions