docs: decision 93 correction, Authentik not Pocket ID; row 74 brief follows (#1568)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-11 17:03:42 -05:00
co-authored by Claude Opus 5.5
parent bc8e1ee780
commit 8f857b93d7
2 changed files with 19 additions and 8 deletions
+8
View File
@@ -1991,3 +1991,11 @@ which stay with him. Each item names who decided it and what happened.
- The tradeoff: a transient unit doesn't survive a reboot and isn't - The tradeoff: a transient unit doesn't survive a reboot and isn't
reviewed as a file. It runs one reviewed command line, which the reviewed as a file. It runs one reviewed command line, which the
install record states, until the follow-up row ships the unit. install record states, until the follow-up row ships the unit.
- Correction (2026-10-11, Mos, sage-0052): the identity provider is
Authentik at auth.diversecanvas.com, not Pocket ID. There is no
Pocket ID in the homelab; the Q91 relay named it in error, and 92
and 93 above repeat it. ops-01 builds Authentik forward auth for
mosaic-preview.woltje.com, limited to Jason's group; the header is
likely X-authentik-uid. The Console check stays generic (one header
name, one user id, from flags). Jason's Q93, on the Authentik token,
gates ops-01's application, not the Console's landing or install.
+11 -8
View File
@@ -2,8 +2,10 @@
Status: written by Sage, lead. It follows `docs/plans/BRIEF-TEMPLATE.md`. Status: written by Sage, lead. It follows `docs/plans/BRIEF-TEMPLATE.md`.
One row. Amended the same evening for Jason's Q91 answer "A" (lead One row. Amended the same evening for Jason's Q91 answer "A" (lead
decision 93): a read-only preview at its own hostname, behind Pocket ID decision 93): a read-only preview at its own hostname, behind forward
forward auth limited to Jason's group, the old build left up. Target: auth limited to Jason's group, the old build left up. The identity
provider is Authentik at auth.diversecanvas.com, not Pocket ID as first
relayed; the Console names no provider. Target:
Jason signs in on 2026-10-12, by 2026-10-13T05:00Z at the latest. The Jason signs in on 2026-10-12, by 2026-10-13T05:00Z at the latest. The
service script is cut from this row for that date; it is a follow-up. service script is cut from this row for that date; it is a follow-up.
@@ -28,9 +30,9 @@ design:
- Nothing runs the Console as a service. It is a foreground `serve`. - Nothing runs the Console as a service. It is a foreground `serve`.
Mos approved these cuts for the preview (2026-10-11): sign-in at the edge Mos approved these cuts for the preview (2026-10-11): sign-in at the edge
through Pocket ID forward auth, not login code in the Console; a preview through forward auth, not login code in the Console; a preview
hostname, so the old build at mosaic.woltje.com stays; read-only; not hostname, so the old build at mosaic.woltje.com stays; read-only; not
held for S7 (row 42) or Gate E (row 5). ops-01 owns the Pocket ID client held for S7 (row 42) or Gate E (row 5). ops-01 owns the Authentik application
(limited to Jason's group), the DNS name, TLS, the proxy and the route (limited to Jason's group), the DNS name, TLS, the proxy and the route
from the edge to this host. The route opens once rev-sol-01 passes from the edge to this host. The route opens once rev-sol-01 passes
ops-01's proposal (Q91 A). ops-01's proposal (Q91 A).
@@ -52,7 +54,8 @@ A preview mode, off by default. Without its flags the Console behaves
exactly as today, and the existing tests show it. exactly as today, and the existing tests show it.
- `serve --public-host NAME --auth-header HEADER --allow-user ID`, all - `serve --public-host NAME --auth-header HEADER --allow-user ID`, all
three or none. NAME is a hostname, no port or scheme. The bind stays three or none. The check is generic: one header name and one user id,
both from the flags, nothing provider-specific in code or tests. NAME is a hostname, no port or scheme. The bind stays
loopback; nothing here listens beyond it. loopback; nothing here listens beyond it.
- In preview mode a request's Host must be NAME, or loopback on the - In preview mode a request's Host must be NAME, or loopback on the
Console's port as today. An Origin, when sent, must be `https://NAME` Console's port as today. An Origin, when sent, must be `https://NAME`
@@ -72,7 +75,7 @@ exactly as today, and the existing tests show it.
- The README replaces "Do not expose either unauthenticated server - The README replaces "Do not expose either unauthenticated server
through a public proxy" with what the preview mode requires of the through a public proxy" with what the preview mode requires of the
proxy: it strips HEADER from every client request and sets it only proxy: it strips HEADER from every client request and sets it only
after Pocket ID signs the user in, it preserves Host, it terminates TLS, after the identity provider signs the user in, it preserves Host, it terminates TLS,
and it is the only thing that reaches the port from off the host. It and it is the only thing that reaches the port from off the host. It
says plainly that any local process can still connect and send HEADER, says plainly that any local process can still connect and send HEADER,
the same exposure the README already describes for the port. the same exposure the README already describes for the port.
@@ -82,7 +85,7 @@ exactly as today, and the existing tests show it.
### Out of scope ### Out of scope
- OIDC or login code in the Console; Pocket ID config; DNS, TLS, the - OIDC or login code in the Console; Authentik config; DNS, TLS, the
proxy and the route from the edge (ops-01). proxy and the route from the edge (ops-01).
- Resolving decisions or replying from the browser. REQ-DEC-3 keeps - Resolving decisions or replying from the browser. REQ-DEC-3 keeps
resolution in the CLI; changing that is a ruling and its own row. resolution in the CLI; changing that is a ruling and its own row.
@@ -94,7 +97,7 @@ exactly as today, and the existing tests show it.
as a transient user unit (`systemd-run --user`, loopback port 7332; as a transient user unit (`systemd-run --user`, loopback port 7332;
7330 holds the operator's own Console). The edge reaches it once 7330 holds the operator's own Console). The edge reaches it once
rev-sol-01 passes ops-01's route. rev-sol-01 passes ops-01's route.
- The group check. Pocket ID and the proxy limit sign-in to Jason's - The group check. Authentik and the proxy limit sign-in to Jason's
group; the Console checks the header against the one user id. group; the Console checks the header against the one user id.
### Gate ### Gate