Skip to content

docs(operations): dogfood door provisioning runbook - #291

Open
seal-agent wants to merge 2 commits into
compass-runner-1442-doc-tabsfrom
compass-server-sea-1943-dogfood-runbook
Open

docs(operations): dogfood door provisioning runbook#291
seal-agent wants to merge 2 commits into
compass-runner-1442-doc-tabsfrom
compass-server-sea-1943-dogfood-runbook

Conversation

@seal-agent

@seal-agent seal-agent commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

This PR is part of a stack containing 2 PRs:

  1. main
  2. docs(design): convert hard tabs to spaces in SEA-1442 sentinels record #289
  3. "docs(operations): dogfood door provisioning runbook" (this PR)

Add docs/operations/dogfood-provisioning.md — a step-by-step runbook for bringing a Compass server + runner pair up on a single host over the authenticated TLS network door, using only the binaries this repository already ships (compass-server, compass-runner, compass-mint-runner-token, compass-gen-cert under go/cmd/). No new tooling.

Scope is the loopback bring-up that produces the https://127.0.0.1:8443 door. Serving it onto a tailnet and baking the UI bundle are called out as separate downstream steps that consume this door, not covered here.

Contents:

  • Prerequisites — fail-fast, each tied to the exact enforcing code path (Go toolchain, a reachable Postgres + DSN, state dir).
  • Two-shell bring-up — server (Shell 1) and runner (Shell 2), both foreground/long-lived, with cert generation, runner-token minting, and runner-trust steps.
  • Verifycurl against the door (no reflection service is registered, so grpcurl is not an option): an authed GetServerInfo succeeds, an unauthed one returns unauthenticated, and the runner enrolls over the runner door while the admin token is rejected there.
  • Accepted-risk notes on runner-token lifetime and single-operator exposure.

Every code citation is source-verified against the current tree. State-dir creation follows the ruled mkdir -p "$STATE" && chmod 700 "$STATE" form (not mkdir -m 700).

Note: the frozen record's Task 2 listed a ListAccounts step to derive the UI's VITE_COMPASS_CALLER_ID. That env var is retired (DL-111) — the UI now reads only VITE_COMPASS_BASE_URL + VITE_COMPASS_TOKEN and learns the caller's account id from the server's WhoAmI RPC at boot (apps/ui/src/live/client.ts resolveCaller; server side go/server/service.go WhoAmI). The runbook reflects the live contract, not the retired env var.

Stacked on #289 (compass-runner-1442-doc-tabs): this is a docs PR, so the whole-repo markdownlint CI gate runs and would red on main's pre-existing hard-tab errors in the SEA-1442 sentinels record until #289 lands. Files are disjoint (this PR touches only the new runbook). Merge order: #289 first, then this PR. Once #289 merges I will rebase this onto main and re-verify CI.

Verified: CI-exact whole-repo moon run root:markdownlint = 0 errors across 84 files on this stacked tree.

Spec-impact: none. Refs SEA-1943.

Co-authored-by: Matt Wilkinson matt@sealedsecurity.com

The Go code fences in the compass-runner gateway/operator-fault error
sentinels design record carried literal tabs (pasted from gofmt output),
tripping markdownlint MD010/no-hard-tabs on the push-to-main full sweep.
Convert the 17 leading tabs to spaces at 2-per-indent-level, matching the
universal repo convention for Go fences in design docs. Content-preserving;
no change to the frozen contract.

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@linear-code

linear-code Bot commented Aug 12, 2026

Copy link
Copy Markdown

SEA-1442

SEA-1943

@seal-agent seal-agent changed the title docs(design): convert hard tabs to spaces in SEA-1442 sentinels record docs(operations): dogfood door provisioning runbook Aug 12, 2026
@seal-agent
seal-agent changed the base branch from main to compass-runner-1442-doc-tabs August 12, 2026 19:31
@seal-agent
seal-agent force-pushed the compass-server-sea-1943-dogfood-runbook branch from cd6415e to 8dfd24a Compare August 12, 2026 19:35
@seal-agent
seal-agent changed the base branch from compass-runner-1442-doc-tabs to main August 12, 2026 19:35
@seal-agent seal-agent changed the title docs(operations): dogfood door provisioning runbook docs(design): convert hard tabs to spaces in SEA-1442 sentinels record Aug 12, 2026
@seal-agent
seal-agent changed the base branch from main to compass-runner-1442-doc-tabs August 12, 2026 19:36
@seal-agent seal-agent changed the title docs(design): convert hard tabs to spaces in SEA-1442 sentinels record docs(operations): dogfood door provisioning runbook Aug 12, 2026
@seal-agent
seal-agent force-pushed the compass-server-sea-1943-dogfood-runbook branch 3 times, most recently from f3b13be to 551421d Compare August 12, 2026 19:52
Add `docs/operations/dogfood-provisioning.md` — a step-by-step runbook for bringing a Compass **server + runner** pair up on a single host over the authenticated TLS network door, using only the binaries this repository already ships (`compass-server`, `compass-runner`, `compass-mint-runner-token`, `compass-gen-cert` under `go/cmd/`). No new tooling.

Scope is the loopback bring-up that produces the `https://127.0.0.1:8443` door. Serving it onto a tailnet and baking the UI bundle are called out as separate downstream steps that consume this door, not covered here.

Contents:

- **Prerequisites** — fail-fast, each tied to the exact enforcing code path (Go toolchain, a reachable Postgres + DSN, state dir).
- **Two-shell bring-up** — server (Shell 1) and runner (Shell 2), both foreground/long-lived, with cert generation, runner-token minting, and runner-trust steps.
- **Verify** — `curl` against the door (no reflection service is registered, so `grpcurl` is not an option), plus the ListAccounts-over-socket step that yields the bootstrap-admin account id.
- **Accepted-risk** notes on runner-token lifetime and single-operator exposure.

Every code citation is source-verified against the current tree. State-dir creation follows the ruled `mkdir -p "$STATE" && chmod 700 "$STATE"` form (not `mkdir -m 700`).

Stacked on #289 (`compass-runner-1442-doc-tabs`): this is a docs PR, so the whole-repo markdownlint CI gate runs and would red on main's pre-existing hard-tab errors in the SEA-1442 sentinels record until #289 lands. Files are disjoint (this PR touches only the new runbook). **Merge order: #289 first, then this PR.** Once #289 merges I will rebase this onto main and re-verify CI.

Verified: CI-exact whole-repo `moon run root:markdownlint` = 0 errors across 84 files on this stacked tree.

Spec-impact: none. Refs SEA-1943.

Co-authored-by: Matt Wilkinson <matt@sealedsecurity.com>

tmp

tmp2

tmp3

tmp4
@seal-agent
seal-agent force-pushed the compass-server-sea-1943-dogfood-runbook branch from 551421d to a736621 Compare August 12, 2026 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant