[TASK-SIPT-SECURITY-AUDIT-DEPS] Upgrade Driver Redis ioredis v5 dan Patch Kerentanan Keamanan Dependensi Transitif
Modul: SIPT / PAB | Tipe: Maintenance / Security Patch | Stage Saat Ini:
DEVELOPMENT| Tanggal Dokumen: 2026-08-28
DEVELOPMENT STAGE
Dokumen ini sedang berada dalam tahap DEVELOPMENT. Pembaruan driver Redis dan patching dependensi telah diverifikasi pada lingkungan pengembangan (Development) dan menunggu proses promosi rilis ke Staging.
1. Informasi Tugas & Referensi Bisnis
Task ID / Nomor Referensi:
TASK-SIPT-SECURITY-AUDIT-DEPSSumber Instruksi: Pemeliharaan Keamanan Dependensi & Remediasi CVE
Dokumen Referensi / Lampiran: —
Task / Dependensi Terkait (Cross-Service): —
Modul Terkait:
SIPT / PABService / Repository:
sipt-backendPIC Pengembang: Hermansyah Efendi
Latar Belakang & Ringkasan Kebutuhan: Pemindaian rutin keamanan dependensi mendeteksi sejumlah kerentanan keamanan (vulnerabilities) pada transitive dependencies pihak ketiga di file
package-lock.json(seperti paketaxios,body-parser, danbrace-expansion). Selain itu, library Redis client yang digunakan (ioredis) masih tertahan di versi legacyv4.17.3yang memiliki keterbatasan kompatibilitas terhadap arsitektur Redis Cluster modern dan implementasi mesin memori baru (DragonflyDB). Dilakukan upgradeiorediske major releasev5.6.1serta remediasi keamanan paket vianpm audit fixguna memitigasi potensi celah eksploitasi pada production runtime.Ruang Lingkup & Rincian Sub-Pekerjaan (Technical Scope & Milestones):
- [x] Upgrade library
ioredisdari versi^4.17.3ke^5.6.1padapackage.jsondanpackage-lock.json - [x] Remediasi CVE keamanan dengan patching versi transitive dependencies (
axioske1.20.0,body-parserke1.20.6,brace-expansionke5.0.9) - [x] Verifikasi kompatibilitas backward helper Redis dan cache service pasca-upgrade major ioredis v5
- [x] Pencatatan entri perubahan dependensi pada
CHANGELOG.md
- [x] Upgrade library
2. Deployment Lifecycle
| # | Environment | Tanggal & Waktu | PIC | Status | Catatan |
|---|---|---|---|---|---|
| 1 | Development | 2026-08-28 11:32 | Hermansyah Efendi | DEPLOYED | Branch: development (Commit: 816c79df .. 26ac527e) |
| 2 | Staging (UAT) | — | — | PENDING | — |
| 3 | Production | — | — | PENDING | — |
Riwayat Update Log
| Tanggal | Environment | Perubahan | PIC |
|---|---|---|---|
| 2026-08-28 | Development | Initial log created — upgrade ioredis v5, remediasi CVE npm audit, dan verifikasi test suite cache/redis | Hermansyah Efendi |
3. Analisis Teknis & Rincian Perubahan
Alur Logika & Bisnis:
- Peningkatan Driver Redis (
ioredisv5): Libraryioredisdinaikkan dari^4.17.3ke^5.6.1. Versi ini membawa peningkatan performa connection pooling, penanganan auto-reconnect yang lebih tangguh saat terjadi node failover pada Redis Cluster, serta native support untuk konfigurasi cluster modern dan mesin kompatibel Redis seperti DragonflyDB. - Remediasi CVE Keamanan Paket (
package-lock.json): Menyelesaikan celah keamanan (vulnerabilities) pada paketaxios,body-parser, danbrace-expansionmelalui resolusi dependency lockfile tanpa mengubah fungsionalitas maupun API contracts aplikasi. - Verifikasi Backward Compatibility: Memastikan modul internal
app/helpers/redis.jsdanapp/services/cache_service.js(beserta fungsi wrapperget,set,del, danpipeline) tetap bekerja deterministik tanpa perubahan signature fungsi.
- Peningkatan Driver Redis (
Perubahan Database (DDL / DML):
sql-- Tidak ada perubahan skema database (DDL/DML) untuk task ini. -- Perubahan murni pada manifest dependensi runtime (package.json & package-lock.json).Kontrak API & Response Payload: Tidak ada penambahan atau perubahan kontrak API. Perubahan murni pada manifest dependensi project dan runtime engine caching.
4. Bukti Teknis (Technical Proof & Audit Trail)
- Repository:
sipt-backend - Branch Utama:
development - Merge Request / PR:
-
Daftar Commit Terkait (Multi-Commit Trail)
| Commit ID | Branch | Author | Tanggal & Jam | Ringkasan Perubahan |
|---|---|---|---|---|
816c79df82afbded4d46915f44551c6648561853 | development | Hermansyah Efendi | 2026-08-07 16:06 | chore(deps): upgrade ioredis to v5 and fix audit vulnerabilities |
8b6720cea76ef24124588172a99eef60e91f67be | development | Hermansyah Efendi | 2026-08-28 11:31 | chore(deps): fix npm audit vulnerabilities in package-lock.json |
26ac527e54aa6d72c05681084bc3307cbb33a422 | development | Hermansyah Efendi | 2026-08-28 11:32 | docs(changelog): record dependency audit fix in unreleased entries |
Cuplikan Kode / Implementasi Inti
// package.json (Upgrade Driver Redis)
{
"dependencies": {
"express": "^4.18.2",
- "ioredis": "^4.17.3",
+ "ioredis": "^5.6.1",
"jsonwebtoken": "^9.0.2"
}
}// package-lock.json (Remediasi CVE Dependensi Transitif)
{
"node_modules/axios": {
- "version": "1.16.1",
+ "version": "1.20.0"
},
"node_modules/body-parser": {
- "version": "1.20.5",
+ "version": "1.20.6"
},
"node_modules/brace-expansion": {
- "version": "5.0.6",
+ "version": "5.0.9"
}
}5. Bukti Verifikasi Pengujian (QA / Unit Test / API Verification)
A. Verifikasi Unit Test (Development Stage)
- Test Suite Files:
tests/helpers/cache-service.test.jstests/helpers/redis.test.js
- Status Eksekusi CLI:
PASSED (50/50 tests passed)
// tests/helpers/cache-service.test.js & redis.test.js
// Memastikan operasi get, set, del, dan pipeline ioredis v5 berfungsi normal
it('operates redis commands cleanly using upgraded ioredis client', async () => {
// Test suite helper Redis & cache service passed 100%
}); RUN v4.1.11 D:/WORK/LNSW/sipt-backend
✓ tests/helpers/cache-service.test.js (26 tests) 21ms
✓ tests/helpers/redis.test.js (24 tests) 20ms
Test Files 2 passed (2)
Tests 50 passed (50)
Start at 09:48:52
Duration 389ms (transform 167ms, setup 0ms, import 243ms, tests 41ms, environment 0ms)B. Panduan Pengujian QA & Verifikasi Staging (QA Playbook)
- Cakupan / Surface Pengujian:
Worker / DB / Cron Only&API / Postman Only(Smoke Testing) - Kebutuhan Akses / Role Akun: Akses runner / server deployment & instans Redis
- Hasil Pengujian UAT:
PENDING - Catatan QA: —
Skenario Pengujian QA (Test Scenarios)
Skenario 1 — Verifikasi Integritas Instalasi Dependensi (Build Verification):
- Pre-kondisi: Menghapus folder
node_moduleslokal atau menjalankan clean build di server Staging. - Trigger / Request: Jalankan perintah instalasi dependensi bersih:bash
npm ci npm run test:only - Ekspektasi Response: Instalasi selesai tuntas tanpa dependency resolving conflict. Seluruh unit test berjalan
PASSED. - Verifikasi Database / Log: Tidak ada peringatan deprecation kritis saat inisialisasi koneksi runtime Node.js.
- Pre-kondisi: Menghapus folder
Skenario 2 — Verifikasi Operasi Cache & Session Redis:
- Pre-kondisi: Instans / cluster Redis aktif.
- Trigger / Request: Lakukan request login atau request yang memicu caching (misal pencarian data referensi atau pembuatan submission cooldown).
- Ekspektasi Response: Data tersimpan dan terbaca dari cache tanpa error koneksi socket.
- Verifikasi Database / Log: Log koneksi menunjukkan
Connected to Redis/Connected to Redis Clustertanpa disconnect/retry loop.
Bukti Response Verifikasi Staging (Diisi saat UAT)
{
"status": "PENDING",
"note": "Menunggu deployment Staging untuk eksekusi skenario uji QA."
}