nlink-jp/ir-timeline

GitHub: nlink-jp/ir-timeline

一个基于Go语言、单二进制的事件响应时间线记录工具,通过浏览器UI和SQLite实现轻量、便携的时间线管理。

Stars: 1 | Forks: 0

# ir-timeline 事件响应时间线记录器 —— 一个单二进制、基于浏览器的工具,用于通过文本、图像、标签和时间差追踪 IR 事件。 [日文版 README](README.ja.md) ## 概念 用现代的、本地优先的工具取代基于 Excel 的 IR 时间线管理: - **单二进制文件** —— 无运行时依赖,无需 Python、Node.js - **单一数据库文件** —— 每个事件一个 SQLite 文件,图像存储为 BLOB - **浏览器 UI** —— 现代时间线视图,支持深色/浅色主题 - **可移植** —— 复制数据库文件即可分享或归档事件 ## 快速开始 ``` # 构建 make build # 运行(如果不存在则创建 timeline.db,打开浏览器) ./dist/ir-timeline # 使用特定的 DB 文件 ./dist/ir-timeline --db incident-2026-04-01.db # 自定义端口,不自动打开 ./dist/ir-timeline --port 9090 --no-browser ``` ## 功能特性 ### 列表视图(垂直时间线) 事件按时间顺序显示,卡片包含描述、执行者、标签、图像以及事件间的时间差。 ### 图表视图(水平泳道) 时间位于 X 轴,标签作为泳道位于 Y 轴。拥有多个标签的事件会出现在所有相关泳道中。悬停可查看详情,点击可编辑。 ### 通用功能 | 功能 | 详情 | |---------|--------| | **多标签** | 每个事件可拥有多个标签以实现灵活分组 | | **标签颜色** | 自动分配颜色(常见 IR 阶段固定颜色,自定义标签基于哈希生成) | | **图片附件** | 拖放或文件选择器,存储为 SQLite 中的 BLOB | | **图片预览** | 卡片中显示缩略图,点击可查看灯箱 | | **时间差** | 连续事件间的经过时间 | | **深色/浅色** | 主题切换,偏好保存于 localStorage | | **案例 ID** | 在页眉显示徽章,可编辑 | | **标签筛选** | 按特定标签筛选时间线 | | **Markdown 导出** | 将时间线下载为 `.md` 文件 | ## 命令行标志 ``` ir-timeline [flags] --db SQLite database path (default: timeline.db) --port HTTP server port (default: 8888) --no-browser Don't auto-open browser --version Show version ``` ## 预定义标签颜色 | 标签 | 颜色 | |-----|-------| | `detection` | 蓝色 | | `analysis` | 紫色 | | `containment` | 橙色 | | `eradication` | 红色 | | `recovery` | 绿色 | | `communication` | 青色 | | `lesson` | 靛蓝色 | 任何其他标签名称将根据其哈希自动生成颜色。 ## 安全性 - 仅绑定到 `127.0.0.1` —— 无远程访问 - 所有 SQL 查询均使用参数化语句 - 基于 DOM 的渲染(`textContent` / `createElement`),不使用 `innerHTML` - 图片上传限制为 10 MB,仅允许 `image/*` MIME 类型 ## 架构 ``` ir-timeline (Go binary) ├── main.go — entry point, flags, HTTP server ├── storage.go — SQLite schema, CRUD operations ├── handler.go — REST API handlers └── web/ └── index.html — SPA (HTML + CSS + JS, embedded via embed.FS) ``` 完整设计文档请参阅 [docs/design.md](docs/design.md)。 ## 构建 ``` make build # → dist/ir-timeline make test # → go test ./... make build-all # → 5 platform binaries make clean # → remove dist/ ``` ## 属于 cybersecurity-series 系列 ir-timeline 是 [cybersecurity-series](https://github.com/nlink-jp/cybersecurity-series) 的一部分 —— 专为威胁情报、事件响应和安全运营设计的 AI 增强工具。
标签:CSV输出, LangChain, Markdown导出, Mutation, SQLite, 事件追踪, 二进制发布, 亮色主题, 便携, 分析工具, 单二进制, 卡片视图, 可视化, 后端开发, 图片附件, 安全事件管理, 库, 应急响应, 开源工具, 数据可视化, 无依赖, 日志审计, 时间差, 时间线, 时间线记录器, 暗黑主题, 本地工具, 标签管理, 泳道图, 浏览器UI, 调试辅助, 轻量级, 过滤器