chore(deps): enforce npm package release age policy
- 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
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user