Persist the operation journal and non-secret status acknowledgements #21

Closed
opened 2026-08-29 17:05:57 +00:00 by larandar · 0 comments
Owner

Proposal

Persist Vedanta lifecycle operations so each mutation is write-ahead, idempotent, restart-safe, and observable without credential material.

Delivery class

agent-unit — add src/operations.rs with restart and replay tests.

Design

Write a durable record before mutation. One operation ID causes at most one Kanidm mutation. Completed status and acknowledgement contain identifiers and outcomes only. Local audit failure denies before mutation.

Tasks

  • Add durable operation states and transitions.
  • Add metadata-only status and acknowledgement.
  • Prove duplicate and restart behavior.
  • Prove local write failure prevents Kanidm mutation.

Specification Delta

Requirement: one operation ID mutates at most once

Scenario: a completed operation is replayed

  • GIVEN an operation ID already completed with one token ID
  • WHEN the command repeats after a restart
  • THEN Vedanta returns non-secret status and does not mint or redeliver

OpenSpec

OpenSpec 20

Structural parent

Vedanta#20

## Proposal Persist Vedanta lifecycle operations so each mutation is write-ahead, idempotent, restart-safe, and observable without credential material. ## Delivery class `agent-unit` — add `src/operations.rs` with restart and replay tests. ## Design Write a durable record before mutation. One operation ID causes at most one Kanidm mutation. Completed status and acknowledgement contain identifiers and outcomes only. Local audit failure denies before mutation. ## Tasks - [ ] Add durable operation states and transitions. - [ ] Add metadata-only status and acknowledgement. - [ ] Prove duplicate and restart behavior. - [ ] Prove local write failure prevents Kanidm mutation. ## Specification Delta ### Requirement: one operation ID mutates at most once #### Scenario: a completed operation is replayed - **GIVEN** an operation ID already completed with one token ID - **WHEN** the command repeats after a restart - **THEN** Vedanta returns non-secret status and does not mint or redeliver ## OpenSpec [OpenSpec 20](https://jo.et0.pw/Ting/Vedanta/wiki/OpenSpec-20-openbao-forge-identity-lifecycle) ## Structural parent [Vedanta#20](https://jo.et0.pw/Ting/Vedanta/issues/20)
larandar changed title from Persist replay-safe lifecycle operations and compensate lost delivery to Persist the operation journal and non-secret status acknowledgements 2026-08-29 19:53:26 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
Ting/Vedanta#21
No description provided.