cronova Web 控制台¶
cronova web 控制台是 cronova 工作流调度器内置的 UI:一个单页应用,可用于创建 DAG、观察运行、流式查看日志,以及管理资源池、变量和 API 令牌。本指南将逐一介绍每个界面;本页涵盖整体布局、导航、登录,以及控制台的自动保存编辑模型。

打开控制台¶
控制台内置在 cronova 二进制文件中——无需额外安装、构建或配置。启动调度器并打开打印出的地址即可:
默认监听地址为 127.0.0.1:8090;可通过 -http 标志或 cronova.yaml 中的 http: 键修改(见安装与首次运行)。控制台中的每一层下钻——一个 DAG、一个任务、一次运行——都是形如 #/dag/etl_daily/runs 的 hash 路由,因此你正在查看的任何视图都可以被收藏、刷新,或直接粘贴到聊天消息中分享。
布局¶
控制台是一个双栏应用:左侧是固定侧边栏,用于切换工作区;右侧是带顶栏的内容区域。
侧边栏¶
| 条目 | 显示内容 |
|---|---|
| DAGs | 仪表盘:所有工作流定义,带暂停开关、迷你趋势图和最近运行状态。旁边的徽标显示 DAG 数量。 |
| Graph | 跨 DAG 的触发依赖(trigger_after)关系图。 |
| Pools | 并发资源池,限制同时运行的任务实例数量——见管理页面。 |
| Variables & Connections | 可复用的变量、连接和参数,用于命令模板化——见管理页面。 |
| Workers | 拨入式远程工作节点集群:加入令牌、实时状态、排空/移除——见管理页面。 |
| Audit | 审计日志,记录谁修改或触发了什么。 |
| API | API 令牌管理,以及内置的 OpenAPI 参考文档。 |
侧边栏底部固定着两行实时状态:executor(调度器分发任务的执行目标)和 scheduler(其 tick 间隔)。它们每隔几秒刷新一次,因此无论在哪个页面,执行器宕机或调度器卡住都一目了然。启用认证后,你的用户信息卡片就位于它们上方。
顶栏¶
| 控件 | 作用 |
|---|---|
| 面包屑 | cronova / <当前页面>——随着你逐层下钻,实时显示当前位置。 |
| Jump / filter DAGs… 搜索框 | 全局搜索。在仪表盘上可实时过滤 DAG 表格;在任何页面上都是一个自动补全框,可直接跳转到任意 DAG。 |
| Tick 指示器 | 显示调度器 tick 间隔和服务器时区标签。悬停可查看规则:调度按 UTC 求值,而页面上的时间戳按你的本地时区渲染。 |
| ☀ / ☾ | 在暗色和亮色主题之间切换(默认为暗色;你的选择会被记住)。 |
| EN / 中 | 即时切换整个 UI 的中英文,不会丢失正在进行的编辑。 |
| + New DAG | 打开新建 DAG 对话框——可从空白工作流或起始模板开始。对 viewer 账户隐藏。 |
要从任意位置跳转到某个 DAG:聚焦搜索框,输入 DAG id 的片段,然后用 Down / Up 在最佳匹配中选择,按 Enter 打开。Esc 关闭菜单。
可分享的语言深链
在任何控制台 URL 后追加 ?lang=en 或 ?lang=zh 可强制指定语言——当把链接分享给阅读另一种语言的同事时非常方便。该查询参数优先于已保存的偏好设置。
登录¶
普通开发模式的 cronova serve 默认关闭认证,但只监听本机回环地址。未认证的非回环监听会被拒绝,除非显式打开危险豁免。网络访问应使用 -auth(或在 cronova.yaml 中设置 auth.enabled: true);cronova init 会创建管理员,并在新安装时默认开启认证。
启用认证后:
- 未登录的访客会看到登录界面(用户名 + 密码),而不是应用本身。
- 登录后,侧边栏底部的用户信息卡片会显示你的用户名和角色——Admin(读写)或 Viewer(只读)——以及一个 Sign out 按钮。
- Viewer 看到的是只读控制台:+ New DAG 按钮和其他写操作均被隐藏。
- 如果会话在使用中过期,控制台会将你带回登录界面并提示 "session expired";重新登录即可继续。
关于 API 令牌管理,以及记录操作者行为的审计轨迹,见管理页面。
编辑自动保存¶
控制台没有保存按钮。你在 DAG 或任务页面上的每一处改动——切换调度、编辑命令、添加依赖——都会在短暂的防抖后自动校验并写入服务器。编辑页面上的保存状态徽标会准确告诉你当前进展:
| 徽标 | 含义 |
|---|---|
| Saved | 屏幕上的内容与服务器完全一致。可以放心离开页面。 |
| Saving… | 有一次编辑正在写入(保存经过约 400 ms 防抖并串行执行)。 |
| Fix errors to save | 当前 spec 无效——行内错误会列出需要修复的内容。在校验通过之前不会写入任何数据,因此输入到一半的编辑绝不会破坏一个正常工作的 DAG。 |
| Save failed | 服务器拒绝了写入(附带错误信息);你的编辑仍保留在屏幕上,可以重试。 |
一次性操作的反馈——触发一次运行、保存资源池、归档 DAG——以角落里的 toast 提示呈现。成功提示会自动消失;错误提示会一直停留,直到你点击它。
Note
由于保存是即时生效的,对线上 DAG 的编辑应视为实时变更:调度的修改会在调度器的下一个 tick 生效。如果想在下次运行前暂存多处编辑,请先暂停该 DAG(在仪表盘上一键完成)。
常见问题¶
控制台需要与调度器分开部署吗?
不需要。UI 内嵌在同一个 Go 二进制文件中,由 cronova serve 与 REST API 一同提供——一个进程,一个端口。
可以不用控制台,直接走 API 吗? 可以——控制台的所有操作都通过同一套 REST API 完成,该 API 在控制台自带的 API 页面和 CLI 参考中都有文档。控制台只是一个客户端,没有任何特权路径。
为什么看不到保存按钮? 本来就没有。请关注 Saved / Saving… 徽标;无效的编辑会保留在本地,直到行内错误被修复。
把控制台暴露在网络上安全吗?
只有在启用认证(-auth)的情况下才安全——最好绑定到 127.0.0.1,并置于带 TLS 的反向代理之后。见部署。
本指南包含的内容¶
| 页面 | 涵盖内容 |
|---|---|
| 仪表盘 | DAG 列表:统计卡片、筛选器、迷你趋势图、暂停/触发操作 |
| DAG 页面 | 单个 DAG 的运行、结构图和设置标签页 |
| 任务编辑器 | 编辑任务:命令构建器、重试、模板变量 |
| 运行与日志 | 运行详情、实时日志流、重试/取消/标记状态 |
| 管理页面 | 资源池、变量与连接、审计日志、API 令牌 |
刚接触 cronova?先在教程中构建你的第一个工作流,然后回到这里深入掌握 UI。控制台底层编辑的完整 DAG 规范见 DAG 参考。