Module · WS sát hạch · 07/7/2026

sh-gateway — Truyền dữ liệu Cục CSGT WS sát hạch · v3

Cổng truyền dữ liệu về hệ thống Cục CSGT: kết quả thi, hình ảnh, dữ liệu giám sát — theo API RESTful JSON của Phụ lục QCVN 40:2024 (HTTPS + TLS, UTF-8, UNIX time UTC+7).

⚠️ v3 — thành phần tích hợp bắt buộc; mọi module sát hạch đi qua đây.
1

Feature / BO / Action

FeatureBO chínhAction
packetGói tin truyềnviewexporttransmitretry
logNhật ký truyền / gửi bùviewreport
2

Dữ liệu chính

BOTrường chính
Gói tinLoại (kết quả LT / sa hình / đường trường / giám sát / hình ảnh) · payload chuẩn Phụ lục · trạng thái (chờ/đã gửi/lỗi) · số lần retry
Nhật kýThời điểm gửi · phản hồi đầu nhận · gửi bù khi mất sóng (tự động)
3

Quy tắc & liên kết

Quy tắc nghiệp vụ

  • Chuẩn API Phụ lục QCVN 40:2024: HTTPS + TLS (TCCS 01:2020/CATTT), UTF-8, UNIX time UTC+7
  • Hàng đợi bền: mất kết nối không mất gói — tự gửi bù khi có sóng
  • Mọi module sát hạch không tự truyền — đi qua gateway để log một chỗ
  • Nhật ký truyền immutable — đối chứng khi tranh chấp dữ liệu

Liên kết chéo

  • sh-theory/yard/road/moto — kết quả thi
  • sh-monitor — dữ liệu giám sát
  • sh-schedule — hồ sơ kỳ thi

⚠ Câu hỏi mở

  • Xin spec API + môi trường test của Cục CSGT (đầu mối?)
  • Theo dõi dự thảo QCVN thay thế do BCA soạn — có đổi chuẩn kết nối?
Quyền

Ma trận phân quyền — ốp vào manifest & seed role

Khối permissions[] dán vào manifest.json; bảng dưới là gán quyền theo vai trò (seed rt_role). Permission key đầy đủ: sh-gateway.main.<feature>.<action>.

▸ permissions[] — manifest.json

[ { "group": "main", "feature": "packet", "label": "Gói tin truyền CSGT", "actions": [ "view", "export", "transmit", "retry" ] }, { "group": "main", "feature": "log", "label": "Nhật ký truyền", "actions": [ "view", "report" ] } ]

⚠️ Action đặc thù (retry, transmit) cần bổ sung vào validator manifest — xem plan data-scope P1.

▸ Ma trận vai trò × feature

FeatureQTHTGIAM_DOCSAT_HACH
packetWRR
logRRR

R xem · W tạo/sửa · A duyệt · không có quyền · ¹ dữ liệu phân công · ² của chính mình · ³ theo trạng thái hồ sơ. Vai trò không liệt kê = không có quyền.

Đặc thù: packet +transmit,retry (QTHT)