transition precondition enforcement + thin-client context poller
Plan #3 at 100%. Last three items resolved: 1. Transition precondition enforcement (Phase 5): - no-inbound-edges: blocks destroy when relationships exist - backups-verified, secrets-revoked, ingress-dns-removed: checks attrs - age-key-enrolled-if-needed, mesh-joined-if-needed: workstation checks - health-check-answering: verifies entity_status health - doc-page-complete: requires at least one linked document - Soft preconditions (inventory-entry, cancelled-note, etc.): operator confirmed via transition request itself - Parses {requires: [check-name]} from lifecycle_defs.transitions JSONB 2. bootstrap.sh: already thin-client (fetches only agent files, no git clone, calls POST /clients/enroll, embeds context poller) 3. tools/context-poller.sh: standalone version — polls GET /clients/{slug}/context, applies file/tool/sops deltas, re-runs changed setup scripts
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Plan: Client lifecycle — enrollment through deprecation in Oikos Go
|
||||
|
||||
**Status:** Done (2026-07-08) — API surface complete. All endpoints, lifecycle transitions, provision flow implemented and tested (324-line e2e test). Remaining: bootstrap.sh rewrite + context-poller.sh (thin-client distribution, tracked as follow-up).
|
||||
**Status:** Done (2026-07-08) — full API surface + transition preconditions + thin-client distribution.
|
||||
|
||||
## Goal
|
||||
|
||||
|
||||
Reference in New Issue
Block a user