Appearance
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.
Kommando
Kjør fra en oppdatert, ren checkout av main:
sh
npm run verify:release-artifacts -- --markdownLagre 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.mdVerifikatoren 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.
Forventede artefakter
| Artefakt | Forventet kildeverdi | Må registreres i audit |
|---|---|---|
| Widget npm-pakke | @lumianalytics/[email protected] | Publisert versjon, latest dist-tag, og eventuell npm-integritet/shasum. |
| API image | ghcr.io/asorheim/lumi-analytics/lumi-api:1.0.0 | Manifest-list digest, tag@digest pin, tags, opprettet tidspunkt, package-lenke og OCI-embedded BuildKit provenance/SBOM. |
| Dashboard image | ghcr.io/asorheim/lumi-analytics/lumi-dashboard:1.0.0 | Manifest-list digest, tag@digest pin, tags, opprettet tidspunkt, package-lenke og OCI-embedded BuildKit provenance/SBOM. |
| Helm chart | oci://ghcr.io/asorheim/lumi-analytics/charts/lumi --version 1.0.1 | OCI digest, chart-versjon, appVersion og kilde (charts/lumi/Chart.yaml). |
| Dokumentasjon | deploy-docs.yaml på main | Siste workflow-status, commit-SHA og URL. |
| Changelog | packages/survey/CHANGELOG.md og Changelog | Entry for 0.6.1 og bekreftelse på at public changelog inkluderer package-changelog. |
Checklist
- [ ]
npm view @lumianalytics/survey --jsonviser0.6.1iversionsogdist-tags.latester0.6.1. - [ ] GHCR har
lumi-api:1.0.0; audit inneholderdigest=sha256:...ogpinned=ghcr.io/asorheim/lumi-analytics/lumi-api:1.0.0@sha256:.... - [ ] GHCR har
lumi-dashboard:1.0.0; audit inneholderdigest=sha256:...ogpinned=ghcr.io/asorheim/lumi-analytics/lumi-dashboard:1.0.0@sha256:....
- [ ]
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.digestogdashboard.image.digest. - [ ]
deploy-docs.yamler grønn for release-kilden som skal sendes til kunde. - [ ] Changelog-entry for
@lumianalytics/[email protected]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.
| Issue | Hvorfor den betyr noe |
|---|---|
| #381 | Publiserer @lumianalytics/[email protected] til npm. Dette blokkerer releaseverifisering til latest matcher kildeversjonen. |
| #397 | Rent BYOC-installasjonsbevis fra publiserte artefakter. Dette skal ikke starte før releaseverifiseringen er grønn. |
| #212 | Entra ID-guide må være tydelig nok for første enterprise-kunde. |
| #213 | Provider-spesifikke OIDC-guider må enten være ferdige eller eksplisitt utsatt. |
| #73 | Azure-validering må enten være bevist eller tydelig merket som ikke-verifisert. |
| #173 | Databehandleravtale/personvernartefakter må eies før procurement. |
| #183 | Lisens-/NOTICE-pakke må være avklart før distribusjon til kunde. |
| #246 | Tenant-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.1ellerlatest != 0.6.1: stopp på #381. - Mangler GHCR image/chart tag: re-kjør relevant publish workflow fra
mainog lagre ny digest. - Manifest-listen, BuildKit provenance eller SBOM mangler for en image-tag: re-kjør release-image workflow fra
main; 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.yamlfør kunde-link deles. - Kjente kundegap mangler status: oppdater audit med issue-lenker og beslutning før release claim.
