Skip to content

feat(managed): compose reviewed runtime capabilities - #243

Draft
allisoneer wants to merge 25 commits into
devfrom
codex/all-47-managed-runtime-integration
Draft

feat(managed): compose reviewed runtime capabilities#243
allisoneer wants to merge 25 commits into
devfrom
codex/all-47-managed-runtime-integration

Conversation

@allisoneer

Copy link
Copy Markdown

Summary

Compose the three independently reviewed Managed NAC runtime capabilities on the exact dev base without importing the allison-demo stack:

This integration reconciles strict managed config v2 with auth bootstrap/repair while retaining config v1 compatibility, preserves upgrade admission and restart fencing, and exercises the composed contract in the production binary and managed image. It also closes an exact-head review finding by making public managed SessionManager construction enforce process hardening and native-credential capture before config/store/runtime construction.

Exact provenance

All integration commits are SSH-signed. The allison-demo branch/base stack was not merged or imported. A read-only future merge simulation identified expected textual conflicts only in crates/nac-core/src/store/schema.rs and crates/nac-server/src/tests/managed_delivery.rs; no merge was performed.

Cross-fit coverage

  • strict config v2 parses auth bootstrap, issuer, host incarnation, private control listener, and JWKS together; v1 rejects v2-only fields
  • managed auth repair holds host maintenance admission until server-authoritative completion
  • the production image fixture uses the complete v2 auth/control contract with root-owned read-only config/JWKS and durable runtime-owned restart canaries
  • managed public-library startup removes ambient native credentials, applies Linux same-UID inspection hardening, blocks an adversarial procfs probe, and remains idempotent across multiple managers

Verification

At exact head 414af989de7c108cab46844bf62f186c2a301f85:

  • make setup — passed
  • focused managed/core/server credential, auth-repair, upgrade-control, and config tests — passed
  • make crate-test CRATE=nac-server — 187 library + 23 binary + stable contract passed
  • make ci — passed (Rust workspace, 47 web files / 268 tests, format, clippy, source size, OpenAPI/types, assets, production build, static image contract)
  • make test-durability — passed
  • make test-e2e — 21/21 passed, including managed Exa delegation and managed onboarding
  • make test-managed-image-contract — passed
  • make test-managed-image — passed on the real Linux/amd64 image, including restart/auth persistence, capability bounds, and Git LFS

One first final-head CI attempt observed the existing catalog global-state test mismatch (ProviderDefault vs Baseline) after 1,250 core passes; the test passed immediately in isolation and the complete clean retry passed.

Independent review

Bounded exact-head security/durability review initially found one P1: managed credential isolation could be bypassed through the public library constructor. Commit 414af989 moved the invariant to managed SessionManager::new and added the adversarial subprocess coverage above. Re-review accepted the exact head with no remaining P0/P1 findings.

Deliberately not performed / remaining live gates

  • no real provider prompt (separately authorized credentialed acceptance)
  • no remote controller/Flux/staging secret-safe acceptance because exact external deployment heads and environment are separately gated
  • no image publication, tag, beta alias move, deployment, merge, or release/status transition

Refs ALL-47, ALL-12, ALL-35, ALL-40, ALL-41.

Reconcile ALL-12 repair admission with ALL-40/41 maintenance, exercise strict config v2 with managed bootstrap, and run the production image smoke on the composed auth/control contract.

Reviewed source provenance: NAC #239 7f46e51..2e45862; NAC #242 83bdb4b..d55dc0c excluding unrelated 35b4cea; NAC #237 6ea8946..cf5914b. The allison-demo base stack was not imported.
Keep the v2 managed config and control JWKS root-owned while returning the non-secret persistence canaries to the runtime UID. This preserves the restart contract exercised by the real image smoke.
Make managed SessionManager construction the process-hardening and native-credential capture boundary so embedders cannot bypass worker-only Exa isolation. Cover ambient removal, Linux same-UID procfs resistance, no-new-privileges, and repeated managed construction in an isolated adversarial test.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant