e6e9e11b18
- Added `min-release-age=1` to backend/.npmrc to require packages to be at least 1 day old - GitHub Actions backend jobs already use `npm ci` in backend/ directory, automatically enforcing the policy - Updated README.md with supply-chain protection policy and operational procedures BREAKING CHANGE: npm install/npm ci will now fail for packages younger than 1 day unless policy is temporarily overridden
52 lines
2.4 KiB
Markdown
52 lines
2.4 KiB
Markdown
# Plan: Konfigurera minimiålder för paketrelease
|
|
|
|
## Mål
|
|
Införa en "cooldown" för npm-paket så att mycket nyligen publicerade versioner blockeras vid installation i projektet.
|
|
|
|
## Nuläge (verifierat)
|
|
- Projektet använder npm (lockfile finns i `backend/package-lock.json` och `.kilo/package-lock.json`).
|
|
- Backend installeras i CI med `npm ci` i `.github/workflows/test.yml`.
|
|
- Ingen befintlig `.npmrc` i repo-roten eller i `backend/`.
|
|
- Ingen Renovate/Dependabot-konfiguration hittades i repot.
|
|
|
|
## Föreslagen implementation
|
|
1. **Sätt projektpolicy i backend**
|
|
- Skapa `backend/.npmrc` med:
|
|
- `min-release-age=1`
|
|
- Motivering: backend är den körda Node-applikationen och har tydlig CI-kedja med `npm ci`.
|
|
|
|
2. **(Valfritt) Sätt policy för Kilo-verktygsmappen**
|
|
- Om `.kilo/` installeras/uppdateras aktivt i detta repo, skapa även `.kilo/.npmrc` med samma värde.
|
|
- Om `.kilo/` är sekundär och inte del av normal drift kan detta utelämnas.
|
|
|
|
3. **CI-effekt (ingen workflow-ändring krävs)**
|
|
- `npm ci` i GitHub Actions kommer automatiskt respektera `backend/.npmrc`.
|
|
- Ingen ändring av `.github/workflows/test.yml` behövs för grundfunktionen.
|
|
|
|
4. **Dokumentera kort i befintlig drift-/utvecklingsdokumentation**
|
|
- Lägg 2-4 rader där dependency-policy redan beskrivs (om sådan sektion finns).
|
|
- Innehåll: syfte, värde (`1` dag), och hur man tillfälligt hanterar blockerade uppgraderingar.
|
|
|
|
5. **Verifiering**
|
|
- Lokalt i `backend/`:
|
|
- `npm config get min-release-age` (ska visa `1` med projektconfig aktiv)
|
|
- `npm ci` (ska fungera normalt)
|
|
- CI:
|
|
- Bekräfta att befintligt workflow passerar utan regressionsfel.
|
|
|
|
## Risker och hantering
|
|
- **Risk:** Legitima hotfix-versioner blir tillfälligt blockerade (<24h gamla).
|
|
- **Hantering:** vänta in cooldown eller använd tillfällig manuell policyjustering i kontrollerad incident.
|
|
- **Risk:** Inkonsistent policy om flera npm-delprojekt hanteras olika.
|
|
- **Hantering:** besluta explicit om `.kilo/` ska omfattas.
|
|
|
|
## Rekommenderade standardval
|
|
- Minimiålder: **1 dag** (`min-release-age=1`) nu.
|
|
- Scope: **backend först**; utöka till `.kilo/` endast om den mappen används aktivt i teamets vardagsflöde.
|
|
|
|
## Acceptanskriterier
|
|
- `backend/.npmrc` finns med `min-release-age=1`.
|
|
- `npm ci` i backend fungerar lokalt.
|
|
- CI-jobben som kör backend-installation fortsätter passera.
|
|
- (Om valt) `.kilo/.npmrc` följer samma policy.
|