Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/nix
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-modules permissions: drop the capability and tool-group wording left after the rework 2026-10-15 18:01:40 +02:00
builder/check-flake swarm-builder: build each agent config PR head and post a commit status 2026-10-14 03:30:46 +02:00
container-modules swarm-victoriametrics: forward the container's journal to the swarm collector 2026-10-16 14:47:31 +02:00
docs nix: finish the "moved to" comment sweep 2026-10-05 09:59:02 +02:00
host-modules 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
module-eval 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
packages reference-docs: build again with 40 workspace crates 2026-10-15 15:32:20 +02:00
script-tests swarm-bao-agent-pki: decide openbao's restart on the shared locale-independent compare 2026-10-13 17:00:56 +02:00
templates nix: move the agent option namespace under services.hyperhive.agent 2026-09-17 20:19:30 +02:00
checks.nix module-eval: three duplicate nixosSystem fixtures come from shared.nix 2026-10-15 08:29:58 +02:00
devshell.nix CI and devshell comments say what the config does: jobTimeout bounds jobs, coverage runs nightly, dead timeout keys removed 2026-10-15 08:27:32 +02:00
journald-severity.nix otel: map journald PRIORITY onto a severity at every journald receiver 2026-09-20 14:23:56 +02:00
reserved-hive-fragments.nix swarm: extract the name guards, so the module just says what is forbidden 2026-08-31 18:50:15 +02:00
reserved-names.nix swarm-builder: scope the forge token to the forge, one build at a time, opt-in 2026-10-14 03:30:46 +02:00
rust.nix add review classifier rules for this repo 2026-10-12 21:05:38 +02:00
sources.nix refactor: slim flake.nix into nix/ entry files 2026-07-13 20:55:43 +02:00
treefmt.nix treefmt: format the web files with prettier 2026-09-02 15:25:07 +02:00