Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/nix/host-modules
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 01b8387ab8 write secret and key files atomically with their final mode
Each of these wrote its file in place (or set the mode after the
write), so a write cut short by a kill or a full disk left a partial
file behind, and some secrets existed for a moment at umask mode:

- swarm-authelia/swarm-grafana/hive-forge/swarm-bao generators: a
  partial file passed the `-s`/`-e` guard and was kept forever. They now
  capture the value first and land it with `atomic_write_secret`.
- swarm-controller webhook secret: a truncated file failed the 64-hex
  check and the secret was regenerated, out of step with the forge
  hooks. It is now written 0600 to a sibling temp, fsynced, renamed.
- hive-c0re htpasswd: the temp is now fsynced and set 0644 before the
  rename, like the sibling agents.conf writer, instead of relying on
  c0re's umask.
- hivectl wg init: the private key is created 0400 in a temp and
  renamed, instead of written at umask mode and chmod'ed after.

Closes #5068
2026-10-09 17:22:25 +02:00
..
hive-c0re swarm CA: describe the store's pki root as the only anchor in docs and comments 2026-10-05 21:17:10 +02:00
hive-forge write secret and key files atomically with their final mode 2026-10-09 17:22:25 +02:00
hive-gateway swarm CA: describe the store's pki root as the only anchor in docs and comments 2026-10-05 21:17:10 +02:00
lib swarm-nats: the auth responder's store identity path is its own, not the hive's 2026-10-06 10:04:30 +02:00
swarm-grafana/dashboards swarm-grafana: drop stale windows from the subscription usage line, match sibling panel interval 2026-10-07 23:54:53 +02:00
bao-bootstrap-policy.hcl bao: disable the unused approle auth method, declaratively 2026-09-28 22:58:36 +02:00
default.nix hive-tls: the gateway leaf uses the services-issuer identity, not a hive's 2026-10-06 14:54:07 +02:00
deploy.nix swarm-controller reads its forge token from the store, not a host file 2026-10-08 13:25:47 +02:00
glue-bao-readers-policy-order.nix swarm-controller reads its forge token from the store, not a host file 2026-10-08 13:25:47 +02:00
glue-bao-tls.nix swarm-controller reads its forge token from the store, not a host file 2026-10-08 13:25:47 +02:00
glue-bao-ui-oidc-client.nix bao: OIDC login to the browser UI via authelia, as a metadata-only viewer 2026-09-28 19:56:38 +02:00
glue-controller-bao-identity.nix nix: gate hive-c0re on deploy.hive-controller.enable, drop hyperhive.enable 2026-09-26 01:19:49 +02:00
glue-controller-oidc-client.nix swarm: OIDC clients registered wherever authelia runs; nats + matrix secrets from bao 2026-10-05 09:58:02 +02:00
glue-forge-oidc-client.nix nix: gate hive-c0re on deploy.hive-controller.enable, drop hyperhive.enable 2026-09-26 01:19:49 +02:00
glue-grafana-oidc-client.nix nix: gate hive-c0re on deploy.hive-controller.enable, drop hyperhive.enable 2026-09-26 01:19:49 +02:00
glue-hive-tls-bao-identity.nix hive-tls: the gateway leaf uses the services-issuer identity, not a hive's 2026-10-06 14:54:07 +02:00
glue-matrix-ctl-bao-identity.nix swarm-nats, matrix: the queue's and matrix-ctl's store identity paths are their own, not the hive's 2026-10-06 12:04:48 +02:00
glue-matrix-oidc-client.nix swarm: OIDC clients registered wherever authelia runs; nats + matrix secrets from bao 2026-10-05 09:58:02 +02:00
glue-nats-auth-bao-identity.nix swarm-nats: the auth responder's store identity path is its own, not the hive's 2026-10-06 10:04:30 +02:00
glue-nats-bao-identity.nix swarm-nats, matrix: the queue's and matrix-ctl's store identity paths are their own, not the hive's 2026-10-06 12:04:48 +02:00
glue-nats-oidc-client.nix swarm: OIDC clients registered wherever authelia runs; nats + matrix secrets from bao 2026-10-05 09:58:02 +02:00
glue-queue-agent-credential.nix nix: comments state current behaviour, not history 2026-10-05 09:58:50 +02:00
glue-secret-publisher-bao-identity.nix nix: gate hive-c0re on deploy.hive-controller.enable, drop hyperhive.enable 2026-09-26 01:19:49 +02:00
glue-swarm-bao-otel-oidc-client.nix ops: update option pointers after grafana/bao split 2026-10-01 09:53:04 +02:00
glue-swarm-otel-oidc-client.nix ops: update option pointers after otel split 2026-10-01 13:00:40 +02:00
hive-matrix-service.nix swarm-controller: revoke matrix admin from former operators 2026-10-05 12:39:02 +02:00
hive-matrix.nix swarm-nats, matrix: the queue's and matrix-ctl's store identity paths are their own, not the hive's 2026-10-06 12:04:48 +02:00
hive-network.nix swarm-ci-runner: run the forge CI runner as a swarm service 2026-10-05 13:55:37 +02:00
hive-priv.nix swarm-ci-runner: run the forge CI runner as a swarm service 2026-10-05 13:55:37 +02:00
hive-tls.nix hive-tls: the root fetch presents the hive identity, as on main 2026-10-06 14:54:07 +02:00
host-ca-removed.nix hive CA: catch a deleted CA file however its path is spelled 2026-10-05 21:17:10 +02:00
hyperhive.nix nix: finish the current-behaviour comment sweep in touched files 2026-10-05 09:58:57 +02:00
local-defaults.nix swarm-nats: take the callout issuer and user keys from the store 2026-10-06 14:53:33 +02:00
nats-callout-removed.nix nats-callout-removed: remove the container's OIDC secret copy here, ungated 2026-10-06 15:25:29 +02:00
otel.nix swarm CA: describe the store's pki root as the only anchor in docs and comments 2026-10-05 21:17:10 +02:00
stylix-theme.nix swarm-ui: apply the operator's stylix theme, same as the dashboard already does 2026-08-24 14:28:25 +02:00
swarm-authelia-service.nix nix: follow-ups from the service/deploy split 2026-10-05 19:12:46 +02:00
swarm-authelia.nix write secret and key files atomically with their final mode 2026-10-09 17:22:25 +02:00
swarm-bao-service.nix nix: split swarm-bao into service and deploy-mode files 2026-10-01 09:37:36 +02:00
swarm-bao.nix write secret and key files atomically with their final mode 2026-10-09 17:22:25 +02:00
swarm-ci-runner.nix deploy: forward swarm.forge.ci to deploy.ci-runner, say what the forwarded enable needs 2026-10-05 21:36:11 +02:00
swarm-controller.nix swarm-bao-forge-publisher starts on the deploy that adds it 2026-10-08 13:59:26 +02:00
swarm-grafana-service.nix nix: finish the "moved to" comment sweep 2026-10-05 09:59:02 +02:00
swarm-grafana.nix write secret and key files atomically with their final mode 2026-10-09 17:22:25 +02:00
swarm-nats-service.nix nix: finish the "moved to" comment sweep 2026-10-05 09:59:02 +02:00
swarm-nats.nix nats-callout-removed: remove the container's OIDC secret copy here, ungated 2026-10-06 15:25:29 +02:00
swarm-otel-service.nix swarm-otel: name the port-collision assertion instead of pointing below 2026-10-05 19:22:55 +02:00
swarm-otel.nix swarm CA: describe the store's pki root as the only anchor in docs and comments 2026-10-05 21:17:10 +02:00
swarm-peers-removed.nix swarm CA: retire the host-held root CA, the store holds the only anchor 2026-10-05 21:17:10 +02:00
swarm-required-services.nix nix: run the forge on one host per swarm (deploy.forgejo.enable) 2026-09-24 23:56:07 +02:00
swarm-secret-publisher.nix swarm-nats-auth: read its own OIDC client secret from the store 2026-10-06 14:54:19 +02:00
swarm-snapshot-store.nix deploy: move the wireguard mesh out of the namespace hives read 2026-09-07 14:24:52 +02:00
swarm-ui.nix nix: finish the current-behaviour comment sweep in touched files 2026-10-05 09:58:57 +02:00
swarm-victorialogs-service.nix nix: split swarm-victorialogs into service and deploy-mode files 2026-10-01 10:03:55 +02:00
swarm-victorialogs.nix nix: comments state current behaviour, not history 2026-10-05 09:58:50 +02:00
swarm-victoriametrics-service.nix nix: follow-ups from the service/deploy split 2026-10-05 19:12:46 +02:00
swarm-victoriametrics.nix swarm-ui: build the forge link from swarm.forge.domain 2026-10-02 20:02:02 +02:00
swarm-wireguard.nix swarm options: no swarm.* value depends on a deploy option or this host's hive 2026-10-04 18:13:47 +02:00
swarm.nix swarm-controller reads its forge token from the store, not a host file 2026-10-08 13:25:47 +02:00