6.4 KiB
6.4 KiB
CODEx Handoff — QRIS Soundbox Platform
Current status
- Fokus terakhir: penyelesaian gap Fase 1 backend + smoke e2e skenario wajib.
- Implementasi backend dan UI sudah mulai dikerjakan di repository (tidak lagi hanya dokumentasi).
- Tambahan terbaru:
- audit log untuk aksi admin/webhook penting
- ledger placeholder
gross_incomesaat transaksi menjadipaid - endpoint admin
GET /admin/audit-logsdanGET /admin/ledger-entries - awal Fase 2: capability resolver +
POST /device/transactions/dynamic-qrAPI-direct - lanjutan Fase 2: MQTT dynamic QR simulator/outbox + device config push/ack
- smoke e2e mencakup duplicate callback, invalid signature, ledger, audit, terminal tanpa binding, dynamic QR API-direct, dynamic QR MQTT, dan device config
- fix UI lokal:
- CSP Helmet dilonggarkan untuk Tailwind CDN, Google Fonts/Material Symbols, dan image Googleusercontent agar desain render normal
- panel kanan login admin dibuat dark glass supaya teks putih terbaca
- input login admin diubah dari email ke username text agar credential dev
admin/adminbisa dipakai
- Smoke test Fase1 jalannya:
smoke:cleanup✅smoke:flowjalan jika server aktif dilocalhost:3100smoke:e2e✅ setelah server auto-start di port 3100 (cleanup + full flow berhasil).
Files baru/terbaru yang sudah dibuat
- UI: admin-system-dashboard
- Dashboard API wiring dipastikan terhubung ke backend untuk token admin, endpoint summary, dan retry/realtime UI.
- UI: merchant-onboarding-flow
- Form onboarding disinkron ke API (create merchant, outlet, terminal, device, binding) + status badge flow.
- UI: merchant-detail-view
- Detail merchant kini ambil data API untuk merchant/outlet/transactions list.
- UI: device-technical-detail
- Device detail sinkronisasi data API: detail device, binding terbaru, heartbeats, events, metrics device, dan stream log.
- UI: transaction-history-monitoring
- Search/filter outlet-terminal dan path transaksi sudah memakai endpoint API admin.
- README
- Sudah ada script dan langkah smoke test (
smoke:cleanup,smoke:flow,smoke:e2e) siap dipakai dan mencakup skenario Fase 1 tambahan.
- Sudah ada script dan langkah smoke test (
- DECISIONS_LOG.md
- Sudah memuat keputusan merchant bank account dan keputusan audit log + ledger placeholder Fase 1.
- Backend: auditLogStore
- Store audit log untuk aksi admin/webhook penting.
- Backend: ledgerStore
- Store ledger placeholder untuk transaksi paid Fase 1.
- Backend: deviceCapabilityResolver
- Resolver capability untuk flow dynamic QR API/MQTT.
- Backend: dynamicQrOrchestrator
- Membuat transaksi dynamic
awaiting_paymentdan mock QR payload.
- Membuat transaksi dynamic
- Backend: mqttMessageStore
- Outbox/trace MQTT uplink dan downlink.
- Backend: deviceConfigStore
- Config versioned dan ACK device.
- App CSP
- Helmet CSP disesuaikan agar asset desain eksternal dapat dimuat di lokal.
- UI: admin-login
- Login admin API-wired, input username dev, dan kontras panel kanan diperbaiki.
- UI: admin-login-portal
- Baseline portal login ikut diselaraskan untuk username dan kontras.
Keputusan penting yang harus diikuti saat lanjut
- Fase 1 Step 1–4 harus tetap jalan berurutan sebelum pengembangan Fase 2.
- Backend target Postgres di local (
qris_soundbox_platform) sudah dipakai di smoke test. - Jalankan smoke dari kondisi bersih (
smoke:cleanup) untuk hasil yang konsisten. - Untuk sementara, pencairan dana mengikuti pola rekening merchant sendiri (sesuai permintaan terakhir), bukan rekening terpusat.
- Pertahankan format error API yang konsisten:
code,message,details,request_id,timestamp. - Ledger Fase 1 masih placeholder
gross_income; jangan perluas fee/payable sebelum Fase 3 kecuali diminta eksplisit. - Dynamic QR Fase 2 saat ini memakai mock QRIS payload lokal; integrasi partner sungguhan belum dipasang.
- MQTT Fase 2 saat ini memakai simulator HTTP +
mqtt_messagesoutbox; broker sungguhan belum dipasang. - Untuk cek UI lokal, gunakan
http://127.0.0.1:3100/ui/admin-login; credential dev adalah usernameadmin, passwordadmin.
Urutan kerja selanjutnya (disarankan)
- UI/manual sanity lanjut dari titik terakhir:
- Merchant detail page
- Merchant list/filter
- Device technical detail
- Device list + heartbeat view
- Transaction history + outlet/terminal filter
- Jalankan lagi
npm run smoke:e2esebelum lanjut Fase 2 atau sebelum commit besar. - Jika ada regresi, cek log server di
/tmp/qris-smoke-e2e-server.log. - Lanjut Fase 2 berikutnya:
- health score/filter heartbeat yang lebih akurat
- adapter broker MQTT sungguhan dari
mqtt_messagesoutbox - config drift/retry policy untuk device yang belum ACK
- Sebelum wiring UI baru, pastikan halaman tetap mengikuti desain
design/*/code.htmldan cek kontras teks pada panel transparan/overlay.
Note kalau meneruskan sesi berikutnya
- Kode dan screen yang sudah dimodifikasi tidak perlu diulang dari nol; lanjut dari state saat ini.
- Prioritas saat lanjut: verifikasi “jalur UI sinkron API” lalu lanjutkan smoke flow end-to-end berkala.
- Gunakan [DECISIONS_LOG.md] sebagai rujukan wajib untuk keputusan yang sudah disepakati.
Selesai untuk off
- Sudah ada gabungan perubahan di repo: doc + UI + API integration + smoke validation.