Sentra Automotive — Ops (Security + Deployment + Testing)¶
Security — Automotive Delta¶
Baseline security patterns:
_shared/security-patterns.md
Overrides¶
- (no overrides — baseline RBAC, audit log hash chain, supervisor PIN, PJSP callback verification semua dipakai)
Tambahan Sistem-Spesifik¶
17.1 Sparepart Theft Prevention (Digital Pick-Slip Matcher)
Untuk menghindari pencurian fisik sparepart baru (misal: mekanik diam-diam mengambil kampas rem baru dari gudang tanpa izin, lalu menjualnya secara ilegal):
- Suku cadang di gudang diatur dalam area terkunci rapat.
- Gerbang dispenser sparepart tidak akan merilis barang sebelum storekeeper men-scan barcode pick-slip digital SPK resmi yang sah dari tablet Service Advisor.
- Sistem merekam data video CCTV (integrasi snapshot API kamera gudang) setiap kali scan barcode pick-slip dieksekusi guna mencocokkan wajah mekanik pengambil dengan SPK terkait.
- Setiap dispense event dicatat ke
audit_logsdengan ID storekeeper, timestamp, SKU, batch, dan quantity yang di-scan.
17.2 Supervisor Security Override PIN for Invoicing
Untuk menghindari kecurangan kasir nakal yang menghapus item pengerjaan jasa mekanik atau sparepart dari billing kasir setelah uang diterima dari pelanggan:
- Tombol "Hapus Item", "Void Invoice", atau "Diskon Manual" dikunci secara default.
- Membuka fitur override tersebut wajib memasukkan PIN otorisasi Supervisor (Service Advisor / Branch Manager).
- Setiap kali bypass dieksekusi, sistem secara otomatis merekam data tersebut ke tabel
audit_logsdan mengirim notifikasi WhatsApp pengawasan langsung ke ponsel Owner franchise.
Deployment — Automotive Delta¶
Baseline deployment:
_shared/deployment-baseline.md
Overrides¶
- (no overrides — baseline AWS EKS multi-AZ deployment dipakai)
Tambahan Sistem-Spesifik¶
18.1 Cloud & Edge Deployment Architecture
+-------------------------------------------------------------------------------+
| AWS CLOUD PLATFORM (Production Multi-AZ Topology) |
| [ Internet Users / Booking Service Portal ] |
| ↓ |
| [ AWS Route 53 DNS ] |
| ↓ |
| [ AWS ALB (Load Balancer) ] |
| ┌─────────────────┴─────────────────┐ |
| ↓ (AZ-A) ↓ (AZ-B) |
| [ EKS Pod: Go API Engine ] [ EKS Pod: Go API Engine ] |
| [ EKS Pod: NestJS Core ] [ EKS Pod: NestJS Core ] |
| └─────────────────┬─────────────────┘ |
| ↓ |
| [ Redis Cluster ] |
| (Active Locks & Session Cache) |
| ↓ |
| [ Amazon RDS PostgreSQL ] |
| (Active-Passive Multi-AZ Replica) |
+-------------------------------------------------------------------------------+
↑
(Secure MQTT over WebSockets TLS 1.3)
+-------------------------------------------------------------------------------+
| PHYSICAL BENGKEL/WORKSHOP SITES (Edge Network Area) |
| [ Receptionist PC / Electron App ] |
| ↓ |
| [ Local Gateway — Industrial PC ] |
| - Go-Edge Sync Daemon & MQTT Broker |
| - SQLite Cipher (Offline Local Access DB) |
| - Local LAN Network only |
| ┌─────────────────┴─────────────────┐ |
| ↓ ↓ |
| [ Mechanic Bay Tablets ] [ Gudang Barcode Scanners ] |
+-------------------------------------------------------------------------------+
- Go-Edge Sync Daemon: Dijalankan sebagai Windows Service di Industrial PC lokal setiap cabang, auto-start saat boot, memastikan MQTT broker selalu aktif.
- Electron App Distribution: Service Advisor Console dan Cashier POS dikemas sebagai Electron executable untuk Windows. Update via Electron updater API ke server CDN.
- Offline Resilience: Saat koneksi putus, semua transaksi (dispense, billing, WO update) disimpan ke SQLite Cipher lokal dan disinkronkan via CRDT saat internet kembali.
Testing Checklist (QA)¶
19.1 Core Automation Test Suite Scenarios¶
| Category | Test Case Scenario | Expected Result | Test Type |
|---|---|---|---|
| High Concurrency Bay | 5 SA secara bersamaan meregistrasikan check-in kendaraan di lift Bay 1 pada milidetik yang sama | DB memproses antrean berurutan, hanya 1 kendaraan status WORKING di Bay 1, 4 lainnya di antrean tunggu |
Concurrency / Stress Test |
| Gudang Barcode Latency | Penggunaan scanner barcode pada 100 spareparts berturut-turut | Pengurangan stok dan penambahan item ke kasir dalam durasi < 500 ms tanpa memory leak di edge server | Performance / Stress Test |
| Offline Billing Sync | Kabel internet cabang dicabut paksa; kasir menerbitkan invoice dan proses pembayaran manual | Kasir sukses melunasi kuitansi di SQLite lokal; setelah internet kembali, invoice tersinkronisasi ke cloud AWS tanpa konflik | Offline / Chaos Test |
| Split-Payment EDC | Pembayaran tagihan servis Rp 5.000.000 dibagi Rp 2.000.000 cash + Rp 3.000.000 debit | Invoice kasir sukses menerbitkan 1 invoice lunas dengan 2 catatan entri jurnal kas debet terpisah secara seimbang | Functional / POS Audit |
| Upselling Commission | Mekanik A merekomendasikan ganti oli tambahan yang disetujui SA & customer | Sistem payroll otomatis menghitung tambahan insentif upselling 1.5% dari margin oli ke saldo upah Mekanik A pada tutup buku | Functional / QA Audit |
| Barcode SKU Mismatch | Storekeeper men-scan barcode item yang salah (bukan yang diminta di pick-slip) | Sistem mengeluarkan peringatan audio error dan menolak dispense — stok tidak terpotong | Functional / Security |