工作流
工作流是可复用的自动化处理流水线,用于处理捕获的流量、运行主动步骤或转换数据,无需编写独立脚本。
工作流类型
| 类型 | 触发方式 | 常见用途 |
|---|---|---|
| 被动 | 新捕获的流量 | 标记值得关注的模式、为请求添加标签、自动创建安全发现。 |
| 主动 | 手动运行 | 发送后续请求、串联操作、执行多步骤测试。 |
| 转换 | 测试输入、转换操作或匹配与替换 | 转换文本或字节,例如格式化 JavaScript 或规范化 JSON。 |
被动工作流在后台持续运行。主动工作流按需针对选定的请求集合运行。
工作流画布
打开工作流并选择一个工作流,打开其画布。
- 节点显示在中央面板中。每个节点都有带类型的输入和输出端口。
- 在输出端口和输入端口之间点击并拖动,即可连接它们。
- 点击节点,在右侧打开其配置面板。
- 顶部工具栏包含运行、启用/禁用及导入/导出控件。
节点类型
| 节点 | 说明 |
|---|---|
| 开始 / 结束 | 适用于被动、主动或转换工作流类型的入口和出口节点。 |
| 条件 | 条件分支、JavaScript 条件分支、HTTPQL 匹配、测试范围匹配、字符串包含和正则匹配。 |
| 编码 | Base64、URL、十六进制和 HTML 编码/解码。 |
| 格式化和哈希 | JSON 压缩/格式化、MD5、SHA-1 和 SHA-256。 |
| 文本操作 | 去除首尾空白、连接、拆分、匹配与替换、JQ 转换和 Grep 提取。 |
| JavaScript | 使用工作流 SDK 实现自定义逻辑;可以读取流量、操作文件和创建安全发现。 |
| 集成 | 记录日志、Webhook、调用工作流、发送请求和匹配与替换规则。 |
实际端口和配置请查看节点面板。点击连线即可操作该连接,无需删除节点来重新连接图。使用保存或 Ctrl+S(macOS 上为 Command+S)保存。
共享和作用域
工作流默认在同一工作区的各项目之间共享。启用仅当前项目,可将定义保留在其项目内。共享定义并不意味着各项目的流量、结果或笔记都变成共享内容。迁移到其他工作区或安装时,请导出/导入工作流 JSON。
实时使用前的测试
被动和主动工作流提供 HTTP 测试区域,包含 URL、原始请求和原始响应测试数据。启用工作流,填写这些字段,然后点击测试工作流。测试会在执行前保存编辑。离开页面再返回时,每个工作流的测试数据值仍会保留。
转换工作流则提供测试输入和输出。先使用小型代表性输入,再测试接近实际大小的资源。测试数据不会让任意 JavaScript 或发送请求节点变得无害:工作流代码仍然可以执行其配置的操作。
JavaScript 和文件
工作流 JavaScript 支持 Ogma SDK 和兼容的 fs/path 导入。使用 sdk.fs.readFile、writeFile、appendFile、exists、readDir、mkdir 和 unlink 执行文件操作,使用 sdk.path 处理平台相关路径。这些是 Ogma 辅助 API,并非整个 Node.js 标准库。
对于资源导出器,读取 response.getBody().toText(),通过 sdk.path.join 选择目标位置,创建其父目录;如果不想覆盖现有文件,请检查 sdk.fs.exists。执行前请检查文件系统路径:工作流文件系统辅助 API 在 Ogma 主机上运行,不同于插件的私有目录 sdk.fs。该独立运行时请参阅插件 SDK。
导入工作流
- 在工作流工具栏中点击导入。
- 选择 JSON 工作流文件。
- 工作流会在画布中打开。启用前请验证节点配置。
- 保存工作流。
导出的工作流 JSON 文件可以在不同 Ogma 安装之间共享,或存储在版本控制中。
对捕获历史记录运行工作流
主动工作流可以针对先前捕获的请求重新运行。
- 打开工作流。
- 点击对历史记录运行。
- 在扫描历史记录对话框中,输入可选的 HTTPQL 筛选条件,限制工作流处理的请求。
- 点击运行。
检查匹配数量并启动任务。进度和错误会显示在扫描任务中;启用日志时,也会显示在其运行历史中。被动工作流提供扫描历史记录和对请求重新运行,用于回溯处理。
对于少量值得关注的资源,在 HTTP 历史记录中选择一行或多行,右键单击,选择发送到工作流,然后选择已启用的主动工作流。这会将选中的条目提供给它,而不改变其定义,也不处理整个历史记录。
扫描历史记录筛选输入旁的 AI按钮可根据自然语言描述生成 HTTPQL 表达式。
工作流运行和结果
需要执行详情时,在工作流配置中开启启用日志记录。它适用于被动、主动和转换工作流,包括匹配与替换转换。禁用时,处理仍会运行,但不会添加运行/步骤日志;诊断问题时,请重新启用并重复测试。
- 点击一次运行,查看各节点的步骤输出。
- 产生错误的节点会被高亮显示。
- 运行中创建的安全发现会显示在安全发现视图中。
- 运行中提取的变量可在步骤详情面板中查看。
全部清除会移除所选工作流存储的运行历史。如果需要保留调试证据,请在清除前下载日志。日志可能存储完整脚本体等大型输出,因此除非需要,否则请在高频转换时保持关闭。
启用被动工作流
- 打开工作流。
- 验证画布配置完整(没有未连接的必需端口)。
- 切换工具栏中的启用。
已启用的被动工作流会自动处理新流量。禁用工作流可暂停它,而无需删除。