@fluid-app/fluid-cli (英语)
流体商业CLI. 提供认证,配置管理,和一个插件系统,用于扩展特定域的命令.
安装
npm install -g @fluid-app/fluid-cli
报名
fluid signup 在Fluid的公开注册前创建一家公司
登录 :
fluid signup --email [email protected] --first-name Maya --last-name Lee \
--company-name "Acme" --subdomain acme --yes --json
它以服务器存储的形式发送子域名(小写字母,
数字和连字符,最多63个,打印公司的 fluidShop,则
两个 fluid login 台阶下面的标志 它。 第二步就省钱了
在以子域名命名的配置文件下签名( x)--name),所以它从来没有
静静地替换您已有的配置 。 流出电子邮件地址链接到
确认注册; 使用电子邮件编码签名也确认.
它发出一个请求 并且从不重复它: 每一次尝试,失败与否,
数到注册限制(每个IP地址和每个电子邮件),a
失败可能发生在公司被拯救之后。 错误说是哪个情况
应用: SUBDOMAIN_TAKEN, (中文(简体) ), SIGNUP_MAY_EXIST (运行同一命令一次)
更多;一个带去的子域意味着它存在), RATE_LIMITED (与
retryAfter (单位:秒), SIGNUP_FORBIDDEN 或者说 SIGNUP_OUTCOME_UNKNOWN。 。 。 .
一个小时内同一邮件的第二个注册通常不会发送新邮件
电子邮件 无 --yes 它在终点站问, 拒绝当没有
终端或与 --json,用于打印一个对象(status 实值
signed_up 或者说 error) (中文(简体) ).
--agent-access [name] 也要求获得新的
公司批准代理; 命令等待, 然后保存为配置 .
启用时可用 : 自动调试。 。 。 .
认证
# Email MFA flow
fluid login
# API token (avoids shell history exposure)
FLUID_TOKEN=your-token-here fluid login
# Manage profiles
fluid whoami # Show active profile
fluid switch # Switch between profiles
fluid logout # Remove stored authentication
配置文件存储于 ~/.fluid/config.json。 。 。 .
--shop <shop> 签到一个公司acme 或者说 acme.fluid.app) (中文(简体) ). 对于一个
管理员,用发给商店的密码完成登录,也证实
新公司的注册.
没有终点站
fluid login 快速请求电子邮件和代码, 所以是脚本或代理
在两步内没有终端标志:
# 1. Email a code for one company and save the sign-in (prints how to finish)
fluid login --send-code --email [email protected] --shop acme
# 2. Finish with the emailed code from FLUID_LOGIN_CODE
FLUID_LOGIN_CODE=123456 fluid login --code --email [email protected] --yes
# or read it from stdin with --code -
echo 123456 | fluid login --code - --email [email protected] --yes
步骤1的需要 --shop:代码与公司相连,只有这样
代码确认新注册( n)fluid signup 将店铺打印为
fluidShop; API 的注册响应名称 fluid_shop) (中文(简体) ). 步骤2向同一公司发出信号;a --shop 给它
一定和它相符.
代码在30分钟后过期,5个错误代码将其锁定. 步骤1
将服务器的id保存到下面的登录
~/.fluid/pending-logins/ 直到第二步完成; 单靠id不能
签名。 代码为 --code 123456 工作但可见于外壳
历史.
没有终点站(以及 --code -,这需要stdin),步骤2需要
--yes,取代以公司名称命名的配置文件,或 --name <profile>,如果该配置文件在使用代码前被拒绝
已存在。 无论哪种方式,代码都永远不会被用在它无法写的配置文件上.
--json 打印一个 JSON 对象(status 实值 code_sent, (中文(简体) ), signed_in 或者说
error,带有 code (关于错误).
没有终点站, fluid login 一次失败,而不是等待
除非它有一种迹象--token 或者说 FLUID_TOKEN)或运行其中之一
二个步骤--send-code, (中文(简体) ), --code) (中文(简体) ).
弗利德的身份签名公司
Fluid决定每个公司是否通过身份服务签名.
对于这样的公司,电子邮件有登录链接而不是代码. 粘贴
链接在代码提示时,或者在没有终端时,将其交给 --code 同样的
作为代码的方式( 在 FLUID_LOGIN_CODE 或于斯丁语. fluid login 然后打开
您的浏览器可以在一次性服务器上签名并接收结果
http://127.0.0.1:<port>/callback。登录的 URL 也会被打印
与 --json),用于没有浏览器打开的终端.
在此模式下, 没有向 config.json。刷新令牌保存在
操作系统证书存储( MacOS keychain, Windows 证书)
管理器,或Linux上的特勤局),并仅在内存中访问符.
fluid switch 通过证券交易移动公司, fluid whoami 读取
身份会话,以及 fluid logout 撤销会话。 其他公司
和以前一样.
插件
在核心 CLI 旁边安装插件以添加命令 :
| 软件包 | 图标 | 说明 |
|---|---|---|
@fluid-app/fluid-cli-theme-dev | fluid theme * | 主题 Dev 服务器, 推, 拉, 输入 |
@fluid-app/fluid-cli-portal | fluid portal * | 门户应用软件建设、部署、推、拉 |
@fluid-app/fluid-cli-themes | fluid themes * | 主题管理 API 命令 |
@fluid-app/fluid-cli-assets | fluid assets * | 数字资产管理命令 |
@fluid-app/fluid-cli-droplets | fluid droplets * | 滴盘管理命令,包括 install, (中文(简体) ), uninstall 财务报告和审定财务报表 installed |
@fluid-app/fluid-cli-products | fluid products * | 创建已定价目录产品 |
示例
npm install -g @fluid-app/fluid-cli @fluid-app/fluid-cli-theme-dev
fluid theme dev
插件是自动从 :
node_modules/@fluid-app/在当前工作目录中node_modules/@fluid-app/安装 CLI 本身的地方( 全球安装)- 在 pnpm 工作空间( monorepo 开发) 中的兄弟姐妹套件
发现命令
fluid commands # every installed command, one line each
fluid commands domains # only `fluid domains` and its subcommands
fluid commands --json # the full catalog, for agents and doc generators
JSON目录列出了每个命令及其参数、旗帜(以及
父命令它也接受的旗帜,是否更改数据,以及
aPI的终点. writes 实值 true 或者说 false 当插件时
声明或命令确认 --yes,以及 null 当未知.
endpoints 实值 null 直到插件宣布它们:未知,而不是“调用否”
API(英语: 插件声明终点 describeCommand数字 :
import { describeCommand } from "@fluid-app/fluid-cli";
describeCommand(parent.command("status <domain>"), {
endpoints: [{ method: "GET", path: "/api/domains/{id}" }],
writes: false,
});
壳完成
echo 'eval "$(fluid completion bash)"' >> ~/.bashrc
fluid completion zsh > "${fpath[1]}/_fluid"
fluid completion fish > ~/.config/fish/completions/fluid.fish
补全询问每个标签上安装的 CLI, 因此新插件完成
不重排剧本。 它完成命令,化名,旗帜和
具有固定选择的值。 脚本将输入的单词管道到
而不是作为参数,所以输入 --token 从不显示
在进程列表中.
更新
每日一次交互运行开始对 npm 的背景检查
较新的 @fluid-app/fluid-cli,并更新 @fluid-app/fluid-cli-member-site
(Sites插件); 上面没有命令等待 。 当最后一张支票找到时, a
命令完成后, stderr 上的短通知打印。 站点插件的
通知是关于装入的命令的副本,并指定命令名称
更新副本.
一次失败的检查会在第二天重审 。 它从不运行在CI中,当输出被管道接通,或者用于一个
工作空间建设。 设定 FLUID_NO_UPDATE_CHECK=1 (或 NO_UPDATE_NOTIFIER=1(中文(简体) )
把它关掉.
环境变量
| 变量 | 说明 |
|---|---|
FLUID_TOKEN | API 令牌( 可选为 fluid login(中文(简体) ) |
FLUID_LOGIN_CODE | 电子邮件代码读取 fluid login --code |
FLUID_API_BASE | API 基础 URL( 默认 ): https://api.fluid.app(中文(简体) ) |
FLUID_CONFIG_DIR | 覆盖配置目录( 默认 ): ~/.fluid/(中文(简体) ) |
FLUID_IDENTITY_URL | 身份服务来源(默认: FLUID_API_BASE(中文(简体) ) |
FLUID_NO_BROWSER | 在不打开浏览器的情况下打印登录的 URL |
FLUID_NO_UPDATE_CHECK | 关闭每日更新通知 |
发展
对于在此单曲中工作的撰稿人:
pnpm --filter @fluid-app/fluid-cli build
node packages/cli/core/dist/bin/fluid.mjs --help