70 lines
3.1 KiB
Markdown
70 lines
3.1 KiB
Markdown
# 工作流控制台
|
|
|
|
GYXX Flow 自带一个只依赖 Python 运行时的工作流控制台。页面从当前工作流目录、定时配置、
|
|
调度状态和运行索引动态取数,不维护第二套工作流清单。
|
|
|
|
## 启动
|
|
|
|
```powershell
|
|
cd D:\gyxx-flow
|
|
uv run gyxx console
|
|
```
|
|
|
|
生产凭据不会从源码或任意 `.env` 自动发现。需要真实运行时,必须显式指定受控环境文件;
|
|
已经由服务环境注入的同名变量优先,不会被文件覆盖:
|
|
|
|
```powershell
|
|
uv run gyxx console --env-file D:\secure\gyxx-flow.env
|
|
```
|
|
|
|
商品经营正式执行会在启动子进程前校验云端 PostgreSQL、`hermes-analyzer` 飞书身份、
|
|
所需 Hermes 密钥和负责人 `open_id`。缺少任一必需项时,前端会返回明确的配置错误,
|
|
不会创建一个注定失败的“正式运行”。
|
|
|
|
默认地址为 `http://127.0.0.1:8765`。控制台进程与调度进程职责分离;服务器仍只运行一个
|
|
项目内调度服务:
|
|
|
|
```powershell
|
|
uv run gyxx schedule run
|
|
```
|
|
|
|
页面可以:
|
|
|
|
- 按内容营销、商品经营、店铺洞察和供应链分别展示全部工作流;
|
|
- 查看工作流定义、执行步骤、定时规则和下一次启动时间;
|
|
- 修改定时类型、一个或多个时间、日期规则、启停状态和业务日期偏移;
|
|
- 以安全预演或正式执行方式手动触发已注册工作流;
|
|
- 查看最近运行状态、步骤统计和经过脱敏的错误详情。
|
|
|
|
定时配置保存到 `config/schedules.json`。常驻 Python 调度器会在下一次轮询时重新验证并
|
|
加载配置,不需要创建或修改 Windows Task Scheduler 任务。若新规则在错过触发补偿窗口
|
|
内已经到期,下一次轮询可能立即启动该工作流。
|
|
|
|
## 执行安全
|
|
|
|
手动运行默认选择“安全预演”,不会产生真实外部副作用。只有在页面中选择“正式执行”并
|
|
确认影响后,控制台才会通过固定的 `python -m gyxx_flow run ... --execute` 入口启动独立
|
|
子进程。浏览器不能提交脚本路径、命令参数、环境变量或凭据。
|
|
|
|
控制台沿用 `GYXX_DATA_ROOT`,因此运行日志、工作流锁、运行索引和副作用账本与 CLI、调度
|
|
服务保持同一边界。生产部署必须为所有进程设置同一个外部数据根。
|
|
|
|
页面中的“预演完成”和“正式成功”是两种不同状态。预演全部跳过外部写入时不会再显示为
|
|
最近正式成功;运行详情和历史记录会保留 `dry_run` 或 `execute` 模式。
|
|
|
|
## 远程访问
|
|
|
|
默认只监听回环地址。若需要绑定非回环地址,必须先通过安全环境注入不少于 24 个字符的
|
|
访问令牌:
|
|
|
|
```powershell
|
|
$env:GYXX_CONSOLE_TOKEN = '<由密钥系统注入的随机令牌>'
|
|
uv run gyxx console --host 0.0.0.0 --port 8765
|
|
```
|
|
|
|
令牌不会写入源码、配置、URL 或日志。页面会在当前浏览器会话中临时保存令牌。生产环境
|
|
应再通过 HTTPS 反向代理或 SSH 隧道访问,不应直接把明文 HTTP 控制端口暴露到公网。
|
|
|
|
控制台不提供工作流入口、参数、运行时绑定或凭据的在线编辑能力;这些仍由受版本控制的
|
|
项目配置和代码维护。
|