Operator CLI (`tappass`)
Operator CLI (tappass)
Section titled “Operator CLI (tappass)”What it does: How a CISO / project admin / agent owner authors policy and provisions sandboxes from the terminal.
1. Vision context
Section titled “1. Vision context”The dashboard is the operator's interactive surface; this CLI is the operator's programmatic surface. CI uses it for policy-as-code; power users use it interactively; everyone runs it under SSO+MFA.
This is the highest-privilege CLI of the three. Cleanly separated from tappass-host (which runs on agent hosts under machine identity) and tappass-agent (which runs in the agent process under a scoped sandbox token).
2. Functional specification
Section titled “2. Functional specification”Full surface documented in architecture §13.3 and §14.2. Highlights:
tappass auth login— SSO + MFAtappass policy apply <file> [--level org|project=<id>|agent=<id>] [--pack <name>]— cascade-awaretappass sandbox-spec create / list / emit-bootstraptappass sandbox list / revoke / rotate / keyringtappass provider add / list(LLM provider keys)tappass mcp register / list(upstream MCP servers)tappass audit tailtappass eval run(pre-deployment evaluator wrapper)tappass dev seed-sandboxes(demo helper)
3. Technical design
Section titled “3. Technical design”Python package tappass-cli. Authn via tappass auth login opens an SSO browser flow, stores a short-lived (1h) JWT in ~/.config/tappass/auth.json. All API calls use the JWT.
4. Definition of done
Section titled “4. Definition of done”- All acceptance_criteria pass.
- CI integration: tested in a GitHub Action that applies a policy and verifies the pipeline derived correctly.
- Pipx-installable; one-line install.
5. Coordination notes
Section titled “5. Coordination notes”With onboarding-wizard: identical output. Property test verifies equivalence on 100 random configs.
With host-runtime-cli: zero overlap. The CLIs share no commands and no identity.
6. Out of scope
Section titled “6. Out of scope”- Running the agent.
- Editing policy in an interactive REPL (operators write Rego in their editor, then
apply).