@enformik/cli

中文文档
1.0.0发布于 2026/11/14MITES Module零依赖近 30 天下载 3177

Enformik CLI用于CI管道和离线工具:网站部署,模块(schema)提议,本地的表单验证和打出客户端生成.

中文使用文档
文档目录9 节
  1. CI 全权证书
  2. 场地部署
  3. Schema(模块)变化
  4. 图标
  5. 退出代码
  6. JSON 输出
  7. 环境变量
  8. 升级到1.0
  9. 警卫

翻译:

用于 CI 管道 财务报告和审定财务报表 离线工具: 发表 网站 你建造,发送 应用程序模块(schema) 用于管理员审批的更改,验证本地显示并生成一个打入的客户端。 它没有运行时间依赖关系(Node.js ~ 20).

npx @enformik/cli --help
# or install it permanently:
npm install -g @enformik/cli   # command: enformik

在自己的机器上与AI代理合作(开发一个模块,查看应用程序的结构,发布到一个开发站点)通过 远程 MCP 服务器 https://mcp.enformik.com/mcp:您将您的AI客户端连接到它,并在控制台上批准. CLI没有个人签注,也没有在你的机器上存储证书.

CI 全权证书

按先后次序排列:

  1. CI连接(建议,没有存储的秘密). 在控制台为寄存器创建 CI 连接( 您的应用程序 ) CI 连接)和设置 ENFORMIK_CI_RULE 其编号。 CLI从CI提供商那里取取该工作的OIDC身份,交换地址为: ENFORMIK_OAUTH_URL 最多15分钟的纪念品,只保留在记忆中:
    • GitHub 动作 : 任务需要 permissions: id-token: write (CLI读作: ACTIONS_ID_TOKEN_REQUEST_URL 编号 : ACTIONS_ID_TOKEN_REQUEST_TOKEN) (中文(简体) ).
    • GitLab CI/CD: (英语) 定义 ENFORMIK_ID_TOKEN 下级 id_tokens 与 aud 供听众使用ENFORMIK_AUDIENCE默认值 https://oauth.enformik.com) (中文(简体) ).
    • Bitbucket 管道 : 添加 oidc: true (和观众在 oidc.audiences)到该步骤;CLI读作 BITBUCKET_STEP_OIDC_TOKEN。 。 。 .
    • 需要站点命令 ENFORMIK_ENVIRONMENT (网站环境 id; 如果连接目标为单个网站, 可选); 计划命令需要 ENFORMIK_APP (应用程序 id) 并使用连接的工作空间, 除非 ENFORMIK_WORKSPACE 已经设定.
    • GitLab 工作 / Bitbucket 步骤的身份符可以交换 只有一次: 运行一个 Enformik 命令,每个任务(或步)都需要证书. GitHub 每一次交换都会发布一个新的身份标志.
  2. 现成的CI标志: ENFORMIK_SITE_TOKEN 编号 : ENFORMIK_APP_TOKEN,当工作自己完成交换时(控制台的 CI 连接示例这样做).
  3. 无 OIDC 的 CI 退后( 如 Jenkins) : ENFORMIK_DEPLOY_KEY (网站;控制台:开发者站点-部署密钥,有效期最长为90天)和 ENFORMIK_CLIENT_ID + 键 ENFORMIK_CLIENT_SECRET (应用程序; 控制台: 您的应用程序 ; API 访问; 角色) Schema 升级器,或 Schema 构建器 (第一台安装).

地址: ENFORMIK_CONSOLE_URL (现场命令)和 ENFORMIK_APP_URL (司马令.

# GitHub Actions
permissions: { id-token: write, contents: read }
steps:
  - uses: actions/checkout@v4
  - run: npm ci && npm run build
  - run: npx @enformik/cli@1 site deploy --dir dist
    env:
      ENFORMIK_CI_RULE: <CI connection id>
      ENFORMIK_ENVIRONMENT: <website environment id>
      ENFORMIK_CONSOLE_URL: https://console.enformik.com

enformik whoami 显示哪个证书达到了哪个目标(呼叫类、规则、拥有者、目标、范围、过期;如果有退后证书,它就这么说)。 它在本地解码CI标志 只用于诊断 并打印无秘密.

场地部署

所需经费: 开发者网站 必须在 Enformik 管理控制台中启用您的网站环境.

npx @enformik/cli site deploy --dir dist

诸如是否 index.html 位于根上,是否有隐藏文件(.env, (中文(简体) ), .git文件类型是否允许(可执行, .zip编号 :.iso 没有扩展名的文件被拒绝),是否检查大小/配位 上传前; 错误随文件路径显示。 如果捆绑中的文本文件包含一个秘密, 上传会停止; 您可以通过在其中列出文件来跳过一个错误的提醒 .enformikignore 在工程根中(每行一条路径, dir/ 前缀,无通配符). --expect-host <site-host> 防止部署到错误的地点。 成功后,将打印新版的地址.

Schema(模块)变化

npx @enformik/cli schema validate --manifest module.json        # local, no credentials
npx @enformik/cli schema install --manifest module.json --yes   # first installation (--dry-run: show only)
npx @enformik/cli schema diff --manifest module.json --check    # exit code 2 if there are changes
npx @enformik/cli schema push --manifest module.json --yes

警告: 模块变化影响 所有工作空间 在申请中.

每次更改都交给管理员审批. schema install 财务报告和审定财务报表 schema push 不应用:整个清单作为提案保存,只有在管理员在应用程序(Modules-Protoces)中批准后才生效。 与署长作用的CI联系和API客户不能批准提案。 将角色,访问规则和脚本保留在出货单上;不要把它们分开. 检查结果为 enformik schema status。 。 。 .

schema validate 本地运行,无证书或网络:JSON, module.slug编号 :module.version,而各科管理员将密切审查(adminSections) (中文(简体) ). MCP 工具检查服务器自身的规则( 命名、 结构) schema_validate,或 schema diff 在中央情报局.

图标

命令说明
schema validate在当地验证清单(没有证书,没有网络; --seed-data(中文(简体) )
codegen生成 TypeScript 类型和输入的数据客户端 module.json (单位:千美元)--out, (中文(简体) ), --check(中文(简体) )
schema diff将表与申请表中的表作比较( E)--check(中文(简体) )
schema install发送模块的首次安装供管理员批准( S)--dry-run, (中文(简体) ), --yes; 角色: Schema 构建器)
schema push发送更改供管理员批准( E)--yes 在非互动环境中需要)
schema status显示您上次发送的更改状态: 待决、 应用、 拒绝、 停滞或失败
site deploy公布已建网站(--dir, (中文(简体) ), --no-wait, (中文(简体) ), --timeout, (中文(简体) ), --expect-host(中文(简体) )
site status显示目标站点和现场发布( E)--expect-host(中文(简体) )
whoamiCI诊断:证明达到何种目标(无秘密)

运行 enformik <command> --help 对于命令的使用。 错误的命令( E)enformik sitee --help)是一个错误,而不是一般的帮助.

全球旗帜 : --json, (中文(简体) ), --config, (中文(简体) ), --debug, (中文(简体) ), -h编号 :--help, (中文(简体) ), -v编号 :--version目标旗帜 : --console-url, (中文(简体) ), --app-url, (中文(简体) ), --workspace (覆盖环境变量).

--expect-host <host> 如果主机名称不同, 则停止操作: 在计划命令中, 它就是 应用程序的 主机, 单位 site deploy 财务报告和审定财务报表 site status 页:1 网站的 主持人.

退出代码

代码含义
0成功(包括无操作人员, --dry-run 财务报告和审定财务报表 --no-wait(中文(简体) )
1错误: 输入、 验证、 证书、 拒绝的 CI 令牌交换、 服务器错误、 部署失败、 拒绝确认( 关闭的输入计数为 "否" ) 、 速率限制
2没有错误 : schema diff --check 找到要应用的更改,或 codegen --check 发现文件已过时

JSON 输出

与 --json搭载 仅限 JSON(人可读取的文本去stderr),因此管道可以解析. 错误是 JSON 对象 error (稳定的代码)和 message,例如 unknown_command (带有 hint 以一个已废除的命令发誓, usage, (中文(简体) ), no_credentials, (中文(简体) ), ci_rule_denied, (中文(简体) ), ci_identity_missing, (中文(简体) ), rate_limited (与 status: 429 当服务器发送一个, retryAfterSeconds; CLI 不自行重试429)或 unexpected。一些命令将失败的结果报告为正常结果(拒绝的确认是 applied: false,失败或被拒绝的部署是 deployed: false 与 status, (中文(简体) ), error 或者说 issues); 在所有情况下,退出代码都是 1,所以在退出代码上的分支先读 error 再来.

环境变量

变量用于
ENFORMIK_CI_RULECI connection id: CLI 将工作 OIDC 身份交换为短命符
ENFORMIK_OAUTH_URLEnformik 令牌服务( 默认) https://oauth.enformik.com(中文(简体) )
ENFORMIK_AUDIENCECI 提供者身份标志的观众( 默认 ): ENFORMIK_OAUTH_URL(中文(简体) )
ENFORMIK_ENVIRONMENT网站环境 ID( 有 CI 令牌的站点命令)
ENFORMIK_APP应用程序 id( 有 CI 连接的schema 命令)
ENFORMIK_WORKSPACE工作空间 id( 否则 CI 连接的工作空间, 或是应用程序的默认)
ENFORMIK_SITE_TOKEN, (中文(简体) ), ENFORMIK_APP_TOKEN现成的CI标志(工作本身是交换的)
ENFORMIK_CONSOLE_URL, (中文(简体) ), ENFORMIK_DEPLOY_KEY控制台地址( 站点命令); 后退部署密钥
ENFORMIK_APP_URL, (中文(简体) ), ENFORMIK_CLIENT_ID, (中文(简体) ), ENFORMIK_CLIENT_SECRET应用程序地址( schema 命令); 倒置 API 客户端
ENFORMIK_ID_TOKENGitLab: 任务的身份标志( 定义于 id_tokens(中文(简体) )
ENFORMIK_LANGtr 以土耳其语显示服务器提供的部署消息( 默认: 英语)

优先是旗帜,然后是环境变量. 从旗子或配置文件中不会读出机密 .

.enformik/config.json (承诺存放)只持有项目布局: module.slug, (中文(简体) ), module.manifest, (中文(简体) ), site.dir, (中文(简体) ), codegen.out里面没有地址也没有秘密.

升级到1.0

1.0是一个破解放出:CLI现在只用于CI和离线工具.

  • 删除的命令 : auth login|status|logout, (中文(简体) ), env list|use|current|forget, (中文(简体) ), link, (中文(简体) ), ai init, (中文(简体) ), app check 财务报告和审定财务报表 mcp。使用远程 MCP 服务器(https://mcp.enformik.com/mcp在自己的机器上; app check 这是它的 app_check 工具 和指南 docs_* 工具。 这个 @enformik/mcp 软件包已中止.
  • 删除了: 证书文件( R)~/.config/enformik/credentials.json)和项目装订(.enformik/local.json);你可以删除它们。 全权证书 env use 被撤销.
  • 删除了旗帜和变量 : --env 编号 : ENFORMIK_ENV, (中文(简体) ), --docs-url 编号 : ENFORMIK_DOCS_URL, (中文(简体) ), ENFORMIK_NO_STORED_CREDENTIALS, (中文(简体) ), ENFORMIK_CONFIG_DIR,以及 schema validate --profile 编号 : --offline (认证总是本地现在).
  • 已重命名 : ENFORMIK_WORKSPACE_ID → ENFORMIK_WORKSPACE (旧名打印出警告并被忽略).
  • .enformik/config.json 不再读 consoleUrl, (中文(简体) ), appUrl 或者说 workspaceId (一个要使用的变量的警告名称).
  • 新建: CI 连接( N)ENFORMIK_CI_RULE),现成的CI代币(ENFORMIK_SITE_TOKEN, (中文(简体) ), ENFORMIK_APP_TOKEN(三); whoami 描述 CI 符号 .
  • 部署密钥的有效期为90天;较长的密钥被缩短为90天.

警卫

  • 机密从来不从命令行旗或项目文件读取(a) .enformik/config.json 他们只来自环境变量.
  • CI符号只保存在内存中;它们从未被写入磁盘或打印.
  • 全权证书仅通过HTTPS发送(但 localhost;不遵循重定向.

详细指南:Enformik开发者文档中的"CLI"一页.

版本与发布记录

@enformik/cli 共发布 18 个版本,首次发布于 2026/10/21;过去 12 个月发布了 18 个版本。

版本发布日期距今
1.0.0latest2026/11/14今天
0.10.02026/11/076 天前
0.9.02026/11/076 天前
0.7.22026/11/058 天前
0.7.12026/11/058 天前
0.7.02026/11/058 天前

关于 @enformik/cli 的常见问题

@enformik/cli 是什么?

Enformik CLI用于CI管道和离线工具:网站部署,模块(schema)提议,本地的表单验证和打出客户端生成.

如何安装 @enformik/cli?

在项目目录运行 npm install @enformik/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 enformik,可以用 npx enformik 直接运行。

@enformik/cli 支持 TypeScript 吗?

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

@enformik/cli 支持 ESM 还是 CommonJS?

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

@enformik/cli 需要什么版本的 Node.js?

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

@enformik/cli 可以商用吗?

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

@enformik/cli 的下载量有多少?

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

@enformik/cli 还在维护吗?

最新版本 1.0.0 发布于 2026/11/14(今天);至今共发布 18 个版本,其中过去 12 个月发布了 18 个;首次发布于 2026/10/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。