Commit Graph
14682 Commits
Author SHA1 Message Date
kevinveenbirkenbachandClaude Opus 5 af97791dac fix(svc-db-postgres): install pgvector from PGDG instead of building it
The base image postgis/postgis:17-3.5 is Debian 11, whose archive was decommissioned on 2026-08-31. The pgvector layer pulled 174 MB of build toolchain from deb.debian.org, and those pool files are now purged while the index still advertises them: linux-libc-dev 404'd on 44 of 44 attempts across four Fastly POPs. Since 2026-09-07 the suite's InRelease is also expired, so apt-get update itself exits 100.

PGDG ships postgresql-17-pgvector prebuilt and its bullseye-pgdg suite is alive, so reading only the pgdg.list the image writes itself removes deb.debian.org from the build entirely. Verified on the exact mirrored base image: the package installs, vector.so lands, zero bytes fetched from deb.debian.org. Signature verification is untouched - no Acquire::Check-Valid-Until.

Side effect worth naming: the old recipe cloned pgvector.git with no tag or ref, so every rebuild baked unpinned master into the central RDBMS. It is now pinned at 0.8.6-1.pgdg11+1. The base image is still EOL and its migration remains open.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 13:29:11 +02:00
kevinveenbirkenbach 179c366126 Merge pull request #600 from infinito-nexus/dependabot/npm_and_yarn/stylelint-17.15.0
chore(deps-dev): bump stylelint from 17.14.1 to 17.15.0
2026-09-08 13:28:59 +02:00
kevinveenbirkenbachandClaude Opus 5 a680b1dd21 fix(mattermost,moodle): pin litellm to a round whose gateway serves a model
svc-ai-litellm has two variants: 0 with both backends on, 1 with both off. The planner assigns a dependency round_index when it has that many variants and falls back to 0 otherwise (inventory/planner.py:111), so round 1 is the one round in which the gateway deliberately serves nothing - a topology that is green in its own job.

Commit e0048f157b gated 14 consumers on LITELLM_CHAT_MODEL_SERVED so a consumer switches itself off when no model is served. Exactly two of them pinned litellm on in round 1, and a variant's literal beats the base Jinja gate, so mattermost rendered LITELLM_SERVICE_ENABLED=true against an empty model_list. The Agents plugin then failed client-side with 'bifrost error: model is required' 47ms after the prompt, never reaching the gateway.

Moving both pins to variant 2 lands them where the fallback supplies svc-ai-litellm=v0 with svc-ai-ollama=v0. Measured with the planner: round 2 pulls both. Both polarities stay pinned, so the variant-coverage lint still holds. The contract assert now also refuses an empty model, which the stored-vs-intended comparison read as converged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 13:25:27 +02:00
kevinveenbirkenbachandClaude Opus 5 53e62c8c8c fix(suitecrm,magento): realign the DB password each app persisted at install
The CI rotation gate moves every application credential between the two deploy passes. MariaDB takes the new value, but both apps baked the old one into a persisted config at install time and their entrypoints refuse to rewrite it once the install flag exists, so every request dies with 'Access denied for user' - a 500 under compose, and under swarm a healthcheck reap that swarm restarts forever.

suitecrm gets the tasks/utils/patch/db_credentials.yml hook that sys-svc-rdbms already reaches for on every deploy, patching db_password in public/legacy/config.php. magento cannot use that hook - app/etc/env.php may carry more than one 'password' line and the shared script is a line-wise sed - so it calls its own supported writer, bin/magento setup:config:set, unguarded after the creates:-guarded install.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 13:17:14 +02:00
kevinveenbirkenbachandClaude Opus 5 da729cecec fix(sys-svc-rdbms): resolve a bind volume's device, not its unmounted _data
docker mounts a bind-backed volume's device only while a container holds it, so .Mountpoint is an empty _data whenever the stack is down - which is exactly when the credential realign runs. The script then failed its 'test -f' and exited 0, reporting ok instead of changed, so a rotated password never reached the app's persisted config.

Read .Options.device when .Options.o declares a bind; compose volumes carry no .Options and keep the .Mountpoint path. Affects every role shipping tasks/utils/patch/db_credentials.yml: friendica, joomla, kix, matomo, moodle, nextcloud, suitecrm.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 13:15:40 +02:00
kevinveenbirkenbachandClaude Opus 5 ceb7e9e628 fix(penpot,matrix,n8n,swarm-drill): repair four CI root causes
From triage of run 33923190220. Each fix is independently complete.

penpot: ansible templates delegate_to before the task's merged when, and AnsibleUndefinedVariable escapes get_delegated_vars_and_hostname. PENPOT_BACKEND_HOST_NODE is set only by the resolve include, so the bootstrap task hard-failed on every host that include skipped instead of skipping with it. A block-level when cannot prevent this; move the tasks into a dynamic include.

matrix: the MDAD reconfigure looked for volume matrix_matrix_mdad_state (real name matrix_mdad_state) and container matrix-mdad (real name matrix). Both if-bodies were skipped while the task still reported changed, so a rotated S3 secret never reached synapse and every media write got SignatureDoesNotMatch. Move the shell into its own script and pass the real names through the environment. Also add no_log to the vars.yml render, whose diff printed 16 secrets in cleartext.

n8n: when the settings file and N8N_ENCRYPTION_KEY disagree, oclif's findCommand throws for every command, so 'n8n export:credentials' is unreachable in exactly the state that would need it. The re-key is one-way; pin it rotatable: false.

swarm-drill: distros.sh sees only rc=124 and cannot tell a wedged deploy from one the sweep deadline cut short. Say so where the governor caps it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 12:46:34 +02:00
evangelostsak e117a576fa docs(requirements): check off the full variant matrix and the quality gate 2026-09-08 11:09:33 +02:00
evangelostsak d7fea8fae5 docs(web-app-openbao): correct the product name casing in the Cosmos intro 2026-09-08 05:46:08 +02:00
evangelostsak b2fb57ef63 style(web-app-openbao): apply autoformat to the credential descriptions 2026-09-08 05:36:02 +02:00
evangelostsak fe4d653cee docs: add OpenBao to the generated roles index 2026-09-08 05:35:18 +02:00
evangelostsak 44dce31596 docs(requirements): check off swarm mode, placement, update order and README coverage 2026-09-08 05:26:41 +02:00
evangelostsak f473bb2aa0 feat(web-app-prometheus): alert when OpenBao is sealed or unreachable 2026-09-08 05:25:37 +02:00
dependabot[bot] 669a69c832 chore(deps-dev): bump stylelint from 17.14.1 to 17.15.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 17.14.1 to 17.15.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/17.14.1...17.15.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 17.15.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-08 00:12:13 +00:00
dependabot[bot] e4fe365472 chore(deps-dev): bump eslint from 10.9.1 to 10.10.0
Bumps [eslint](https://github.com/eslint/eslint) from 10.9.1 to 10.10.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.9.1...v10.10.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 10.10.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-08 00:12:09 +00:00
dependabot[bot] 8e9d7a10c1 chore(deps-dev): bump @playwright/test from 1.62.1 to 1.63.0
Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.62.1 to 1.63.0.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.62.1...v1.63.0)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-version: 1.63.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-08 00:12:03 +00:00
evangelostsak d348244494 docs(requirements): check off PKI, machine identity, persistence, restore and idempotency 2026-09-07 22:13:58 +02:00
evangelostsak 9d647987c1 refactor(web-app-openbao): precompute the PKI issuing and CRL URLs 2026-09-07 22:13:49 +02:00
evangelostsak a18f8a24ee fix(web-app-openbao): stop reporting the token cleanup as a configuration change 2026-09-07 22:13:42 +02:00
evangelostsak 42070a9804 fix(web-app-openbao): derive changed state for the PKI reconciliation 2026-09-07 22:13:33 +02:00
evangelostsak 0d84d04c2f fix(web-app-openbao): derive changed state for the auth method reconciliation 2026-09-07 22:13:18 +02:00
evangelostsak 8239277fdd fix(web-app-openbao): derive changed state for the policy and KV reconciliation 2026-09-07 22:09:28 +02:00
evangelostsak 10bdd88867 fix(web-app-openbao): give the seal-status requests onion-aware timeouts 2026-09-07 08:40:55 +02:00
evangelostsak dbe6dea7c6 fix(web-app-openbao): give the RBAC denial requests onion-aware timeouts 2026-09-07 08:40:44 +02:00
evangelostsak 5b0ae2444f fix(web-app-openbao): give the LDAP login requests onion-aware timeouts 2026-09-07 08:40:33 +02:00
evangelostsak 18be72ea40 fix(web-app-openbao): give the baseline health request an onion-aware timeout 2026-09-07 08:40:09 +02:00
dependabot[bot] 284671b5f8 chore(deps-dev): bump ruff from 0.16.5 to 0.16.6
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.16.5 to 0.16.6.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.16.5...0.16.6)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.16.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-07 00:18:44 +00:00
dependabot[bot] b504a40236 chore(deps-dev): bump globals from 17.9.0 to 17.12.0
Bumps [globals](https://github.com/sindresorhus/globals) from 17.9.0 to 17.12.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.9.0...v17.12.0)

---
updated-dependencies:
- dependency-name: globals
  dependency-version: 17.12.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-07 00:15:49 +00:00
Alejandro Roman 7b573748d4 fix(stalwart): Fix nextcloud issues related to mail + gitlab 2026-09-07 03:50:25 +04:00
evangelostsak 9f950a2893 Merge upstream/main into feature/web-app-openbao 2026-09-07 00:42:06 +02:00
evangelostsak f7a187795b docs(web-app-openbao): document the seal model, bootstrap flow and restore procedure 2026-09-07 00:39:02 +02:00
evangelostsak 302d164112 test(web-app-openbao): assert the seal state and health-code contract 2026-09-07 00:38:42 +02:00
evangelostsak a48210b8e0 test(web-app-openbao): assert privileged paths and metrics are refused publicly 2026-09-07 00:38:16 +02:00
evangelostsak a5056a874a test(web-app-openbao): assert LDAP login maps groups to the expected policy 2026-09-07 00:38:00 +02:00
evangelostsak 930d8a2bc8 test(web-app-openbao): assert the Keycloak OIDC login lands authenticated 2026-09-07 00:37:37 +02:00
evangelostsak 9b84ba7a6d test(web-app-openbao): add administrator persona scenario 2026-09-07 00:37:18 +02:00
evangelostsak 678cb875c4 test(web-app-openbao): add biber persona scenario 2026-09-07 00:36:45 +02:00
evangelostsak d7abde007d test(web-app-openbao): add guest persona scenario 2026-09-07 00:36:09 +02:00
evangelostsak 8fa727a534 test(web-app-openbao): assert reachability and an initialised, unsealed node 2026-09-07 00:35:48 +02:00
evangelostsak e51e5f8c13 feat(web-app-openbao): add Playwright spec aggregator 2026-09-07 00:35:24 +02:00
evangelostsak 5654ece9e1 feat(web-app-openbao): exempt the Playwright tree from the file-layout lint 2026-09-07 00:35:06 +02:00
evangelostsak bd81005a87 feat(web-app-openbao): add read-only reader policy 2026-09-07 00:34:48 +02:00
evangelostsak f5ce342266 feat(web-app-openbao): add operator policy without administrative capabilities 2026-09-07 00:34:33 +02:00
evangelostsak 199fcb894f feat(web-app-openbao): add administrator policy 2026-09-07 00:34:12 +02:00
evangelostsak 8415090b4c feat(web-app-openbao): add ansible-admin reconciliation policy 2026-09-07 00:33:56 +02:00
evangelostsak 55785b65cc feat(web-app-openbao): expose the Playwright env contract 2026-09-07 00:33:42 +02:00
evangelostsak 55b35a9f02 feat(web-app-openbao): add native metrics scrape job 2026-09-07 00:33:29 +02:00
evangelostsak 54ece0aeff fix(web-app-openbao): deny /v1/sys/metrics on the public vhost 2026-09-07 00:33:15 +02:00
evangelostsak 66e7503f7c feat(web-app-openbao): inject the seal key through the container environment 2026-09-07 00:32:57 +02:00
evangelostsak ab19d6eb4d feat(web-app-openbao): add compose service with stop-first update order 2026-09-07 00:32:24 +02:00
evangelostsak 783d13190b feat(web-app-openbao): add server config with raft storage and static seal 2026-09-07 00:32:10 +02:00