Files
audit-web/PROJECT_STATUS.md

3.9 KiB

PROJECT STATUS — Audit Hardening Tool

Cập nhật lần cuối: 2026-09-04 (bởi: Hermes + Codex gpt-5.6-sol) Evaluator hiện tại: Hermes verification; Kimi kiến trúc đã hoàn thành, Grok CLI chưa đăng nhập

Phase hiện tại

  • Phase 1 — Plan (.hermes/plans/2026-09-04_091241-upload-checklist-config.md)
  • Phase 2 — Xác định hướng xây dựng
  • Phase 3 — Thu thập kiến thức
  • Phase 4 — Thực hiện
  • Phase 5 — Tracking

Tổng quan

Đã chuyển checklist/rule sang registry dữ liệu phân cấp Category → Component → Profile → ProfileVersion, có checksum, artifact bất biến, active version và rollback; vẫn tương thích os_type cũ.

Việc đã xong

  • [2026-09-04] Khảo sát OS_CONFIG, trang admin_tools, quyền admin/analyzer và bind mount config.
  • [2026-09-04] Chốt thiết kế upload an toàn, không nhận path/tên đích từ client.
  • [2026-09-04] Hoàn thành endpoint admin, UI upload checklist/rule, backup atomic và Docker RW mount; 8 regression tests pass.
  • [2026-09-04] Thêm RegistryService, manifest schema v2 và atomic manifest/artifact writes; seed 5 OS cùng legacy aliases vào config/registry.
  • [2026-09-04] Thêm read API /api/v2/registry, /api/v2/profiles/active và admin API/UI tạo category/component/profile, upload/activate/rollback version.
  • [2026-09-04] Upload Web/async/API giữ os_type bắt buộc để tương thích và nhận thêm profile_id tùy chọn; audit UI cho phép override active profile mà không đổi auto OS mặc định.
  • [2026-09-04] Xác nhận quyền: checklist/profile mutation chỉ admin; analyzer chỉ quản lý tool; dev_guest chỉ có luồng audit upload.

Việc đang làm / Bước tiếp theo

  • Push lên Gitea, deploy NAS và kiểm thử Web với một profile OS cũ cùng một profile component mới.

Quyết định đã chốt

  • Chỉ admin được upload checklist/rule config; analyzer chỉ upload tool.
  • Checklist chỉ nhận .xlsx, rule config chỉ nhận JSON hợp lệ.
  • Tên file đích lấy từ OS_CONFIG; không cho path traversal.
  • Backup file hiện tại trước khi thay thế.
  • Registry nằm dưới persistent mount riêng /app/registry; legacy files được giữ nguyên và compatibility upload tạo version mới thay vì ghi đè artifact active.
  • profile_id override os_type; nếu bỏ trống, alias os_type resolve tới active profile version.

Đánh giá các phase

Phase Ngày Evaluator Kết quả Ghi chú
Plan 2026-09-04 grok-build BLOCKED Grok CLI chưa đăng nhập
Direction 2026-09-04 grok-build BLOCKED Grok CLI chưa đăng nhập
Knowledge 2026-09-04 Hermes PASS Dựa trên code/mount thực tế
Execution 2026-09-04 Hermes PASS 8 tests, compile, Jinja, Compose, diff check đều pass; Grok review bị chặn auth
Registry architecture 2026-09-04 Codex + Hermes PASS 23 tests gọi trực tiếp pass; py_compile, Jinja parse, Compose config và diff check pass.

Kiến thức thu thập

  • OS_CONFIG định nghĩa đúng cặp checklist/config cho Windows, CentOS, RHEL, Ubuntu, Oracle Linux.
  • config/ hiện bind mount read-only nên phải đổi sang RW để upload persistent.
  • require_admin_session là guard phù hợp; analyzer không nên sửa rules/checklist.

Rủi ro / Vướng mắc

  • File checklist/rule sai nội dung có thể làm xử lý audit lỗi; giảm thiểu bằng validation JSON, extension, backup và atomic replace.
  • pytest package chưa có trong runtime local; test suite đã chạy bằng deterministic lightweight runner, gồm fixture tmp_path, tổng cộng 23 tests pass.

Lệnh thường dùng

  • python -m py_compile app/web_app_fastapi.py
  • docker compose config
  • git diff --check