# @aiaiai-pt/frankctl 中文文档

规范地址：https://npmcn.com/package/%40aiaiai-pt/frankctl/

版本：0\.43\.1
npm 元数据更新时间：2026-11-04T12:27:27.915Z
中文译文更新时间：2026-11-06T15:17:03.320Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aiaiai-pt/frankctl
原文对照：https://npmcn.com/package/%40aiaiai-pt/frankctl/?lang=original
项目主页：https://franksdocs.nomadriver.co/
源码仓库：https://github.com/westeuropeco/frank-low-code

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：827 kB，19 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=18\.0\.0
- 运行依赖：6 个
- 首次发布：2026-07-17T11:26:28.107Z
- 最新版本发布：2026-11-04T12:27:27.713Z
- 近 30 天下载量：2929（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：36（近 12 个月 36 个）

## 中文简介

Frank 低码管道平台的终端第一客户端

## 安装

```sh
npm install @aiaiai-pt/frankctl
```

也可以使用：`pnpm add @aiaiai-pt/frankctl`、`yarn add @aiaiai-pt/frankctl`、`bun add @aiaiai-pt/frankctl`

## README

# 直肠

终端第一个 CLI [Frank 低码管道](https://franksdocs.nomadriver.co/) 平台——可脚写访问源、流、变换、管道、支持数据集和AI援助.

## 安装

```bash
npm install -g @aiaiai-pt/frankctl
frankctl --help
```

需要节点.js QQ 18. 二进制是 `frankctl`。 。 。 .

## 快速启动

```bash
frankctl auth login            # authenticate against your Frank instance
frankctl --api-url https://frank.example.com sources list
frankctl pipelines apply -f pipeline.yaml

# Or render a curated vertical through the same apply path
frankctl templates render cira -o cira.yaml
frankctl pipelines apply -f cira.yaml --dry-run-server --live-ontology
```

完整命令参考: [弗兰克·道克](https://franksdocs.nomadriver.co/) 财务报告和审定财务报表 `frankctl <command> --help`。 。 。 .

## 从源头开发

```bash
npm install
npm run build
npm link
frankctl --help
```

## 范围

-   `frankctl status`
-   `frankctl auth login|logout|status|token`
-   `frankctl config set|get|list`
-   `frankctl templates list|show|render`
-   `frankctl pipelines list|get|validate|apply|export`
-   `frankctl sources list|get|create|update|delete|discover|sync|logs|history`
-   `frankctl sources credentials set|rotate` (仅限故障模式)
-   `frankctl backing-datasets list|get|create|update|delete|sync|entities` (别名: `frankctl bd`· ; `sync --force` 重放不变的数据/规格)
-   `frankctl sources streams list|set|refresh-schema`
-   `frankctl transforms list|get|runs|logs|trigger`
-   `frankctl runs get|wait|cancel`
-   `frankctl patterns list|get|validate-params|register`
-   `frankctl schedules list|get|set|delete|pause|resume|trigger` (来源范围; `pause|resume --note "why"` 将源头状态及其时间表组合在一起)
-   `frankctl sinks list|get|create|update|delete|sync|pause|resume|health|test-connection|update-credential|update-connection`
-   `frankctl datasets list|preview|snapshots`
-   `frankctl ai compose-pipeline|generate-transform|review-sql|fix-ci-failure|suggest|publish-transform`

配置文件 `sources create|update`, (中文(简体) ), `backing-datasets create|update`, (中文(简体) ), `sinks create|update`,以及 `sources streams set` 接受 YAML 或 JSON( 使用 `-` 读取 stdin).

### 信使:托管和订阅(ADL-047)

水槽摄入器件数据以两种模式之一进入卡夫卡和青铜.

-   **主办** (默认)——设备发送到一个端点弗兰克运行,与 弗兰克的问题. `--protocol mqtt` (向我们的经纪人发信; 从配置文件创建, 因为它的主题规则需要一个: `frankctl sinks create -f sink.yaml`)或(或) `--protocol https` (临 时 议 程 摄入 URL; 由旗帜创建, 因为它没有主题规则 .
-   **已订阅** - 弗兰克连接 _关闭_ 提供给提供者和订阅者: `--protocol mqtt`, (中文(简体) ), `amqp_0_9`, (中文(简体) ), `amqp_1`, (中文(简体) ), `grpc` 或者说 `coap`从 旗帜或文件.

```bash
# Subscribed sink from flags. The password never appears as an argument.
export FRANKCTL_SINK_PASSWORD='…'          # or use --password-stdin
frankctl sinks create --mode subscribed --name "Provider Feed" \
  --broker-url wss://broker.example.com/mqtt \
  --topic 'fleet/+/position' --topic 'fleet/+/status' \
  --auth password --username frank --qos 1

# Try the settings before saving them (<=10s probe)
frankctl sinks test-connection --broker-url wss://broker.example.com/mqtt \
  --topic 'fleet/+/position' --auth password --username frank

# ...and afterwards, against what is stored
frankctl sinks test-connection <id>
frankctl sinks health <id>
```

`--kafka-topic` 对订阅的汇是可选的:服务器默认为 `<tenant>.subscribed.<slug>`。 。 。 .

**秘密从不上命令线.** 没有 `--password` 旗帜, 因为一场争吵发生在空壳史上, `ps` 输出和CI日志。 通过 供应商密码通过 `--password-stdin` 或者说 `FRANKCTL_SINK_PASSWORD`,以及 通过 mTLS 键 `--client-key-file` 或者说 `FRANKCTL_SINK_CLIENT_KEY`在 a 中输入 配置文件, 命名一个环境变量而不是写入值 :

```yaml
name: Provider Feed
mode: subscribed
connection:
  broker_url: wss://broker.example.com/mqtt
  topics: ['fleet/+/position']
  auth_mode: password
  tls:
    skip_verify: false     # verification is on by default
credential:
  username: frank
  password_env: PROVIDER_MQTT_PASSWORD   # the NAME, not the password
```

一个字形 `password:` 在档案中拒绝,但有解释 而不是默默无闻的被忽略.

`--tls-skip-verify` 关闭证书校验并打印出警告 : 连接会保持加密, 但是没有检查经纪人的身份 . 偏爱 `--ca-file` 和一个私人CA的经纪人.

旋转证书或更换经纪人:

```bash
frankctl sinks update-credential <id> --username frank --password-stdin < pw.txt
frankctl sinks update-connection <id> --broker-url wss://new.example.com/mqtt \
  --topic 'fleet/+/position' --auth password --username frank
frankctl sinks sync <id>     # both take effect on the next sync
```

**退出代码.** `sinks health <id>` 财务报告和审定财务报表 `sinks test-connection` 退出 `0` 只有在水槽实际起作用时 `state: connected`,用于 测试连接 `ok: true`。任何其他国家出口 `4` (API),包括: `unknown`,一个暂停或永远不动的槽报告: CI 健康门 静静的喂食应该失败 而不是通过。 用法错误退出 `2`。 。 。 .

`frankctl sources sync <id>` 等待准确 `workflow_id` 返回时间 其同步请求, 绝不是源代码的最新状态 。 它的JSON结果现在 运行细节( e)`workflow_id`, (中文(简体) ), `source_id`, (中文(简体) ), `sync_run_id`, (中文(简体) ), `status`,备查 工作流程标识符、行/流计数和出错细节),替换旧的 资料来源摘要/对照。 只有坚持 `completed` 运行成功; 失败, 已取消, 部分并跳过 5 出口 。 超时 4 个出口 `timed_out: true` 和最后准确的观察。 缺少或不匹配的身份无法关闭 . 一个暂时缺失的运行(HTTP 404)在同一个工作流程URL中再次被调查. `--no-wait` 仅返回 `workflow_id`; 草稿仍然准备就绪 在同步开始前.

`frankctl backing-datasets sync <id>` 民意测验准确的证据 当API 广告同步合同v2。 对于一个比较老的API的普通同步,它 回到BackingDataset状态投票,明确报告重播 证据不足. `--force` 更严格:国家综合倡议核查 变异请求前的能力终点并发送零同步 POST 当强制重放是不支持或未发布广告时.

### 宣布适用(`pipelines apply -f`(中文(简体) )

`frankctl pipelines apply -f vertical.yaml` 可提供完整的源 + 管道 + 备份 Dataset 三重从单一多文件 YAML 中生成 跟踪源没有证书值. 医生使用克贝特尔式的信封(`apiVersion: frank.platform/v1`, (中文(简体) ), `kind:`, (中文(简体) ), `metadata.name:`, (中文(简体) ), `spec:`) (中文(简体) ). 按种类分类的CLI类型(资料来源) 管道 – BackingDataset),解决了对UUIDs的交叉道克名称引用, 每个医生都使用 `?if-not-exists=true`。 。 。 . `frankctl pipelines export <id> -o yaml` 将已有的管道绕道返回多功能YAML 备查文件.

证书处理遵循服务器的清晰 `SOURCE_CREDENTIAL_MODE`。 。 。 . 目前可变/碱基 `legacy_inline`: 接受源创建/更新 只写 `credential_values` 并使他们永居其中 `Source.source_config`· ; 读出/导出时保持编辑,并添加证明参考文献 `sources credentials` 没有命令. 永久释放用途 `vault`: 数值与 `sources credentials set|rotate --values-file -`来源 承租人拥有的不透明 `credential_ref`。导出从不返回值 条列内置证书字段,并仅保留 Vault-mode 引用 一个存在。 见 `../docs/guides/cli.md` 详细参考.

具有关系的备份 数据集在 `metadata.dependsOn` 或可用其中之一 `spec.schedule_type` (单位:千美元)`on_materialization` 或者说 `manual`) (中文(简体) ). 图表命令引用。 服务器 自动同步的先决条件来自持续的关系 绘制地图,等待同一弗兰克和本体学租户登记的目标 以当前快照和绘图同步。 之后的上游变化 选择仍然可以匹配同步;未解决的关系使用被绑定的重试. `--wait` 返回 按地形顺序排列的数据集和 需要外部目标已经 `synced`; 缺少依赖性,周期, 和自我优惠关系 在执行前失败.

`Source.spec.streams` 在创建和重新应用时需要状态:已声明的流 由名称创建/标注,而不重置光标、块、计数器或运行 状态。 漏出溪流得到保存,并报告为无管理;明确设置 `is_enabled: false` 以禁用一个。 客户端干燥显示声明, 服务器干运行显示每个流的动作,并导出只配置的流 没有运行状态的宣告。 与 `--wait`,明确声明 只同步其启用的流名, 因此未保存的流不运行 . 对于迁移,明确宣布已知的已过时的已启用流 `is_enabled: false` 如此有计划/直接的源代码同步安全地汇合.

使用 `--dry-run-server --live-ontology` 仅检查 以服务器配置的本体学进行后置数据集映射. 使用 `--wait --json` 以精确的源码、 变形和备份数据集执行 运行关联并释放出一个证据对象. `--wait` 不替换 a 单独的肿瘤实体回读; 报告为肿瘤运行 `skipped` 表示快照已经汇合,没有重放行. REST 批量数据 运行中包括耐用的工作ID和提交/完成的精确计数 肿瘤同步运行; 证书和行有效载荷从未包含.

## 环境

-   `FRANKCTL_API_URL` — Frank API 基础( 默认) `http://localhost:8000`(中文(简体) )
-   `FRANKCTL_KEYCLOAK_URL` — keycloak 碱基( 默认) `http://localhost:8180`(中文(简体) )
-   `FRANKCTL_KEYCLOAK_REALM` —域(默认) `frank`(中文(简体) )
-   `FRANKCTL_CLIENT_ID` ——推翻OAuth客户端ID. 浏览器 PKCE 默认为专用公众 `frank-cli` 客户端; 保留无头密码登录 `frank-low-code`;服务账户登录需要自己的客户端id.
-   `FRANKCTL_CLIENT_SECRET` - 客户秘密(仅服务账户)
-   `FRANKCTL_PROFILE` ——活动配置配置
-   `FRANKCTL_TOKEN` —— 绕行符号存储
-   `FRANKCTL_TENANT_ID=<organization-slug>` - 明确租户范围申请的租户范围 `--tenant <organization-slug>` 对于一个命令 覆盖或持续 `profiles.<name>.tenantId`
-   `FRANKCTL_SINK_PASSWORD` ——订阅汇的提供者密码(`sinks create|update-credential|update-connection|test-connection`; 备选案文 `--password-stdin`
-   `FRANKCTL_SINK_CLIENT_KEY` —— 使用 mTLS 订阅的汇的 PEM 客户端密钥; 替代 `--client-key-file`
-   `PATTERN_WEBHOOK_SECRET` - HMAC-SHA256 签名密钥 `frankctl patterns register` (仅CI;未设置时命令出出6)

浏览器登录将 OAuth 客户端 ID 存储在符号旁边, 并重复使用同样的 客户端用于刷新 。 概况、环境、 `--client-id` 因此超过 仍然有效,无需刷新静默切换回内置默认值.

## 常见问题

### @aiaiai-pt/frankctl 是什么？

Frank 低码管道平台的终端第一客户端

### 如何安装 @aiaiai-pt/frankctl？

在项目目录运行 npm install @aiaiai-pt/frankctl，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 frankctl，可以用 npx frankctl 直接运行。

### @aiaiai-pt/frankctl 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/aiaiai-pt\_\_frankctl 是否存在。

### @aiaiai-pt/frankctl 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @aiaiai-pt/frankctl 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @aiaiai-pt/frankctl 可以商用吗？

@aiaiai-pt/frankctl 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @aiaiai-pt/frankctl 的下载量有多少？

根据 npm 官方下载统计，@aiaiai-pt/frankctl 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,929 次，日均约 98 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aiaiai-pt/frankctl 还在维护吗？

最新版本 0\.43\.1 发布于 2026/11/04（3 天前）；至今共发布 36 个版本，其中过去 12 个月发布了 36 个；首次发布于 2026/07/17。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

