Files
recipe-app/.kilo/plans/1779643125894-lucky-island.md
Nils-Johan Gynther 26c217e0eb
Test Suite / backend-pr-quick (push) Has been skipped
Test Suite / quick-import-pr-quick (push) Has been skipped
Test Suite / backend-full (push) Successful in 6m16s
Test Suite / flutter-quality (push) Failing after 1m15s
chore(backend): address deprecated dependencies in test stack
- 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
2026-05-24 19:47:24 +02:00

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

  1. Kartlägg källan till transitiva paket

    • Kör i backend/:
      • npm ls inflight
      • npm ls glob
    • Dokumentera exakt vilka toppnivåpaket som drar in versionerna.
    • Syfte: avgöra om problemet löses via toppnivåuppdatering eller overrides.
  2. 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 ci
      • npm ls inflight glob
    • Beslutspunkt:
      • Om glob@7/inflight försvinner: gå vidare till verifiering.
      • Om kvarstår: gå till steg 3.
  3. Inför overrides i backend/package.json vid behov

    • Lägg till kontrollerade overrides för att styra bort sårbara/föråldrade versioner.
    • Prioritet:
      • glob till modern, kompatibel version i aktiv support.
      • Undvik tvingad ersättning av inflight med inkompatibla alias om konsumentpaket inte stödjer det.
    • Regenerera lockfile via normal npm-process och verifiera installationsflöde.
  4. Säkerhetsverifiera dependency-trädet

    • Kör:
      • npm audit --audit-level=high
      • npm audit (för full kontext)
    • Klassificera återstående fynd:
      • fixbara nu
      • accepterad residualrisk (med motivering)
  5. Regressionstest av backend efter dependency-ändringar

    • Kör samma kvalitetskedja som används i projektet:
      • npm run prisma:validate
      • npm run prisma:generate
      • npm run typecheck
      • npm run lint
      • npm test
      • npm run build
    • Syfte: säkerställa att dependency-upgrade inte skapar drift-/build-regressioner.
  6. Skärp CI-policy (om inte redan tillräcklig)

    • Verifiera att .github/workflows/test.yml fortsatt kör npm audit --audit-level=high för backend-push.
    • Om önskat: höj till critical eller behåll high enligt teamets riskprofil.
    • Rekommendation: behåll high i nuläget för bättre tidig signal i ett aktivt projekt.
  7. Dokumentera beslut och operativ hantering

    • Uppdatera README.md kort med:
      • att deprecated-varningar hanterats
      • hur man felsöker nya transitiva varningar (npm ls <paket>)
      • policy för hur snabbt dependencies ska uppdateras

Risker och mitigering

  • Risk: Breaking changes vid dependency bump
    • Mitigering: uppgradera stegvis + full kvalitetskedja i steg 5.
  • Risk: overrides maskerar underliggande kompatibilitetsproblem
    • Mitigering: använd overrides endast när toppnivåuppdatering inte räcker; dokumentera tydligt varför.
  • 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 inflight visar inte problematisk kedja, eller tydligt dokumenterad residualrisk med motivering.
  • npm ls glob visar ingen osäker/föråldrad kedja (eller dokumenterad temporär avvikelse med plan).
  • npm audit --audit-level=high passerar, eller kvarvarande fynd är explicit riskaccepterade.
  • Backend-kvalitetskedjan passerar utan regression.
  • CI för backend fortsätter passera.

Rekommenderad genomförandeordning

  1. Kartlägg (npm ls)
  2. Riktade uppdateringar
  3. overrides endast vid behov
  4. Audit + full testkedja
  5. CI/dokumentation