Commit Graph
14682 Commits
Author SHA1 Message Date
kevinveenbirkenbach 34099ce550 Merge pull request #1272 from infinito-nexus/update/docker-image-versions-svc-ai-ollama-20261029-7fb6feb
update(images): update Docker image versions (svc-ai-ollama)
2026-10-29 08:47:27 +01:00
kevinveenbirkenbach 65d62be42d Merge pull request #1271 from infinito-nexus/update/repository-refs-web-app-bluesky-20261029-5af8945
update(repos): bump git refs to latest semver tags (web-app-bluesky)
2026-10-29 08:47:03 +01:00
infinito-nexus-updater[bot] 033401c584 update(images): update Docker image versions (web-app-socialhome) 2026-10-29 07:19:52 +00:00
infinito-nexus-updater[bot] 5a81c8db5f update(images): update Docker image versions (svc-ai-ollama) 2026-10-29 07:19:46 +00:00
infinito-nexus-updater[bot] 2f92e94254 update(repos): bump git refs to latest semver tags (web-app-bluesky) 2026-10-29 07:18:20 +00:00
kevinveenbirkenbach b1161f507a Merge remote-tracking branch 'origin/main' into review/dmarc-rua-1125 2026-10-29 08:14:29 +01:00
kevinveenbirkenbach b7179cda1d Merge remote-tracking branch 'origin/main' into fix/web-app-dashboard/script-src-no-unsafe-inline/1122 2026-10-29 08:14:26 +01:00
kevinveenbirkenbach 64affeb73e Merge remote-tracking branch 'origin/main' into feature/sys-ctl-hlth-runtime/vulnerable-runtimes/1127 2026-10-29 08:14:23 +01:00
kevinveenbirkenbach 935d1e3335 Merge remote-tracking branch 'origin/main' into review/swarm-ingress-1089 2026-10-29 08:14:18 +01:00
kevinveenbirkenbach c7aaf45571 Merge remote-tracking branch 'origin/main' into fix/web-app-fusiondirectory/php-hardening/1120 2026-10-29 08:14:15 +01:00
kevinveenbirkenbach 16c275a51f Merge remote-tracking branch 'origin/main' into fix/web-app-keycloak/admin-network-allowlist/1121 2026-10-29 08:14:13 +01:00
kevinveenbirkenbach 59c75fb9c3 Merge remote-tracking branch 'origin/main' into fix/sys-svc-compose-php/remove-interim-php-mitigations/1126 2026-10-29 08:14:10 +01:00
kevinveenbirkenbach d23366445b Merge remote-tracking branch 'origin/main' into fix/sys-svc-proxy/per-app-security-headers/1123 2026-10-29 08:14:07 +01:00
kevinveenbirkenbach 3fcc2ed041 Merge remote-tracking branch 'origin/main' into fix/svc-net-tor/onion-port-rendezvous/1214 2026-10-29 08:14:04 +01:00
kevinveenbirkenbach fd1e2aa534 Merge remote-tracking branch 'origin/main' into fix/worktree/swarm-lab-subnet-overflow 2026-10-29 08:14:01 +01:00
kevinveenbirkenbach 35e5500a74 Merge pull request #1270 from infinito-nexus/fix/web-app-stalwart/consent-optional
fix(web-app-stalwart): make the OAuth consent step optional in the native login spec
2026-10-29 08:13:28 +01:00
kevinveenbirkenbachandClaude Opus 5.5 a59275dd99 fix(web-app-stalwart): make the OAuth consent step optional in the native login spec
The image bump 9ed531a77e (#1254) put Stalwart v1.0.1 on main. v1.0.1
shows the password form right after the username, without the "Allow"
consent step that v1.0.0 asked for. test-login-native.js waited for that
button unconditionally, so "administrator: stalwart recovery admin
native login and logout" timed out after 60 s in every attempt
(locator.waitFor on getByRole('button', { name: /^allow$/i })).

The spec now waits for either the Allow button or the password field and
clicks Allow only when it is shown; the same check runs before the
dashboard assertion after sign-in. Both waits still fail when neither
element appears.

The change is identical to the one on feature/updater-lockdown-probe,
so the two lines do not conflict when they meet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 08:10:28 +01:00
kevinveenbirkenbach d0204aaba2 Merge remote-tracking branch 'origin/main' into review/dmarc-rua-1125 2026-10-29 01:55:10 +01:00
kevinveenbirkenbach fd5477efaf Merge remote-tracking branch 'origin/main' into fix/web-app-dashboard/script-src-no-unsafe-inline/1122 2026-10-29 01:55:06 +01:00
kevinveenbirkenbach 6a22966426 Merge remote-tracking branch 'origin/main' into feature/sys-ctl-hlth-runtime/vulnerable-runtimes/1127 2026-10-29 01:55:02 +01:00
kevinveenbirkenbach 6fb9a71af5 Merge remote-tracking branch 'origin/main' into review/swarm-ingress-1089 2026-10-29 01:54:57 +01:00
kevinveenbirkenbach 9bc67045ee Merge remote-tracking branch 'origin/main' into fix/web-app-fusiondirectory/php-hardening/1120 2026-10-29 01:54:54 +01:00
kevinveenbirkenbach e365c69ccd Merge remote-tracking branch 'origin/main' into fix/web-app-keycloak/admin-network-allowlist/1121 2026-10-29 01:54:51 +01:00
kevinveenbirkenbach 2c557fd64a Merge remote-tracking branch 'origin/main' into fix/sys-svc-compose-php/remove-interim-php-mitigations/1126 2026-10-29 01:54:49 +01:00
kevinveenbirkenbach 72a5c99b82 Merge remote-tracking branch 'origin/main' into fix/sys-svc-proxy/per-app-security-headers/1123 2026-10-29 01:54:46 +01:00
kevinveenbirkenbach 2cf941b0d0 Merge remote-tracking branch 'origin/main' into fix/svc-net-tor/onion-port-rendezvous/1214 2026-10-29 01:54:44 +01:00
kevinveenbirkenbach f87bfef5b4 Merge remote-tracking branch 'origin/main' into fix/worktree/swarm-lab-subnet-overflow 2026-10-29 01:54:41 +01:00
kevinveenbirkenbach b4fed88b58 Merge pull request #1268 from infinito-nexus/update/docker-image-versions-web-app-wordpress-20261028-7e35b8e
update(images): update Docker image versions (web-app-wordpress)
2026-10-29 01:51:59 +01:00
kevinveenbirkenbach 386d9a89cc Merge remote-tracking branch 'origin/main' into review/dmarc-rua-1125 2026-10-29 01:49:51 +01:00
kevinveenbirkenbach 704fc78de6 Merge remote-tracking branch 'origin/main' into fix/web-app-dashboard/script-src-no-unsafe-inline/1122 2026-10-29 01:49:48 +01:00
kevinveenbirkenbach e3ed583ce1 Merge remote-tracking branch 'origin/main' into feature/sys-ctl-hlth-runtime/vulnerable-runtimes/1127 2026-10-29 01:49:46 +01:00
kevinveenbirkenbach c01cb6e6e7 Merge remote-tracking branch 'origin/main' into review/swarm-ingress-1089 2026-10-29 01:49:43 +01:00
kevinveenbirkenbach 18ed428e35 Merge remote-tracking branch 'origin/main' into fix/web-app-fusiondirectory/php-hardening/1120 2026-10-29 01:49:41 +01:00
kevinveenbirkenbach e9547d0618 Merge remote-tracking branch 'origin/main' into fix/web-app-keycloak/admin-network-allowlist/1121 2026-10-29 01:49:38 +01:00
kevinveenbirkenbach b0c7f52e07 Merge remote-tracking branch 'origin/main' into fix/sys-svc-compose-php/remove-interim-php-mitigations/1126 2026-10-29 01:49:36 +01:00
kevinveenbirkenbach 666ed3c1ac Merge remote-tracking branch 'origin/main' into fix/sys-svc-proxy/per-app-security-headers/1123 2026-10-29 01:49:34 +01:00
kevinveenbirkenbach a8187b70a2 Merge remote-tracking branch 'origin/main' into fix/svc-net-tor/onion-port-rendezvous/1214 2026-10-29 01:49:31 +01:00
kevinveenbirkenbach cc588d7950 Merge remote-tracking branch 'origin/main' into fix/worktree/swarm-lab-subnet-overflow 2026-10-29 01:49:29 +01:00
kevinveenbirkenbach cf1bc81302 Merge pull request #1267 from infinito-nexus/update/docker-image-versions-web-app-erpnext-20261028-1ab20b9
update(images): update Docker image versions (web-app-erpnext)
2026-10-29 01:48:15 +01:00
kevinveenbirkenbach 72a2f3083b Merge pull request #1269 from infinito-nexus/fix/format/autoformat-drift
style: apply the autoformat output to two files on main
2026-10-29 01:46:41 +01:00
kevinveenbirkenbachandClaude Opus 5.5 c2577560f8 fix(swarm): bound the in-container probes and retry only safe fider POSTs
Review follow-up on the in-container probes of gitea, shopware and fider.

- fider: the tenant POST over /dev/tcp waited on `head` without a bound,
  so a peer that accepts and stays silent blocked the task for good. It
  now runs under `timeout` (TIMEOUT_FACTOR-scaled 30 s, the old uri
  socket timeout) and reads the status line with the `read` builtin, so
  the bound kills the whole probe. Only outcomes Fider never committed
  are retried: a refused connect and a 5xx (Fider rolls the request
  transaction back on a handler error). A timeout or a closed socket
  after the request was sent fails the task instead of resending the
  POST; the next run's tenant count decides again.
- fider: both bootstrap tasks get `no_log` behind MASK_CREDENTIALS_IN_LOGS,
  as the body carries the administrator's name and email.
- shopware: each wget probe runs under `timeout`, as busybox wget waits
  900 s per read by default.
- shopware, gitea: the first readiness wait derives its retries from
  lookup('timeout', 300) again, the budget of the wait_for it replaced,
  so TIMEOUT_FACTOR scales it.

Refs #1089

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 01:41:55 +01:00
kevinveenbirkenbachandClaude Opus 5.5 551ee32291 style: apply the autoformat output to two files on main
`make autoformat` rewrites roles/web-app-seaweedfs/vars/main.yml and
tests/unit/python/roles/web-app-stalwart/test_store_guard.py on every
checkout of main, so every quality gate on every branch leaves them as
unstaged changes, and the gate lints a tree the commit does not carry.

The YAML change folds one line of the `>-` scalar
SEAWEEDFS_S3_ADMIN_CURL; the parsed value is identical. The Python
change is ruff's line wrapping only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 01:41:51 +01:00
kevinveenbirkenbach 3ebe8c03e9 Merge remote-tracking branch 'origin/main' into review/dmarc-rua-1125 2026-10-29 01:17:53 +01:00
kevinveenbirkenbachandClaude Opus 5.5 191afe48b2 fix(mail): harden the DMARC rua checks after review
The Mailu assert accepted any non-empty forward on the rua user, so a
forward to a user without a mailbox let the deploy publish an rua address
whose alias delivers nowhere. A forward now satisfies the assert only when
its target carries a mailbox account.

production_facts.py let a later duplicate tag overwrite an earlier one, so
a record with two rua tags passed although receivers discard it (DKIM
tag-list rules, adopted by RFC 7489). dmarc_tags now raises on a duplicate
tag and check_dmarc reports the record as invalid. The rua comparison also
took the raw URI text, so a percent-encoded address or one followed by
mailto header fields never matched; the address is now cut at '?' and
percent-decoded after the size suffix is removed (RFC 6068).

Refs #1125

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 01:17:51 +01:00
kevinveenbirkenbach a8000d7139 Merge pull request #1260 from infinito-nexus/documentation/branch-protection-ruleset
docs(github): match branch protection docs to the live ruleset
2026-10-29 01:05:09 +01:00
kevinveenbirkenbachandClaude Opus 5.5 8132fed660 fix(worktree): move the swarm lab prefix out of the Tor virtual range
a7685e3b21 derived the worktree lab subnet as 10.244.<slot>.0/24, which
lies inside NETWORK_TOR_VIRTUAL_CIDR (10.240.0.0/12). On a swarm with
svc-net-tor the nft output chain redirects every TCP connection to that
range into Tor's TransPort, so the nodes could not reach each other: in
the slot-114 worktree `curl http://10.244.114.10:5000/v2/` timed out on
the manager itself and svc-prx-openresty died pushing to the stack
registry with Client.Timeout.

The prefix is now 10.160.<slot>, outside every range the platform
reserves in group_vars/all/08_networks.yml.

The lint now reads the reserved ranges from that file instead of a
hardcoded list: NETWORK_TOR_VIRTUAL_CIDR, NETWORK_MESH_POOL,
NETWORK_DOCKER_ADDRESS_POOLS, NETWORK_NESTED_DOCKER_ADDRESS_POOLS and
NETWORK_NESTED_DOCKER_BIP, plus the primary lab subnet and the worktree
INFINITO_SUBNET range. Against the 10.244 prefix it fails every slot on
the Tor range.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 01:03:04 +01:00
infinito-nexus-updater[bot] 153d52e79f update(images): update Docker image versions (web-app-wordpress) 2026-10-28 23:40:23 +00:00
infinito-nexus-updater[bot] 0fbe24c713 update(images): update Docker image versions (web-app-erpnext) 2026-10-28 23:40:18 +00:00
kevinveenbirkenbach 1be10e6e44 Merge remote-tracking branch 'origin/main' into fix/web-app-dashboard/script-src-no-unsafe-inline/1122 2026-10-29 00:27:51 +01:00
kevinveenbirkenbachandClaude Opus 5.5 d721e887a5 fix(web-app-dashboard): run inline scripts by hash instead of 'unsafe-inline'
The dashboard sent script-src 'unsafe-inline' from two sources. Its own
meta/csp.yml granted it to script-src-attr, and build_csp_header adds it
to script-src-elem and script-src-attr for every app with
services.logout.enabled. Both reach script-src through the family union,
and the token in script-src-elem also closes the hash gate, so the
hashes that sys-front-inj-javascript, -dashboard, -logout and -matomo
register for their inline snippets were discarded.

build_csp_header now skips the logout grant on a directive whose
meta/csp.yml sets unsafe-inline: false. Only web-app-dashboard sets it:
on script-src and script-src-elem. Its injected snippets now run by hash
and the logout one-liner is hashed like the others. A render of
build_csp_header for every role, variant, logout on/off and tor on/off
(1712 headers) differs from origin/main only in the 8 web-app-dashboard
headers; the 86 other roles that declare a logout service render
byte-identical policies.

script-src-attr keeps 'unsafe-inline': port-ui 2.2.2 still renders
inline event handlers (menu onclick entries, openDynamicPopup,
closeAllModals, the card image onerror). It goes once the port-ui
release without inline handlers is pinned and header.yml.j2 moves from
onclick to action.

The dashboard Playwright spec asserts that script-src and script-src-elem
carry no 'unsafe-inline' on the landing page, next to its existing check
for CSP violations.

Refs #1122

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 00:27:49 +01:00