Compare commits

...
Author SHA1 Message Date
admin 38ae3ddf0b Merge pull request 'fix(manifest): provenRestore=true (restore-drill 2026-09-29)' (#521) from fix/prod-restore-2026-09-29 into main
masterplan-lock / check (push) Successful in 6s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 8s
CI (SIAX Cloud) / quality (push) Failing after 9s
CI (SIAX Cloud) / security (push) Failing after 9s
CI (SIAX Cloud) / sonar (push) Failing after 9s
Security Scan (SIAX Cloud) / security (push) Successful in 14s
CI (SIAX Cloud) / integration (push) Successful in 1m6s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 59s
Deploy to Coolify / deploy (push) Successful in 1m23s
2026-11-09 12:14:54 +00:00
admin a7a4295043 Merge branch 'main' into fix/prod-restore-2026-09-29
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 5s
masterplan-lock / check (pull_request) Successful in 4s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 15s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Failing after 20s
CI (SIAX Cloud) / quality (pull_request) Failing after 20s
CI (SIAX Cloud) / security (pull_request) Failing after 20s
CI (SIAX Cloud) / integration (pull_request) Successful in 10m18s
2026-11-09 12:14:42 +00:00
admin f1d47ffb2e Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (b1ae910d64)' (#520) from fix/prod-evidence-2026-09-29 into main
masterplan-lock / check (push) Successful in 5s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 8s
CI (SIAX Cloud) / quality (push) Canceled after 15s
CI (SIAX Cloud) / integration (push) Canceled after 14s
CI (SIAX Cloud) / security (push) Canceled after 14s
CI (SIAX Cloud) / sonar (push) Canceled after 14s
Security Scan (SIAX Cloud) / security (push) Canceled after 14s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m5s
Deploy to Coolify / deploy (push) Successful in 1m20s
2026-11-09 12:14:39 +00:00
siax-bot 8e7c228bd2 fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-b1ae910d64
masterplan-lock / check (push) Successful in 4s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 4s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 15s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 17s
CI (SIAX Cloud) / integration (pull_request) Successful in 42s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m18s
2026-11-09 09:32:10 +01:00
admin b1ae910d64 Merge pull request 'fix(manifest): provenRestore=true (restore-drill 2026-09-29)' (#519) from fix/prod-restore-2026-09-29 into main
CI (SIAX Cloud) / security (push) Failing after 13s
CI (SIAX Cloud) / sonar (push) Failing after 13s
CI (SIAX Cloud) / Component conformance (blocking) (push) Failing after 12s
CI (SIAX Cloud) / integration (push) Failing after 20s
Security Scan (SIAX Cloud) / security (push) Failing after 21s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Failing after 1m32s
Deploy to Coolify / deploy (push) Failing after 21s
CI (SIAX Cloud) / quality (push) Successful in 10m31s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 6s
CI (SIAX Cloud) / security (pull_request) Successful in 15s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 15s
masterplan-lock / check (push) Failing after 20s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 37s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m8s
CI (SIAX Cloud) / integration (pull_request) Successful in 10m34s
2026-11-09 07:50:38 +00:00
admin 91f270ea19 Merge branch 'main' into fix/prod-restore-2026-09-29
CI (SIAX Cloud) / sonar (pull_request) Skipped
CI (SIAX Cloud) / integration (pull_request) Failing after 1s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Failing after 1s
CI (SIAX Cloud) / security (pull_request) Failing after 1s
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 10s
Security Scan (SIAX Cloud) / security (pull_request) Failing after 20s
CI (SIAX Cloud) / quality (pull_request) Successful in 57s
2026-11-09 07:50:27 +00:00
admin ac3a95f320 Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (419c2d3f18)' (#518) from fix/prod-evidence-2026-09-29 into main
masterplan-lock / check (push) Successful in 4s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Failing after 8s
CI (SIAX Cloud) / Component conformance (blocking) (push) Failing after 8s
Security Scan (SIAX Cloud) / security (push) Failing after 8s
CI (SIAX Cloud) / quality (push) Failing after 9s
CI (SIAX Cloud) / security (push) Failing after 15s
CI (SIAX Cloud) / integration (push) Canceled after 16s
CI (SIAX Cloud) / sonar (push) Canceled after 15s
Deploy to Coolify / deploy (push) Failing after 1m30s
2026-11-09 07:50:23 +00:00
siax-bot fab0a53573 fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-419c2d3f18
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 4s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 7s
CI (SIAX Cloud) / security (pull_request) Successful in 15s
CI (SIAX Cloud) / integration (pull_request) Successful in 27s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 32s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m3s
2026-11-09 05:30:19 +01:00
admin 419c2d3f18 Merge pull request 'fix(manifest): provenRestore=true (restore-drill 2026-09-29)' (#517) from fix/prod-restore-2026-09-29 into main
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 11s
Security Scan (SIAX Cloud) / security (push) Successful in 23s
CI (SIAX Cloud) / security (push) Successful in 25s
CI (SIAX Cloud) / sonar (push) Successful in 1m11s
CI (SIAX Cloud) / integration (push) Successful in 1m11s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Failing after 2m47s
CI (SIAX Cloud) / quality (push) Successful in 10m9s
Deploy to Coolify / deploy (push) Failing after 10m31s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 5s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 8s
masterplan-lock / check (pull_request) Successful in 14s
CI (SIAX Cloud) / security (pull_request) Successful in 27s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 41s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m20s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m4s
2026-11-09 03:31:40 +00:00
admin e96e015722 Merge branch 'main' into fix/prod-restore-2026-09-29
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 3s
masterplan-lock / check (push) Successful in 7s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 14s
CI (SIAX Cloud) / security (pull_request) Successful in 17s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 54s
CI (SIAX Cloud) / integration (pull_request) Successful in 10m11s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m18s
2026-11-09 03:31:28 +00:00
admin 344decd285 Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (ebfa17028d)' (#516) from fix/prod-evidence-2026-09-29 into main
masterplan-lock / check (push) Successful in 5s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 10s
CI (SIAX Cloud) / quality (push) Canceled after 14s
CI (SIAX Cloud) / integration (push) Canceled after 14s
CI (SIAX Cloud) / security (push) Canceled after 14s
CI (SIAX Cloud) / sonar (push) Canceled after 13s
Security Scan (SIAX Cloud) / security (push) Canceled after 13s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m45s
Deploy to Coolify / deploy (push) Successful in 1m52s
2026-11-09 03:31:25 +00:00
siax-bot 32cd714126 fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-ebfa17028d
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 3s
masterplan-lock / check (push) Successful in 6s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 7s
CI (SIAX Cloud) / security (pull_request) Successful in 25s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 40s
CI (SIAX Cloud) / quality (pull_request) Successful in 45s
CI (SIAX Cloud) / integration (pull_request) Successful in 10m35s
2026-11-09 01:30:29 +01:00
admin ebfa17028d Merge pull request 'docs(identity): 0pt workload identity — målbild, design och blockerare' (#502) from docs/workload-identity-20261107 into main
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 17s
CI (SIAX Cloud) / security (push) Successful in 23s
Security Scan (SIAX Cloud) / security (push) Successful in 21s
CI (SIAX Cloud) / sonar (push) Successful in 1m33s
CI (SIAX Cloud) / quality (push) Successful in 1m43s
Deploy to Coolify / deploy (push) Successful in 2m41s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 2m42s
CI (SIAX Cloud) / integration (push) Successful in 9m56s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 5s
masterplan-lock / check (pull_request) Successful in 5s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 8s
CI (SIAX Cloud) / security (pull_request) Successful in 14s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 15s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m47s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m33s
2026-11-08 23:38:28 +00:00
admin 5a8d26eee6 Merge pull request 'fix(manifest): provenRestore=true (restore-drill 2026-09-29)' (#515) from fix/prod-restore-2026-09-29 into main
masterplan-lock / check (push) Successful in 6s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 8s
CI (SIAX Cloud) / security (push) Successful in 15s
Security Scan (SIAX Cloud) / security (push) Successful in 15s
CI (SIAX Cloud) / sonar (push) Successful in 1m47s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m20s
Deploy to Coolify / deploy (push) Successful in 1m29s
CI (SIAX Cloud) / integration (push) Successful in 9m49s
CI (SIAX Cloud) / quality (push) Successful in 10m22s
2026-11-08 23:21:42 +00:00
admin d301f6e0cc Merge branch 'main' into fix/prod-restore-2026-09-29
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 5s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 17s
CI (SIAX Cloud) / security (pull_request) Successful in 21s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 21s
CI (SIAX Cloud) / integration (pull_request) Successful in 43s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m8s
2026-11-08 23:21:31 +00:00
admin 85de12fdfe Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (6b57f7cb9d)' (#514) from fix/prod-evidence-2026-09-29 into main
masterplan-lock / check (push) Successful in 4s
CI (SIAX Cloud) / quality (push) Canceled after 16s
CI (SIAX Cloud) / integration (push) Canceled after 16s
CI (SIAX Cloud) / security (push) Canceled after 16s
CI (SIAX Cloud) / sonar (push) Canceled after 16s
CI (SIAX Cloud) / Component conformance (blocking) (push) Canceled after 16s
Security Scan (SIAX Cloud) / security (push) Canceled after 17s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m24s
Deploy to Coolify / deploy (push) Successful in 1m29s
2026-11-08 23:21:27 +00:00
siax-bot 966a36f898 fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-6b57f7cb9d
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 5s
masterplan-lock / check (pull_request) Successful in 6s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 6s
CI (SIAX Cloud) / security (pull_request) Successful in 14s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 39s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m49s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m0s
2026-11-08 21:30:19 +01:00
admin 6b57f7cb9d Merge pull request 'fix(manifest): provenRestore=true (restore-drill 2026-09-29)' (#513) from fix/prod-restore-2026-09-29 into main
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 8s
CI (SIAX Cloud) / security (push) Successful in 14s
CI (SIAX Cloud) / integration (push) Successful in 28s
CI (SIAX Cloud) / sonar (push) Successful in 1m1s
Security Scan (SIAX Cloud) / security (push) Successful in 1m17s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m26s
Deploy to Coolify / deploy (push) Successful in 1m11s
CI (SIAX Cloud) / quality (push) Successful in 10m3s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 8s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 9s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 17s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m48s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m25s
2026-11-08 19:36:36 +00:00
admin c15b4088c3 Merge branch 'main' into fix/prod-restore-2026-09-29
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 5s
masterplan-lock / check (pull_request) Successful in 5s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 9s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 22s
CI (SIAX Cloud) / security (pull_request) Successful in 43s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m47s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m3s
2026-11-08 19:36:24 +00:00
admin fd73f24193 Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (72d6d1e8d1)' (#512) from fix/prod-evidence-2026-09-29 into main
masterplan-lock / check (push) Successful in 5s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 9s
CI (SIAX Cloud) / quality (push) Canceled after 14s
CI (SIAX Cloud) / integration (push) Canceled after 14s
CI (SIAX Cloud) / security (push) Canceled after 14s
CI (SIAX Cloud) / sonar (push) Canceled after 14s
Security Scan (SIAX Cloud) / security (push) Canceled after 14s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 57s
Deploy to Coolify / deploy (push) Successful in 1m17s
2026-11-08 19:36:21 +00:00
siax-bot 5795b3503f fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-72d6d1e8d1
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 5s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 16s
masterplan-lock / check (push) Successful in 25s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 26s
CI (SIAX Cloud) / security (pull_request) Successful in 31s
CI (SIAX Cloud) / integration (pull_request) Successful in 10m30s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m33s
2026-11-08 17:30:22 +01:00
admin 72d6d1e8d1 Merge pull request 'fix(manifest): provenRestore=true (restore-drill 2026-09-29)' (#511) from fix/prod-restore-2026-09-29 into main
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 16s
Security Scan (SIAX Cloud) / security (push) Successful in 20s
CI (SIAX Cloud) / security (push) Successful in 1m5s
CI (SIAX Cloud) / integration (push) Successful in 1m7s
CI (SIAX Cloud) / sonar (push) Successful in 1m18s
CI (SIAX Cloud) / quality (push) Successful in 1m39s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 50s
Deploy to Coolify / deploy (push) Successful in 43s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 5s
masterplan-lock / check (pull_request) Successful in 5s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 7s
CI (SIAX Cloud) / security (pull_request) Successful in 17s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 16s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m48s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m5s
2026-11-08 15:42:04 +00:00
admin 1b94cd7c80 Merge branch 'main' into fix/prod-restore-2026-09-29
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 6s
masterplan-lock / check (pull_request) Successful in 8s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 15s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 28s
CI (SIAX Cloud) / security (pull_request) Successful in 29s
CI (SIAX Cloud) / quality (pull_request) Successful in 56s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m55s
2026-11-08 15:41:53 +00:00
admin 9dcf3c24fa Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (5010a6853b)' (#510) from fix/prod-evidence-2026-09-29 into main
masterplan-lock / check (push) Successful in 6s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 9s
CI (SIAX Cloud) / quality (push) Canceled after 14s
CI (SIAX Cloud) / integration (push) Canceled after 14s
CI (SIAX Cloud) / security (push) Canceled after 13s
CI (SIAX Cloud) / sonar (push) Canceled after 13s
Security Scan (SIAX Cloud) / security (push) Canceled after 14s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 2m1s
Deploy to Coolify / deploy (push) Successful in 2m16s
2026-11-08 15:41:49 +00:00
siax-bot a0eba858ab fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-5010a6853b
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 7s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 8s
CI (SIAX Cloud) / security (pull_request) Successful in 17s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 17s
CI (SIAX Cloud) / integration (pull_request) Successful in 27s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m3s
2026-11-08 13:30:18 +01:00
admin 5010a6853b Merge pull request 'fix(manifest): provenRestore=true (restore-drill 2026-09-29)' (#509) from fix/prod-restore-2026-09-29 into main
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 8s
CI (SIAX Cloud) / security (push) Successful in 16s
Security Scan (SIAX Cloud) / security (push) Successful in 20s
CI (SIAX Cloud) / sonar (push) Successful in 1m20s
CI (SIAX Cloud) / integration (push) Successful in 1m21s
CI (SIAX Cloud) / quality (push) Successful in 1m47s
Deploy to Coolify / deploy (push) Successful in 2m36s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 2m43s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 5s
masterplan-lock / check (push) Successful in 8s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
CI (SIAX Cloud) / quality (pull_request) Successful in 53s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 1m13s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 1m13s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m50s
2026-11-08 11:57:40 +00:00
admin b25c164837 Merge branch 'main' into fix/prod-restore-2026-09-29
CI (SIAX Cloud) / integration (pull_request) Failing after 0s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 5s
masterplan-lock / check (push) Successful in 6s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 9s
CI (SIAX Cloud) / security (pull_request) Successful in 15s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 34s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m36s
2026-11-08 11:57:29 +00:00
admin be0acfd12c Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (f5600a25b9)' (#508) from fix/prod-evidence-2026-09-29 into main
masterplan-lock / check (push) Successful in 5s
CI (SIAX Cloud) / quality (push) Canceled after 14s
CI (SIAX Cloud) / integration (push) Canceled after 14s
CI (SIAX Cloud) / security (push) Canceled after 14s
CI (SIAX Cloud) / sonar (push) Canceled after 13s
CI (SIAX Cloud) / Component conformance (blocking) (push) Canceled after 13s
Security Scan (SIAX Cloud) / security (push) Canceled after 14s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m45s
Deploy to Coolify / deploy (push) Successful in 1m49s
2026-11-08 11:57:26 +00:00
siax-bot 5a56cc9a6e fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-f5600a25b9
CI (SIAX Cloud) / integration (pull_request) Failing after 0s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 4s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 11s
masterplan-lock / check (push) Successful in 9s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 17s
CI (SIAX Cloud) / security (pull_request) Successful in 32s
CI (SIAX Cloud) / quality (pull_request) Successful in 40s
2026-11-08 05:30:28 +01:00
admin f5600a25b9 Merge pull request 'fix(manifest): provenRestore=true (restore-drill 2026-09-29)' (#507) from fix/prod-restore-2026-09-29 into main
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 13s
CI (SIAX Cloud) / security (push) Successful in 14s
Security Scan (SIAX Cloud) / security (push) Successful in 25s
CI (SIAX Cloud) / sonar (push) Successful in 1m3s
CI (SIAX Cloud) / integration (push) Successful in 1m14s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 41s
Deploy to Coolify / deploy (push) Successful in 1m21s
CI (SIAX Cloud) / quality (push) Successful in 10m41s
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 3s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 8s
CI (SIAX Cloud) / sonar (pull_request) Skipped
Security Scan (SIAX Cloud) / security (pull_request) Failing after 40s
CI (SIAX Cloud) / security (pull_request) Failing after 1m43s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m46s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m2s
2026-11-08 03:58:42 +00:00
admin d85f5ae559 Merge branch 'main' into fix/prod-restore-2026-09-29
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 4s
masterplan-lock / check (push) Successful in 9s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 11s
CI (SIAX Cloud) / security (pull_request) Successful in 15s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 20s
CI (SIAX Cloud) / integration (pull_request) Successful in 46s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m18s
2026-11-08 03:58:30 +00:00
admin 246589bde8 Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (9aef3cd97f)' (#506) from fix/prod-evidence-2026-09-29 into main
masterplan-lock / check (push) Successful in 4s
CI (SIAX Cloud) / quality (push) Canceled after 16s
CI (SIAX Cloud) / integration (push) Canceled after 16s
CI (SIAX Cloud) / security (push) Canceled after 16s
CI (SIAX Cloud) / sonar (push) Canceled after 16s
CI (SIAX Cloud) / Component conformance (blocking) (push) Canceled after 16s
Security Scan (SIAX Cloud) / security (push) Canceled after 17s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m39s
Deploy to Coolify / deploy (push) Successful in 1m42s
2026-11-08 03:58:27 +00:00
siax-bot fdba72bd35 fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-9aef3cd97f
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 7s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 20s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 25s
CI (SIAX Cloud) / quality (pull_request) Successful in 43s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m19s
2026-11-08 01:30:28 +01:00
admin 9aef3cd97f Merge pull request 'fix(manifest): provenRestore=true (restore-drill 2026-09-29)' (#505) from fix/prod-restore-2026-09-29 into main
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 10s
CI (SIAX Cloud) / security (push) Successful in 15s
Security Scan (SIAX Cloud) / security (push) Successful in 18s
CI (SIAX Cloud) / integration (push) Successful in 27s
CI (SIAX Cloud) / sonar (push) Successful in 1m11s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m25s
Deploy to Coolify / deploy (push) Successful in 1m37s
CI (SIAX Cloud) / quality (push) Successful in 10m15s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 9s
masterplan-lock / check (push) Successful in 11s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 14s
CI (SIAX Cloud) / security (pull_request) Successful in 21s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 40s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m47s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m0s
2026-11-07 23:21:36 +00:00
admin 34ef39e5f5 Merge branch 'main' into fix/prod-restore-2026-09-29
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 12s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 15s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 24s
CI (SIAX Cloud) / security (pull_request) Successful in 26s
masterplan-lock / check (pull_request) Successful in 30s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m52s
CI (SIAX Cloud) / quality (pull_request) Successful in 11m18s
2026-11-07 23:21:24 +00:00
admin 43ec05ade2 Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (a0e701efc8)' (#504) from fix/prod-evidence-2026-09-29 into main
CI (SIAX Cloud) / quality (push) Canceled after 14s
CI (SIAX Cloud) / integration (push) Canceled after 13s
CI (SIAX Cloud) / security (push) Canceled after 12s
CI (SIAX Cloud) / sonar (push) Canceled after 12s
CI (SIAX Cloud) / Component conformance (blocking) (push) Canceled after 12s
Security Scan (SIAX Cloud) / security (push) Canceled after 13s
masterplan-lock / check (push) Successful in 14s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m45s
Deploy to Coolify / deploy (push) Successful in 1m50s
2026-11-07 23:21:21 +00:00
siax-bot be6b92fb82 fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-a0e701efc8
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 8s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 8s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 15s
CI (SIAX Cloud) / security (pull_request) Successful in 32s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m9s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m28s
2026-11-07 21:30:19 +01:00
admin a0e701efc8 Merge pull request 'fix(manifest): provenRestore=true (restore-drill 2026-09-29)' (#493) from fix/prod-restore-2026-09-29 into main
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 9s
Security Scan (SIAX Cloud) / security (push) Successful in 20s
CI (SIAX Cloud) / security (push) Successful in 24s
CI (SIAX Cloud) / sonar (push) Successful in 1m13s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 3m44s
Deploy to Coolify / deploy (push) Successful in 3m34s
CI (SIAX Cloud) / integration (push) Successful in 10m0s
CI (SIAX Cloud) / quality (push) Successful in 10m1s
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 4s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 8s
CI (SIAX Cloud) / sonar (pull_request) Skipped
Security Scan (SIAX Cloud) / security (pull_request) Successful in 16s
CI (SIAX Cloud) / security (pull_request) Successful in 30s
CI (SIAX Cloud) / quality (pull_request) Successful in 42s
CI (SIAX Cloud) / integration (pull_request) Successful in 59s
2026-11-07 19:10:33 +00:00
admin 48fbe6b184 Merge branch 'main' into fix/prod-restore-2026-09-29
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 6s
masterplan-lock / check (pull_request) Successful in 6s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 11s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 24s
CI (SIAX Cloud) / security (pull_request) Successful in 26s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m55s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m10s
2026-11-07 19:10:22 +00:00
admin b90cded2d6 Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (b2499ace79)' (#500) from fix/prod-evidence-2026-09-29 into main
masterplan-lock / check (push) Successful in 6s
CI (SIAX Cloud) / quality (push) Canceled after 16s
CI (SIAX Cloud) / integration (push) Canceled after 16s
CI (SIAX Cloud) / security (push) Canceled after 16s
CI (SIAX Cloud) / sonar (push) Canceled after 16s
CI (SIAX Cloud) / Component conformance (blocking) (push) Canceled after 16s
Security Scan (SIAX Cloud) / security (push) Canceled after 16s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m26s
Deploy to Coolify / deploy (push) Successful in 1m47s
2026-11-07 19:10:17 +00:00
admin aba909c29a Merge branch 'main' into fix/prod-evidence-2026-09-29
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 10s
masterplan-lock / check (pull_request) Successful in 9s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 13s
CI (SIAX Cloud) / security (pull_request) Successful in 20s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 49s
CI (SIAX Cloud) / quality (pull_request) Successful in 54s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m6s
2026-11-07 19:10:04 +00:00
admin e00c7b0fc5 Merge pull request 'docs(runbook): legacy-instansaudit server5 (0pt + L0RE)' (#501) from docs/legacy-instances-20261107 into main
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 8s
CI (SIAX Cloud) / security (push) Successful in 16s
Security Scan (SIAX Cloud) / security (push) Successful in 15s
CI (SIAX Cloud) / quality (push) Successful in 42s
CI (SIAX Cloud) / sonar (push) Successful in 56s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 2m25s
Deploy to Coolify / deploy (push) Successful in 2m17s
CI (SIAX Cloud) / integration (push) Successful in 10m2s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 5s
masterplan-lock / check (push) Successful in 7s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 9s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 21s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m45s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m26s
2026-11-07 17:34:12 +00:00
admin de76f3795b Merge pull request 'fix(canonical): RFC3339-serialisering av timestamptz' (#498) from fix/canonical-iso-timestamps-20261107 into main
CI (SIAX Cloud) / quality (push) Canceled after 5s
CI (SIAX Cloud) / integration (push) Canceled after 5s
CI (SIAX Cloud) / security (push) Canceled after 5s
CI (SIAX Cloud) / sonar (push) Canceled after 5s
CI (SIAX Cloud) / Component conformance (blocking) (push) Canceled after 4s
masterplan-lock / check (push) Successful in 5s
Security Scan (SIAX Cloud) / security (push) Canceled after 5s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m1s
Deploy to Coolify / deploy (push) Successful in 1m12s
2026-11-07 17:34:07 +00:00
admin 3421748f07 Merge branch 'main' into docs/legacy-instances-20261107
CI (SIAX Cloud) / sonar (pull_request) Skipped
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 13s
masterplan-lock / check (pull_request) Successful in 13s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 27s
masterplan-lock / check (push) Successful in 34s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m18s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m29s
2026-11-07 17:19:41 +00:00
admin 9ac681ee27 Merge branch 'main' into fix/canonical-iso-timestamps-20261107
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 4s
masterplan-lock / check (pull_request) Successful in 10s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 20s
CI (SIAX Cloud) / security (pull_request) Successful in 22s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 23s
CI (SIAX Cloud) / integration (pull_request) Successful in 10m0s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m27s
2026-11-07 17:19:39 +00:00
admin cdbb10b8e3 Merge pull request 'test(lint): typa idempotency-store (fixar quality-gaten som blockerar alla PR)' (#503) from fix/lint-siax-access-idempotency into main
masterplan-lock / check (push) Successful in 4s
CI (SIAX Cloud) / security (push) Successful in 23s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 26s
Security Scan (SIAX Cloud) / security (push) Successful in 37s
CI (SIAX Cloud) / sonar (push) Successful in 1m22s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 2m48s
Deploy to Coolify / deploy (push) Successful in 2m55s
CI (SIAX Cloud) / integration (push) Successful in 9m58s
CI (SIAX Cloud) / quality (push) Successful in 10m34s
2026-11-07 17:19:35 +00:00
SIAX Agent 6bbbcf75d4 test(lint): typa idempotency-store i stället för any (blockerar quality-gaten)
masterplan-lock / check (push) Successful in 4s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 7s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 15s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 15s
CI (SIAX Cloud) / security (pull_request) Successful in 21s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m7s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m22s
tests/siax-access/idempotency.test.ts hade fyra @typescript-eslint/no-explicit-any
vilket fick quality-jobbet att exita 1 (133 testfiler gröna men lint röd) och
därmed blockerade alla PR:er. Använder exporterade IdempotencyStore<unknown,
{x:number}>; eslint rent, 7/7 tester gröna.
2026-11-07 18:15:04 +01:00
SIAX Agent 8741169259 docs(identity): 0pt workload identity — målbild, integrationsdesign och blockerare
masterplan-lock / check (push) Successful in 4s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 4s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 9s
CI (SIAX Cloud) / security (pull_request) Successful in 20s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 22s
CI (SIAX Cloud) / integration (pull_request) Successful in 30s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m9s
Nuläge (delad INTERNAL_TOKEN + serverkonfigurerad tenant-allowlist) mot CL0UD:s
redan existerande service-account/workload-token-maskineri (aud:0pt, 10 min,
capabilities). Design: verifiering före route-logik, tenant från claim,
capability per route, dual-accept under övergång, negativa tester i samma svit.

Provisionering är blockerad: /account/service-accounts kräver operator-session
(307 -> /login) och Zitadel admin-PAT är invalid (AUTH-7fs1e).
2026-11-07 18:14:23 +01:00
admin 58dca92d9f Merge pull request 'fix(sql): 023 grants för canonical-tabellerna till app-rollen' (#499) from fix/canonical-grants-20261107 into main
masterplan-lock / check (push) Successful in 9s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 15s
CI (SIAX Cloud) / security (push) Successful in 18s
Security Scan (SIAX Cloud) / security (push) Successful in 22s
CI (SIAX Cloud) / sonar (push) Successful in 1m7s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 2m6s
Deploy to Coolify / deploy (push) Successful in 2m9s
CI (SIAX Cloud) / quality (push) Canceled after 7m32s
CI (SIAX Cloud) / integration (push) Canceled after 7m32s
2026-11-07 17:12:03 +00:00
admin 7ca7b98fb2 Merge branch 'main' into docs/legacy-instances-20261107
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 5s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
masterplan-lock / check (push) Successful in 26s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 29s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 34s
CI (SIAX Cloud) / integration (pull_request) Successful in 10m30s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m52s
2026-11-07 17:07:45 +00:00
admin b269a05538 Merge branch 'main' into fix/canonical-grants-20261107
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 4s
masterplan-lock / check (push) Successful in 8s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 12s
CI (SIAX Cloud) / security (pull_request) Successful in 19s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m28s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 1m30s
CI (SIAX Cloud) / quality (pull_request) Successful in 2m15s
2026-11-07 17:07:44 +00:00
admin 1b7c6c2de9 Merge branch 'main' into fix/canonical-iso-timestamps-20261107
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 11s
masterplan-lock / check (pull_request) Successful in 9s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 14s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 19s
CI (SIAX Cloud) / security (pull_request) Successful in 1m37s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m38s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m10s
2026-11-07 17:07:42 +00:00
SIAX Agent b7627a3a31 docs(runbook): legacy-instansaudit server5 (0pt + L0RE) och disposition
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 3s
masterplan-lock / check (pull_request) Successful in 3s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 15s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m12s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m46s
0pt legacy: 32 kanoniska facts exporterade och återinförda via API (replay
duplicates=32), dump till server11, api/web stoppade med restart=no, pg kvar
för forensik. L0RE-orphan refererad till PR #485. Ingen databas/volymer raderade.
2026-11-07 17:37:33 +01:00
SIAX Agent afd0b4ec46 fix(canonical): serialisera timestamptz som RFC3339 (ISO-8601)
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (push) Successful in 5s
masterplan-lock / check (pull_request) Successful in 5s
CI (SIAX Cloud) / security (pull_request) Successful in 25s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 54s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m11s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m1s
queryFacts använde String(Date) -> 'Sat Nov 07 2026 15:00:00 GMT+0000 (...)',
vilket L0RE:s canonical-projection avvisar ('must be RFC3339 date-time').
Inför iso()-helper: Date -> toISOString(), annars String(). Gäller
observed_at, valid_from, valid_to, created_at.
2026-11-07 17:30:40 +01:00
SIAX Agent 4dbabd14ac fix(sql): 023 grants for canonical tables to app-role 0pt_app
masterplan-lock / check (push) Successful in 7s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 6s
CI (SIAX Cloud) / security (pull_request) Successful in 19s
CI (SIAX Cloud) / integration (pull_request) Successful in 45s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 1m7s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m7s
022 skapade tabellerna som 0pt_edge; appen kör som 0pt_app och fick
'permission denied'. Övriga 0pt-tabeller har explicita grants (inga default
ACL), så kanoniska tabeller behöver samma. Idempotent och rollskyddad; RLS
(FORCE) gäller fortfarande för 0pt_app.
2026-11-07 17:29:03 +01:00
admin b2499ace79 Merge pull request #497: idempotent 022 canonical facts
masterplan-lock / check (push) Successful in 4s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 10s
CI (SIAX Cloud) / security (push) Successful in 19s
Security Scan (SIAX Cloud) / security (push) Successful in 19s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m11s
Deploy to Coolify / deploy (push) Successful in 1m14s
CI (SIAX Cloud) / sonar (push) Successful in 1m15s
CI (SIAX Cloud) / quality (push) Successful in 10m1s
CI (SIAX Cloud) / integration (push) Successful in 10m5s
Retry-safe RLS policies (DROP POLICY IF EXISTS) + header fix.
2026-11-07 16:28:21 +00:00
admin 019cc23fa2 feat(capability): descriptor-completion wave 1 (0pt) — verified openapi operationIds
masterplan-lock / check (push) Successful in 5s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 6s
CI (SIAX Cloud) / security (pull_request) Successful in 31s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 1m2s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m8s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m3s
2026-11-07 15:23:41 +01:00
siax-bot 70444a369e fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-ef84832cdb
masterplan-lock / check (push) Successful in 5s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 5s
CI (SIAX Cloud) / security (pull_request) Successful in 20s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 43s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m42s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m54s
2026-11-03 17:30:19 +01:00
23 changed files with 312 additions and 69 deletions
+47
View File
@@ -0,0 +1,47 @@
# Legacy instance audit — 0pt (server5) and L0RE (server5) — 2026-11-07
Canonical runtimes: **0pt on server6** (Coolify app `shxd6lepxuxfsjsp0ath3z1g`,
`0pt.app`) and **L0RE on server9** (`l0re.siax.io`). This document records the
older instances on server5 and their disposition. It is not production
documentation for either product.
## 1. 0pt legacy (server5)
| Item | Value |
|---|---|
| Containers | `0pt-api` (`0pt-api:c46ebbf`, created 2026-11-05), `0pt-web` (`:18080`) |
| Database | `0pt-pg`, user/db `opt`, 11 MB |
| Exposure | `0pt-web` only on `100.124.7.55:18080`; no DNS record, no reverse proxy |
| Consumers | none found (`/etc/siax`, `/opt/siax`, site0 and L0RE deploy configs) |
| Unique data | 32 canonical facts (30 GLEIF web observations + `body_type` YDL405 + `passmark.find_prime_numbers.v10`) |
**Data reconciliation:** all 32 facts were exported and re-imported through the
canonical API (`POST /api/0pt/canonical/facts`) into the server6 deployment.
Replay returned `duplicates: 32`, so the import is idempotent. Production now
holds 34 facts (32 migrated + 2 verification observations) and 4 entities.
**Backup:** `server5:/var/backups/0pt-legacy/opt_legacy_20261107.dump.zst`
(custom format, 32 KB) + offsite `server11:/home/backup/0pt/`.
**Action taken:** `docker update --restart=no` + `docker stop` for `0pt-api` and
`0pt-web`. `0pt-pg` left running for forensics/rollback. `0pt.app` verified 200
after the stop (served by server6).
**Full removal (requires owner decision):** snapshot/destroy `0pt-pg` volume
after the retention window, remove the legacy compose project, revoke the old
`INTERNAL_TOKEN` if it was ever stored on server5.
## 2. L0RE orphan (server5)
Documented separately in `admin/l0re` PR #485
(`docs/runbook/l0re-orphan-decommission-20261107.md`): API stopped with
`restart=no`, dump + restore proof (8 propositions/62 assertions), no unique
legitimate data (pilot facts already re-projected to production). `l0re-pg` and
`l0re-opensearch` remain for forensics.
## 3. Single-runtime rule
One primary runtime per logical service. A container image of a product running
outside its registered Coolify app is a finding, not a fallback. Both server5
instances were reachable only from the host, which is why the split survived
until this audit.
+78
View File
@@ -0,0 +1,78 @@
# 0pt workload identity — målbild, nuläge och övergång
Status: **design klar, provisionering blockerad** (2026-11-07).
Ägare: CL0UD (identitet) / 0pt (konsument).
## 1. Nuläge
0pt autentiserar maskin-till-maskin med en **delad hemlighet**:
- `X-Internal-Token` mot `INTERNAL_TOKEN` (samma värde i engine och edge).
- Tenant-auktoritet kommer från serverkonfigurationen `INTERNAL_SERVICE_TENANTS`
(se `src/auth/internal-service-tenant.ts`), aldrig från en klientheader.
- Tom allowlist ⇒ ingen tenant-auktoritet ⇒ tenant-scopade skrivningar 403.
Det här är säkert men grovkornigt: en enda hemlighet representerar hela
engine-processen, och varje ny konsument kräver en manuell allowlist-post.
## 2. Målbild (CL0UD workload identity)
CL0UD äger redan maskineriet:
- `POST /account/service-accounts` skapar en service account (identitet).
- `POST /account/service-accounts/{id}/workload-token` mints en **kortlivad**
(10 min default, 1 h max) workload-token vars `capabilities` är en delmängd av
service accountens `platform.cl0ud_service_account_scopes.allowedCapabilities`.
- `@siax/platform-core` `auth/workload.ts` är verifieringsadaptern; publika
nycklar via JWKS.
- `packages/capability-registry/src/workload-identities.ts` deklarerar
arbetsbelastningsnamn och `aud:*`-audiences. Modulen är uttryckligen **inte**
provisionerad och **inte** inkopplad i utfärdande eller verifiering än.
För 0pt innebär det:
| Egenskap | Idag | Mål |
|---|---|---|
| Credential | delad `INTERNAL_TOKEN` | CL0UD-workload-token, `aud:0pt`, 10 min |
| Tenant | serverkonfigurerad allowlist | `tenant_id`-claim i verifierad token |
| Capabilities | route-lista i middleware | `capabilities`-claim (t.ex. `0pt.canonical.write`) |
| Rotation | manuell | automatisk (kortlivad token) |
| Spårbarhet | delad hemlighet | per-arbetsbelastning (`0pt-engine`, `site0-pipeline`) |
## 3. Integrationsdesign (när provisionering är möjlig)
1. **Verifiering före route-logik.** Middleware accepterar
`Authorization: Bearer <workload-token>` för `INTERNAL_SERVICE_ROUTES` om
signaturen verifieras mot CL0UD JWKS, `aud` innehåller `0pt` och `exp` är
giltig. Ingen klientheader får bidra till tenant.
2. **Tenant från claim, inte från allowlist.** `tenant_id` i den verifierade
tokenen sätts som `x-0pt-verified-tenant`; `INTERNAL_SERVICE_TENANTS`
används endast för legacy `X-Internal-Token`.
3. **Capabilities per route.** Route-metadata (`0pt.canonical.write`,
`0pt.quality.run`) jämförs med tokenens `capabilities`. Saknad capability ⇒
403, inte 401 (identiteten är giltig, behörigheten räcker inte).
4. **Dual-accept under övergång.** Båda credentialtyperna accepteras tills
engine och site0-pipeline mintar workload-tokens; därefter tas
`X-Internal-Token` bort i en egen release med negativt test.
5. **Negativa tester i samma svit som idag**
(`tests/auth/internal-token-tenant-scope.test.ts`): fel `aud` ⇒ 401, utgången
token ⇒ 401, tenant utanför claim ⇒ 403, saknad capability ⇒ 403.
## 4. Blockerare
- `/account/service-accounts` svarar **307 → /login** utan operator-session;
ingen giltig `SIAX_TOKEN` finns i Infisical-miljön.
- Zitadel admin-PAT (`/opt/siax-access/zitadel-admin-pat`) är invalid
(AUTH-7fs1e), så nya machine users kan inte mintas via det flödet.
- `workload-identities.ts` är deklaration-only: ingen identitet är
`provisioned: true`.
Åtgärd kräver en operatörsinloggning i CL0UD-konsolen (eller en ny giltig
admin-PAT) och är därför **EXTERNALLY_BLOCKED** från agentsidan.
## 5. Vad som inte ska göras
- Ingen egen JWT-signering i 0pt.
- Ingen parallell identitetsplattform.
- Ingen klientheader som bär tenant.
- Ingen långlivad delad hemlighet som "tillfällig" lösning utan slutdatum.
+10 -1
View File
@@ -89,7 +89,16 @@
"0pt.source_registry_list",
"0pt.order_create",
"0pt.order_payment",
"0pt.write_iceberg_table"
"0pt.write_iceberg_table",
"0pt.structure.resolve_entities",
"0pt.structure.get_lineage",
"0pt.structure.quality_run",
"0pt.structure.quality_list_runs",
"0pt.structure.quality_checks",
"0pt.structure.quality_reports",
"0pt.structure.extract_document",
"0pt.structure.route_parsing",
"0pt.structure.normalize_value"
],
"surfaces": [
"api",
@@ -0,0 +1,15 @@
{
"id": "0pt.structure.extract_document",
"name": "0pt.structure.extract_document",
"owner": "0pt",
"version": "1.0.0",
"riskLevel": "L2",
"piiLevel": "high",
"surfaces": [
"api"
],
"requiresJob": false,
"tenantScoped": true,
"operationId": "0pt.extract_document",
"description": "Canonical capability descriptor for 0pt.structure.extract_document (owner 0pt). Verified against registry + openapi operationId 0pt.extract_document."
}
@@ -0,0 +1,15 @@
{
"id": "0pt.structure.get_lineage",
"name": "0pt.structure.get_lineage",
"owner": "0pt",
"version": "1.0.0",
"riskLevel": "L1",
"piiLevel": "low",
"surfaces": [
"api"
],
"requiresJob": false,
"tenantScoped": true,
"operationId": "0pt.get_provenance",
"description": "Canonical capability descriptor for 0pt.structure.get_lineage (owner 0pt). Verified against registry + openapi operationId 0pt.get_provenance."
}
@@ -0,0 +1,15 @@
{
"id": "0pt.structure.normalize_value",
"name": "0pt.structure.normalize_value",
"owner": "0pt",
"version": "1.0.0",
"riskLevel": "L1",
"piiLevel": "low",
"surfaces": [
"api"
],
"requiresJob": false,
"tenantScoped": true,
"operationId": "0pt.normalize_value",
"description": "Canonical capability descriptor for 0pt.structure.normalize_value (owner 0pt). Verified against registry + openapi operationId 0pt.normalize_value."
}
@@ -0,0 +1,15 @@
{
"id": "0pt.structure.quality_checks",
"name": "0pt.structure.quality_checks",
"owner": "0pt",
"version": "1.0.0",
"riskLevel": "L1",
"piiLevel": "low",
"surfaces": [
"api"
],
"requiresJob": false,
"tenantScoped": true,
"operationId": "0pt.quality.checks",
"description": "Canonical capability descriptor for 0pt.structure.quality_checks (owner 0pt). Verified against registry + openapi operationId 0pt.quality.checks."
}
@@ -0,0 +1,15 @@
{
"id": "0pt.structure.quality_list_runs",
"name": "0pt.structure.quality_list_runs",
"owner": "0pt",
"version": "1.0.0",
"riskLevel": "L1",
"piiLevel": "low",
"surfaces": [
"api"
],
"requiresJob": false,
"tenantScoped": true,
"operationId": "0pt.quality.list_runs",
"description": "Canonical capability descriptor for 0pt.structure.quality_list_runs (owner 0pt). Verified against registry + openapi operationId 0pt.quality.list_runs."
}
@@ -0,0 +1,15 @@
{
"id": "0pt.structure.quality_reports",
"name": "0pt.structure.quality_reports",
"owner": "0pt",
"version": "1.0.0",
"riskLevel": "L1",
"piiLevel": "low",
"surfaces": [
"api"
],
"requiresJob": false,
"tenantScoped": true,
"operationId": "0pt.quality.reports",
"description": "Canonical capability descriptor for 0pt.structure.quality_reports (owner 0pt). Verified against registry + openapi operationId 0pt.quality.reports."
}
@@ -0,0 +1,15 @@
{
"id": "0pt.structure.quality_run",
"name": "0pt.structure.quality_run",
"owner": "0pt",
"version": "1.0.0",
"riskLevel": "L1",
"piiLevel": "low",
"surfaces": [
"api"
],
"requiresJob": false,
"tenantScoped": true,
"operationId": "0pt.quality.run",
"description": "Canonical capability descriptor for 0pt.structure.quality_run (owner 0pt). Verified against registry + openapi operationId 0pt.quality.run."
}
@@ -0,0 +1,15 @@
{
"id": "0pt.structure.resolve_entities",
"name": "0pt.structure.resolve_entities",
"owner": "0pt",
"version": "1.0.0",
"riskLevel": "L2",
"piiLevel": "high",
"surfaces": [
"api"
],
"requiresJob": false,
"tenantScoped": true,
"operationId": "0pt.resolve_entities",
"description": "Canonical capability descriptor for 0pt.structure.resolve_entities (owner 0pt). Verified against registry + openapi operationId 0pt.resolve_entities."
}
@@ -0,0 +1,15 @@
{
"id": "0pt.structure.route_parsing",
"name": "0pt.structure.route_parsing",
"owner": "0pt",
"version": "1.0.0",
"riskLevel": "L1",
"piiLevel": "low",
"surfaces": [
"api"
],
"requiresJob": false,
"tenantScoped": true,
"operationId": "0pt.route_parsing",
"description": "Canonical capability descriptor for 0pt.structure.route_parsing (owner 0pt). Verified against registry + openapi operationId 0pt.route_parsing."
}
@@ -1,12 +0,0 @@
{
"id": "pe-artifact-0pt-13e156ec7e6b",
"repo": "0pt",
"evidenceType": "artifact-digest",
"result": "pass",
"verifiedAt": "2026-11-04T10:53:16Z",
"verifiedBy": "docker image inspect RepoDigests (real registry digest)",
"proofRef": "docker://server6 image shxd6lepxuxfsjsp0ath3z1g:13e156ec7e6be534de9c28d28ec2daff0355ca7f image@sha256:657bc7e2ed3425436b18680138d7c792ac879db4c49a505d1ea0305699d89089",
"sourceSha": "13e156ec7e6be534de9c28d28ec2daff0355ca7f",
"digest": "sha256:657bc7e2ed3425436b18680138d7c792ac879db4c49a505d1ea0305699d89089",
"tool": "docker"
}
@@ -1,10 +0,0 @@
{
"id": "pe-ci-0pt-13e156ec7e6b",
"repo": "0pt",
"evidenceType": "deploy-log",
"result": "pass",
"verifiedAt": "2026-11-04T10:53:16Z",
"verifiedBy": "Coolify deployment record (application_deployment_queues, status=finished)",
"proofRef": "coolify://server6/shxd6lepxuxfsjsp0ath3z1g finished 2026-11-04 05:42:18",
"sourceSha": "13e156ec7e6be534de9c28d28ec2daff0355ca7f"
}
@@ -1,11 +0,0 @@
{
"id": "pe-running-0pt-13e156ec7e6b",
"repo": "0pt",
"evidenceType": "running-digest",
"result": "pass",
"verifiedAt": "2026-11-04T10:53:16Z",
"verifiedBy": "docker inspect (running container image digest)",
"proofRef": "docker://server6 container/shxd6lepxuxfsjsp0ath3z1g-20261104T093337 image@sha256:657bc7e2ed3425436b18680138d7c792ac879db4c49a505d1ea0305699d89089",
"sourceSha": "13e156ec7e6be534de9c28d28ec2daff0355ca7f",
"digest": "sha256:657bc7e2ed3425436b18680138d7c792ac879db4c49a505d1ea0305699d89089"
}
@@ -1,12 +0,0 @@
{
"id": "pe-sbom-0pt-13e156ec7e6b",
"repo": "0pt",
"evidenceType": "sbom",
"result": "pass",
"verifiedAt": "2026-11-04T09:29:06Z",
"verifiedBy": "syft (estate-kampanj issue #76, skannad vid deployad commit)",
"proofRef": "siax/sbom/sbom-0pt-13e156ec7e6b.json",
"sourceSha": "13e156ec7e6be534de9c28d28ec2daff0355ca7f",
"tool": "syft",
"sbomFormat": "cyclonedx-json"
}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,4 +1,4 @@
# 0pt — cosign-signeringskedjan (2026-09-29)
Prod-imagen git.cloud.siax.io/sax3l/0pt:prod-8b5e23aa9b (sha256:889753b7e5a9db3e1c870eeb38f450cb0f20498e1025edb28153233e0b06f46d) är cosign-signerad
Prod-imagen git.cloud.siax.io/sax3l/0pt:prod-b1ae910d64 (sha256:99de5a0e1672e89e8bc60e89fec68adfb2241d1c8cabad8390eee531241061d6) är cosign-signerad
med nyckelparet vars pubkey ligger här. Privata nyckeln raderad efter signering.
+2 -2
View File
@@ -1,4 +1,4 @@
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiPRG9iG1pjIW548KoIduQPD/B3Yb
tg5hPmy7o4feVQsdDnW38VtemVBQ4I+goytV9X4XkrFiweKmfqEMhGyPgg==
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENzI5SFTSfP/rgrc8iBM5pqols2Rv
BqzG1IzzUzhiIfW0aGKUk4DZjCRO+om40HEYNfIog20wkqe3hidGGUBMaA==
-----END PUBLIC KEY-----
@@ -1,10 +0,0 @@
{
"$schema": "https://git.siax.io/sax3l/siax-standard/raw/branch/main/schema/siax.source-bundle.schema.json",
"id": "sb-0pt-13e156ec7e6b",
"repo": "0pt",
"commitSha": "13e156ec7e6be534de9c28d28ec2daff0355ca7f",
"branch": "main",
"buildId": "coolify:0pt",
"producedAt": "2026-11-04T01:26:48Z",
"artifactId": "shxd6lepxuxfsjsp0ath3z1g@sha256:657bc7e2ed3425436b18680138d7c792ac879db4c49a505d1ea0305699d89089"
}
+19
View File
@@ -0,0 +1,19 @@
-- 023_canonical_grants.sql — app-role privileges for 022 canonical tables.
--
-- Tables created by a manual psql migration are owned by the migrating role
-- (0pt_edge); the running application connects as 0pt_app. Existing 0pt tables
-- carry explicit grants rather than default ACLs, so the canonical tables need
-- the same treatment. RLS still applies to 0pt_app (FORCE is on); this only
-- grants the statement privileges, not row visibility.
--
-- Idempotent and role-guarded: no-op in environments without the app role.
DO $$
BEGIN
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = '0pt_app') THEN
GRANT SELECT, INSERT, UPDATE, DELETE
ON opt_canonical_entities, opt_canonical_facts, opt_canonical_relations
TO "0pt_app";
END IF;
END
$$;
@@ -30,6 +30,11 @@ export interface CanonicalFactRepository {
queryFacts(query: CanonicalQuery): Promise<CanonicalFact[]>;
}
/** PostgreSQL timestamptz arrives as Date; the API contract is RFC3339/ISO-8601. */
function iso(value: unknown): string {
return value instanceof Date ? value.toISOString() : String(value);
}
export function entityKey(e: CanonicalEntityInput): string {
return `${e.entity_type}\u0000${e.identity_namespace}\u0000${e.identity_value}`;
}
@@ -216,11 +221,11 @@ class PostgresCanonicalFactRepository implements CanonicalFactRepository {
source_record_id: r.source_record_id ?? undefined,
st0re_artifact_id: r.st0re_artifact_id ?? undefined,
aud0_evidence_ref: r.aud0_evidence_ref ?? undefined, run_ref: r.run_ref ?? undefined,
extractor_version: r.extractor_version, observed_at: String(r.observed_at),
valid_from: r.valid_from ? String(r.valid_from) : undefined,
valid_to: r.valid_to ? String(r.valid_to) : undefined,
extractor_version: r.extractor_version, observed_at: iso(r.observed_at),
valid_from: r.valid_from ? iso(r.valid_from) : undefined,
valid_to: r.valid_to ? iso(r.valid_to) : undefined,
confidence: r.confidence === null ? undefined : Number(r.confidence),
quality_status: r.quality_status, status: r.status, created_at: String(r.created_at),
quality_status: r.quality_status, status: r.status, created_at: iso(r.created_at),
})) as CanonicalFact[];
});
}
+10 -5
View File
@@ -1,5 +1,10 @@
import { describe, expect, it } from "vitest";
import { operationFingerprint, operationIdentity, runIdempotentOperation } from "../../packages/siax-access/src/idempotency";
import {
operationFingerprint,
operationIdentity,
runIdempotentOperation,
type IdempotencyStore,
} from "../../packages/siax-access/src/idempotency";
describe("@siax/access universal idempotency", () => {
it("binds every result-affecting input into the fingerprint", () => {
@@ -18,7 +23,7 @@ describe("@siax/access universal idempotency", () => {
});
it("replays a stored receipt verbatim on the exact fingerprint", async () => {
const stored = { x: 1 };
const store: any = {
const store: IdempotencyStore<unknown, { x: number }> = {
start: async () => false,
save: async () => {},
receipt: async () => stored,
@@ -32,7 +37,7 @@ describe("@siax/access universal idempotency", () => {
});
it("claims once and saves only after the dispatch", async () => {
const order: string[] = [];
const store: any = {
const store: IdempotencyStore<unknown, { x: number }> = {
start: async () => { order.push("start"); return true; },
save: async () => { order.push("save"); },
receipt: async () => { order.push("receipt"); return undefined; },
@@ -47,7 +52,7 @@ describe("@siax/access universal idempotency", () => {
expect(order).toEqual(["start", "dispatch", "save"]);
});
it("reports a store error as conflict, never as a fresh start", async () => {
const store: any = {
const store: IdempotencyStore<unknown, { x: number }> = {
start: async () => { throw new Error("db down"); },
save: async () => {},
receipt: async () => { throw new Error("db down"); },
@@ -61,7 +66,7 @@ describe("@siax/access universal idempotency", () => {
expect(dispatched).toBe(0);
});
it("does not rerun the dispatch when start succeeds but save later fails", async () => {
const store: any = { start: async () => true, save: async () => { throw new Error("journal write failed"); }, receipt: async () => undefined };
const store: IdempotencyStore<unknown, { x: number }> = { start: async () => true, save: async () => { throw new Error("journal write failed"); }, receipt: async () => undefined };
let dispatched = 0;
const outcome = await runIdempotentOperation({
store, identity: {}, fingerprint: "fp",