Skip to main content

How it works

When your runtime routes proposed actions through Sector8, each action is evaluated before side effects start. Honor the returned decision before dispatch.
On the MCP connector path only, a borderline action can be held for a human before that ALLOW or DENY is returned. If nobody answers, it is denied. POST /api/v1/evaluate does not wait; it fails closed to DENY.
Enforcement holds where the runtime routes proposed actions through Sector8 and fails closed on gate unavailability or unknown decisions. See the Quickstart and Evaluate API.
If evaluation fails unexpectedly while the action is routed through Sector8, treat the outcome as fail-closed: your runtime should not execute the proposed action. The gate may surface a context-bound GUARD_INTERNAL_ERROR deny with a decision artifact.

The seven invariants

INV-1 - Single execution gate

No authorized routed path from model output to tool execution that skips evaluation. The admission path is the dispatch control point.

INV-2 - Dual gate requirement

Policy decides intent. Authorization decides capability. Execution requires both.

INV-3 - Per-step enforcement

Evaluation runs per tool call, per agent step, after planning and before execution.

INV-4 - Untrusted executor model

The LLM produces candidates. The control plane decides outcomes. LLM confidence is not a security property.

INV-5 - Spotlighting before policy

Content is trust-tagged before policy evaluation. Untrusted content cannot promote its own trust level.

INV-6 - Explicit execution condition

Execute only on an explicit ALLOW that your runtime honors. DENY, missing, or unknown decisions must not execute. On the MCP connector path, an unresolved human hold must not execute; TTL expiry is a deny.

INV-7 - Decision evidence on deny

Deny responses surfaced to the caller include evidence_hash, has_forensic_payload, policy_version_id, and decision_trace_id so operators can correlate what was blocked and why.

Admission Controller checks

Each tool call passes sequential checks. Failure at any check returns DENY immediately.
Check 5 (security threats) runs before check 6 (compliance) so that the reason code identifies the primary threat. A web_fetch to a private IP with PII in the body returns PRIVATE_IP_BLOCKED, not a compliance code.

Human hold on the MCP connector

On the MCP connector path, a borderline action can be held for a human before the connector returns ALLOW or DENY. A reviewer approves or denies via the API. If no action is taken within the TTL window, the request is denied (fail-closed). POST /api/v1/evaluate is strictly synchronous. If that path would need to wait, it returns DENY with REVIEW_REQUIRED_FAIL_CLOSED.
Every approval is a one-time authorization. A second identical request is evaluated again — approval does not persist as a session-level exemption.

Pre-filter

Before the full Admission Controller runs, a fast-path classifier routes requests. These labels are internal routing, not public decision values: The pre-filter also decodes and reclassifies obfuscated inputs. Covered forms include zero-width insertion, character arrays, hex escapes, base64 blobs, and rot13.

Spotlighting

All content entering policy evaluation is tagged with a trust source before evaluation. Untrusted content cannot promote its own trust level.

What gets blocked

Prompt injection, shell injection, SSRF, obfuscated payloads, PII and PHI exfiltration, data exfiltration, BOLA violations, BFLA violations, and rate-flood or reasoning-DoS patterns.

Forensic telemetry

Blocked actions produce a decision artifact your operators can audit and correlate.
Exact reason_code and policy_version_id values depend on your active policy and environment. See Evaluate for the runtime contract.

Compliance coverage

Pre-execution compliance is preventive, not detective. On the routed path, policy can block risky data movement before local dispatch.