NawGate

NawGate Bouncer

NawGate is the selected TechJam middleware track: backend-enforced identity and authorization for registered protected actions.

The control plane owns the human-to-Agent relationship. Each Run receives a short-lived runtime identity containing the backend-owned human, Agent, and Run binding. agentctl sends registered actions to RuntimeGateway, which loads protected-resource metadata, evaluates PolicyEngine, and is the only path that can execute a protected side effect.

Behavior

The Delegation Receipt in the Web UI is a safe summary of the human, Agent, team membership role, persistent grant role/bundle, Run, temporary JIT scope, action, resource, risk tier/version, approval count/roles, safe approver identifiers, reason, policy version, enforcement point, timestamps, expiry, uses, and status. It never displays a runtime credential, API key, payload, or protected resource content.

The Audit timeline also shows the backend integrity status. Legacy events from before the v8 migration remain visible but are explicitly counted as unverified; they are never retroactively treated as part of the trusted chain.

When enabled for the local POC, the Security Lab in the side panel runs redacted scenarios through the real RuntimeGateway: own/cross-user resources, team files, a complete JIT approval/retry/cleanup lifecycle, capability replay, forged attributes, Run revocation, grant revocation, and a deterministic queued initial-allow → revoke → final-recheck denial. Opaque scenario references keep the Runtime credential server-side. It is disabled by default outside the local demo configuration.

Scope

NawGate protects registered actions routed through agentctl. It does not intercept every internal Codex shell command or file operation inside a Run. The disposable Runtime container is the demo boundary; this is not a claim of hardened multi-tenant isolation.

The standards lineage and deliberate production limits are documented in standards.md. Team-file authorization is a focused extension of the Bouncer story, not a claim that the POC is a complete enterprise IAM system.

Verification

npm run check
npm run test:container # optional; requires a built local Runtime image

The deterministic end-to-end test always runs as part of npm run test. The real-container test is explicitly gated so ordinary CI does not need a local Docker or Podman daemon.