Afhankelijkheid en CI/CD-governance

Op deze pagina wordt uitgelegd hoe PayCal JavaScript-afhankelijkheden deterministisch houdt en hoe CI-poorten worden afgedwongen vóór de release.

Verificatie-metagegevens

June 2026 CI/CD Tooling Update

This page now links to the complete CI/CD Tooling and Release Governance article. That article documents local hooks, public-health gates, release-ledger promotion, production receipts, and portability work in one place.

npm Afhankelijkheidsbeleid

PayCal gebruikt een lockfile-first-afhankelijkheidsbeleid voor JavaScript-tooling en browserautomatiseringscontroles.

  • Install mode for automation: npm ci only (frozen lockfile install).
  • Lockfile source of truth: package-lock.json is required for deterministic CI installs.
  • Declared package manifest: package.json defines lint, smoke, and accessibility command surfaces.
  • Override controls: dependency overrides are declared in package.json to pin selected transitive risk points.

If npm ci reports a mismatch between package.json and package-lock.json, the lockfile is updated intentionally in a dedicated maintenance change before CI reruns.

Waar wordt npm voor gebruikt

Doel Commando Primaire controle
JavaScript-lint- en sink-controles npm run test:js ESLint-regels + JS-sink-beleidscontroles
Toneelschrijver rookcontroles npm run test:smoke:ui Routegedrag en regressievalidatie op browserniveau
Bereikbaarheidsroute en beleidscontroles npm run test:a11y:all WCAG-, reflow-, contrast- en ARIA-testsuites
Contrastmatrix genereren npm run test:a11y:contrast Conformiteitsverificatie op themaniveau

CI/CD Gate-model

PayCal scheidt de kwaliteitscontroles van alle workflows, zodat fouten expliciet en traceerbaar zijn:

  • .github/workflows/javascript.yml: Node 20 + npm ci + JavaScript quality gates.
  • .github/workflows/phpunit.yml: staged backend validation from fast gate to deep verification and artifacts.
  • .github/workflows/phpstan.yml: strict static analysis with baseline-blocking policy.

Release-hygiëneworkflows behandelen mislukte poorten als blokkers en moeten na reparaties opnieuw worden uitgevoerd.

Bekende beperkingen

  • Openbare transparantiepagina's worden handmatig gesynchroniseerd met workflow- en pakketwijzigingen tijdens releasecycli.
  • Het gedrag van de CI-pijplijn wordt op meerdere pagina's gedocumenteerd en kan afwijken als updates niet consequent worden toegepast.

Geplande documentatieverbeteringen

  • Publiceer één canonieke poortmatrix waarin elke CI-taak wordt toegewezen aan de status van eigenaar, trigger, opdracht en blokkering.
  • Voeg een driemaandelijkse momentopname van het afhankelijkheidsbeheer toe, inclusief directe NPM-pakketten, grondgedachte en updatecadans.
  • Voeg een releasechecklist-item toe om te bevestigen dat de NPM-beheerdocumenten in lijn blijven met het workflow- en lockfile-beleid.

Hoe te verifiëren

# Reproduce JavaScript CI gates locally
npm ci
npm run test:js

# Reproduce broader release-level accessibility gate
npm run test:a11y:all

# Inspect workflow definitions
cat .github/workflows/javascript.yml
cat .github/workflows/phpunit.yml
cat .github/workflows/phpstan.yml

Related transparency pages: CI/CD Tooling and Release Governance, Testing and Validation Governance, and Verification and Governance.