Commit Graph
14682 Commits
Author SHA1 Message Date
kevinveenbirkenbach 8fadfc093e Merge pull request #889 from infinito-nexus/update/docker-image-versions-web-svc-collabora-20261009-25465b9
update(images): update Docker image versions (web-svc-collabora)
2026-10-09 10:13:23 +02:00
kevinveenbirkenbach 5887b13a21 Merge pull request #886 from infinito-nexus/update/version-sources-web-app-gitea-20261009-485ba91
update(versions): update pins with a declared source (web-app-gitea)
2026-10-09 10:12:43 +02:00
Prageeth Panicker 4b07cc7999 fix(web-app-wazuh): require CA_TRUST_NAME instead of falling back to a dev CA name
The platform always sets CA_TRUST_NAME together with CA_TRUST_CERT, so the infinito-dev-ca default was dead code that could hide a missing setting. The entrypoint now fails with a clear message instead.
2026-10-09 08:12:12 +00:00
kevinveenbirkenbach 6eda131207 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-09 10:09:49 +02:00
kevinveenbirkenbach a4bf481099 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-09 10:09:44 +02:00
infinito-nexus-updater[bot] b9c1d6e51c update(images): update Docker image versions (web-svc-collabora) 2026-10-09 08:07:52 +00:00
kevinveenbirkenbach 633b1dde87 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-n8n-20261008-279346d 2026-10-09 10:06:29 +02:00
kevinveenbirkenbachandClaude Opus 5.5 ad99ded588 fix(web-app-n8n): stop paging when n8n hands back a page it already sent
Both provisioners follow nextCursor for workflows and step skip for API
keys until a short page arrives. A cursor n8n repeats, or a key listing
that ignores skip, would keep that loop running forever and hang the
deploy instead of failing it.

workflows_named now remembers every cursor it followed and exits with
"FAILED listing workflows: nextCursor repeats" when one comes back.
api_keys_labelled exits when a non-empty page brings no key id it has not
already seen. Normal paging is unchanged.

Four regression tests drive both scripts against a fake API that repeats
its cursor or ignores skip; without the guards exactly those four fail.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-09 10:06:29 +02:00
kevinveenbirkenbachandClaude Opus 5.5 c715b02b31 chore(web-app-bigbluebutton): apply the quoting autoformat writes for the release regexes
Every make quality run rewrites the three http_regex patterns in
meta/services.yml from single to double quotes and leaves the tree dirty.
Both forms load to the same strings; committing the autoformat output ends
the drift.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-09 10:06:01 +02:00
kevinveenbirkenbachandClaude Opus 5.5 a17ea27a6b fix(web-app-matomo): allow the inline handler Matomo core puts in its top bar
Matomo 5.14.0 renders the "What's new" entry of its top bar, once for the
desktop menu and once for the mobile one, as <a onclick=... href="javascript:">
(plugins/CoreAdminHome/Menu.php). Without the logout service, script-src-attr
carries only 'self' 'unsafe-eval', so the browser blocks both handlers.

Playwright 1.64 (Chromium 156, f1dbd2d92f) now reports those blocks on the
console, and the administrator login spec of variant 1 fails on them. That
broke the three compose workspace jobs of main run 37856203791. The same
variant passed on Playwright 1.63 with an identical header.

script-src-attr now carries 'unsafe-inline', which every logout-enabled
deploy already serves through the logout injector. The CSP filter
deduplicates the token there, and script-src keeps the 'unsafe-inline' it
already unions in from script-src-elem.

Verified on a local variant 1 stack. The Playwright trace shows exactly
those two onclick anchors. With the header patched live, the spec passes;
with the original header restored, it fails again with the same two
violations.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-09 10:06:00 +02:00
kevinveenbirkenbachandClaude Opus 5.5 a522b459ec fix(web-app-prometheus): bind the docker data root cAdvisor actually reads
cAdvisor bound a hardcoded /var/lib/docker/. When the daemon keeps its
data root elsewhere, swarm rejects the task because the bind source does
not exist ("invalid mount config for type bind: bind source path does not
exist: /var/lib/docker/") and the stack never converges. In main run
37856203791 all 18 swarm jobs that deploy Prometheus failed this way after
scripts/tests/deploy/utils/filesystem/docker_dataroot.sh moved every node's
data root to /mnt/docker-fs/docker, on ext4, btrfs and zfs alike.

The role now reads DockerRootDir from the daemon on STACK_HOST and binds
that path as source and target. cAdvisor v0.55.1 takes its storage dir from
docker info, so the target has to follow the daemon's root instead of
staying at /var/lib/docker. The probe needs the container CLI and a running
daemon, which a single-role compose deploy only gets later from
sys-svc-container inside sys-stk-backend, so the role loads it first under
the usual run-once guard.

Verified with a local compose deploy of variant 2: the rendered compose file
carries /var/lib/docker:/var/lib/docker:ro from the probe and cAdvisor runs
healthy.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-09 09:30:43 +02:00
infinito-nexus-updater[bot] 2c3cb6964c update(versions): update pins with a declared source (web-app-gitea) 2026-10-09 07:03:40 +00:00
kevinveenbirkenbach 90cb4e8b17 Merge pull request #885 from infinito-nexus/dependabot/npm_and_yarn/eslint-plugin-playwright-2.12.1
chore(deps-dev): Bump eslint-plugin-playwright from 2.10.5 to 2.12.1
2026-10-09 08:57:25 +02:00
dependabot[bot] 0dbea6bf75 chore(deps-dev): Bump eslint-plugin-playwright from 2.10.5 to 2.12.1
Bumps [eslint-plugin-playwright](https://github.com/mskelton/eslint-plugin-playwright) from 2.10.5 to 2.12.1.
- [Release notes](https://github.com/mskelton/eslint-plugin-playwright/releases)
- [Changelog](https://github.com/mskelton/eslint-plugin-playwright/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mskelton/eslint-plugin-playwright/compare/v2.10.5...v2.12.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-playwright
  dependency-version: 2.12.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-09 03:45:35 +00:00
kevinveenbirkenbach df1a2ec2af Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-n8n-20261008-279346d 2026-10-09 00:53:35 +02:00
kevinveenbirkenbach 799b835799 Merge remote-tracking branch 'origin/main' into fix/web-app-stalwart/relay-rule/793 2026-10-09 00:53:26 +02:00
kevinveenbirkenbachandClaude Opus 5.5 ac49f7e2df fix(web-app-prometheus): let a role choose the path its readiness probe reaches
#832 probes /healthz/ready on every consumer and proxies it to the app root,
where Bridgy Fed, Hermes and the XMPP web listener answer 404 by design, so
their probe_success stayed 0. A consumer can now name the path in
services.prometheus.ready_path; the accepted status codes stay unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-09 00:52:48 +02:00
kevinveenbirkenbach 660c475035 Merge pull request #874 from infinito-nexus/fix/web-app-bigbluebutton/release-set/871
fix(web-app-bigbluebutton): move the release set through one version source
2026-10-08 23:43:28 +02:00
kevinveenbirkenbach b21b8f8dc8 Merge pull request #884 from infinito-nexus/update/docker-image-versions-svc-ai-ollama-20261008-cadfdef
update(images): update Docker image versions (svc-ai-ollama)
2026-10-08 23:12:43 +02:00
infinito-nexus-updater[bot] c154551540 update(images): update Docker image versions (svc-ai-ollama) 2026-10-08 21:04:17 +00:00
kevinveenbirkenbachandClaude Opus 5.5 64677d4790 chore: regenerate role docs and apply autoformat after #881 and #873
`make quality-high` rewrote these files on every branch: the SuiteCRM
README and the root role table lacked the Redis service #881 added, the
session path test was not formatted, and an OpenTalk secret description
from #873 was not wrapped.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 22:27:12 +02:00
kevinveenbirkenbachandClaude Opus 5.5 75f024e71a fix(web-app-n8n): page through API keys and workflows when provisioning
n8n 2 returns ten API keys and a hundred workflows per page by default. A
stale managed key behind the first page survived, and a managed workflow
behind it was created a second time. Both scripts now follow every page,
narrowed by label or name, and keep the exact match in the script.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 22:13:28 +02:00
kevinveenbirkenbach 77677a4d23 Merge remote-tracking branch 'origin/main' into fix/web-app-bigbluebutton/release-set/871 2026-10-08 20:14:39 +02:00
kevinveenbirkenbach 2898eac9b6 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-n8n-20261008-279346d 2026-10-08 20:14:29 +02:00
kevinveenbirkenbach 1e3c93ff3d Merge remote-tracking branch 'origin/main' into update/docker-image-versions-web-app-nextcloud-20261002-798c076 2026-10-08 20:14:17 +02:00
kevinveenbirkenbach 2565e5d6a3 Merge remote-tracking branch 'origin/main' into fix/web-app-stalwart/relay-rule/793 2026-10-08 20:14:07 +02:00
kevinveenbirkenbachandClaude Opus 5.5 c32984f94e fix(web-app-suitecrm): mark the Redis session store as having no Playwright surface
The Redis service #881 added is always on and only holds sessions, so no
spec can gate on it. tests/integration/roles/playwright/test_env_services_match.py
failed on main and in every pull request because the service carried
neither a REDIS_SERVICE_ENABLED flag nor the marker the other Redis
consumers use.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 20:12:43 +02:00
kevinveenbirkenbach aad1e4f627 Merge remote-tracking branch 'origin/main' into fix/web-app-bigbluebutton/release-set/871 2026-10-08 19:42:44 +02:00
kevinveenbirkenbach 9dbda607e0 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-n8n-20261008-279346d 2026-10-08 19:41:07 +02:00
kevinveenbirkenbachandClaude Opus 5.5 e4078c05fd fix(web-app-n8n): provision the MCP surfaces against the n8n 2 API
n8n 2 pages GET /rest/api-keys as {data: {items, counts, totals, owners}},
ten keys at a time, and matches `label` as a substring, so walking the body
raised "'str' object has no attribute 'get'". It also enforces API key
scopes, so activating the MCP server workflow needs `workflow:activate`.
Both scripts now read every list and create response through one
normalisation that unwraps the page, look the managed key up by label, and
name an unexpected shape by its keys only. The normalisation is taken over
from a392e2dd49 on feature/store-i18n.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 19:41:06 +02:00
kevinveenbirkenbach 6ea4062612 Merge remote-tracking branch 'origin/main' into update/docker-image-versions-web-app-nextcloud-20261002-798c076 2026-10-08 19:39:06 +02:00
kevinveenbirkenbach 3874f66ac3 Merge remote-tracking branch 'origin/main' into fix/web-app-stalwart/relay-rule/793 2026-10-08 19:38:56 +02:00
kevinveenbirkenbach 66b3c9f50f Merge pull request #881 from infinito-nexus/fix/web-app-suitecrm/redis-sessions/879
fix(web-app-suitecrm): keep sessions in Redis so replicas share them
2026-10-08 19:31:35 +02:00
kevinveenbirkenbach 6e9b4e23dc Merge remote-tracking branch 'origin/main' into fix/web-app-stalwart/relay-rule/793 2026-10-08 19:27:27 +02:00
kevinveenbirkenbachandClaude Opus 5.5 65a884beba test(web-app-stalwart): require the relay denial code in the CLI probe
The unauthenticated half of the relay probe passed on any 5xx answer.
A server that refused the recipient for another reason would have
counted as "relay denied". It now requires 550, the code Stalwart gives
for a denied relay.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 19:27:27 +02:00
kevinveenbirkenbach badc2583eb Merge remote-tracking branch 'origin/main' into fix/web-app-suitecrm/redis-sessions/879 2026-10-08 19:25:24 +02:00
kevinveenbirkenbach c2616192e5 Merge remote-tracking branch 'origin/main' into update/docker-image-versions-web-app-nextcloud-20261002-798c076 2026-10-08 19:24:57 +02:00
kevinveenbirkenbach 7c58b36ce1 Merge pull request #878 from infinito-nexus/fix/dev-compose/bake-network-entitlement/875
fix(dev-compose): build the stack image without host networking
2026-10-08 19:23:07 +02:00
kevinveenbirkenbach e66c8fdf58 Merge pull request #832 from infinito-nexus/fix/web-app-prometheus/blackbox-targets/792
fix(web-app-prometheus): probe apps where their vhosts answer
2026-10-08 19:21:53 +02:00
kevinveenbirkenbach 59006dd7af Merge pull request #880 from infinito-nexus/update/docker-image-versions-web-app-socialhome-20261008-4d88a6d
update(images): update Docker image versions (web-app-socialhome)
2026-10-08 18:45:05 +02:00
kevinveenbirkenbach 3e2e16a359 Merge pull request #877 from infinito-nexus/update/docker-image-versions-web-app-pixelfed-20261008-cb40929
update(images): update Docker image versions (web-app-pixelfed)
2026-10-08 18:44:35 +02:00
infinito-nexus-updater[bot] 057347df3f update(images): update Docker image versions (web-app-socialhome) 2026-10-08 16:44:00 +00:00
kevinveenbirkenbachandClaude Opus 5.5 3cefb01d71 fix(web-app-suitecrm): keep sessions in Redis so replicas share them
With three swarm replicas the PHP session files on the shared NFS volume
were read as empty under concurrent requests of one browser, so SuiteCRM
answered 403 on /api/graphql and dropped the session. Sessions now live in
Redis with session locking that waits like flock did; the phpredis version
is pinned in services.yml with its own update source, and the engine lookup
renders the save path.

Refs #879

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 18:31:19 +02:00
kevinveenbirkenbach 66462f2778 Merge pull request #876 from infinito-nexus/update/docker-image-versions-test-e2e-playwright-20261008-1110b3b
update(images): update Docker image versions (test-e2e-playwright)
2026-10-08 18:30:12 +02:00
kevinveenbirkenbachandClaude Opus 5.5 5baccf49cd fix(dev-compose): build the stack image without host networking
Buildx 0.38.0 gates host networking in bake behind an entitlement that
Compose never grants, so `make compose-up` failed wherever Compose had to
build the image itself. The build block asked for it without need:
scripts/image/build.sh builds the same Dockerfile on the bridge network.

Closes #875

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 17:09:10 +02:00
infinito-nexus-updater[bot] 7736755bc8 update(images): update Docker image versions (web-app-pixelfed) 2026-10-08 14:51:19 +00:00
infinito-nexus-updater[bot] f1dbd2d92f update(images): update Docker image versions (test-e2e-playwright) 2026-10-08 14:51:11 +00:00
kevinveenbirkenbach aff471a4f1 Merge remote-tracking branch 'origin/main' into fix/web-app-bigbluebutton/release-set/871 2026-10-08 16:28:30 +02:00
kevinveenbirkenbachandClaude Opus 5.5 8442880ff8 fix(web-app-opentalk): run product version 26.2.1 and follow its bundle
The web frontend, the controller and the recorder were pinned to v2.9.0,
v0.34.1 and v0.16.2, a mix of the 26.2 and the 26.1 line, and excluded
from the image updater with nocheck: docker-version. Nothing moved them.

They now sit on the set OpenTalk publishes as product version 26.2.1 in
ot-setup (v2.9.2, v0.34.5, v0.17.5), and each pin names that bundle as its
version source, so the three move together with the next product version.
The markers are gone.

Recorder v0.17 no longer reads recording jobs from RabbitMQ or logs in
with an OIDC service account. The controller starts recordings on the
recorder's REST API and both sides authenticate with API keys:
recorder.toml.j2 names the controller and the recorder's own key,
controller.toml.j2 enables roomserver.modules.recording, the secret
recorder_api_secret replaces recorder_oidc_client_secret and the Keycloak
client opentalk-recorder is no longer created.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 16:28:30 +02:00
kevinveenbirkenbachandClaude Opus 5.5 13901899d5 docs(update): state that a templated pin never moves backwards
The README said a templated pin moves whenever the assembled value
changes. newer_version() additionally rejects an assembled value that
sorts below the current pin, which
test_an_unchanged_or_older_templated_tag_reports_nothing covers.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 16:28:30 +02:00