3.9 KiB
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, trangadmin_tools, quyền admin/analyzer và bind mountconfig. - [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àoconfig/registry. - [2026-09-04] Thêm read API
/api/v2/registry,/api/v2/profiles/activevà admin API/UI tạo category/component/profile, upload/activate/rollback version. - [2026-09-04] Upload Web/async/API giữ
os_typebắt buộc để tương thích và nhận thêmprofile_idtù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_guestchỉ 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_idoverrideos_type; nếu bỏ trống, aliasos_typeresolve 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_sessionlà 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.
pytestpackage chưa có trong runtime local; test suite đã chạy bằng deterministic lightweight runner, gồm fixturetmp_path, tổng cộng 23 tests pass.
Lệnh thường dùng
python -m py_compile app/web_app_fastapi.pydocker compose configgit diff --check