Skip to main content

Observe then enforce

Complete the linear path in Onboarding first. This page explains mode concepts; the refund walkthrough in onboarding step 6 is the concrete proof.
Pilots usually start by observing evaluate decisions without changing dispatch, then move to enforce where only ALLOW may run. This guide documents both modes against verified SDK helpers.
Existing customer protections outside Sector8 remain in force during observe. Sector8 does not claim a one-click “enforcement off” switch or an automated gap-report SKU.

Modes

An evaluation-only example that never dispatches does not prove a live observe integration. Readiness needs a verified observation test where the business path still completes when evaluate returns DENY, times out, or fails.

Verified helpers

These helpers are covered by unit proofs in the SDKs: Examples:
  • TypeScript: examples/pilot-evaluation-only.ts, examples/pilot-enforce-stub.ts, examples/PILOT.md
  • Python: examples/PILOT.md

Enforce: fail closed beyond DENY

In enforce mode, do not dispatch when evaluate returns or fails as:
  • DENY
  • Timeout
  • Authentication failure (401/403)
  • Malformed response
  • Unknown / missing outcome
ALLOW with a complete decision artifact → exactly one dispatch (or your agreed stub behavior).

TypeScript

Python

Observe: continue on failure

Use observe when you need evaluate visibility without blocking the partner workflow yet.
Observation failure behavior: if evaluate times out, returns 401, returns a malformed body, or the gate is unreachable, observe mode still continues the workflow. Record the failure for the pilot report. Do not treat “continued” as “allowed by Sector8.”

Evidence after evaluate

Every decision should carry:
  • outcome (ALLOW / DENY)
  • reason_code
  • decision_trace_id
  • evidence_hash
  • policy_version_id
After a fresh evaluate, look up the same decision_trace_id in the Decision Feed (tenant-scoped retrieve) to confirm the feed matches the response artifact. Missing or cross-tenant traces return the same not-found result.

Move to enforce

  1. Confirm observe does not break the partner path on DENY / timeout / error.
  2. Flip the honor path to honorEnforceDecision / honor_enforce_decision.
  3. Re-run ALLOW (dispatches once) and DENY / failure classes (zero dispatch).
  4. Keep recording decision_trace_id values for the pilot report.