Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/nix/module-eval
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 141be16c6d hive-forge: the controller-token mint writes straight to the store, and the on-disk token goes
`forgejo-swarm-controller-account`, in the forge's container, now puts
the swarm-controller's forge token into the swarm secret store itself,
under the forge publisher's leaf. The container already receives that
leaf as nspawn system credentials for its journal forwarder; the mint
loads the same three. The token reaches bao on stdin (`value=-`) and
the forge's API through a header file, never as an argument, and never
touches disk.

The mint's guard is a marker holding the published token's name, at
/var/lib/forgejo/swarm-controller-token-name, written last: after the
put, and after every other `swarm-controller-boot-*` token of the
account is revoked through forgejo's admin API, authenticated as the
new token. So a put that failed, or a marker lost while the store kept
an older token, leaves no live token behind once a mint completes. The
mint logs in to the store and checks that the account is a site admin
before it mints, so a store that is down or an account the admin API
would refuse mints nothing on each retry. Failures retry under
store-retry; forgejo does not wait for the mint. No bao read and no
grant change: the forge publisher keeps create/update on the token.

Removed: the host's `swarm-bao-forge-publisher` service and path unit,
which read the token file through the container's root, and their
entries in the store and policy ordering glue. The forge publisher's
policy unit stays; `swarm-bao-forge-oidc` still uses the leaf.

On deploy, an existing forge host has no marker, so the mint runs once:
it mints a new token, publishes it, revokes the old one, and deletes
the old /var/lib/forgejo/swarm-controller-token. The controller's next
forge call gets a 401, re-reads the store and carries on.
2026-10-16 17:48:56 +02:00
..
agent-forge-bao.nix agents: swap the agent's bao leaf in with one rename 2026-10-11 10:00:43 +02:00
agent-github-bao.nix module-eval: evaluate shared fixture configs once 2026-10-13 08:14:50 +02:00
agent-icon.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
agent-matrix.nix module-eval: evaluate shared fixture configs once 2026-10-13 08:14:50 +02:00
agent-memory.nix subagent, bash: run each subagent run and bash task in its own cgroup 2026-10-13 12:25:27 +02:00
agent-otel.nix module-eval: evaluate shared fixture configs once 2026-10-13 08:14:50 +02:00
agent-plugins.nix module-eval: evaluate shared fixture configs once 2026-10-13 08:14:50 +02:00
agent-queue-bao.nix module-eval: restore agentWith in agent-queue-bao.nix 2026-10-13 14:56:25 +02:00
agent-runtime.nix agents: swap the agent's bao leaf in with one rename 2026-10-11 10:00:43 +02:00
agent-user.nix module-eval: agent-user test asserts the heal_own_dir form 2026-10-09 11:30:30 +02:00
bao-basics.nix swarm-bao-agent-pki: decide openbao's restart on the shared locale-independent compare 2026-10-13 17:00:56 +02:00
bao-controller.nix swarm UI: an alerts page, read by the controller with a Viewer Grafana token from bao 2026-10-15 15:16:21 +02:00
bao-grants.nix hive-forge: the controller-token mint writes straight to the store, and the on-disk token goes 2026-10-16 17:48:56 +02:00
bao-matrix-reader.nix module-eval: evaluate shared fixture configs once 2026-10-13 08:14:50 +02:00
bao-otel-collector.nix swarm-bao: keep the store forwarder's OIDC secret on the host's /run, not in the container's root 2026-10-15 22:39:39 +02:00
builder.nix swarm-bao-pki: enabling a service mints its client leaf on the same switch 2026-10-15 08:31:33 +02:00
core-toggle.nix hive-forge: the controller-token mint writes straight to the store, and the on-disk token goes 2026-10-16 17:48:56 +02:00
forge-placement.nix hive-forge: the controller-token mint writes straight to the store, and the on-disk token goes 2026-10-16 17:48:56 +02:00
grafana.nix gateway: service modules declare their vhost under gateway.vhosts 2026-10-16 12:47:03 +02:00
hive-otel.nix gateway: send nginx stub_status to VictoriaMetrics, add a gateway dashboard 2026-10-16 10:01:58 +02:00
hive-tls.nix gateway: serve the hive dashboard on <hive>.hives.<swarm> behind authelia, drop htpasswd 2026-10-15 21:44:27 +02:00
journald-severity.nix module-eval: assert the severity table once, not once per tier 2026-09-20 14:23:56 +02:00
lib.nix swarm-ui: package option moves to deploy.swarm-controller.ui.package 2026-10-16 00:35:16 +02:00
matrix-core.nix hive-matrix: keep tuwunel's OIDC secret on the host's /run, not in the container's root 2026-10-15 23:31:32 +02:00
name-guards.nix hive-forge, hive-matrix: forward each container's journal to the swarm collector 2026-10-16 13:50:23 +02:00
nats-authelia.nix swarm-victoriametrics: forward the container's journal to the swarm collector 2026-10-16 14:47:31 +02:00
nats-tls.nix forge: hand the OIDC client secret to forgejo from /run, not from the container's disk 2026-10-15 21:21:50 +02:00
secret-publisher.nix swarm-victoriametrics: forward the container's journal to the swarm collector 2026-10-16 14:47:31 +02:00
shared.nix module-eval: three duplicate nixosSystem fixtures come from shared.nix 2026-10-15 08:29:58 +02:00
snapshot-store.nix snapshot store: test the sender deadlines and the receiver bounds 2026-10-16 11:45:58 +02:00
swarm-otel-core.nix swarm-otel: keep the collector's OIDC secret on the host's /run, not in the container's root 2026-10-15 21:45:48 +02:00
swarm-otel-identity.nix gateway: serve the hive dashboard on <hive>.hives.<swarm> behind authelia, drop htpasswd 2026-10-15 21:44:27 +02:00
swarm-services-switch.nix hive-forge: the controller-token mint writes straight to the store, and the on-disk token goes 2026-10-16 17:48:56 +02:00