KB-2608

PG Reform Tools — Index & Quick Start

6 min read Revision 1
s176pg-reconfigindexssot

PG REFORM TOOLS — INDEX & QUICK START

Mã mission: S176 PG-Reconfig | Sprint: S176 | Trạng thái: Living (điều tra 60%) Mục đích folder: Tái cấu trúc công cụ PostgreSQL sao cho "ghi sai PG = không được phép xảy ra" — thay cho file monolith cũ knowledge/current-state/pg-reconfig-master.md (58k chars, khó edit). Cảnh báo cho mọi AI/agent: Đọc theo thứ tự, KHÔNG cắt bớt, KHÔNG tóm tắt rồi quên chi tiết. Mỗi file ~5k chars, đọc nhanh.


CÁCH ĐỌC NHANH (cho phiên mới)

Tình huống Đọc file nào
Mới vào mission, chưa biết gì 00-index.md (file này) → 01-kien-truc.md10-roadmap.md
Chỉ cần bức tranh tổng 1 phút §0 bên dưới trong file này
Làm khối điều tra tiếp (KS.4 trở đi) 10-roadmap.md → file KS trước đó liên quan
Thiết kế Phương án A+ 07-phuong-an-a-plus.md + 04-ks1-ddl-audit-gap.md + 06-ks3-metadata-shells.md
Tra TD cần fix 11-tham-chieu-td.md
Tra câu hỏi WHY còn treo 12-why-mo.md

Quy tắc vàng #1: Mọi tài liệu phân tích PG phải bắt đầu bằng câu hỏi: "DB nào? Lớp nào?" Không trả lời được = không phân tích tiếp.


MỤC LỤC FOLDER

# File Nội dung Chars (~)
00 00-index.md File này — index + §0 tóm tắt 1 trang 4k
01 01-kien-truc.md §1 Kiến trúc 4 DB + 3 Lớp Não-Kho-Cổng 5k
02 02-k0-k1-timeline-channels.md §2.1-2.3 K0 timeline/retention + K1 official channels 5k
03 03-k2-bypass-writers.md §2.4-2.6 K2 4 bypass L3 + lỗ hổng khác + Directus flows 5k
04 04-ks1-ddl-audit-gap.md §2.6b KS.1 🔴 INVISIBLE AUDIT GAP 5k
05 05-ks2-mar10-debunked.md §2.6c KS.2 hypothesis bác + SELF-HEALING-LATE 5k
06 06-ks3-metadata-shells.md §2.6d KS.3 metadata shells ~22% + §2.7 9 writer verify 5k
07 07-phuong-an-a-plus.md §3 Phương án A+ + §4 5 ngoại lệ E1-E5 5k
08 08-dot-moi-va-catalog.md §5 5 nhóm DOT + catalog + ddl_audit_log + dot_run_log 5k
09 09-khai-sinh-collection.md §6 DOT-COLLECTION-CREATE 9 bước 3k
10 10-roadmap.md §7 Điều tra + DESIGN D0-D9 + IMPLEMENT 9 đợt 5k
11 11-tham-chieu-td.md §8 Tham chiếu HP/Luật + danh sách 20 TD S176 4k
12 12-why-mo.md §9 WHY đã/đang + to-do + bài học + changelog 5k

§0. TÓM TẮT 1 TRANG — Đọc trước khi làm bất cứ việc gì

Hệ thống có gì

  • 1 cluster PostgreSQL 16 trên VPS Contabo EU, container Docker postgres, port 5432
  • 4 database: directus, incomex_metadata, workflow (rỗng), postgres (admin)
  • 2 PG user nghiệp vụ: workflow_admin (directus), incomex (incomex_metadata)
  • 272 DOT trong dot_tools (~230 sau dedupe), 4.8% complete
  • 79 PG function fn_* (guard, refresh, transition lifecycle)
  • 138+ collections DB directus, 9 tables DB incomex_metadata

Vấn đề phải giải quyết

  • 9 writer S175 ghi trùng system_issues — triệu chứng bệnh
  • 148/223 DOT (66%) thiếu DOT cặp Cấp A (NT12 vi phạm)
  • 4 bypass L3 chủ đích: CI CAT-ALL backdoor, CI auto-apply 36 SQL, pg-client.js, 2 script không đăng ký
  • Password leak Incomex2026PG_306ac539ad365fce trong git history
  • 🔴 INVISIBLE AUDIT GAP (KS.1): DDL qua psql trực tiếp không có log nào
  • 🟡 METADATA SHELLS (KS.3): 60/272 record file_path=NULL — §0-AY bị vô hiệu hoá bằng hồ sơ rỗng ruột
  • 🟡 SELF-HEALING LATE (KS.2): 4 tháng tối 2025-12-07 → 2026-03-10 không có cơ chế phát hiện vi phạm
  • Luật cũ (NT3 DOT 100%) cấm cứng → người ta bypass để chạy được hệ thống

Giải pháp gốc (sơ bộ — sẽ chốt sau khi điều tra xong)

Phương án A+ — 1 password GSM + REVOKE direct + 5 ngoại lệ E1-E5 + 2 lớp bổ sung mới:

  • 1 password lưu GSM (SSOT) → kéo về /opt/incomex/.env chmod 600 → cả PG container và mọi DOT đọc cùng biến
  • Đổi password 1 lần trên GSM → kéo 1 lần → cả hệ thống nhận
  • PG REVOKE mọi connection không có password đúng
  • 5 ngoại lệ hợp pháp (E1-E5) ghi trong Điều 33 §13
  • BỔ SUNG (KS.1): PG event trigger ddl_command_end + ddl_audit_log + dot-ddl-audit-monitor
  • BỔ SUNG (KS.3): PG constraint file_path IS NOT NULL OR status='placeholder' + dot-file-path-orphan-check + CI pre-merge gate

Quy tắc vàng

  1. "DB nào? Lớp nào?" — câu hỏi bắt buộc mở đầu mọi phân tích PG
  2. Mục tiêu = nghiệp vụ tiện lợi, không phải tuân thủ luật bằng mọi giá (Huyên S176). Luật không khả thi → SỬA LUẬT
  3. Mọi DOT phải khai: ghi DB nào, lớp nào, gateway nào
  4. Đọc full file, không tóm tắt rồi mất chi tiết (bài học KS.3)
  5. (MỚI S176) Mỗi lỗi = cơ hội học gốc rễ. Không vá triệu chứng. Đặt câu hỏi WHY + trả lời bằng evidence cứng trước khi thiết kế
  6. (MỚI S176) Điều tra xong MỚI thiết kế, thiết kế xong MỚI sửa luật, sửa luật xong MỚI fix TD. Không làm tắt. Bài học: HP v4.4.0 quên kiến trúc cũ → mất cả buổi mò.

TRẠNG THÁI HIỆN TẠI

  • ✅ K0+K1+K2 + KS.1+KS.2+KS.3 (điều tra 60%)
  • ⏳ KS.4 (DOT MA chiều ngược) — NEXT
  • ⏳ KS.5, KS.6, K3, K4, K5
  • ⏳ DESIGN D0-D9, IMPLEMENT 9 đợt

20 TD open (3 đỏ + 10 vàng + 6 xanh + 1 closed), 10/24 WHY đã trả lời, 14 WHY đang treo.


Folder knowledge/current-state/reform-PG-tools/ | Index rev 1 | S176 | Living doc — cập nhật sau mỗi KS/K.