Compare commits

...
Author SHA1 Message Date
admin fa1f68509d Merge branch 'main' into codex/harden-security-20261111
CI (SIAX Cloud) / quality (pull_request) Waiting to run
CI (SIAX Cloud) / integration (pull_request) Waiting to run
CI (SIAX Cloud) / security (pull_request) Waiting to run
CI (SIAX Cloud) / sonar (pull_request) Waiting to run
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Waiting to run
masterplan-lock / check (pull_request) Waiting to run
security / scan (pull_request) Waiting to run
2026-11-11 18:10:50 +00:00
admin 78ddb4e6d5 Merge pull request 'chore(npm): registry admin i stället för pensionerade sax3l' (#564) from fix/npm-registry-admin-20261111 into main
Deploy to Coolify / deploy (push) Waiting to run
CI (SIAX Cloud) / sonar (push) Waiting to run
CI (SIAX Cloud) / Component conformance (blocking) (push) Waiting to run
CI (SIAX Cloud) / quality (push) Waiting to run
CI (SIAX Cloud) / integration (push) Waiting to run
CI (SIAX Cloud) / security (push) Waiting to run
masterplan-lock / check (push) Waiting to run
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Waiting to run
security / scan (push) Waiting to run
CI (SIAX Cloud) / quality (pull_request) Waiting to run
CI (SIAX Cloud) / integration (pull_request) Waiting to run
CI (SIAX Cloud) / security (pull_request) Waiting to run
CI (SIAX Cloud) / sonar (pull_request) Waiting to run
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Waiting to run
masterplan-lock / check (pull_request) Waiting to run
security / scan (pull_request) Waiting to run
2026-11-11 18:10:26 +00:00
admin 04b100b466 Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (4b46e9d3ba)' (#563) from fix/prod-evidence-2026-09-29 into main
Deploy to Coolify / deploy (push) Canceled after 0s
CI (SIAX Cloud) / quality (push) Canceled after 0s
CI (SIAX Cloud) / integration (push) Canceled after 0s
CI (SIAX Cloud) / security (push) Canceled after 0s
CI (SIAX Cloud) / sonar (push) Canceled after 0s
CI (SIAX Cloud) / Component conformance (blocking) (push) Canceled after 0s
masterplan-lock / check (push) Canceled after 0s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Canceled after 0s
security / scan (push) Canceled after 0s
2026-11-11 17:50:57 +00:00
siax-bot 096aff376e chore(ci): slå ihop main i grenen och behåll kanonisk security-gate
CI (SIAX Cloud) / quality (pull_request) Canceled after 0s
CI (SIAX Cloud) / integration (pull_request) Canceled after 0s
CI (SIAX Cloud) / security (pull_request) Canceled after 0s
CI (SIAX Cloud) / sonar (pull_request) Canceled after 0s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Canceled after 0s
masterplan-lock / check (pull_request) Canceled after 0s
security / scan (pull_request) Canceled after 0s
2026-11-11 18:46:24 +01:00
admin a896b9538a chore(npm): använd admin-registret i stället för pensionerade sax3l
CI (SIAX Cloud) / sonar (pull_request) Skipped
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 12s
masterplan-lock / check (pull_request) Successful in 5s
CI (SIAX Cloud) / security (pull_request) Successful in 19s
security / scan (pull_request) Failing after 49s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m18s
CI (SIAX Cloud) / quality (pull_request) Successful in 2m2s
2026-11-11 18:23:35 +01:00
siax-bot 9373e3b256 fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-4b46e9d3ba
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 7s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 16s
CI (SIAX Cloud) / security (pull_request) Successful in 22s
security / scan (pull_request) Failing after 1m3s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m24s
CI (SIAX Cloud) / quality (pull_request) Successful in 2m22s
2026-11-11 17:32:10 +01:00
admin 4b46e9d3ba fix(ci): begränsa gitleaks i security-workflowen (bara införda commits på PR/push, fullhistorik nattligt)
CI (SIAX Cloud) / security (push) Successful in 34s
CI (SIAX Cloud) / integration (push) Successful in 1m16s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 12s
masterplan-lock / check (push) Successful in 7s
CI (SIAX Cloud) / sonar (push) Successful in 1m22s
security / scan (push) Failing after 52s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m17s
Deploy to Coolify / deploy (push) Successful in 4m29s
CI (SIAX Cloud) / quality (push) Successful in 11m5s
2026-11-11 16:21:32 +00:00
admin a897393789 Merge pull request 'ci(security): .gitleaksignore för granskade falska positiva' (#562) from fix/security-gitleaks-baseline-20261111 into main
Deploy to Coolify / deploy (push) Canceled after 0s
CI (SIAX Cloud) / quality (push) Canceled after 0s
CI (SIAX Cloud) / integration (push) Canceled after 0s
CI (SIAX Cloud) / security (push) Canceled after 0s
CI (SIAX Cloud) / sonar (push) Canceled after 0s
CI (SIAX Cloud) / Component conformance (blocking) (push) Canceled after 0s
masterplan-lock / check (push) Canceled after 0s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Canceled after 0s
security / scan (push) Canceled after 0s
2026-11-11 16:02:11 +00:00
admin b5cd0276f1 ci(security): .gitleaksignore med granskade falska positiva
CI (SIAX Cloud) / sonar (pull_request) Skipped
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 18s
masterplan-lock / check (pull_request) Successful in 10s
CI (SIAX Cloud) / security (pull_request) Successful in 28s
security / scan (pull_request) Failing after 1m58s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m52s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m22s
2026-11-11 15:40:08 +00:00
admin 33686cd27e Merge pull request 'fix(ci): OSV-vakten körs i scanvolymen (OSV har aldrig körts)' (#560) from fix/osv-guard-in-scan-volume-20261111 into main
masterplan-lock / check (push) Successful in 3s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 21s
CI (SIAX Cloud) / security (push) Successful in 37s
security / scan (push) Failing after 37s
Release chain (G17, ADR-W16-003) / Build, push, G17 (SBOM/scan/attest/verify/evidence) (push) Successful in 1m17s
Deploy to Coolify / deploy (push) Successful in 2m11s
CI (SIAX Cloud) / sonar (push) Successful in 1m52s
CI (SIAX Cloud) / integration (push) Successful in 11m19s
CI (SIAX Cloud) / quality (push) Successful in 12m21s
2026-11-11 14:25:29 +00:00
admin a7d472e0d5 Merge pull request 'fix(signing): cosign-pubkey + SBOM + deployment/env-poster (116b1df3b8)' (#559) from fix/prod-evidence-2026-09-29 into main
masterplan-lock / check (push) Successful in 8s
CI (SIAX Cloud) / Component conformance (blocking) (push) Successful in 12s
CI (SIAX Cloud) / security (push) Successful in 15s
security / scan (push) Failing after 21s
CI (SIAX Cloud) / sonar (push) Successful in 57s
CI (SIAX Cloud) / integration (push) Successful in 1m8s
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
CI (SIAX Cloud) / quality (push) Successful in 1m51s
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 5s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 9s
CI (SIAX Cloud) / security (pull_request) Successful in 18s
security / scan (pull_request) Failing after 18s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m20s
CI (SIAX Cloud) / quality (pull_request) Successful in 1m34s
Mergad efter gröna checks (Simons beslut 2026-11-10: godkännandekravet förbigås, status checks aldrig).
2026-11-11 12:31:23 +00:00
adminandClaude Opus 5.5 d6a30f3b2b fix(ci): OSV-vakten och config-kollen körs i scanvolymen
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 8s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 12s
CI (SIAX Cloud) / security (pull_request) Successful in 19s
security / scan (pull_request) Failing after 24s
CI (SIAX Cloud) / integration (pull_request) Successful in 10m14s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m53s
Samma ändring som admin/siax-standard#608; bara OSV-steget byts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 10:56:12 +00:00
siax-bot 7c41fe195b fix(signing): cosign-pubkey + SBOM + deployment/env-poster för prod-imagen prod-116b1df3b8
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 12s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 14s
CI (SIAX Cloud) / security (pull_request) Successful in 24s
security / scan (pull_request) Failing after 25s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m19s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m27s
2026-11-11 05:30:19 +01:00
admin dbf36793de fix(ci): gitleaks blockerar pa arbetstradet, historik loggas informativt
CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 3s
masterplan-lock / check (push) Successful in 21s
security / scan (pull_request) Failing after 32s
CI (SIAX Cloud) / security (pull_request) Successful in 37s
CI (SIAX Cloud) / Component conformance (blocking) (pull_request) Successful in 59s
CI (SIAX Cloud) / integration (pull_request) Successful in 2m46s
CI (SIAX Cloud) / quality (pull_request) Successful in 3m11s
2026-11-10 18:50:21 +01:00
6 changed files with 32 additions and 96 deletions
+11 -90
View File
@@ -26,18 +26,14 @@ on:
pull_request: {}
schedule:
- cron: "17 2 * * *"
workflow_dispatch: {}
permissions: { contents: read }
# N6 (server-config ci/jobbstorm-2026-11-10 §4): en ny commit på samma PR/gren avbryter den inaktuella körningen.
concurrency:
group: ${{ gitea.workflow }}-${{ gitea.ref }}
group: security-${{ github.ref }}
cancel-in-progress: true
jobs:
scan:
runs-on: ubuntu-latest
# Övre gräns: ett scannerjobb får aldrig äta en delad runner-värd.
timeout-minutes: 60
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
with: { fetch-depth: 0 }
@@ -65,8 +61,8 @@ jobs:
- name: gitleaks secret scan
run: |
set +e
docker run --rm --cpus 2 --memory 4g -v "$SCAN_VOLUME:/repo" -w /repo \
zricethezav/gitleaks:v8.30.1 detect --no-git --source /repo --no-banner --redact --exit-code 1 > /tmp/scan.log 2>&1
docker run --rm -v "$SCAN_VOLUME:/repo" -w /repo \
zricethezav/gitleaks:v8.30.1 detect --no-git --source /repo --no-banner --exit-code 1 > /tmp/scan.log 2>&1
rc=$?
set -e
tail -n 120 /tmp/scan.log
@@ -74,88 +70,23 @@ jobs:
if [ $rc -eq 1 ]; then echo "::error::gitleaks secret scan hittade fynd"; exit 1; fi
echo "::warning::gitleaks secret scan kunde inte köras (rc=$rc) - verktygsfel, inte fynd"; exit 0
# gitleaks over just de commits som PR:en eller pushen inför. Blockerar på
# hemligheter som introduceras i intervallet, även om de raderas senare i
# samma PR (de finns kvar i historiken efter merge). Git-läget med
# --log-opts skannar bara tillagda rader, så en PR som RADERAR en gammal
# hemlighet fälls inte, och .gitleaks.toml/.gitleaksignore i repot gäller.
# Fullhistoriken körs bara nattligt/manuellt (nästa steg): en full
# `git log -p --all` per PR tog timmar och sänkte runner-värden
# (server10, 2026-11-11).
- name: gitleaks commit range
if: github.event_name == 'pull_request' || github.event_name == 'push'
timeout-minutes: 15
env:
EVENT_NAME: ${{ github.event_name }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
BEFORE_SHA: ${{ github.event.before }}
run: |
set -eu
test -d .git || { echo "::error::ingen .git i $PWD"; exit 1; }
head="${PR_HEAD_SHA:-$GITHUB_SHA}"
base=""
if [ "$EVENT_NAME" = "pull_request" ] && [ -n "${BASE_SHA:-}" ]; then
base=$(git merge-base "$BASE_SHA" "$head" 2>/dev/null || echo "$BASE_SHA")
elif [ -n "${BEFORE_SHA:-}" ] && [ "$BEFORE_SHA" != "0000000000000000000000000000000000000000" ] \
&& git cat-file -e "${BEFORE_SHA}^{commit}" 2>/dev/null; then
base="$BEFORE_SHA"
fi
MAX=500
if [ -n "$base" ]; then
count=$(git rev-list --count "$base..$head")
echo "intervall $base..$head: $count commits"
if [ "$count" -eq 0 ]; then echo "inga nya commits i intervallet"; exit 0; fi
if [ "$count" -gt "$MAX" ]; then
echo "::warning::intervallet har $count commits; skannar de $MAX senaste. Resten täcks av den nattliga fullhistorikskanningen."
fi
logopts="-n $MAX $base..$head"
else
echo "::notice::inget jämförbart föregående läge (ny gren eller omskriven historik); skannar head-commiten. Fullhistoriken täcks nattligt."
logopts="-n 1 $head"
fi
name="siax-gitleaks-range-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
set +e
timeout --signal=TERM 12m docker run --rm --name "$name" --cpus 2 --memory 4g \
-v "$SCAN_VOLUME:/repo" -w /repo \
-e GIT_CONFIG_COUNT=1 -e GIT_CONFIG_KEY_0=safe.directory -e GIT_CONFIG_VALUE_0='*' \
zricethezav/gitleaks:v8.30.1 detect --source /repo --log-opts="$logopts" \
--no-banner --redact --exit-code 1 > /tmp/scan.log 2>&1
rc=$?
set -e
docker kill "$name" >/dev/null 2>&1 || true
tail -n 120 /tmp/scan.log
if [ $rc -eq 0 ]; then echo "gitleaks commit range ren"; exit 0; fi
if [ $rc -eq 1 ]; then echo "::error::gitleaks commit range hittade fynd i införda commits"; exit 1; fi
if [ $rc -eq 124 ]; then echo "::error::gitleaks commit range nådde tidsgränsen - intervallet är EJ skannat"; exit 1; fi
echo "::warning::gitleaks commit range kunde inte köras (rc=$rc) - verktygsfel, inte fynd"; exit 0
# Hela historiken scannas informativt, bara nattligt eller manuellt och
# med tidsbudget. Gamla hemligheter i tidigare commits kräver
# historikomskrivning och blockerar därför inte bygget.
# Historiken scannas informativt. Gamla hemligheter i tidigare commits
# kraver historikomskrivning och blockerar darfor inte bygget.
- name: gitleaks history informational
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
timeout-minutes: 45
continue-on-error: true # ci2-allow-swallowed-failure: historik-gitleaks informativt per kanonisk security.yml
continue-on-error: true
run: |
name="siax-gitleaks-history-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
rc=0
timeout --signal=TERM 40m docker run --rm --name "$name" --cpus 2 --memory 6g \
-v "$SCAN_VOLUME:/repo" -w /repo \
docker run --rm -v "$SCAN_VOLUME:/repo" -w /repo \
-e GIT_CONFIG_COUNT=1 -e GIT_CONFIG_KEY_0=safe.directory \
-e GIT_CONFIG_VALUE_0='*' \
zricethezav/gitleaks:v8.30.1 detect --source /repo --no-banner --redact --exit-code 1 || rc=$?
docker kill "$name" >/dev/null 2>&1 || true
if [ "$rc" -eq 124 ]; then echo "::warning::fullhistorikskanningen nådde tidsbudgeten (40 min) - historiken är EJ fullständigt skannad"; fi
if [ "$rc" -ne 0 ]; then echo "::notice::historiska träffar eller avbrott loggas informativt (rc=$rc)"; fi
zricethezav/gitleaks:v8.30.1 detect --source /repo --no-banner --exit-code 1 \
|| echo "::notice::historiska traffar loggas informativt"
# Trivy filsystem, blockerar pa HIGH och CRITICAL sarbarheter och hemligheter (SUP-*)
# Trivy filsystem, blockerar pa HIGH och CRITICAL (SUP-*)
- name: Trivy filesystem scan
run: |
set +e
docker run --rm -v "$SCAN_VOLUME:/repo" -w /repo \
aquasec/trivy:0.76.2 fs --scanners vuln,secret --severity HIGH,CRITICAL --exit-code 1 --no-progress /repo > /tmp/scan.log 2>&1
aquasec/trivy:0.76.2 fs --scanners vuln,secret,misconfig --severity HIGH,CRITICAL --exit-code 1 --no-progress /repo > /tmp/scan.log 2>&1
rc=$?
set -e
tail -n 120 /tmp/scan.log
@@ -163,15 +94,6 @@ jobs:
if [ $rc -eq 1 ]; then echo "::error::Trivy filesystem scan hittade fynd"; exit 1; fi
echo "::warning::Trivy filesystem scan kunde inte köras (rc=$rc) - verktygsfel, inte fynd"; exit 0
# Dockerfile- och IaC-misconfig är informativt: DS-0002 (root-USER)
# kräver ändrade runtime-användare och hanteras per repo, inte i grinden.
- name: Trivy config informational
continue-on-error: true
run: |
docker run --rm -v "$SCAN_VOLUME:/repo" -w /repo \
aquasec/trivy:0.76.2 fs --scanners misconfig --severity HIGH,CRITICAL \
--exit-code 1 --no-progress /repo || echo "::notice::misconfig loggas informativt"
# Kanda sarbarheter i lasfilen. osv-scanner 2.x hittar inte alltid
# osv-scanner.toml sjalv, sa den skickas explicit nar den finns.
- name: OSV Scanner
@@ -210,5 +132,4 @@ jobs:
- name: Remove scan volume
if: always()
run: |
for c in $(docker ps -q --filter "name=siax-gitleaks-.*-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"); do docker kill "$c" >/dev/null 2>&1 || true; done
docker volume rm -f "${SCAN_VOLUME:-none}" >/dev/null 2>&1 || true
+16
View File
@@ -16,3 +16,19 @@ d9c8f7190b312b03acb331522f4d55c0a2fe0e4a:tests/integration/analyst-sql-clickhous
# kanariefågel som testet använder för att bevisa att hemligheter inte läcker i
# analyst-SQL-svaret. Falsk positiv.
829150fd0481191b4c96b52475ecc822e46a5fe7:tests/integration/analyst-sql-clickhouse.integration.test.ts:generic-api-key:71
# .gitleaksignore — exakta fingeravtryck för granskade falska positiva.
#
# Genererad 2026-11-11 från gitleaks v8.30.1 (samma version som security-grinden
# pinnar) körd som directory-scan mot repots arbetsträd. Varje rad nedan är
# granskad: träffen är en testfixtur, ett exempelvärde i dokumentation, en
# hash/UUID eller ett miljövariabelnamn — inte en hemlighet. Ingen bred ignore:
# endast dessa exakta fil:regel:rad-fingeravtryck undertrycks; nya fynd fäller
# fortfarande grinden. Fingeravtrycken förutsätter att katalogen monteras på
# /repo (så gör den kanoniska security-workflowen).
# Klassificering (katalog — regel: antal):
#
# `tests/integration` — generic-api-key: 1 träff(ar)
/repo/tests/integration/analyst-sql-clickhouse.integration.test.ts:generic-api-key:71
+1 -1
View File
@@ -5,4 +5,4 @@ confirmModulesPurge=false
# SIAX Cloud publishes @siax/* packages from Gitea's own npm registry.
# Only scoped @siax/* names resolve here; everything else stays on the
# public npm registry.
@siax:registry=https://git.siax.io/api/packages/sax3l/npm/
@siax:registry=https://git.siax.io/api/packages/admin/npm/
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-dd226e01eb (sha256:0aff8f3021300fa552c229666941811c793c7b5b85b4dbaec4f0acd91dda5729) är cosign-signerad
Prod-imagen git.cloud.siax.io/sax3l/0pt:prod-4b46e9d3ba (sha256:cc1fbff7302ad9a25566c780a5d8d345cbd9b8c7b32dbfc402ee3f2ee2c2de26) ä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-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELvxN82T73fjYyjj4kCLmktl0tzij
YVio7VU9r9r4xJICcyWwyWBewdTy8Ag4mWvXOWewvB+FEB9xtpKwI/SQfA==
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE13AJi5zkXyURoh0H8Y+LeWa5q/ct
SFlEt1z00Cc9vU2eVgFELUnhgn9rO8+Rng4kWJOGVvyQS+3zpMwhsIlddg==
-----END PUBLIC KEY-----