0.4.0 - I always have a choice
新功能
- 完成从低代码前端到自研前后端的一次完整切换,覆盖此前平台已有的核心工作台能力。
- 新增 Dashboard 大屏体验,优化关键指标、趋势和运行状态的可视化呈现。
- 新增 Custom Console,可在界面中管理自定义 Module、Playbook、SIEM YAML 和相关定义文件。
- 新增 Runtime 设置与自定义定义的刷新、校验能力,让定制内容可以更低成本地迭代。
- 新增 Tags 设置页,可直接预览当前前端所有 Tag 字段、枚举和颜色效果。
- 新增认证记录分享链接,用户可以复制 Case、Alert、Artifact、Enrichment、Playbook、Knowledge 的详情链接;未登录用户登录后会回到目标记录。
- 新增个人通知偏好与 Inbox 体验改进,支持更清晰的资源标签和 Case 分配、Playbook 完成等通知场景。
优化
- 优化 Case、Alert、Artifact、Enrichment、Knowledge、Playbook 等记录详情的布局和活动流加载方式。
- 使用游标分页优化评论、审计日志等活动流,减少长列表场景下的加载压力。
- 统一 Runtime 命名,移除隐藏环境变量覆盖项,让运行时配置更直观。
- 优化用户管理安全性,避免管理员误删自己。
- 优化字段展示、Tag 颜色、状态和风险等级的视觉一致性。
- 优化 SIEM 与 MCP 能力,支持原始 SPL、ES|QL 查询,以及更可控的字段发现时间范围和返回限制。
- ELK 集成支持 API Key,减少部分部署环境中的认证配置成本。
部署和发布工程
- 新增并完善 Docker Compose 发布包,支持单机部署所需的前端、后端、PostgreSQL、Redis Stack、RustFS 和 Worker 组件。
- Compose 发布包会自动写入本次版本的 GHCR 后端/前端镜像地址。
- 前端容器内置 HTTPS 入口和自签证书生成逻辑,降低首次部署门槛。
- 新增 GitHub Actions CI、Docker 镜像构建、Release 工作流,为后续版本发布提供自动化基础。
- 发布流程现在会生成
asp-compose-<version>.tar.gz并挂载到 GitHub Release。
开发者笔记
这个版本的标题来自《权力的游戏》里一句我很喜欢的台词:I always have a choice。
之前为了快速实现,旧版本的前端和一部分数据存储依赖低代码平台 Nocoly,自己主要写后端。这个选择在早期确实节省了时间,但越往后开发越明显地感觉到,低代码平台已经不再是提高效率,而是在限制发展。很多想做的功能实现不了,或者实现前要先反过来思考:低代码平台能提供什么?我能在它允许的范围里做什么?这会让产品设计和工程实现都被平台边界牵着走。
还有一个很现实的问题是,Nocoly 本身比较占资源,部署也不算轻。对于一个希望私有化部署、低成本运行、方便二次开发的安全运营平台来说,这不是一个舒服的基础。
所以 0.4.0 做了一件很重要的事:把前端和后端都收回到自己可控的代码里。所有核心功能都由项目自己的代码实现,不再依赖低代码平台来决定能力边界。这个版本重新实现了之前「低代码平台 + 后端」组合中的已有功能,同时又增加了很多新能力。更重要的是,从这一版开始,自定义开发、发布、部署和后续功能扩展都变得更直接、更清楚,也更容易被掌控。
这也是标题的含义:当所有关键代码都在自己手里时,我不再只能接受平台给出的选项。我永远有一个选择。
当然也想吐槽一句:明明现在有 LLM 帮忙写代码了,为什么感觉反而更累了。