wts408/soar-playbook-builder

GitHub: wts408/soar-playbook-builder

一款 Splunk SOAR 自定义应用,支持通过自然语言或模板生成、预览、验证 playbook 并一键导入平台运行。

Stars: 0 | Forks: 0

# SOAR Playbook 构建器 [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Python 3.13](https://img.shields.io/badge/Python-3.13-3776AB?logo=python&logoColor=white)](soar_playbook_builder/soar_playbook_builder.json) [![Splunk SOAR 8.5+](https://img.shields.io/badge/SOAR-8.5%2B-65A637)](docs/PLAYBOOK_BUILDER_GUIDE.md) [![Version](https://img.shields.io/badge/version-2.26.0-informational)](CHANGELOG.md) **使用自然语言描述 SOAR playbook,预览 block 流程和 Python 代码,进行验证,并导入到 Visual Playbook Editor。** 这是一款用于生产环境的 Splunk SOAR 自定义 app,而非演示设备。每次安装都会包含示例用例(9001–9005)以及支持 mock 的开发模式,以便您在自己的实例上测试 **构建 → 导入 → 运行** 流程。 **仓库地址:** [github.com/wts408/soar-playbook-builder](https://github.com/wts408/soar-playbook-builder) ## 概览 ![Playbook Builder sidecar — chat, template scaffolds, block preview, and Import to SOAR](https://static.pigsec.cn/wp-content/uploads/repos/cas/2b/2b2b9fdd1b88c79e70b3e3825aede2ddcac339bf3eb4945d394919759c1f3feb.svg) *安装后请替换为实时截图:SOAR → your asset → **Open sidecar** → 截取 Build 标签页。* ## 前置条件 ### 在您的构建机器上(打包 `.tgz`) | 要求 | 说明 | |-------------|--------| | **bash**, **tar**, **git** | macOS 或 Linux(RHEL/Ubuntu 均可) | | **Node.js 20+** 和 **npm** | 构建 React sidecar (`sidecar-ui/`) | | **Python 3.9+** | 实用工具脚本和可选的 E2E 验证 | 可选(仅用于 E2E / 验证): ``` pip install -r requirements.txt # httpx for scripts/e2e_validate.py ``` ### 在 Splunk SOAR 上(运行时) | 要求 | 说明 | |-------------|--------| | **Splunk SOAR 8.5+** | 参见 app manifest 中的 `min_phantom_version` | | **Python 3.13** | 用于导入 playbook 的 SOAR 平台 Python | | **兼容 RHEL 的操作系统** | 标准 SOAR 设备或自管理主机 | | **Asset + permissions** | 具备 playbook 编辑/导入权限的 Analyst 角色 | **模式 A(默认):** 模板、scaffolds、验证、导入 — **无需 MCP 或 API key。** **模式 B(可选):** 通过外部 MCP agent bridge 进行自然语言聊天 — 请参阅 [配置](#configuration) 和 [docs/MCP_INTEGRATION.md](docs/MCP_INTEGRATION.md)。 ## 快速开始 只需三个命令即可构建可安装的 app: ``` git clone https://github.com/wts408/soar-playbook-builder.git cd soar-playbook-builder ./package_app.sh ``` 在 SOAR 上安装: 1. **SOAR → Apps → Install App** → 选择 `dist/soar_playbook_builder.tgz` 2. **Configure → Asset Configuration** → 创建一个 asset(例如 `playbook_builder`) 3. 运行操作 **Test connectivity**(模式 B)或打开 sidecar URL: ``` SOAR_URL=https://your-soar:8443 SOAR_USER=admin SOAR_PASS='***' ASSET=playbook_builder \ ./scripts/print_sidecar_url.sh ``` **在没有 SOAR 的情况下试用**(mock UI): ``` cd sidecar-ui && npm install && npm run dev # → http://localhost:5173 (#/build · #/run · #/help) ``` ## 配置 复制模板并为您的环境填入相应的值: | 文件 | 用途 | |------|---------| | [**config.example.yaml**](config.example.yaml) | SOAR asset 字段(`mcp_bridge_url`、`asset_defaults` 等) | | [scripts/env.e2e.example](scripts/env.e2e.example) | 针对线上 SOAR 进行 E2E 验证 | | [sidecar-ui/.env.example](sidecar-ui/.env.example) | 针对线上 SOAR 进行本地 Vite 开发 | **最小化模式 A asset:** 将 `mcp_bridge_url` 留空;根据需要设置 `ai_instructions`;在 `asset_defaults` 中映射 integrations(在 SOAR UI 中为 JSON 字符串)。 **模式 B:** 将 `mcp_bridge_url` 指向您的 bridge(例如 `http://host:8003/agent`)。LLM key 存放在 **bridge host** 上,而不在此 repo 中。 完整设置:[docs/PLAYBOOK_BUILDER_GUIDE.md](docs/PLAYBOOK_BUILDER_GUIDE.md) ## 部署模式 | 模式 | Bridge | 最适用场景 | |------|--------|----------| | **A — 本地化** | 无 | Air-gapped、模板、验证、导入 | | **B — Bridge + LLM** | MCP host | 开放式自然语言聊天 — [ON_PREM_LLM.md](docs/ON_PREM_LLM.md) | Sidecar base URL: `https:///rest/handler///` ## 文档 | 指南 | 内容 | |-------|----------| | [PLAYBOOK_BUILDER_GUIDE.md](docs/PLAYBOOK_BUILDER_GUIDE.md) | 安装、配置、操作、故障排除 | | [FAILED_LOGINS_QUICK_START.md](docs/FAILED_LOGINS_QUICK_START.md) | 约 15 分钟内实现 Failed Logins → Okta | | [RUN_TAB_DEMO.md](docs/RUN_TAB_DEMO.md) | 示例用例 9001–9005 冒烟测试 | | [FRESH_INSTALL_AND_MIGRATION.md](docs/FRESH_INSTALL_AND_MIGRATION.md) | 重新部署到新的 SOAR(约 15 分钟) | | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | 模式 A 与 B 对比、组件说明 | | [MCP_INTEGRATION.md](docs/MCP_INTEGRATION.md) | 模式 B HTTP 流程 | | [AIR_GAPPED_OPERATIONS.md](docs/AIR_GAPPED_OPERATIONS.md) | 离线模式 — 无 LLM/MCP | | [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) | 症状索引 | | [GITHUB_PUBLISHING.md](docs/GITHUB_PUBLISHING.md) | 发布与标签 | 更多指南:[docs/](docs/) · [CHANGELOG.md](CHANGELOG.md) ## REST 路由 | 路由 | 描述 | |-------|-------------| | `chat` | Sidecar UI + builder API | | `widget` | VPE 轮询 widget | | `poll_playbook` | Playbook 变更指纹 | | `proxy_chat` | MCP 代理(模式 B) | ## 发布 ``` ./package_app.sh git tag v2.26.0 git push origin v2.26.0 ``` GitHub Actions 会将 `dist/soar_playbook_builder.tgz` 附加到 Release 中。打标签前的验证:[docs/E2E_VALIDATION.md](docs/E2E_VALIDATION.md) ## 贡献 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) — fork 仓库,创建分支,运行测试,然后提交 PR。 ## 许可证 [MIT License](LICENSE) — 在内部发布前,请自定义 `publisher` 和品牌信息。本产品不属于 Splunk 产品;请参见 [ATTRIBUTION.md](ATTRIBUTION.md)。
标签:Python, React, SOAR, SOC Prime, Syscalls, 开发工具, 无后门, 自动化剧本