- README: status banner v0.12+v0.13, latest tag v0.12.10, subcommand table expanded (auth/nft/peer-setup/secrets rotate-master), "mTLS by default" corrected to "SSH-push canonical", docs table updated - docs/cli.md: complete rewrite (521->1465 lines), all ~40 subcommands - CHANGELOG: regenerated from git log (v0.11.29..HEAD) - help text: job run HCL->markdown, job stop daemon->SSH-push - docs/security-runbook.md: expanded to match P05 reality (seal/unseal, doctor audit/modes/oidc, incident response) - docs/webauthn.md: added auth register (P06) - docs/namespace.md: added inherit + set-constraint - internal/proxmox/bootstrap.go: comments password->key auth - internal/cli/status.go: deprecation warning - scripts/verify-docs.sh + make verify-docs: cli.md <-> orca --help - cmd/verify-reqs/main.go: fix bold-format regex (was bypassing v0.12) + case-insensitive status matching - .ciagent/REQUIREMENTS.md: v0.12 REQs marked complete - .ciagent/ROADMAP.md: v0.12 bolded COMPLETE ---ci--- project: orca phase: 11 milestone: v0.13 status: complete requirements: covered: [160] ---/ci---
8.4 KiB
Changelog
All notable changes to orca are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v0.13 milestone (in progress) — tag line v0.12.x
The v0.13 milestone is Production Hardening Round 2 + UAT Plan. Three deep codebase sweeps (security, reliability, feature/doc claims) surfaced ~60 gaps beyond v0.12. v0.13 closes all critical/high/medium findings and delivers the UAT plan + signoff script that gates the v1.0.0 cut.
Load-bearing architectural changes:
- R-022 —
orca job rundeploys to remote nodes via the scheduler → emitter → SSH-push pipeline. The localexec.CommandContextpath is removed (P03). - R-023 — Zero-trust enforcement is operationally wired:
acl.Checkis invoked on every daemon handler + sshpush + txn apply path;acl.jsonis 0600; auditactorcarries OIDC sub/SVID; WebAuthn registration requires auth;cluster seal/unseal+doctor audit/doctor modesCLI commands exist (P04, P05).
v0.13 phase commits (v0.11.29..HEAD)
ed91d68— feat(P10): observability expansion — metrics + security headers (REQ-159)531b369— fix(P09): migration + operational safety — job stop, retention, logs cap (REQ-158)3a3ea74— fix(P08): transport + SSH safety — typed errors, IPv6, timeouts, signal (REQ-157)0358efe— fix(P07): concurrency safety — SQLite, flock, cache, atomic writes (REQ-156)978334a— feat(P06): auth init-idp real + auth register + doctor oidc (REQ-155)9e83238— feat(P05): seal/audit CLI + chain race fix + key zeroing (REQ-154)5232fcb— fix(P04): wire ACL enforcement + WebAuthn reg auth + audit actor (REQ-153)cf3d98e— feat(P03): wire scheduler into job run + fix jobspec parser (REQ-151, REQ-152)4b70e31— fix(P02): input validation + injection hardening — 11 vectors (REQ-150)b0158c9— fix(P01): bump go toolchain to 1.25.12 + fix pre-existing test bugs (REQ-149)7479cd1— docs(checkpoint): P0 shipped — v0.12.0 tagged1a2dd1a— docs(P00): incorporate grill binding conditions C-44..C-49437d9b2— docs(P00): grill v0.13 — CONDITIONAL PROCEED (6 binding conditions C-44..C-49)82bfab1— docs(P00): create phase plans — 14 phases, 15 REQs, vertical slicesa2a651e— docs(P00): ideation results — 15 accepted (REQ-149..REQ-163), 0 skipped3f5e5de— docs(P00): research findings — threat model round 3 (~60 gaps, F26-F101)7a60b35— docs(P00): clarify v0.13 — 7 decisions resolved (D-248..D-254)8071793— docs(init): validate specification — v0.13 Production Hardening Round 2 + UAT Plan
v0.13 phase summary
- P0 — Pre-execution: specify → clarify → research → ideate → plan → grill (tag
v0.12.0) - P01 — Toolchain & dependency vulns: Go 1.25.12 bump, 24 stdlib vulns closed, govulncheck triage (REQ-149)
- P02 — Input validation & injection hardening: 11 vectors closed (
orca logs --jobRCE, tar-slip, sudoers injection, pprof loopback, txn/nft ID validation, drain allocID, cluster_compat, podman image, nft TrustedProbes, sudoers user/role) (REQ-150) - P03 — Scheduler/deployment wiring + jobspec parser:
orca job runwires scheduler → emitter → SSH-push;schedule:/timeout:parsed by markdown jobspec (REQ-151, REQ-152) - P04 — ACL enforcement + WebAuthn registration auth:
acl.Checkwired into daemon + sshpush + txn apply; WebAuthn registration requires auth; audit actor carries OIDC sub/SVID (REQ-153) - P05 — Seal/audit CLI + chain race fix + key zeroing:
orca cluster seal/unseal,orca doctor audit,orca doctor modesCLI commands; audit hash-chain race fix; master key zeroed on exit (REQ-154) - P06 — auth init-idp real + auth register + doctor oidc: real Dex deployment,
orca auth registerbrowser flow,orca doctor oidchealth check (REQ-155) - P07 — Concurrency safety: SQLite WAL, flock on known_hosts, cache thread-safety, atomic writes (REQ-156)
- P08 — Transport & SSH safety: typed dial errors, IPv6 support, connect timeouts, signal handling (REQ-157)
- P09 — Migration & operational safety:
orca job stopvia SSH, DB retention check, logs cap (REQ-158) - P10 — Observability & metrics: metrics endpoint expansion, security headers (REQ-159)
- P11 — Doc drift round 2 (this phase, REQ-160)
v0.12 milestone — COMPLETE (tag line v0.11.x)
The v0.12 milestone is Security Hardening (Zero-Trust Identity). Comprehensive security hardening across the entire attack surface including the OS, plus adoption of a zero-trust identity model. 25 threat-model findings (F1..F25) closed. R-021 adopted: no Orca-issued credentials — human identity is exclusively external (OIDC), machine identity is exclusively mTLS/SPIFFE.
Milestone release: v0.11.28 (29 phases, tags v0.11.0..v0.11.28).
v0.12 phase highlights
- Command injection fix (REQ-119, F3)
- Namespace path traversal fix (REQ-120, F4)
- Txn apply path allowlist (REQ-121, F5)
- OIDC client + bundled Dex (REQ-144; BYO-IdP override)
- WebAuthn connector for Dex / passkeys (REQ-148)
- ACL rewrite to OIDC claims + enforcement (REQ-145, REQ-122, F1)
- Remove all password/token paths (REQ-146, R-021, C-34)
- Master key seal-to-OIDC + Shamir 3-of-5 recovery (REQ-147, C-35)
- Daemon auth hardening (REQ-123, REQ-124, F6, F24)
- Audit log tamper-evidence (REQ-125, F2)
- SVID chain validation (REQ-126, F9)
- Backup symlink validation (REQ-127, F7)
- step-ca /tmp hardening (REQ-128, F10)
- Master key rotation (REQ-129, F12, C-30)
- File-mode audit expansion (REQ-130, F13)
- aggregate.sh JSON injection + drift-gate fix (REQ-131, F11, F18)
- install.sh checksum+GPG verification (REQ-132, F14)
- nftables ruleset hardening (REQ-133, F21)
- sudoers hardening (REQ-134, F22)
- System user consistency (REQ-135, F23)
- SQLite file-mode + at-rest encryption (REQ-136, F8, C-31)
- Migration safety + identity migration (REQ-137, F19, C-34)
- Legacy CA/mTLS/daemon + step-ca password-provisioner deletion (REQ-138, F16)
- known_hosts tightening + transport hardening (REQ-139, F15, F25)
- Drift event authentication (REQ-140, F18)
- Security integration test suite (REQ-141, C-33)
- Zero-trust + OIDC + WebAuthn + threat-model docs (REQ-142)
- Final review + ship + audit (REQ-143)
v0.11 milestone — COMPLETE (tag line v0.10.x)
The v0.11 milestone is Production Hardening. See the git log and ROADMAP for the full phase list.
v0.1 milestone — COMPLETE
Initial CLI skeleton, node management, task execution, state persistence, audit log, health checks, and CoreCI release flow.
e1b5385— feat(P06): CoreCI release flow with .coreci.yml and tea integration07b8ad2— ship(P05): health checks merged into milestoneb06458d— docs(P05): verification - 4 layers pass708d983— feat(P05): health check daemon with /healthz, /readyz, /v1/* handlers30c523c— ship(P04): state persistence merged into milestone759b1b5— docs(P04): verification - 4 layers passb25e074— feat(P04): audit log + persistence hardeningbb6b5b3— ship(P03): task exec merged into milestone857f756— docs(P03): verification - 4 layers passf9a9873— feat(P03): task execution engine with HCL specs, jobs, tasks, WaitDelay78334f1— ship(P02): node mgmt merged into milestonec7dbcef— docs(P02): verification - 4 layers pass9580f34— feat(P02): node management with SQLite-backed registry46e929e— chore(P01): source .env in trigger_coreci.sh for GITEA_TOKEN503923b— ship(P01): cli skeleton merged into milestonee3f6e1d— docs(P01): verification - 4 layers passaa3ccce— feat(P01): CLI skeleton with Cobra, subcommand stubs, pre-push hookc203895— docs(P00): create 6 phase plans with wave ordering65eb2e6— docs(P00): research findings - architecture + personas6f34f17— docs(P00): ideation - 30 ideas accepted (3 tiers)bc7ce1c— docs(P00): clarify ambiguities (full autonomy, 10 decisions)55aae53— chore(P00): rename orch-engine to orca, configure gitea + coreci (v0.1)0cba1aa— chore(P00): set autonomy level to fulle2e77e7— chore(P00): quick task - populate config.json with backlog reference8c086de— chore(config): populate ciagent config with standard settings8774008— docs(init): validate specification
Generated by make changelog. Do not edit by hand.