Sẵn sàng v1.0
Cổng thoát (exit gate) SaaS v1.0 — chạy checklist trên hệ sinh thái đã seed. Cập nhật 09:14:22 1/11/2026.
Tổng thể
CHƯA ĐẠT
Tenant ACTIVE
10
Đạt
34
/ 43 kiểm tra
Lỗi
9
Tiêu chí thoát v1.0
| # | Tiêu chí | Trạng thái |
|---|---|---|
| 1 | allocator >= 11 + immutable/unique | PASS |
| 2 | plan/entitlement enforced | PASS |
| 3 | cross-tenant isolation | PASS |
| 4 | per-tenant backup/restore | FAIL |
| 5 | no plaintext secrets | PASS |
| 10 | platform permission separation | PASS |
| 0 | 10 ACTIVE tenants verified | PASS |
Kiểm tra cấp nền tảng (platform)
| Trạng thái | Phạm vi | Kiểm tra | Chi tiết |
|---|---|---|---|
| ✓ PASS | platform | Tách quyền nền tảng (chỉ platform.*) | 10 PLT_ policies, all platform.* only |
| ✓ PASS | platform | tenantNo duy nhất + bất biến | unique=true, customers>=11=true (10 rows) |
| ✓ PASS | platform | Bộ cấp số khách hàng ≥ 11 | next customer tenantNo = 11 |
Kiểm tra theo từng tenant
| Trạng thái | Phạm vi | Kiểm tra | Chi tiết |
|---|---|---|---|
| ✓ PASS | T001 | Cách ly dữ liệu (không rò rỉ tenant khác) | no foreign rows visible (probe vs tenant-realestate-demo) |
| ✓ PASS | T001 | Backup định kỳ (lịch + job) | schedule=true, backups=35 |
| ✓ PASS | T001 | Gói/entitlement hợp lệ | plan=ENTERPRISE_DESIGN_PARTNER |
| ✓ PASS | T001 | Không lưu mật khẩu dạng thô (argon2) | 0 credential(s), all hashed |
| ✓ PASS | T002 | Cách ly dữ liệu (không rò rỉ tenant khác) | no foreign rows visible (probe vs tenant-xtech) |
| ✗ FAIL | T002 | Backup định kỳ (lịch + job) | schedule=false, backups=2 |
| ✓ PASS | T002 | Gói/entitlement hợp lệ | plan=ENTERPRISE_VERTICAL_DEMO |
| ✓ PASS | T002 | Không lưu mật khẩu dạng thô (argon2) | 0 credential(s), all hashed |
| ✓ PASS | T003 | Cách ly dữ liệu (không rò rỉ tenant khác) | no foreign rows visible (probe vs tenant-xtech) |
| ✗ FAIL | T003 | Backup định kỳ (lịch + job) | schedule=false, backups=2 |
| ✓ PASS | T003 | Gói/entitlement hợp lệ | plan=PROFESSIONAL_VERTICAL_DEMO |
| ✓ PASS | T003 | Không lưu mật khẩu dạng thô (argon2) | 0 credential(s), all hashed |
| ✓ PASS | T004 | Cách ly dữ liệu (không rò rỉ tenant khác) | no foreign rows visible (probe vs tenant-xtech) |
| ✗ FAIL | T004 | Backup định kỳ (lịch + job) | schedule=false, backups=2 |
| ✓ PASS | T004 | Gói/entitlement hợp lệ | plan=PROFESSIONAL_VERTICAL_DEMO |
| ✓ PASS | T004 | Không lưu mật khẩu dạng thô (argon2) | 0 credential(s), all hashed |
| ✓ PASS | T005 | Cách ly dữ liệu (không rò rỉ tenant khác) | no foreign rows visible (probe vs tenant-xtech) |
| ✗ FAIL | T005 | Backup định kỳ (lịch + job) | schedule=false, backups=2 |
| ✓ PASS | T005 | Gói/entitlement hợp lệ | plan=PROFESSIONAL_VERTICAL_DEMO |
| ✓ PASS | T005 | Không lưu mật khẩu dạng thô (argon2) | 0 credential(s), all hashed |
| ✓ PASS | T006 | Cách ly dữ liệu (không rò rỉ tenant khác) | no foreign rows visible (probe vs tenant-xtech) |
| ✗ FAIL | T006 | Backup định kỳ (lịch + job) | schedule=false, backups=2 |
| ✓ PASS | T006 | Gói/entitlement hợp lệ | plan=PROFESSIONAL_VERTICAL_DEMO |
| ✓ PASS | T006 | Không lưu mật khẩu dạng thô (argon2) | 0 credential(s), all hashed |
| ✓ PASS | T007 | Cách ly dữ liệu (không rò rỉ tenant khác) | no foreign rows visible (probe vs tenant-xtech) |
| ✗ FAIL | T007 | Backup định kỳ (lịch + job) | schedule=false, backups=2 |
| ✓ PASS | T007 | Gói/entitlement hợp lệ | plan=PROFESSIONAL_VERTICAL_DEMO |
| ✓ PASS | T007 | Không lưu mật khẩu dạng thô (argon2) | 0 credential(s), all hashed |
| ✓ PASS | T008 | Cách ly dữ liệu (không rò rỉ tenant khác) | no foreign rows visible (probe vs tenant-xtech) |
| ✗ FAIL | T008 | Backup định kỳ (lịch + job) | schedule=false, backups=2 |
| ✓ PASS | T008 | Gói/entitlement hợp lệ | plan=ENTERPRISE_VERTICAL_DEMO |
| ✓ PASS | T008 | Không lưu mật khẩu dạng thô (argon2) | 0 credential(s), all hashed |
| ✓ PASS | T009 | Cách ly dữ liệu (không rò rỉ tenant khác) | no foreign rows visible (probe vs tenant-xtech) |
| ✗ FAIL | T009 | Backup định kỳ (lịch + job) | schedule=false, backups=2 |
| ✓ PASS | T009 | Gói/entitlement hợp lệ | plan=PROFESSIONAL_VERTICAL_DEMO |
| ✓ PASS | T009 | Không lưu mật khẩu dạng thô (argon2) | 0 credential(s), all hashed |
| ✓ PASS | T010 | Cách ly dữ liệu (không rò rỉ tenant khác) | no foreign rows visible (probe vs tenant-xtech) |
| ✗ FAIL | T010 | Backup định kỳ (lịch + job) | schedule=false, backups=2 |
| ✓ PASS | T010 | Gói/entitlement hợp lệ | plan=PROFESSIONAL_VERTICAL_DEMO |
| ✓ PASS | T010 | Không lưu mật khẩu dạng thô (argon2) | 0 credential(s), all hashed |