Lewati ke isi

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):

  1. Suku cadang di gudang diatur dalam area terkunci rapat.
  2. Gerbang dispenser sparepart tidak akan merilis barang sebelum storekeeper men-scan barcode pick-slip digital SPK resmi yang sah dari tablet Service Advisor.
  3. 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.
  4. Setiap dispense event dicatat ke audit_logs dengan 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_logs dan 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