Skip to content
Niki v0.7.0 — plan mode, honest metering, headless CI contract.Read the release notes
niki
Esc
navigateopen⌘Jpreview
On this page

Enterprise Readiness

What regulated teams get today (policy controls, audit trail, observability) and what is explicitly missing (SSO, SCIM, VPC).

Honest accounting first: NIKI has no SSO/SAML, no SCIM provisioning, no VPC/on-prem control plane, and no role-based seats. Those are major builds with external infrastructure, not configuration flags, and this page will say so until they exist. What follows is what regulated teams can rely on today.

What exists

Policy controls ([permissions])

  • Modes (manual default, auto, dontask, bypass) plus per-run override: niki run --permission-mode. Unknown mode strings fail closed to manual.
  • disable_worktree = true refuses the unisolated worktree backend outright — the governance kill-switch for fleets where local-process execution is unacceptable.
  • fail_closed_headless = true turns headless Ask into Deny instead of Allow-with-warning, for unattended runs where silent auto-approval is unacceptable. Default false (behavior-preserving); enable it in CI.
  • Command deny-lists (force-push, root rm, mkfs, curl|sh patterns) plus per-role policies and protected paths/commands. Deny always wins, in every mode including bypass.

Audit trail (per run, no extra setup)

Every run leaves .niki/tasks/<id>/ with report.md, changes.patch, per-agent artifacts/*.json, safety_proof.json (git invariants), test_execution.json (real exit codes), trace.jsonl (spans), and eval-manifest.json on eval runs.

  • niki audit <task-id> consolidates all of the above into one JSON bundle with a complete flag (partial trails stay inspectable, never hidden). Pipe it to your SIEM, artifact store, or compliance export.
  • niki run --output-format json gives scripts the verdict/branch/cost contract; --bare strips ambient inputs (memory, MCP, knowledge URLs) for reproducible runs.

Observability

  • --otel-endpoint (or OTEL_EXPORTER_OTLP_ENDPOINT) exports run spans as OTLP/HTTP to any collector (Jaeger, Grafana Tempo, Honeycomb). Every span carries niki.timeline = "derived" — offsets come from recorded latencies, never fabricated wall-clock.
  • Nightly eval gate (.github/workflows/nightly-eval.yml): keyless replay + disclosure manifest on every schedule, so regressions page you instead of your customers.

Supply chain

Tight deny.toml license allow-list, cargo audit in CI, checksum-verified installers, signed release channels via cargo-dist. No telemetry leaves the machine except your own LLM API calls (or your own OTEL endpoint).

What is missing (roadmap, not features)

Need Status Workaround today
SSO/SAML login Not built BYOK keys via env/keyring; short-lived tokens rotated externally
SCIM provisioning Not built niki.toml is a file — manage it with your existing config management
VPC / private runners Not built DOCKER_HOST=ssh://… runs containers on your own hosts (see Remote Daemon)
RBAC seats Not built OS users + file permissions on niki.toml and .niki/
Data residency Provider-dependent Use region-pinned base_urls; Ollama for fully local runs
  1. Ship a managed niki.toml with disable_worktree = true, fail_closed_headless = true, a spend cap, and pinned models.
  2. Collect niki audit bundles per release branch into your artifact store.
  3. Point --otel-endpoint at your collector; alert on complete: false.
  4. Run the nightly eval workflow; treat red as a release blocker.

Was this page helpful?