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.
Part of epic #2138. Parked for a later cycle — promote to
planonce 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):
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 viaserver/lib/schemaVersions.jsso 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).privacy_vault_records(ciphertext travels as-is), orgs + holdings as plain records, cases excluded initially.2. Household subjects (unbroker manages multiple consenting people):
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.Acceptance criteria (to be refined at promotion time)
self.