#32 authenticated target lease API and authoritative fencing #101
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/starintel-server!101
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/issue-32-target-lease-api"
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?
Work in progress for #32. The branch targets canonical
master;devis not used.Implemented
/api/v1/target-leasesacquire/renew/release/get/list/revoke routes;current-target-lease-authority, carry only the server-owned lease record into dispatch envelopes, and fence before persistence/scheduling;Remaining blocker: trusted target-ingress provenance
#32 is not complete.
The production target path is still
POST /new/target/:actor->documents.ingest.target-> CouchDB durable outbox ->documents.new.target.*-> target consumer. The authenticated HTTP publish boundary creates server-owned Rabbit service-context/authorization headers, butcouchdb-process-outbox-mutationpersists the document/event payload andpublish-outbox-eventlater republishes the target event with only content type, delivery mode, and message id. By the timehandle-target/accept-target-deliveryruns, the trusted principal/service context needed bycurrent-target-lease-authorityis gone.The fenced-intent readback substrate now gives the target consumer a way to verify a server-created immutable receipt, but the receipt is not yet wired across the durable outbox path and receipt existence alone is never authority. The consumer must still resolve the current lease and require an exact receipt value match before persistence, scheduling, or publication.
Do not fix this by trusting lease/principal fields copied from the target document or arbitrary Rabbit headers. Lease id/fencing token are locators, not authority. The next coherent slice must preserve or re-establish a server-owned authenticated provenance receipt across the durable outbox boundary, or move authoritative lease resolution to an earlier authenticated acceptance boundary while preserving crash-safe target persistence/recovery semantics.
The old recovery path also still carries legacy
lease_owner/lease_expires_atfields and calls compatibilitysubmit-target; it now fails closed rather than inventing authority, but #33 still needs startup reconciliation against the real lease store.A separate Valkey preflight followed by an unconditional CouchDB/Rabbit write remains a TOCTOU race and is not an acceptable solution.
RAGE/ADADR governance reconciliation (2026-08-25): this PR is still draft and currently non-mergeable at head
9dd127ca71bc1be6cc52a95cd8223011221c4e90. The canonical Auto-Research design linked to issue #32 isroam/design/star-server/STAR-SERVER-032-authenticated-target-lease-http-execution.org. Under the current repository-wideAGENTS.md, every dedicated design requires the canonical Approval Table and implementation may proceed only from explicit recorded design approval.STAR-SERVER-032currently has no Approval Table, so its historical existence and this branch's previously green exact-head CI do not establish implementation authority for the unresolved trusted-provenance/durable-outbox slice.Do not treat this as a request to weaken or discard the existing fencing regressions. The implemented RED/green evidence remains useful. Before realizing the remaining provenance/outbox architecture, reconcile
STAR-SERVER-032through the authoritative Auto-Research workflow, preserve any real historical approval evidence without inventing it, obtain explicit operator design approval for the exact remaining scope, then implement from currentmasterwith TDD-first verification. A blind rebase-and-merge of this stale branch is not authorized.WIP: #32 authenticated target lease API and authoritative fencingto #32 authenticated target lease API and authoritative fencingView command line instructions
Manual merge helper
Use this merge commit message when completing the merge manually.
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.