docs(tracking): close NEXT-07, file NEXT-08/09/10, record the runner token reset
NEXT-07 is struck: windev was redeployed from origin/main (a346d51) and the service is
healthy, and the root cause the row predicted is confirmed -- the 2026-06-25 build's
Auth.ApiKeys 0.1.2.0 supports auth-DB schema 2 while the database sits at schema 3, which
is the current shared-lib version, so deploying forward was the fix rather than touching
the DB. The original text stays for the triage record.
Three findings surfaced by that work, each deliberately left for the next cycle rather
than patched in passing:
- NEXT-08: the shared GLAuth offers no TLS, so SEC-06 makes GatewayConfiguration.md's
"deployed hosts must set Ldaps or StartTls" unsatisfiable for anything genuinely
labelled Production. windev's relabel to Staging is honest for a dev rig but defers
the posture question rather than answering it.
- NEXT-09: Directory.Build.props:29 quotes a path ending in a backslash, so the SHA-stamp
git invocation is malformed on Windows and ContinueOnError stamps git's stderr into
InformationalVersion -- a Windows binary cannot be correlated to a commit, which is what
TST-11 exists to guarantee.
- NEXT-10: glauth.md's pre-provisioned-user table contradicts both the directory and its
own dashboard section, and was the root cause of the NEXT-06 fixture drift. Reconciling
it sweeps the OPC-UA group taxonomy, so it is scoped out here on purpose.
The TST-30 runner work is hygiene, not closure: runner-1 now mounts its registration token
from a 0600 file like runner-2, but both still share one instance-scope token that was
world-readable for months and is provably still live. Gitea 1.26.4 cannot rotate it from
the CLI or API, so the UI reset is recorded as a pending operator action with its
follow-through (refresh the token file, shred the token-bearing compose backups).
This commit is contained in:
@@ -23,6 +23,17 @@
|
||||
> re-registered with mac-specific labels if a mac-only job ever needs one). For per-job runner
|
||||
> attribution, `GET /repos/{owner}/{repo}/actions/runs/{id}/jobs`
|
||||
> exposes `runner_id`/`runner_name` on each job; the `actions/tasks` listing does not.
|
||||
>
|
||||
> **Follow-up 2026-08-07 — token hygiene on the host.** `gitea-runner` (id 1) now takes its
|
||||
> registration token from the same `0600` file mount runner-2 uses instead of an inline plaintext
|
||||
> value in compose, and `/opt/gitea/docker-compose.yml` plus both `.bak` copies are `0600 root:root`;
|
||||
> runner-1 was recreated alone and kept its identity (`.runner` byte-identical). Both runners share
|
||||
> **one instance-scope registration token**, which was world-readable for roughly five months and is
|
||||
> still live — a probe registered runner id 6 with it, then deleted it. Gitea 1.26.4 cannot rotate
|
||||
> that token from the CLI or the API (both endpoints are get-or-create and return the same value),
|
||||
> so **the reset is a pending operator action in the admin web UI** ("Reset registration token").
|
||||
> After the reset, refresh `/opt/gitea/runner_token` with the new value and shred the two
|
||||
> token-bearing compose backups, which are the last copies of the old one.
|
||||
|
||||
Operator steps to relieve the single shared Gitea Actions runner that CI depends on. The
|
||||
repo-side half of TST-30 (documenting the shared-runner/no-cancel reality and the
|
||||
|
||||
Reference in New Issue
Block a user