15 — Compliance & control layer — identity, access & safety.
Identity is the substrate’s first invariant: every authenticated request is bound to a principal with a typed identity, a role-set, attribute predicates, and a clearance against data markings. Agents are principals too; they have no ambient authority. Above identity sits the broader Compliance & Control Layer — the substrate’s cross-cutting safety surface that consolidates Guardrail Rules, PII / Screening checks, an autonomous QA Model, Confidence Scoring, and a Kill Switch. Every Decision and every Action passes through it.15.0 Compliance & Control Layer
This section unifies the substrate’s safety controls into one named layer. It is not a new component — the controls are spread across the planes — but global CTOs need to see them as a single governance surface, because that is how regulators, auditors, and risk committees evaluate them. Fig. 15.0 — Compliance & Control Layer. Seven control surfaces govern every request between agents, actions, retrieval, and the carrier’s systems and operators. Control surfaces
The Compliance & Control Layer is not skippable. There is no “fast
path” that omits it; there is no debug bypass; there is no operator endpoint that
commits an Action without traversing it. The layer is the price of admission to the
Action Plane.
15.1 Principal model
Every actor in the system is a typed principal. There are five classes:15.2 Authentication
- SSO via SAML 2.0 and OIDC. The platform is itself a relying party; it does not host primary credentials.
- Strong MFA required for all human principals. Step-up (re-auth or hardware key) required for sensitive purposes.
- SCIM 2.0 for provisioning and de-provisioning.
- mTLS for service-to-service traffic; client-cert pinning at the boundary.
- Tokens are short-lived; refresh requires presence of original auth context.
15.3 RBAC scopes
Scopes are the platform’s primitive grant. Every tool, object read, action stage, and approval requires one or more scopes. Scope grants are recorded; revocation is itself a typed AuditEvent.15.4 ABAC predicates
Predicates are evaluated at decision time over (principal, object, environment) attributes.15.5 Markings & clearance
Markings (§4.2) are first-class labels carried by every object. Examples:pii.medium, pii.high, regulated.hipaa, regulated.gdpr, tenant.eu-only, commercial-in-confidence. Each marking has a clearance predicate; a principal must satisfy it to access the marked data.
15.6 Purpose-tagged access
Every tool call and every direct read declares a purpose. The PDP checks the purpose against the marking’s allowed-purpose set:15.7 Row-level & field-level access
RBAC + ABAC + markings combine into row- and field-level filters that are evaluated on every read:- Row filter: ABAC predicate decides whether the row is even visible.
- Field filter: per-field marking checks decide which fields render; redaction is the default for failed checks.
- Read shape: the resolver returns only the fields the principal is cleared for; missing fields are explicit nulls with a typed redaction reason.
15.8 Break-glass
For incident response, a step-up break-glass grant is supported. It is purpose-tagged, time-limited, hardware-key-required, and emits a special AuditEvent (identity.break_glass) on the tenant chain. The tenant’s security primary is notified in real-time. Break-glass cannot grant scopes the tenant has marked irrevocable.
15.9 Service identity for agents
Agents authenticate as a service identity that is bound to the AgentRun. The identity has only the scopes declared in the agent definition; cross-run reuse is forbidden by construction. Compromise of an agent identity is constrained to the run’s wall-clock window.15.10 Encryption
- TLS 1.3 for all transport. mTLS at the substrate boundary.
- AES-256-GCM at rest. Per-tenant keys; BYOK supported with HSM or KMS integration.
- Field-level envelope encryption for high-sensitivity fields; access requires marking clearance even by operators.
- Key rotation on schedule and on suspected compromise; rotations are typed AuditEvents.
15.11 Kill Switch
The Kill Switch is the substrate’s emergency cut-out: a tenant- and platform-scoped mechanism to stop AI work at any granularity in seconds, without bringing the rest of the platform down. It is the control a global CTO most often asks about and the one most often missing in pre-platform deployments. Granularities
Properties
- Fast. Activation propagates to runtime workers within the platform’s standard cache fan-out window (single-digit seconds in healthy operation).
- Typed. Every kill is a typed
governance.kill_switch.engageAuditEvent with scope, principal, reason, evidence, and ETA. - Reversible. Disengagement is a separate AuditEvent
(
governance.kill_switch.disengage) and is gated by the same step-up. - Containing, not corrupting. A kill never silently drops in-flight work. Runs drain to handoff with a typed Exception; staged Actions remain staged; data already written is unchanged. Recovery is by re-enable, not by data repair.
- Auto-engageable. Drift breach (§13) automatically demotes the affected model. PDP can auto-engage tool kills on policy breach. Auto-engagements are typed AuditEvents with their detector identity.
- Cell-bounded. Tenant- and region-scoped kills do not affect other tenants or other regions. Platform-scope is the only blast radius the carrier should never need to encounter; it exists for correctness, not for use.

