Source document
docs/platform/RELEASE-REPORT-BETA-6.md
Source version
0.0.0
Generated time
2026-07-06T14:59:21.081Z
Owner
Unassigned
Audience
Internal
Status
Approved

Release Report — Stage Beta · Sprint Beta-6 · Operational Hardening #1 · Transactional Audit

Mục tiêu duy nhất: loại bỏ rủi ro mất đồng bộ giữa business state và audit. Không thêm feature, không đổi API, không migration.

1. Những gì đã thay đổi

Chỉ 1 file source + 1 file test + 3 docs.

audit ghi bằng cùng tx ⇒ state + audit nguyên tử. Các thao tác được bọc: createPartner · transitionPartner (activate/suspend/reactivate/revoke Partner) · issueKey · rotateKey · revokeKey · provisionTenant · transitionTenant (activate/suspend/reactivate/archive Tenant).

2. Những gì KHÔNG thay đổi

trong prisma.$transaction, audit sink bound ctx.tx. Không đụng — đã thoả bất biến.

3. Test result

(booking, auth, RLS, partner Beta-4, tenant Beta-5, ops).

4. Rủi ro còn lại

  1. Booking Kernel audit sink bỏ qua AuditEvent.record ok:false (Thấp, edge): chỉ với input audit không hợp lệ

không phát sinh cho reservation.*. Booking vẫn rollback với mọi lỗi ghi audit THẬT (append trong tx). *Beta-7:* fail-closed hoá sink cho đồng nhất.

  1. Transaction dài hơn (Thấp): mỗi thao tác Provisioning giờ mở 1 tx (2–4 câu lệnh + 1 audit). Thao tác ops, tần suất thấp ⇒ không đáng ngại.
  2. Idempotency mức nghiệp vụ (ngoài phạm vi): retry một thao tác đã thành công tạo thao tác mới (vd 2 partner). Không thuộc bất biến audit; ghi backlog Hardening.
  3. Chưa quan sát CI live (platform-ci.yml): verify cục bộ bằng đúng các lệnh CI; job chạy khi push/PR main.

5. Đề xuất Beta-7

  1. Fail-closed hoá Booking Kernel audit sink (createAuditFactory) — đóng nốt edge #1, hoàn tất bất biến cho mọi context.
  2. Idempotency mức thao tác ops (issue-key/create-partner…): khoá idempotency để retry an toàn không nhân bản.
  3. Outbox ↔ audit consistency review: xác nhận outbox event + audit + aggregate cùng nằm trong một tx boundary ở mọi handler.
  4. Observability cho audit (OTel/metrics): đếm audit theo action, cảnh báo lệch state↔audit (giám sát bất biến ở runtime).

QA — Definition of Done

Tiêu chí DoDKết quả
Không còn business commit nhưng audit mất✅ tx nguyên tử + fail-closed; fault-injection chứng minh rollback
Audit & business luôn cùng commit / cùng rollback✅ 8 case audit-transaction PASS
Tất cả test PASS✅ 200/200 test:infra + domain/core
CI PASS✅ lệnh CI cục bộ xanh (chờ quan sát job PR)
Không regression✅ toàn bộ Beta-1..5 test xanh
Không đổi hành vi API với client✅ Provisioning CLI-only; Booking không đụng; audit không bao giờ fail với input hợp lệ
Ràng buộc QAKết quả
Không đổi API contract / OpenAPI
Không đổi Partner / Tenant / Booking lifecycle✅ chỉ đổi transaction boundary
Không thêm migration✅ 0
Không đổi deployment
Không ảnh hưởng Alpha / Legacy✅ hành vi production không đổi (seam mặc định = repo cũ)

Trạng thái Sprint: bất biến Transactional Audit đạt trên kiểm chứng cục bộ (200/200, fault-injection). Còn lại: một lần chạy xanh platform-ci.yml trên PR. Chờ Founder review.