690514:2019 204-rfa-approval-refactor #01
CI / CD Pipeline / build (push) Successful in 6m1s
CI / CD Pipeline / deploy (push) Failing after 6m42s

This commit is contained in:
2026-05-14 20:19:21 +07:00
parent 07cc6d47b1
commit 0240d80da5
183 changed files with 20050 additions and 1017 deletions
@@ -0,0 +1,22 @@
// File: docs/ai-knowledge-base/checklists/db-change.md
# Checklist: Database Schema Changes
## 📝 Pre-Change
- [ ] เขียน SQL Delta script ตามเทมเพลตใน `templates/db-migration.md`
- [ ] มี Rollback script เตรียมไว้พร้อมใช้งาน
- [ ] ทดสอบรันใน Local/Development แล้ว
- [ ] ตรวจสอบว่าไม่กระทบต่อ Query เดิมในโค้ด (e.g. `SELECT *` อาจจะอันตราย)
## 🚀 Execution
- [ ] ทำการ Backup ฐานข้อมูลก่อนเริ่ม (ถ้าเป็น Production)
- [ ] รัน SQL Script ผ่านเครื่องมือที่กำหนด (e.g. DBeaver, HeidiSQL)
- [ ] ตรวจสอบโครงสร้างตารางหลังแก้ไข
## ✅ Verification
- [ ] รันระบบและทดสอบฟีเจอร์ที่เกี่ยวข้อง
- [ ] ตรวจสอบ Logs ว่าไม่มี SQL Error
- [ ] อัปเดตไฟล์ `specs/03-Data-and-Storage/lcbp3-v1.8.0-schema-02-tables.sql` ให้ตรงกัน
---
// Change Log:
// - 2026-05-14: Initial DB change checklist
@@ -0,0 +1,28 @@
// File: docs/ai-knowledge-base/checklists/deploy.md
# Deployment Checklist
## 🛠️ Pre-Deployment (Development/Staging)
- [ ] Linting & Type Checking ผ่านหมด (`pnpm lint`, `pnpm type-check`)
- [ ] Unit Tests ผ่านทั้งหมด (`pnpm test`)
- [ ] Database Schema ถูกอัปเดตที่เซิร์ฟเวอร์เป้าหมายแล้ว (ADR-009)
- [ ] Environment Variables (Secrets) ถูกตั้งค่าใน Docker/CI แล้ว
- [ ] Build Frontend & Backend สำเร็จโดยไม่มี Error
## 🚀 Deployment Phase
- [ ] Trigger Gitea Actions / CI Pipeline
- [ ] ตรวจสอบ Container Status (Running)
- [ ] ตรวจสอบ Logs ว่าไม่มี Error Startup
## 🧪 Post-Deployment (Verification)
- [ ] ทดสอบ Login
- [ ] ทดสอบฟีเจอร์หลักที่เพิ่ง Deploy
- [ ] ตรวจสอบว่า `publicId` (UUIDv7) ทำงานถูกต้องใน URL
- [ ] เช็คความปลอดภัย (RBAC) ว่าสิทธิ์ยังถูกต้อง
## 🆘 Rollback Plan
- [ ] หากพบ Critical Bug ให้ Revert Commit ล่าสุด
- [ ] เตรียม SQL Script สำหรับ Revert Schema (ถ้ามี)
---
// Change Log:
// - 2026-05-14: Initial deployment checklist
@@ -0,0 +1,24 @@
// File: docs/ai-knowledge-base/checklists/rollback.md
# Checklist: System Rollback (Emergency)
## 🚨 Decision Point
- [ ] ระบบล่มถาวรเกิน 15 นาที
- [ ] พบช่องโหว่ความปลอดภัยที่สำคัญ
- [ ] ข้อมูลสูญหายหรือเสียหายจากการทำงานผิดพลาด
## 🛠️ Execution (Code)
- [ ] Revert Git Commit ไปยัง Tag หรือ Hash ที่เสถียรล่าสุด
- [ ] Trigger CI/CD เพื่อ Deploy เวอร์ชันเก่า
- [ ] เคลียร์ Cache ใน Redis (ถ้าจำเป็น)
## 🗄️ Execution (Database)
- [ ] รัน Rollback SQL script
- [ ] หากรุนแรง ให้ Restore ข้อมูลจาก Backup ล่าสุด
## ✅ Verification
- [ ] ตรวจสอบว่าระบบกลับมาออนไลน์
- [ ] แจ้งทีมที่เกี่ยวข้องเรื่องเหตุการณ์ (Incident Report)
---
// Change Log:
// - 2026-05-14: Initial rollback checklist
@@ -0,0 +1,27 @@
// File: docs/ai-knowledge-base/checklists/security-audit.md
# Checklist: Security & Tier 1 Audit
## 🛡️ Authentication & Authorization
- [ ] ทุก API มี `@UseGuards(CaslGuard)`
- [ ] ทุก Action มีการตรวจสอบสิทธิ์ผ่าน `@CheckPolicies(...)`
- [ ] ไม่มีช่องโหว่ BOLA (Broken Object Level Authorization) - เช็คความเป็นเจ้าของข้อมูล
- [ ] JWT Payload ไม่มีข้อมูลส่วนตัวที่อ่อนไหว
## 🆔 Data Integrity (ADR-019)
- [ ] ใช้ `publicId` (UUIDv7) สำหรับ API/URL เท่านั้น
- [ ] ไม่มีโค้ดที่ใช้ `parseInt()` กับ UUID
- [ ] `id` (Integer) ถูก `@Exclude()` ออกจาก API Response
## 💾 Storage & Input
- [ ] ไฟล์ที่อัปโหลดถูกสแกน ClamAV ก่อนย้ายเข้า Permanent Storage
- [ ] มีการทำ Input Validation ทั้งฝั่ง Client (Zod) และ Server (class-validator)
- [ ] มีการใช้ `DOMPurify` หรือมาตรการป้องกัน XSS สำหรับข้อมูลที่แสดงผลเป็น HTML
## ⚙️ Concurrency & Reliability
- [ ] ใช้ Redis Redlock สำหรับ Document Numbering (ADR-002)
- [ ] ใช้ `@VersionColumn` สำหรับ Optimistic Locking ในจุดที่มีการแก้ไขพร้อมกัน
- [ ] งานที่ใช้เวลานานถูกส่งเข้า BullMQ (ADR-008)
---
// Change Log:
// - 2026-05-14: Initial security audit checklist
@@ -0,0 +1,20 @@
// File: docs/ai-knowledge-base/checklists/vlan-change.md
# Checklist: VLAN Configuration Changes
## 📝 Planning
- [ ] กำหนด VLAN ID และ Subnet ที่ต้องการ
- [ ] ตรวจสอบความซ้ำซ้อนของ IP ในเครือข่ายเดิม
- [ ] วางแผน Port Profile ใน Omada
## 🚀 Configuration
- [ ] สร้าง VLAN ใน Omada Controller
- [ ] ตั้งค่า Port Profile ให้กับ Switch ที่เกี่ยวข้อง
- [ ] ทดสอบการเชื่อมต่อจาก Client (DHCP/Static IP)
## ✅ Security & Inter-VLAN
- [ ] ตรวจสอบสิทธิ์การเข้าถึงข้าม VLAN (Ping test)
- [ ] ตั้งค่า ACL บน Router/Gateway (ถ้าจำเป็น)
---
// Change Log:
// - 2026-05-14: Initial VLAN change checklist