From 06ed9734c6b3e14830931c15bfb4ec402f90aae5 Mon Sep 17 00:00:00 2001 From: Kurdistan Tech Ministry Date: Sat, 9 May 2026 12:08:49 +0300 Subject: [PATCH] =?UTF-8?q?ci(security):=20Faz=203=20+=20ekstra=20?= =?UTF-8?q?=E2=80=94=20runner=20consolidation,=20auto-rollback,=20cosign,?= =?UTF-8?q?=20SRI,=20dep=20cleanup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Faz 3.1 — All CI jobs moved to self-hosted pwap-runner (DEV VPS). No more dependency on GitHub-hosted runners — supply-chain attack surface from GHA runner image compromise eliminated. * Faz 3.3 — Automatic rollback on health-check fail. Each deploy stamps /.deploy-sha into the artifact. On health-check failure, the deploy job reads the previous SHA from the live site, pulls that image, and redeploys. Telegram notification differentiates: rolled-back-OK, rollback-also-failed, no-prev-available, manual-rollback-needed. * E.3 — cosign keyless image signing. build-image signs the GHCR manifest via Sigstore Fulcio (OIDC, no long-lived keys). deploy-app and deploy-pex verify the signature before extracting /dist — unsigned or tampered images cannot deploy. Identity-pinned to this workflow file. * E.5 — Subresource Integrity (SRI). vite-plugin-subresource-integrity injects sha384 integrity= into