diff --git a/docs/audit/2026-09-08-audit-report.html b/docs/audit/2026-09-08-audit-report.html
index e486e936069..d6b614b6820 100644
--- a/docs/audit/2026-09-08-audit-report.html
+++ b/docs/audit/2026-09-08-audit-report.html
@@ -100,8 +100,9 @@
Trạng thái xử lý - cập nhật đến Round 4 (2026-09-16)
| ĐÃ FIX (Round 3) | HI-06, HI-11, HI-14 (phần hardening), HI-02/03, HI-21, HI-22, MD-10/11/12, MD-13/14/15, MD-01 | Cron auth timing-safe fail-closed (7 routes); reminder re-check booking + cancel stale reminders; rate limit 6 auth mutations + HSTS/CSP headers; MCP tenant scoping + fromReschedule + conflict guard; SSRF self-hosted + opt-out; video token fail-closed; timing-safe webhook compares |
| ĐÃ FIX (Round 4 - verify lại 2026-09-16) | MD-03, MD-05/06, LO-02, LO-03, MD-29 | MD-03: PBAC checkPermission giờ query membership thật, throw FORBIDDEN (aa68fd3acc). MD-05/06: partial expression index trên metadata dosOrgId/dosTeamId + WebhookScheduledTriggers drain take:100 + await + deleteMany sau dispatch (efb232e52f). LO-02: 3 barrels chết đã xoá (a058d89d53). LO-03: restore membership ADMIN/OWNER check (aa68fd3acc). MD-29: fork env vars vào turbo globalEnv (ccf9b85785) |
| ĐÃ FIX (Round 4 - 2026-09-16) | HI-09, CR-08 (hoàn tất), LO-13 (một phần) | HI-09: workflow mới fork-ci.yml (type-check + lint + unit test) chạy trên PR + push dev/main của DOS/Crove-Cal; deploy-docker.yml thêm job ci-gate (type-check) mà build-and-push phải chờ. CR-08: Dockerfile/docker-compose bỏ default secret từ Round trước; Round 4 thay 4 giá trị secret thật trong apps/api/v2/.env.example bằng placeholder. LO-13: JWT example trong README-PLATFORM.md thay bằng placeholder |
+ | ĐÃ FIX (Round 5 - 2026-09-16, PR #74) | HI-12 phần runner | Runner stage chạy USER node (app tree copy với --chown=node:node, không tạo layer copy-up) sau bước apt chạy root; .dockerignore chặn .env*/*.pem/*.key/*.p12/*.pfx/.husky - bảo vệ cả image web lẫn api/v2 (cùng context root). Verify: docker build --check sạch (4 warning là ARG build-time placeholder đã xử lý ở CR-08), image build + publish sau gate thành công trên dev (run 35127273831) |
| CHỜ QUYẾT ĐỊNH | HI-13, HI-14, HI-16, HI-10 | HI-13: 61 migrations cần biết DB prod dùng schema nào (lưu ý: upstream đã đóng source 2026-04 nên áp lực sync giảm). HI-14: wire workflows dispatcher là quyết định feature - tham khảo Cal.com Workflows 2.0 (v6.9) trong report feature-gap cùng ngày. HI-16: branding hardcode - giờ upstream đóng source nên việc giữ branding riêng có chủ đích là phương án hợp lý, cần chốt. HI-10: bật crons cần cấu hình secrets riêng (CRON_SECRET v.v.) trước. Khi deploy: rotate secret Supabase + env mới (CRON_SECRET, OIDC_*, BREVO/CROVE/DOS_SYNC_WEBHOOK_SECRET, DATABASE_SSL_REJECT_UNAUTHORIZED=false nếu pooler cần) + prisma migrate deploy |
- | CÒN LẠI (TAIL) | Docker phần dở + perf/cosmetic | HI-12 phần dở (USER non-root, .dockerignore thiếu .env/*.pem/*.key), LO-13 phần dở (prisma/.env symlink, pin trigger.dev), MD-16…22 (frontend perf), MD-27/28 (CI supply-chain hygiene), MD-30 (Stripe png), MD-31/32 (latent), LO-01/04/05/06/07 (một phần)/08/09/11/14 |
+ | CÒN LẠI (TAIL) | Docker phần dở + perf/cosmetic | HI-12 phần còn lại (pin actions theo SHA - trùng MD-28; turbo prune để bỏ dev deps khỏi image), LO-13 phần dở (prisma/.env symlink, pin trigger.dev), MD-16…22 (frontend perf), MD-27/28 (CI supply-chain hygiene), MD-30 (Stripe png), MD-31/32 (latent), LO-01/04/05/06/07 (một phần)/08/09/11/14 |
@@ -444,7 +445,7 @@ Danh sách phát hiện
"CR-08":"Round 2 bỏ ARG defaults + comment studio; Round 4 (2026-09-16) thay 4 giá trị thật trong apps/api/v2/.env.example bằng placeholder.",
"HI-09":"Round 4 (2026-09-16): fork-ci.yml (type-check + lint + unit) chạy trên PR/push dev/main; deploy-docker.yml thêm ci-gate. Cron xem HI-10.",
"HI-10":"Cần cấu hình secrets riêng cho fork (CRON_SECRET…) rồi mới bật được - không bật khi thiếu secret.",
- "HI-12":"Đã fix: studio disable, cache-to mode=min, bỏ ARG defaults. Còn mở: USER non-root + .dockerignore thiếu .env/*.pem/*.key.",
+ "HI-12":"Đã fix: studio disable, cache-to mode=min, bỏ ARG defaults, API v2 URL; Round 5 (PR #74): USER node + .dockerignore chặn secrets. Còn mở: pin actions theo SHA (MD-28) + turbo prune bỏ dev deps khỏi image.",
"HI-13":"Upstream đã đóng source (2026-04) nên áp lực sync giảm; vẫn cần chốt schema DB prod trước khi đụng 61 file.",
"HI-14":"scheduleRemindersForBooking vẫn 0 production caller. Tham khảo hướng đi: Cal.com Workflows 2.0 (v6.9) - xem report feature-gap ngày 2026-09-16.",
"HI-16":"Upstream đóng source (2026-04) nên lý do 'revert cho dễ sync' yếu đi - giờ là quyết định giữ branding riêng có chủ đích hay không.",