Headless E2E Runbook
End-to-end validation runbook for the Thoth headless control plane using thothctl, GovAPI, proxy check-ins, SIEM webhooks, and PAM callback flows.
Use this runbook to validate the headless control plane end to end without relying on dashboard flows.
This runbook answers two questions:
- Is the headless control plane working end to end in this environment?
- Are
thothctlcommands sufficient by themselves for full validation?
Scope
Validated surfaces:
- tenant settings bootstrap
- SIEM/SOAR webhook test path
- MDM provider upsert + sync trigger
- endpoint registration + check-in telemetry
- PAM callback resolution path
Tools used:
thothctlfor bootstrap actionsthothfor endpoint/proxy runtime health checks- GovAPI (
curl) for readback and deeper verification
Quick answer on command coverage
thothctl now covers bootstrap + operational readbacks + callback simulation, but full E2E validation still requires a few direct API checks.
thothctl command coverage now includes:
- tenant settings upsert
- optional webhook test call
- optional MDM provider upsert
- optional MDM sync trigger
- settings readback (
settings get) - MDM provider inventory (
mdm list) - endpoint inventory and stats (
endpoints list,endpoints stats) - approval queue reads (
approvals list) - PAM callback signing + send flow (
pam callback)
You still need GovAPI/API calls for:
- explicit check-in assertions
- full operational audits and policy/runtime evidence checks
Prerequisites
thothandthothctlare installed from the current release.- GovAPI URL is reachable over HTTPS for non-local environments.
- Admin token is available:
- recommended: file-backed token (
/run/secrets/thoth_admin_jwt)
- recommended: file-backed token (
- For local demo only:
- GovAPI can run with
GOVAPI_SKIP_AUTH=truefrom demo compose config.
- GovAPI can run with
Set baseline env vars:
Optional explicit override:
Validate binaries:
Phase 1: Bootstrap with thothctl
Run:
Expected JSON includes:
settings_updated=truewebhook_tested=truemdm_provider_upserted=truemdm_sync_started=true
Phase 1A: Create scoped API keys with least privilege
Create endpoint-scoped key for runtime health + policy operations:
List scoped keys:
Validate positive authorization decision:
Validate negative scope decision (different endpoint):
Expected:
- positive check:
valid=true,permission_allowed=true,scope_allowed=true - negative check:
scope_allowed=false
Revoke key after validation:
Phase 2: Settings + MDM readback (GovAPI verification)
Add auth header for non-local:
Verify settings:
Verify webhook test endpoint independently:
Verify MDM provider inventory:
Trigger sync explicitly (optional second run):
Acceptance:
- provider exists and is enabled
- sync call returns accepted/success state
Phase 3: Endpoint registration and check-ins
Option A (recommended): proxy-driven registration/check-in
Run governed proxy path and then check:
Then verify endpoint appears:
Option B (API smoke): manual registration + check-in
Acceptance:
- endpoint is returned by
GET /endpoints - stats reflect total/online increments
Phase 4: PAM callback path validation
1) Configure PAM in tenant settings
Ensure settings include:
pam.enabled=truepam.providerpam.callback_secretpam.request_url(HTTPS)
2) Simulate callback signature
Dry run (generate signature/payload without sending):
Acceptance:
- valid callback resolves approval
- replayed callback is safely ignored
- mismatched
request_idreturns conflict and does not resolve
Phase 5: Evidence checks (headless operational validation)
Run:
Expected:
- endpoint telemetry reflects active check-ins
- governance feed shows routed decisions/events
- alerts reflect violations or risk changes as scenarios trigger
Fail criteria
Fail the run if any of these occur:
thothctl bootstrapdoes not return success flags- webhook test cannot reach destination
- MDM sync cannot be triggered
- endpoint registration/check-in does not update stats
- PAM callback accepts invalid signature or mismatched request correlation
Command coverage matrix
| Capability | thothctl | GovAPI/API |
|---|---|---|
| Tenant settings upsert | ✅ | ✅ |
| Webhook test trigger | ✅ | ✅ |
| MDM provider upsert | ✅ | ✅ |
| MDM sync trigger | ✅ | ✅ |
| Scoped key create/authorize/revoke | ✅ | ✅ |
| Endpoint list/stats verification | ✅ | ✅ |
| Explicit endpoint check-in assertions | ❌ | ✅ |
| PAM callback correlation and replay tests | ✅ | ✅ |
| Approval queue reads | ✅ | ✅ |
| Audit feed and deep evidence checks | ❌ | ✅ |
thothctl is the right CLI for bootstrap and config application.
GovAPI verification remains required for comprehensive end-to-end operational testing.