26c217e0eb
- Updated jest ecosystem to v30.x in backend/package.json - Added controlled overrides for test-exclude to remove inflight@1.0.6 and glob@7.2.3 - Updated README.md with deprecation handling procedures and debugging steps - Modified .kilo/plans/1779643125894-lucky-island.md to document systematic approach for dependency management
4.2 KiB
4.2 KiB
Plan: Hantera deprecated dependencies (inflight / glob) i backend
Mål
Minska säkerhets- och stabilitetsrisk från deprecated/transitiva paket i backend genom kontrollerad uppgradering, verifiering och CI-skydd utan att bryta befintliga flöden.
Bakgrund
npm ci i backend visar varningar för:
inflight@1.0.6(ej underhållen, memory leak)glob@7.2.3(föråldrad med kända sårbarheter)
Detta är normalt transitiva beroenden, men bör ändå adresseras systematiskt.
Scope
- Endast Node-backend (
backend/) - Inga funktionella ändringar i app-logik
- Fokus: dependency graph, lockfile, CI-kontroller, dokumentation
Implementationsplan
-
Kartlägg källan till transitiva paket
- Kör i
backend/:npm ls inflightnpm ls glob
- Dokumentera exakt vilka toppnivåpaket som drar in versionerna.
- Syfte: avgöra om problemet löses via toppnivåuppdatering eller
overrides.
- Kör i
-
Uppdatera direkta beroenden först (minst invasivt)
- Kör riktad uppdatering av paket som identifieras i steg 1 (t.ex. test-/build-verktyg först, runtime efteråt).
- Kör därefter:
npm cinpm ls inflight glob
- Beslutspunkt:
- Om
glob@7/inflightförsvinner: gå vidare till verifiering. - Om kvarstår: gå till steg 3.
- Om
-
Inför
overridesibackend/package.jsonvid behov- Lägg till kontrollerade
overridesför att styra bort sårbara/föråldrade versioner. - Prioritet:
globtill modern, kompatibel version i aktiv support.- Undvik tvingad ersättning av
inflightmed inkompatibla alias om konsumentpaket inte stödjer det.
- Regenerera lockfile via normal npm-process och verifiera installationsflöde.
- Lägg till kontrollerade
-
Säkerhetsverifiera dependency-trädet
- Kör:
npm audit --audit-level=highnpm audit(för full kontext)
- Klassificera återstående fynd:
- fixbara nu
- accepterad residualrisk (med motivering)
- Kör:
-
Regressionstest av backend efter dependency-ändringar
- Kör samma kvalitetskedja som används i projektet:
npm run prisma:validatenpm run prisma:generatenpm run typechecknpm run lintnpm testnpm run build
- Syfte: säkerställa att dependency-upgrade inte skapar drift-/build-regressioner.
- Kör samma kvalitetskedja som används i projektet:
-
Skärp CI-policy (om inte redan tillräcklig)
- Verifiera att
.github/workflows/test.ymlfortsatt körnpm audit --audit-level=highför backend-push. - Om önskat: höj till
criticaleller behållhighenligt teamets riskprofil. - Rekommendation: behåll
highi nuläget för bättre tidig signal i ett aktivt projekt.
- Verifiera att
-
Dokumentera beslut och operativ hantering
- Uppdatera
README.mdkort med:- att deprecated-varningar hanterats
- hur man felsöker nya transitiva varningar (
npm ls <paket>) - policy för hur snabbt dependencies ska uppdateras
- Uppdatera
Risker och mitigering
- Risk: Breaking changes vid dependency bump
- Mitigering: uppgradera stegvis + full kvalitetskedja i steg 5.
- Risk:
overridesmaskerar underliggande kompatibilitetsproblem- Mitigering: använd
overridesendast när toppnivåuppdatering inte räcker; dokumentera tydligt varför.
- Mitigering: använd
- Risk: Kvarvarande audit-fynd blockerar release
- Mitigering: klassificera residualrisk och skapa uppföljningsärende med ägare och deadline.
Leverabler
- Uppdaterat
backend/package.json(ev.overrides+ uppdaterade versionsintervall) - Uppdaterad
backend/package-lock.json - Eventuell liten CI-justering i
.github/workflows/test.yml - Kort dokumentationsnotis i
README.md
Acceptanskriterier
npm ls inflightvisar inte problematisk kedja, eller tydligt dokumenterad residualrisk med motivering.npm ls globvisar ingen osäker/föråldrad kedja (eller dokumenterad temporär avvikelse med plan).npm audit --audit-level=highpasserar, eller kvarvarande fynd är explicit riskaccepterade.- Backend-kvalitetskedjan passerar utan regression.
- CI för backend fortsätter passera.
Rekommenderad genomförandeordning
- Kartlägg (
npm ls) - Riktade uppdateringar
overridesendast vid behov- Audit + full testkedja
- CI/dokumentation