Generic vault context erase/verify and predecessor lineage - #177
Conversation
…ssors Optional vault.context_id aliases session_id on redact/restore without changing storage keying. TokenMapStore::purge permanently deletes maps (KV v2 metadata and all versions; memory hard-delete). New generic erase/verify and predecessor-register routes walk the current subject plus a durable predecessor closure.
Sol Medium review of PR 177: verify uses KV2 metadata presence, predecessor register CAS-updates a tenant graph, subjects stay out of storage paths, and new erase/verify/predecessor bodies reject unknown fields. Signed-off-by: Cursor Agent <cursoragent@cursor.com>
Sol Medium review (
|
Store direct edges and recompute the bounded closure on erase/verify so a
later child rotation is visible to existing parents. Lineage records live
at {prefix}/_lineage/{tenant}/graph so they cannot collide with session maps.
Signed-off-by: Cursor Agent <cursoragent@cursor.com>
|
Sol Medium re-review of
|
Build a candidate graph and validate every subject's bounded closure before committing, so a descendant rotation cannot make an existing ancestor's forget path fail closed. Signed-off-by: Cursor Agent <cursoragent@cursor.com>
|
Sol Medium re-review of
|
|
Sol Medium APPROVE on tip All previously identified privacy, durability, verification, closure, and namespace issues are fixed with regression coverage. Ready to merge to |
Thank you for contributing to Redact. These checkboxes are acknowledgements;
the CLA bot enforces the Individual CLA signature.
git commit -s)Employer time or equipment
Summary
Additive, product-noun-free gateway APIs for platform ForgetMe(client):
vault.context_idalias on redact/restore (session_idunchanged; mismatch → 400)DELETE /v1/vault/contextandPOST /v1/vault/context/verifypurge(all versions + metadata)POST /v1/credentials/predecessorswithAuthorization+X-Predecessor-Authorizationlineage_revision/predecessor_countkey:<sha256(api_key)>(no remapping)No team/client/professional/ForgetMe types or docs.
Test plan
cargo test -p redact-gateway(vault context, purge, predecessor register, rotation forget)caller-a,context-1)