Skip to content

Policies & credentials

The governance surfaces (Admin): environment policy and the credential-reference inventory.

Environment policies

Admin → Policies lists environments; select one to view its policy — the knobs (enabled, fail_on_warnings, blocked_diagnostic_codes, require_human_review, require_tool_permissions, deny_unrestricted_tools, require_guardrails) and the before/after of its most recent change (from the platform's previous_policy).

Changing a policy is a two-step, safe flow:

  1. Preview — a dry-run: the field-level diff of your proposed change vs the active policy, plus the runs it would affect. Nothing is saved.
  2. Apply — the mutating PUT. The response shows the before/after; the platform records the change in its own audit log (visible in Audit).

Worked example — tighten review before a risky rollout. On the target env, propose require_human_review = true and Preview: the diff shows the one field change and lists the in-flight runs it would affect. Satisfied, Apply — subsequent runs now pause for human review (they surface in Human tasks); the before/after and the actor land in the platform audit.

Authorized server-side (0.4.0)

Applying or previewing a policy requires the policy.write capability (admin in the built-in default map; reassignable via the Access map), enforced server-side by the BFF — a disallowed operator gets a 403 before the call reaches the platform, with the platform scope as a second, independent layer. SPA hide/disable is UX only; the BFF is the real gate (see ADR-009).

Credential inventory

The Credentials page: a presence-only inventory of credential references grouped into
Providers, Other secrets, and Service tokens — each row shows the name, environment variable,
and presence / status, never a secret value.

Credentials (under the Admin nav group) is a presence-only inventory of credential references, grouped into Providers, Other secrets, and Service tokens. Each entry shows its name, the backing env var, and a present / missing status, with a present·missing rollup. Reading it needs the credentials.read capability (operator or admin in the built-in default map), enforced server-side (0.4.0); the nav item is hidden for viewers.

No secrets, ever

The inventory carries no secret values — not even the platform's redacted [REDACTED] placeholder reaches the browser. It answers "is this credential configured?", nothing more. Expiry/rotation metadata is reserved (env-var references carry none today).