digitalboard.core/roles
Simon Bärlocher 3855b3e0e7
fix(garage): make bootstrap & provision idempotent across reruns
* bootstrap: `garage layout show` truncates node IDs to 16 chars, but
  the membership check compared against the full hex. After the first
  successful join, subsequent runs no longer found the short ID in
  `layout show` and re-issued `layout assign`, marking the task
  changed every time. Compare against both the truncated and the full
  form so a configured node stays detected. Also tag the read-only
  `garage node id` / `layout show` probes with `changed_when: false`.

* provision keys: the old parser sliced `stdout_lines[1:]` to drop the
  header but missed that INFO log lines and ANSI escapes can interleave
  with table rows. Replace with an explicit `^GK[0-9a-fA-F]+` filter
  after stripping ANSI, so probe-output noise no longer corrupts the
  existing-keys set and triggers spurious `key new` calls.

* provision buckets: same class of fix — match `^[0-9a-f]{16}\s` data
  rows instead of slicing `[2:]`, which broke when the table header
  wasn't exactly two lines.

* provision permissions: pre-read `bucket info` for each (key, bucket)
  pair and only run `bucket allow` when the current `RWO` flag set for
  that key ID doesn't already match the desired permissions. Previously
  `bucket allow` ran unconditionally and reported changed every play.

* `changed_when: false` on all read-only probes (`key list`, `key info`,
  `bucket list`).
2026-05-27 23:12:23 +02:00
..
389ds feat: add 389ds ldap backend to keycloak 2026-03-13 10:58:40 +01:00
authentik feat(authentik): split-horizon host rewrite + proxy-app mode/group bindings 2026-05-27 23:12:23 +02:00
authentik_outpost_ldap feat: add blueprints for authentik ldap outpost and render values directly instead of using env vars 2026-04-10 14:33:52 +02:00
base fix: add lock_timout to apt cache update 2026-01-14 17:36:07 +01:00
bookstack docs(bookstack): add meta/argument_specs.yml 2026-05-26 15:30:36 +02:00
collabora feat: drop blanket recreates, ACME-DNS knobs, notify_push override 2026-05-27 23:12:23 +02:00
coturn docs(talk,coturn): add meta/argument_specs.yml 2026-05-26 15:35:19 +02:00
drawio feat(drawio,garage): optional Authentik ForwardAuth in front of UIs 2026-05-27 23:12:23 +02:00
garage fix(garage): make bootstrap & provision idempotent across reruns 2026-05-27 23:12:23 +02:00
homarr feat: drop blanket recreates, ACME-DNS knobs, notify_push override 2026-05-27 23:12:23 +02:00
httpbin feat: add basic httpbin services 2025-11-07 11:57:45 +01:00
keycloak feat: opencloud group provisioning via oidc 2026-03-13 16:43:02 +01:00
nextcloud feat: drop blanket recreates, ACME-DNS knobs, notify_push override 2026-05-27 23:12:23 +02:00
opencloud feat: drop blanket recreates, ACME-DNS knobs, notify_push override 2026-05-27 23:12:23 +02:00
opnform docs(opnform): add meta/argument_specs.yml 2026-05-26 14:58:36 +02:00
send fix(send): assert S3 credentials when storage backend is s3 2026-05-26 15:40:21 +02:00
talk docs(talk,coturn): add meta/argument_specs.yml 2026-05-26 15:35:19 +02:00
traefik feat(traefik): configurable extra_hosts for container DNS overrides 2026-05-27 23:12:23 +02:00