Session: host the private lifecycle service, and retire pool bring-up from Vedanta (ruling D2) #47
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Meta/Campaign
Meta/Epic
Meta/Session
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Curated
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Scope/Campaign
Status/Abandoned
Status/Blocked
Status/Conflicted
Status/In Progress
Status/In Review
Status/Need Grooming
Status/Need More Info
Status/Ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Reference
Ting/Vedanta#47
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Proposal
Make the tested library a running private effector, and remove the pool bring-up authority Vedanta was ruled not to hold.
Why
#20 closed with the private command contract, journal, both native adapters, and the OpenBao-side flows written and tested against capture doubles — and nothing serving them.
vedanta servemounts only jostoph-rs's evaluate router;private_api,operations,kanidm,forgejo, andreconcileare library modules no process instantiates. The delivery run for Ting/Ting#60 (2026-09-05) found this as the first Vedanta delta.The same run surfaced a boundary mismatch hidden by doubles: PR #38 (
src/pool.rs, Session #30) reserves names, creates principals, pins UUIDs and renders grants. The ratifiedcontracts.identity.openbao-lease-backendrequirementthe-realized-drone-pool-is-read-only-input-to-vedantaforbids exactly that, and the freeholder ruled it on 2026-09-05: "Vedanta MUST NOT, this is a provider job" (ruling D2). Pool realization belongs to flake-ops#427 over nixops4-providers#27. Slot allocation (src/checkout.rs, Session #31) provisionally stays — see #46.Session review boundary
One PR, one verdict: the private lifecycle service is reachable only by OpenBao's identity and performs no mutation outside the validated command path; and no pool-creation authority remains in the binary.
Design
module.nix, never the webhook port), serving the signed-envelope command surfacesrc/private_api.rsalready validates. Peer identity comes from the transport (socket peer credentials or a deployed mTLS/service identity), never from the payload.operationsjournal on a durable path owned byservices.vedanta.user; journal failure denies (audit_unavailable) before any adapter call.DOTENV_FILEcredentials exactly as the mint CLI does; credential values transit once in the successful result and are never journaled.src/pool.rsbring-up (reserve / create-or-adopt / grant rendering / ratification ledger) is deleted with the ruling in the commit body. Tests that document the contract the provider must satisfy are moved to prose in the flake-ops#427 record, not kept as dead code.Tasks
private_apion a private listener with transport-derived peer identity.operationsjournal and both adapters into the served path; proveaudit_unavailableprecedes mutation.module.nixwith the private listener, journal path, and projection path options.src/pool.rsbring-up per ruling D2; leavesrc/checkout.rspending #46 / D2b.CONTEXT.mdandAGENTS.mdperimeter to say what runs, not only what is written.Specification Delta
Requirement: the tested contract is the running contract
Scenario: OpenBao's identity submits a valid signed command
Requirement: no pool-creation authority remains
Scenario: the binary is audited for principal creation paths
mint-agent/mint-serviceremain, and noswarm-alphaslot creation existsOpenSpec
Projects from the shared store:
contracts.identity.openbao-lease-backend(vedanta-accepts-only-authenticated-signed-openbao-commands,the-realized-drone-pool-is-read-only-input-to-vedanta,local-write-ahead-audit-precedes-mutation). Its own package: to be authored inTing/contractsas a delta of OpenSpec 20.Structural parent
Ting/Ting#60; continues #20.
Provenance
Filed by the queen session of the 2026-09-05 delivery run (Claude Code, harness ba993052), freeholder present and steering; ruling D2 attributed to Larandar in-session.