CLI 参考
arkflow 二进制是一个单一可执行文件:它从 YAML 配置运行流与作业,并提供用于发现组件注册表的命令。
arkflow [OPTIONS] [COMMAND]
运行引擎
| 选项 | 描述 |
|---|---|
-c, --config <FILE> | YAML 配置文件路径。除发现类子命令外必填。 |
-v, --validate | 校验配置后退出,不启动引擎。 |
--version | 打印版本并退出。 |
# 运行配置中定义的流与作业
./target/release/arkflow --config config.yaml
# 深度校验一份配置:解析、流 id、声明的作业图、
# 重复 id、算子引用以及配置规则
./target/release/arkflow --config config.yaml --validate
--validate 不止于反序列化:它检查流 id 的唯一性,校验每一条声明的作业规格(图结构与算子引用),并运行引擎的配置规则检查。校验失败会打印 Invalid configuration: ... 并以非零状态退出,因此该标志适用于 CI 流水线与准入钩子。
components list
按类别分组列出所有已注册组件。
arkflow components list [--kind KIND] [--format FORMAT]
| 选项 | 描述 |
|---|---|
-k, --kind <KIND> | 按组件类别过滤:input、output、processor、buffer、codec、temporary。 |
-f, --format <FORMAT> | text(默认,对齐列)或 json(机器可读的注册表导出)。 |
$ arkflow components list --kind codec
codec:
json JSON codec for parsing and serializing message payloads
protobuf Protobuf codec using a compiled .proto descriptor
...
json 格式与生成组件清单所用的注册表导出完全相同,因此脚本与文档永远不会和二进制不一致。
components show
打印单个组件的配置 schema。
arkflow components show <KIND> <NAME> [--format FORMAT]
| 参数 | 描述 |
|---|---|
<KIND> | 组件类别(必填)。 |
<NAME> | 已注册组件的类型名(必填)。 |
-f, --format <FORMAT> | text(默认)或 json。 |
$ arkflow components show input kafka
kafka: Kafka input component for consuming messages from Kafka topics
kind: input
config_optional: no
Example:
{ ... pretty-printed config example ... }
Config schema:
{ ... JSON Schema for the component config ... }
未知名称会失败并列出合法备选项,例如 Unknown input type: kafaka. Available input types: file, generate, http, kafka, ...。
schema
打印整个引擎配置的 JSON Schema(draft 2020-12)。把它交给你的编辑器即可获得 YAML 自动补全与悬停文档——参见 IDE 自动补全。
arkflow schema > arkflow.schema.json
退出行为
| 调用方式 | 行为 |
|---|---|
components ...、schema | 打印结果并立即退出;不读取任何配置文件。 |
--validate | 校验配置,记录日志 The config is validated.,随后退出且不启动引擎。 |
--config <FILE>(默认) | 校验配置,随后启动引擎并阻塞直至关闭。 |
缺少 --config 且无子命令 | 错误:missing --config <FILE> (or run a subcommand: components, schema)。 |
arkflow-server
arkflow-server 二进制运行控制面 Hub。它没有命令行标志;全部启动配置来自环境变量,外加用于存储 schema 迁移的单一 migrate 子命令。
启动环境变量
| 环境变量 | 默认值 | 说明 |
|---|---|---|
ARKFLOW_HUB_ADDRESS | 127.0.0.1:8080 | Hub API 监听地址。 |
ARKFLOW_OPERATOR_TOKEN | — | 供人工/管理员访问 API 的 operator token。支持 role|token 凭据格式;参见 Hub 认证。 |
ARKFLOW_NODE_TOKEN | — | Agent 向 Hub 认证使用的共享 token。 |
ARKFLOW_HUB_INSECURE_LOCAL | 关 | 设为 1/true/yes 以放宽校验,仅限本地开发。 |
ARKFLOW_HUB_STORAGE | — | 存储后端描述:SQLite 路径或 PostgreSQL URL。启用 HA 时必须设置。 |
ARKFLOW_HUB_TLS_CERT / ARKFLOW_HUB_TLS_KEY | — | Hub 监听器的 TLS 证书与私钥路径。 |
ARKFLOW_HUB_HA_ENABLED | 关 | 设为 1/true/yes 启用基于租约的 HA。要求设置 ARKFLOW_HUB_STORAGE;多实例 HA 使用 PostgreSQL URL(SQLite 路径仅记录一条仅供开发的警告)。 |
ARKFLOW_HUB_HA_LEASE_TTL_MS | 15000 | 租约 TTL(毫秒);低于 1000 会被拒绝。 |
ARKFLOW_HUB_HA_HOLDER_ID | — | 显式租约持有者身份;缺省时由主机名、PID 与启动时间自动生成。 |
ARKFLOW_HUB_HA_ADVERTISE_URL | — | 带主机的绝对 http(s):// URL,Agent 通过它访问该 Hub 实例(多 Hub 发现)。 |
migrate 子命令
将 Hub 存储数据库从 SQLite 迁移到 PostgreSQL——把单实例 Hub(SQLite)迁移到多实例 HA(PostgreSQL)时走这条路。
arkflow-server migrate --from sqlite:<path> --to postgres://<url>
成功时打印逐表行数报告(<table>: <rows> rows ... migration complete: <n> rows total)并以 0 退出。
| 退出码 | 行为 |
|---|---|
0 | 迁移完成。 |
2 | 用法错误:缺少 --from/--to,或 --from 不以 sqlite: 开头,或 --to 不以 postgres:///postgresql:// 开头。 |
| 非零 | 迁移失败;错误打印到 stderr。 |