
An ninh & Triển khai
An ninh có thể chỉ ra cụ thể, không phải an ninh dạng tính từ.
Mọi kiểm soát dưới đây đều được triển khai trong nền tảng hôm nay — với cơ chế cụ thể, không phải nhãn dán danh mục. Chọn cloud, on-premise hoặc hybrid; mô hình an ninh đi theo bạn.
Được rà soát gần nhất bởi nhóm nền tảng vào
Các kiểm soát
Sáu lớp kiểm soát — mỗi lớp với cơ chế cụ thể.
Các mục dưới đây đã chạy và xác thực được trong nền tảng. Cho rà soát compliance, nhóm triển khai có thể đi qua từng đường dẫn code, migration và truy vấn lưu vết.
Định danh + Xác thực
Người vận hành chứng minh danh tính ra sao
JWT với refresh token xoay vòng
Access token ngắn hạn, refresh token dài hạn. Refresh rotation phát hiện replay — nếu token bị đánh cắp được dùng lại sau khi xoay, cả family bị invalidate và phiên bị kết thúc.
Đăng nhập hai bước theo tenant
Đăng nhập là mã công ty trước, sau đó là chứng thực. Email + mật khẩu rò rỉ từ một tenant không thể đoán sang tenant khác nếu không biết mã công ty.
Grace 7 ngày offline
Refresh token vẫn được chấp nhận 7 ngày sau khi hết hạn để terminal chạy disconnected re-sync sạch khi mạng trở lại, không mất quyết định truy cập offline.
Chính sách mật khẩu áp dụng một lần
Độ dài tối thiểu được enforce qua một constant duy nhất trong auth service — mọi entry point set mật khẩu (login, reset, admin create) đều dùng chung quy tắc.
PIN re-auth cho hành động RỦI RO CAO
Công cụ rủi ro cao của Trợ lý AI (thu hồi chứng thực, vô hiệu user) hiển thị modal PIN re-auth trước khi confirm thực hiện — phiên đăng nhập của người vận hành thôi là chưa đủ.
TOTP 2FA — schema sẵn sàng, enforce đang triển khai
Model user mang field TOTP secret / backup-code và UI vận hành đã có toggle. Enforce end-to-end (đăng ký, challenge, backup code) đang triển khai từng tenant sau khi pilot xác thực.
Phân quyền + Đa tenant
Bán kính ảnh hưởng được giữ nhỏ ra sao
Tenant scoping tường minh
Mọi truy vấn chạm dữ liệu tenant đều mang parameterized WHERE tenant_id = $N. Chúng tôi đã loại bỏ wrapper rewrite SQL trước đây vì heuristic chuỗi che giấu lỗi isolation; tường minh ăn đứt phép thuật.
RBAC + plugin gating
Phân quyền kiểm theo từng request. Mô-đun plugin-gated (Visitor, Parking, VMS, Attendance) tắt mặc định — tenant phải được entitle trước khi route đăng ký.
Xác thực tài nguyên ở service
Tra cứu cross-tenant đi qua ValidateResourceAccess để ID giả mạo trong URL không thể vượt qua ranh giới tenant kể cả khi một query path quên filter.
Trợ lý AI chuyển tiếp JWT
Dịch vụ AI không bao giờ giữ thông tin ghi. Mọi action tool call được thực hiện thay mặt người vận hành đang đăng nhập, RBAC enforce bởi service downstream — không phải trợ lý.
Lưu vết + Pháp y
Cái gì được ghi và giữ bao lâu
Lưu vết bất biến
Hypertable TimescaleDB. User ứng dụng chỉ có INSERT và SELECT — không UPDATE, không DELETE. Không thể che dấu vết bằng cách sửa lịch sử.
Giữ 2 năm, nén sau 30 ngày
Time-partition với chính sách nén. Pháp y đuôi dài vẫn truy vấn được mà không phải trả chi phí hot-storage cho chunk cũ.
Writer batch tách rời
Service publish entry lưu vết vào NATS JetStream; audit-svc độc lập consume và batch-insert. Một burst hoạt động không thể tạm dừng request handling chờ ghi lưu vết.
Mọi CRUD + sự kiện auth
Đăng nhập, refresh, đổi mật khẩu, mọi CREATE/UPDATE/DELETE trên các service. API truy vấn ở /api/v1/audit/ cho system admin và /api/v1/audit/tenant/ cho người vận hành tenant.
Lưu trú dữ liệu + Ranh giới AI
Dữ liệu đi đâu khi có AI
Từ chối khởi động LLM cloud trên production
ai-asst-svc từ chối boot khi APP_ENV=production và LLM profile đang active là DeploymentCloud. Tenant cấu hình sai không thể âm thầm gửi dữ liệu vận hành tới cloud bên thứ ba.
Ollama tự host cho tenant ràng buộc lưu trú
Cho hiện trường thuộc chính sách lưu trú dữ liệu, LLM provider có thể chuyển sang Ollama chạy trong perimeter triển khai — không payload nào rời ra.
Circuit breaker cho LLM
Lỗi provider không lan — trợ lý xuống cấp mượt mà và hiển thị "LLM không khả dụng" thay vì làm treo quy trình vận hành.
Mạng + Truyền tải
Traffic vào nền tảng ra sao
CORS allowlist enforce tại boot
CORS_ALLOWED_ORIGINS bắt buộc trên production; middleware từ chối khởi động nếu giá trị là "*" với AllowCredentials true. Không "fix sau" wildcard nào lọt vào prod.
Client IP hiểu trusted-proxy
TRUSTED_PROXIES là CIDR allowlist. X-Forwarded-For chỉ được tôn trọng khi immediate peer nằm trong danh sách — thay thế middleware cũ tin tưởng header IP do client kiểm soát.
RTSP credential mã hóa AES
RTSP credential của camera được mã hóa at-rest với VMS_CREDENTIAL_KEY 32 byte trước khi persist, giải mã on-demand khi setup stream.
Kiosk token cho wall-display
Wall-display công khai dùng kiosk token scope hạn chế, chỉ-đọc — có thể render dashboard được gán nhưng không thể thay đổi state, và token có thể thu hồi riêng lẻ.
An toàn vận hành
Nâng cấp an toàn trên production ra sao
Chính sách constraint NOT VALID
Mọi ADD CONSTRAINT trên bảng đã có đều được viết NOT VALID — enforce trên row mới, validate out-of-band sau. Học từ sự cố 2026-05-16 khi validate ngay trên row có sẵn chặn mọi service phụ thuộc migrate.
Runbook khôi phục có tài liệu
Sự cố production trở thành runbook viết sẵn (docs/runbooks/*) để người trực ca tiếp theo không phải tái phát minh khôi phục từ khảo cổ log.
Migration tuần tự, theo cặp
Mỗi thay đổi schema là cặp .up.sql + .down.sql có số, áp dụng theo thứ tự nghiêm ngặt. Không live ALTER, không bảng sửa tay.
Topology tin cậy
Mọi mô-đun kế thừa cùng lớp quản trị.
Tap any layer to see how it helps a buyer evaluate the platform.
Signal
Doors, visitors, cameras, intercoms, parking, and devices generate live operational signals instead of isolated alerts.
01Signal
Doors, visitors, cameras, intercoms, parking, and devices generate live operational signals instead of isolated alerts.
02Context
Each signal becomes useful because operator, person, role, site, zone, policy, and related module records are shown together.
03Action
Teams approve, deny, review, escalate, annotate, or link evidence without leaving the command surface.
04Audit
Every decision keeps the who, what, when, why, and related evidence needed for handoff, reporting, and investigation.
Lựa chọn hosting không thay đổi mô hình tin cậy — cùng các kiểm soát áp dụng trên cloud, on-prem và hybrid.
Triển khai
Ba mô hình triển khai, cùng một mô hình an ninh.
Cloud
Triển khai quản lý
Khởi động nhanh, vận hành nền tảng được quản lý. LLM mặc định là Anthropic Claude. Phù hợp dự án mới hoàn toàn và danh mục đa cơ sở không có quy định lưu trú nghiêm.
On-premise
Kiểm soát tại chỗ
Toàn bộ stack trong phạm vi của bạn — TimescaleDB, NATS, EMQX, MediaMTX, MinIO, Ollama. Không telemetry, không gọi LLM ra ngoài. Bắt buộc cho hiện trường chính phủ / y tế / ràng buộc lưu trú.
Hybrid
Hiện đại hóa theo giai đoạn
Control plane trên cloud, workload nhạy cảm on-prem. LLM profile theo tenant cho phép một danh mục pha trộn cloud và inference tự host trong cùng một UI vận hành.
Phù hợp nhất
Cho các hiện trường mà tin cậy là một phần của quyết định mua.
Nếu rà soát an ninh của bạn bắt đầu bằng "cho tôi xem truy vấn lưu vết, chính sách migration và đường dữ liệu LLM" — bạn đang ở đúng nơi.
Bước tiếp theo
Mang rà soát an ninh đến đội triển khai
Chúng tôi sẽ đi qua từng đường dẫn code, migration, truy vấn lưu vết và ranh giới dữ liệu LLM — không chỉ một checklist tính năng.