docs(operations): dogfood door provisioning runbook - #291
Open
seal-agent wants to merge 2 commits into
Open
Conversation
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>
seal-agent
force-pushed
the
compass-server-sea-1943-dogfood-runbook
branch
from
August 12, 2026 19:35
cd6415e to
8dfd24a
Compare
seal-agent
force-pushed
the
compass-server-sea-1943-dogfood-runbook
branch
3 times, most recently
from
August 12, 2026 19:52
f3b13be to
551421d
Compare
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
force-pushed
the
compass-server-sea-1943-dogfood-runbook
branch
from
August 12, 2026 19:54
551421d to
a736621
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is part of a stack containing 2 PRs:
mainAdd
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-certundergo/cmd/). No new tooling.Scope is the loopback bring-up that produces the
https://127.0.0.1:8443door. 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:
curlagainst the door (no reflection service is registered, sogrpcurlis not an option): an authedGetServerInfosucceeds, an unauthed one returnsunauthenticated, and the runner enrolls over the runner door while the admin token is rejected there.Every code citation is source-verified against the current tree. State-dir creation follows the ruled
mkdir -p "$STATE" && chmod 700 "$STATE"form (notmkdir -m 700).Note: the frozen record's Task 2 listed a
ListAccountsstep to derive the UI'sVITE_COMPASS_CALLER_ID. That env var is retired (DL-111) — the UI now reads onlyVITE_COMPASS_BASE_URL+VITE_COMPASS_TOKENand learns the caller's account id from the server'sWhoAmIRPC at boot (apps/ui/src/live/client.tsresolveCaller; server sidego/server/service.goWhoAmI). 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