Skip to content

Releaseverifisering

Kjør denne kontrollen før Lumi brukes i et rent BYOC-installasjonsbevis eller i en kunde-pilot. Målet er å bevise at kildekode, npm-pakke, GHCR-images, Helm-chart, dokumentasjon, changelog og kjente åpne saker peker på samme release.

Hard gate

Hvis npm run verify:release-artifacts feiler, skal ikke installasjonsbeviset i #397 startes. Stopp release-løpet, koble feilen til en konkret issue, og kjør kontrollen på nytt etter at feilen er rettet.

Ingen kunde-pilot på 1.x

De forventede verdiene nedenfor beskriver tekniske 1.x-forhåndsvisningsartefakter og kan ikke godkjennes som kundebaseline. Release-løpet etter #540, #543 og #456 skal sette chart og appVersion til 2.0.0, oppdatere alle forventede verdier og kjøre verifikasjonen på nytt. Først da er baselinen kundestøttet.

Kommando

Kjør fra en oppdatert, ren checkout av main:

sh
npm run verify:release-artifacts -- --markdown

Lagre Markdown-output i release-audit for den konkrete datoen, for eksempel:

sh
npm run verify:release-artifacts -- --markdown > docs/audits/YYYY-MM-DD-release-artifacts.md

Verifikatoren slår mot npmjs, GitHub Packages/GHCR og GitHub Actions. Den feiler når en forventet artefakt mangler, når npm latest ikke matcher kildeversjonen, eller når publiserte installasjonsreferanser er ute av takt med charts/lumi/Chart.yaml. Release-taggen skal være v<chart-version>; GitHub Release og SBOM-assets opprettes av .github/workflows/release.yaml.

Forventede artefakter

ArtefaktForventet kildeverdiMå registreres i audit
Widget npm-pakke@lumianalytics/survey@0.6.1Publisert versjon, latest dist-tag, og eventuell npm-integritet/shasum.
GitHub Releasev1.0.1Release-URL, source SHA, lumi-release-manifest.json, Helm package og CycloneDX SBOM-assets.
API imageghcr.io/asorheim/lumi-analytics/lumi-api:1.0.0Manifest-list digest, tag@digest pin, tags, opprettet tidspunkt, package-lenke og OCI-embedded BuildKit provenance/SBOM.
Dashboard imageghcr.io/asorheim/lumi-analytics/lumi-dashboard:1.0.0Manifest-list digest, tag@digest pin, tags, opprettet tidspunkt, package-lenke og OCI-embedded BuildKit provenance/SBOM.
Helm chartoci://ghcr.io/asorheim/lumi-analytics/charts/lumi --version 1.0.1OCI digest, chart-versjon, appVersion og kilde (charts/lumi/Chart.yaml).
Dokumentasjondeploy-docs.yamlmainSiste workflow-status, commit-SHA og URL.
Changelogpackages/survey/CHANGELOG.md og ChangelogEntry for 0.6.1 og bekreftelse på at public changelog inkluderer package-changelog.

Checklist

  • [ ] npm view @lumianalytics/survey --json viser 0.6.1 i versions og dist-tags.latest er 0.6.1.
  • [ ] GHCR har lumi-api:1.0.0; audit inneholder digest=sha256:... og pinned=ghcr.io/asorheim/lumi-analytics/lumi-api:1.0.0@sha256:....
  • [ ] GHCR har lumi-dashboard:1.0.0; audit inneholder digest=sha256:... og pinned=ghcr.io/asorheim/lumi-analytics/lumi-dashboard:1.0.0@sha256:....
  • [ ] GitHub Release v1.0.1 finnes og har lumi-release-manifest.json, lumi-api-sbom.cyclonedx.json, lumi-dashboard-sbom.cyclonedx.json og Helm package som assets.
  • [ ] docker buildx imagetools inspect ghcr.io/asorheim/lumi-analytics/lumi-api:1.0.0 --format '{{ json .Provenance }}' viser BuildKit provenance.
  • [ ] docker buildx imagetools inspect ghcr.io/asorheim/lumi-analytics/lumi-api:1.0.0 --format '{{ json .SBOM }}' viser BuildKit SBOM.
  • [ ] docker buildx imagetools inspect ghcr.io/asorheim/lumi-analytics/lumi-dashboard:1.0.0 --format '{{ json .Provenance }}' viser BuildKit provenance.
  • [ ] docker buildx imagetools inspect ghcr.io/asorheim/lumi-analytics/lumi-dashboard:1.0.0 --format '{{ json .SBOM }}' viser BuildKit SBOM.
  • [ ] GHCR har chartet lumi:1.0.1; audit inneholder digest.
  • [ ] Installasjonsdocs bruker --version 1.0.1, lumi-api:1.0.0, lumi-dashboard:1.0.0, api.image.digest og dashboard.image.digest.
  • [ ] deploy-docs.yaml er grønn for release-kilden som skal sendes til kunde.
  • [ ] Changelog-entry for @lumianalytics/survey@0.6.1 er synlig.
  • [ ] Kjente åpne kundegap er listet med issue-nummer og eksplisitt status.

Kjente kundegap som skal vurderes

Denne listen er en seed-list for audit, ikke en erstatning for å sjekke åpne issues. Verifikatoren henter status for disse sakene når den kjøres.

IssueHvorfor den betyr noe
#381Publiserer @lumianalytics/survey@0.6.1 til npm. Dette blokkerer releaseverifisering til latest matcher kildeversjonen.
#397Rent BYOC-installasjonsbevis fra publiserte artefakter. Dette skal ikke starte før releaseverifiseringen er grønn.
#212Entra ID-guide må være tydelig nok for første enterprise-kunde.
#213Provider-spesifikke OIDC-guider må enten være ferdige eller eksplisitt utsatt.
#73Azure-validering må enten være bevist eller tydelig merket som ikke-verifisert.
#173Databehandleravtale/personvernartefakter må eies før procurement.
#183Lisens-/NOTICE-pakke må være avklart før distribusjon til kunde.
#246Tenant-slug/tenant-oppsett må være lukket, akseptert eller eksplisitt utsatt.

Failure policy

Feil i releaseverifiseringen skal behandles som release-drift, ikke som dokumentasjonsstøy.

  • Mangler npm 0.6.1 eller latest != 0.6.1: stopp på #381.
  • Mangler GHCR image/chart tag: rett release-workflowen og kjør den fra Git-taggen v<chart-version>; ikke repush versjonstaggen manuelt fra main.
  • Manifest-listen, BuildKit provenance eller SBOM mangler for en image-tag: rett release-workflowen og kjør den fra Git-taggen v<chart-version>; ikke bruk image-taggen i kundeinstallasjon før release metadata finnes.
  • Changelog eller docs peker på feil versjon: rett docs før installasjonsbevis.
  • Docs publish er rød eller mangler: re-kjør deploy-docs.yaml før kunde-link deles.
  • Kjente kundegap mangler status: oppdater audit med issue-lenker og beslutning før release claim.

Lumi Analytics — bygget på navikt/lumi (MIT-lisens)