![]()
๐ฆ Auditable Releases with Full Supply-Chain Provenance
๐ SLSA Attestations ยท SBOM (SPDX) ยท SHA-256 ยท Dual S3 + GitHub Pages Deployment
๐ Document Owner: CEO | ๐ Version: 1.0 | ๐
Last Updated: 2026-02-18 (UTC)
๐ Review Cycle: Per release | ๐ข Owner: Hack23 AB (Org.nr 559534-7807) | ๐ท๏ธ Classification: ๐ข Public
This guide describes how to create releases for Riksdagsmonitor with full attestations and documentation-as-code.
Riksdagsmonitor follows a comprehensive release process that includes:
The release workflow consists of 3 jobs:
Purpose: Build, test, and generate all documentation
Steps:
sitemap.html + 13 sitemap_<lang>.html variants, all news articles date-sorted)Duration: ~10-15 minutes
Purpose: Create release artifacts with attestations
Steps:
Duration: ~5 minutes
Purpose: Create GitHub release, publish npm package, and deploy to production
Steps:
Duration: ~5-10 minutes
Total Workflow Duration: ~20-30 minutes
v1.0.0)This will:
git tag v1.0.0
git push origin v1.0.0
This will automatically trigger the release workflow.
Follow Semantic Versioning:
Each release includes the following artifacts:
riksdagsmonitor-vX.Y.Z.zip - Production build
riksdagsmonitor-vX.Y.Z.zip.sha256 - Checksum
riksdagsmonitor@X.Y.Z - Shared types and utilities
npm install riksdagsmonitor
import {
DARK_THEME_COLORS,
LIGHT_THEME_COLORS,
getActiveThemeColors,
getPartyColor,
CHART_PALETTE,
BREAKPOINTS,
} from 'riksdagsmonitor';
riksdagsmonitor-vX.Y.Z.spdx.json - SBOM
riksdagsmonitor-vX.Y.Z.zip.intoto.jsonl - Build Provenance
riksdagsmonitor-vX.Y.Z.spdx.json.intoto.jsonl - SBOM Attestation
All documentation is generated during the release and committed to the docs/ directory:
docs/
โโโ index.html # Documentation hub (landing page)
โโโ .nojekyll # Bypass Jekyll processing
โโโ api/ # JSDoc API documentation
โ โโโ index.html
โ โโโ global.html
โ โโโ ...
โโโ coverage/ # Vitest coverage reports
โ โโโ index.html # Interactive coverage viewer
โ โโโ lcov.info
โ โโโ coverage-final.json
โโโ test-results/ # Vitest test results
โโโ cypress/ # Cypress E2E test reports
โโโ dependencies/ # npm dependency tree
โ โโโ dependency-tree.json
โ โโโ dependency-tree.txt
โโโ diagrams/ # Architecture diagrams
Every release includes SLSA Build Provenance attestations that:
Every release includes an SBOM in SPDX format that:
Verify attestations using the GitHub CLI:
# Install GitHub CLI
brew install gh
# Verify build provenance
gh attestation verify riksdagsmonitor-v1.0.0.zip -R Hack23/riksdagsmonitor
# View attestation details
gh attestation view riksdagsmonitor-v1.0.0.zip -R Hack23/riksdagsmonitor
Verify artifact integrity:
# Download artifacts
wget https://github.com/Hack23/riksdagsmonitor/releases/download/v1.0.0/riksdagsmonitor-v1.0.0.zip
wget https://github.com/Hack23/riksdagsmonitor/releases/download/v1.0.0/riksdagsmonitor-v1.0.0.zip.sha256
# Verify checksum
sha256sum -c riksdagsmonitor-v1.0.0.zip.sha256
Every release is deployed to two locations:
Optimized cache headers for performance:
max-age=3600, must-revalidate (1 hour)max-age=31536000, immutable (1 year)max-age=86400 (1 day)max-age=86400 (1 day)After deployment, CloudFront cache is invalidated (/*) to ensure fresh content.
After a release, verify:
# Verify build provenance
gh attestation verify riksdagsmonitor-v1.0.0.zip -R Hack23/riksdagsmonitor
# Should output: โ Verification succeeded!
Symptom: Prepare job fails during build or tests
Common Causes:
Solution:
npm run build && npm test && npm run e2eSymptom: Build job fails during attestation generation
Common Causes:
Solution:
id-token: write and attestations: write permissionsSymptom: Release job fails during S3 sync
Common Causes:
Solution:
Symptom: docs/ directory empty or incomplete
Common Causes:
Solution:
Symptom: Release notes are empty or incorrect
Common Causes:
Solution:
Maintained by: Hack23 AB
License: Apache License 2.0
Support: https://github.com/Hack23/riksdagsmonitor/issues
| ๐ Platforms | ๐ฆ Open-Source Projects | ๐ก๏ธ Governance & Standards |
|---|---|---|
| ๐ณ๏ธ Riksdagsmonitor โ Swedish Parliament intelligence ๐ช๐บ EU Parliament Monitor โ European coverage ๐ต๏ธ Citizen Intelligence Agency โ political-data engine ๐ Hack23 AB โ corporate site ๐ฐ Hack23 Blog โ engineering & policy ๐ผ Hack23 on LinkedIn | ๐ณ๏ธ Hack23/riksdagsmonitor ๐ต๏ธ Hack23/cia ๐ช๐บ Hack23/euparliamentmonitor ๐ Hack23/european-parliament-mcp โ Hack23/cia-compliance-manager ๐ฅ Hack23/black-trigram ๐ Hack23/homepage | ๐ก๏ธ Hack23 ISMS-PUBLIC โ public ISMS ๐ Information Security Policy ๐ค AI Policy ๐งช Secure Development Policy ๐ฏ Threat Modeling Policy โ ๏ธ Vulnerability Management ๐ท๏ธ Classification Framework |
๐ณ๏ธ Empower citizens ยท ๐ Strengthen democratic accountability ยท ๐ต๏ธ Illuminate the political process
ยฉ 2008โ2026 Hack23 AB (Org.nr 559534-7807) ยท Maintainer: James Pether Sรถrling, CISSP CISM