Continue phase 2 device ops and dynamic QR lifecycle
This commit is contained in:
@ -9,7 +9,11 @@
|
||||
- endpoint admin `GET /admin/audit-logs` dan `GET /admin/ledger-entries`
|
||||
- awal Fase 2: capability resolver + `POST /device/transactions/dynamic-qr` API-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
|
||||
- lanjutan Fase 2 berikutnya: config drift status + retry push config + MQTT trace untuk config ACK
|
||||
- health summary device Fase 2 untuk admin list/detail: status, score, age_seconds, reasons
|
||||
- UI ops Fase 2 di device registry/detail: health score/reasons, config drift, retry config push
|
||||
- dynamic QR expiry sweep via `POST /admin/transactions/expire-due`
|
||||
- smoke e2e mencakup duplicate callback, invalid signature, ledger, audit, terminal tanpa binding, dynamic QR API-direct, dynamic QR expiry sweep, dynamic QR MQTT, dan device config push/status/retry/ack
|
||||
- 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
|
||||
@ -42,10 +46,18 @@
|
||||
- Resolver capability untuk flow dynamic QR API/MQTT.
|
||||
- [Backend: dynamicQrOrchestrator](/home/wira/work/codex/qris-soundbox-platform/src/shared/services/dynamicQrOrchestrator.ts)
|
||||
- Membuat transaksi dynamic `awaiting_payment` dan mock QR payload.
|
||||
- [Backend: dynamicQrExpiry](/home/wira/work/codex/qris-soundbox-platform/src/shared/services/dynamicQrExpiry.ts)
|
||||
- Sweep transaksi dynamic QR `awaiting_payment` yang sudah melewati `expired_at`.
|
||||
- [Backend: mqttMessageStore](/home/wira/work/codex/qris-soundbox-platform/src/shared/store/mqttMessageStore.ts)
|
||||
- Outbox/trace MQTT uplink dan downlink.
|
||||
- [Backend: deviceConfigStore](/home/wira/work/codex/qris-soundbox-platform/src/shared/store/deviceConfigStore.ts)
|
||||
- Config versioned dan ACK device.
|
||||
- [Backend: deviceConfigStatus](/home/wira/work/codex/qris-soundbox-platform/src/shared/services/deviceConfigStatus.ts)
|
||||
- Derivasi status drift config: `applied`, `pending_ack`, `failed_ack`, `stale_ack`, `never_pushed`.
|
||||
- [UI: device-registry-monitoring](/home/wira/work/codex/qris-soundbox-platform/ui/device-registry-monitoring/index.html)
|
||||
- Drawer ops menampilkan health score/reasons, config drift, latest push/ACK, dan retry config push.
|
||||
- [UI: device-technical-detail](/home/wira/work/codex/qris-soundbox-platform/ui/device-technical-detail/index.html)
|
||||
- Detail device menampilkan health summary dan config delivery panel dengan retry push.
|
||||
- [App CSP](/home/wira/work/codex/qris-soundbox-platform/src/app.ts)
|
||||
- Helmet CSP disesuaikan agar asset desain eksternal dapat dimuat di lokal.
|
||||
- [UI: admin-login](/home/wira/work/codex/qris-soundbox-platform/ui/admin-login/index.html)
|
||||
@ -62,7 +74,9 @@
|
||||
6. Ledger Fase 1 masih placeholder `gross_income`; jangan perluas fee/payable sebelum Fase 3 kecuali diminta eksplisit.
|
||||
7. Dynamic QR Fase 2 saat ini memakai mock QRIS payload lokal; integrasi partner sungguhan belum dipasang.
|
||||
8. MQTT Fase 2 saat ini memakai simulator HTTP + `mqtt_messages` outbox; broker sungguhan belum dipasang.
|
||||
9. Untuk cek UI lokal, gunakan `http://127.0.0.1:3100/ui/admin-login`; credential dev adalah username `admin`, password `admin`.
|
||||
9. Config retry Fase 2 mengirim ulang config version yang sama; jangan naikkan versi kecuali settings berubah.
|
||||
10. Dynamic QR expiry sweep saat ini endpoint admin/manual; bisa dinaikkan menjadi scheduler/background worker.
|
||||
11. Untuk cek UI lokal, gunakan `http://127.0.0.1:3100/ui/admin-login`; credential dev adalah username `admin`, password `admin`.
|
||||
|
||||
## Urutan kerja selanjutnya (disarankan)
|
||||
1. UI/manual sanity lanjut dari titik terakhir:
|
||||
@ -74,9 +88,10 @@
|
||||
2. Jalankan lagi `npm run smoke:e2e` sebelum lanjut Fase 2 atau sebelum commit besar.
|
||||
3. Jika ada regresi, cek log server di `/tmp/qris-smoke-e2e-server.log`.
|
||||
4. Lanjut Fase 2 berikutnya:
|
||||
- health score/filter heartbeat yang lebih akurat
|
||||
- adapter broker MQTT sungguhan dari `mqtt_messages` outbox
|
||||
- config drift/retry policy untuk device yang belum ACK
|
||||
- scheduler otomatis untuk dynamic QR expiry sweep
|
||||
- filter/sorting UI berbasis `health_summary.score` dan `health_summary.reasons`
|
||||
- manual visual QA device registry/detail untuk layout mobile dan drawer
|
||||
5. Sebelum wiring UI baru, pastikan halaman tetap mengikuti desain `design/*/code.html` dan cek kontras teks pada panel transparan/overlay.
|
||||
|
||||
## Note kalau meneruskan sesi berikutnya
|
||||
|
||||
Reference in New Issue
Block a user