一个用于生成安全报告的桌面应用,采用 Electron 前端壳 + 本地 FastAPI 后端 + 模板插件系统。
当前归档版本:
0.21.5
- 模板驱动报告生成(
schema.yaml + handler.py + template.docx) - 漏洞库管理(CRUD)
- ICP 信息管理(CRUD + 批量删除)
- 报告列表、删除、合并
- 模板导入/导出/热加载
- 工具箱运行时设置(
plugin_runtime)
main.js:Electron 主进程,负责后端生命周期与启动握手preload.js:向渲染层注入electronConfig、electronAPIsrc/js/*:前端业务模块(无框架)backend/api.py:FastAPI 入口与中间件backend/core/*:后端核心实现层(业务单一实现来源)backend/plugin_host/runtime.py:模板执行编排(descriptor/hybrid/legacy/isolated)
├─ backend/
│ ├─ api.py
│ ├─ config.yaml
│ ├─ shared-config.json
│ ├─ core/
│ ├─ plugin_host/
│ ├─ templates/
│ ├─ widgets/
│ ├─ tests/
│ └─ data/
├─ src/
│ ├─ index.html
│ ├─ styles.css
│ └─ js/
│ ├─ api.js
│ ├─ config.js
│ ├─ main.js
│ ├─ form-renderer.js
│ ├─ form-renderer-fields.js
│ ├─ form-renderer-images.js
│ ├─ utils.js
│ ├─ toolbox.js
│ ├─ template-manager.js
│ ├─ vuln-manager.js
│ └─ crud-manager.js
├─ docs/
│ ├─ ARCHITECTURE_LAYER_FLOW_ANALYSIS.md
│ ├─ PROJECT_OVERVIEW.md
│ ├─ DEPLOYMENT_GUIDE.md
│ ├─ RUNTIME_OPERATIONS_RUNBOOK.md
│ └─ TEMPLATE_DEV_GUIDE.md
├─ scripts/
│ ├─ sync-version.js
│ ├─ check-version-sync.js
│ └─ e2e-smoke.js
├─ main.js
├─ preload.js
├─ update.md
└─ package.json
- Node.js >= 16
- Python >= 3.9
npm install
cd backend && pip install -r requirements.txt后端(可选手动):
cd backend
uvicorn api:app --host 127.0.0.1 --port 8000 --reloadElectron:
npm run start应用每次启动都会生成随机 APP_API_TOKEN,通过 preload 注入渲染层并由后端中间件校验。
后端规则(backend/api.py):
/api/*的POST/PUT/PATCH/DELETE默认需要X-App-Token- 受保护 GET:
/api/backup-db、/api/health-auth、/api/templates/{id}/export GET /api/health为非鉴权存活探针
主进程在开窗前调用 GET /api/health-auth(带 token)确认令牌绑定;若不匹配将直接退出并提示。
本地测试:
npm run test
npm run test:e2e:smokeCI 冒烟:
- 工作流:
.github/workflows/ci-smoke.yml - 内容:后端单元测试 + Electron 冒烟
pyinstaller --noconfirm backend/api.spec
npm run dist发布前版本一致性检查:
npm run check-version常用目标:
npm run dist -- --win --x64npm run dist -- --mac --arm64
- 架构分析:
docs/ARCHITECTURE_LAYER_FLOW_ANALYSIS.md - 项目概览:
docs/PROJECT_OVERVIEW.md - 部署指南:
docs/DEPLOYMENT_GUIDE.md - 运行手册:
docs/RUNTIME_OPERATIONS_RUNBOOK.md - 模板开发:
docs/TEMPLATE_DEV_GUIDE.md