Lewati ke isi

Sentra Rental — Ops (Security + Deployment + Testing)

Security — Rental Delta

Baseline security patterns: _shared/security-patterns.md

Overrides

  • (no overrides — Rental uses baseline JWT + RBAC patterns)

Tambahan Sistem-Spesifik

  • KTP OCR + Face Match Anti-Fraud: Integrasi Verihubs / PrivyID API untuk validasi NIK langsung ke Dukcapil dan face match liveness test ≥ 95%. Mencegah kasus pelarian aset oleh sindikat sewa palsu.
  • Blacklist Rental Nasional: Integrasi API blacklist antar pengusaha rental se-Indonesia. Customer dengan KTP yang pernah menjadi pelaku fraud di platform rental lain akan ditolak otomatis saat booking.
  • SHA-256 Tamper-Proof Inspection Hash: Setiap payload inspeksi handover (JSON checklist + URL foto S3 + tanda tangan + timestamp) di-hash SHA-256 dan ditandatangani private key server. Disimpan di handover_inspections.tamper_proof_hash. Jika record database diubah secara internal, hash tidak cocok dan memicu security alert ke Owner dashboard.
  • S3 Photo Immutability: Foto inspeksi di-upload ke S3 bucket dengan Object Lock (WORM — Write Once Read Many) policy. File tidak dapat dihapus atau di-overwrite sebelum periode retensi 5 tahun.
  • Deposit Pre-Auth Audit Log: Setiap aksi pada deposit (hold, capture, void, release) dicatat di tabel deposit_audit_logs dengan timestamp, actor_id, dan gateway response body. Tidak dapat dihapus (append-only).

Deployment — Rental Delta

Baseline deployment: _shared/deployment-baseline.md

Overrides

  • (no overrides — Rental uses standard AWS EKS multi-AZ baseline)

Tambahan Sistem-Spesifik

  • Inspector Mobile App Distribution: React Native + Expo build didistribusikan via Expo EAS (OTA update) dan Google Play Store internal track. Update OTA untuk bug fix minor tidak memerlukan Play Store review cycle.
  • Offline Queue Resilience: Inspector mobile menyimpan foto ke device local storage (Expo FileSystem) saat offline. Upload queue diproses saat koneksi pulih menggunakan expo-background-fetch. Jika upload gagal 3× berturut-turut, alert dikirim ke admin cabang.
  • Backup S3 Foto Inspeksi: Foto inspeksi di-replicate ke region AWS kedua (disaster recovery) secara asinkron. Recovery Point Objective (RPO) = 1 jam.
  • Cadangan Database: Backup PostgreSQL otomatis per jam ke S3 Cold Storage dengan retensi 365 hari (kepatuhan audit perpajakan).

Testing Checklist (QA)

QA Skenario Fungsional Rental

ID Modul Skenario Hasil yang Diharapkan Status
QA-TC-001 Booking Concurrency 100 user memesan kamera yang sama tanggal yang sama secara serentak 1 user berhasil, 99 lainnya terima 409 "Aset telah dibooking" dengan anggun READY
QA-TC-002 Payment Timeout User buat draf booking, Redis lock aktif, lalu tutup app tanpa bayar Setelah 15 menit, status → CANCELLED, Redis lock dilepas, bitmask direset, aset kembali tersedia READY
QA-TC-003 Offline Mobile Sync Inspector check-out di basement tanpa koneksi internet App simpan data + foto lokal di SQLite/FileSystem; saat sinyal kembali, upload otomatis ke S3 tanpa kehilangan data READY
QA-TC-004 Late Return Surcharge Mengembalikan mobil terlambat 6 jam Sistem kenakan denda Daily Rate × 1.5 (formula h > 5 jam) secara akurat READY
QA-TC-005 Deposit Pre-Auth Booking dengan kartu kredit, return bersih Pre-auth void dalam 24 jam setelah COMPLETED, tidak ada debet ke kartu pelanggan READY
QA-TC-006 Tamper Detection Admin mengubah damage_fee_applied langsung di DB System mendeteksi hash mismatch, trigger security alert ke Owner READY

QA Skenario Beban & Keandalan

  • Redlock Stress Test: 500 concurrent booking request untuk 50 unit berbeda — verifikasi tidak ada double booking.
  • Bitmask Consistency Test: Setelah 1000 booking dan 500 cancellation acak, verifikasi bitmask Redis konsisten dengan data tabel booking_details di PostgreSQL.
  • S3 Upload Resilience: Simulasi jaringan putus-nyambung saat upload 20 foto — verifikasi semua foto berhasil terupload tanpa duplikasi.