Decionis

Execution domain

Execution Authority for production infrastructure

Production deploys, cluster changes and agent-authored pull requests — a verdict before the step runs, bound to the exact artifact rather than to a standing permission.

Four checks, and only one of them is about this deploy

CI, review and RBAC all pass before a bad change ships. None of them is asked whether shipping this artifact, now, by this actor, is authorized.

CI

Did it build and pass?

Your pipeline proves the artifact is sound. It says nothing about whether shipping it is allowed.

Code review

Does a human approve the diff?

A reviewer approved the change at some point. The deploy can happen later, from a different commit.

RBAC

Is this actor permitted?

Your cluster roles decide who may act at all — a standing permission, not a per-action decision.

Decionis

Does this exact change have authority to execute, now?

A deterministic verdict against written policy, bound to the specific artifact digest, before admission.

Three patterns to govern first

The verdicts differ on purpose: a bound promotion is allowed, an RBAC escalation is refused, and an agent-authored change is held for a person.

Deploy bound to an artifact digest

deploy.production

A pipeline moves to promote a build to production. Review approved a commit; the artifact reaching the cluster is what actually runs.

Policy: Production promotion requires change approval and the exact artifact digest the approval was issued against.

  1. Pipeline
  2. deploy.production @ sha256:9f2c…
  3. Decionis
  4. ALLOW
  5. Single-use grant, bound to the digest
  6. Admission consumes the grant

Privileged cluster change

kubectl apply

A ClusterRoleBinding widens cluster-wide permissions, or a privileged pod is created in a production namespace.

Policy: RBAC escalation and privileged workloads in production require approval before the object is admitted.

  1. ClusterRoleBinding, cluster-wide
  2. Admission webhook
  3. Decionis
  4. BLOCK
  5. Denied, with the dossier reference in the response

Agent-authored change

pull_request

A coding agent opens a pull request that touches infrastructure. The reviewer sees a diff; nobody sees the blast radius until it merges.

Policy: A change authored by a non-human actor is evaluated on its own terms, whatever the diff looks like.

  1. Coding agent
  2. opens a PR touching infrastructure
  3. Decionis
  4. ESCALATE
  5. Verdict and verify link commented on the PR

What runs today, and what it cannot do

In CI today

The GitHub Action evaluates the step before it runs. In shadow it comments the verdict and its verify link on the pull request without failing the build; you flip to enforce once the verdicts have earned it.

The Action Gate on GitHub Marketplace

In the cluster today

A validating admission webhook, self-hosted via Helm, asks whether the exact operation is authorized now. ALLOW admits on a consumed single-use grant; HOLD and BLOCK deny with the Decision Dossier reference in the response. It starts shadow-first.

The Kubernetes admission gate

What the webhook cannot do

Shadow is fail-open by definition, and the enforcement fail mode is yours to choose. A hostile cluster-admin can remove the admission configuration: the default rules deliberately do not intercept admissionregistration resources, so an unavailable webhook can never block its own removal.

Read the threat model