@crvouga/ 嘲笑鸟儿- fleet
本地模拟器。 真正的API合同. 部分 嘲笑鸟。 。 。 .
供应商中立节点.js车队管理. 要求节点.js 22或更新. 安装
@crvouga/mockingbird-fleet 和模拟器软件包中的应用程序;条纹是可选的.
私人 @crvouga/mockingbird-adapter-node 执行是捆绑的,从未单独安装.
现有 @crvouga/mockingbird-service-stripe/fleet 进口仍由同样的API支持.
安装
npm install @crvouga/mockingbird-fleet @crvouga/mockingbird-service-postgres @crvouga/mockingbird-service-redis @crvouga/mockingbird-service-cognito
使用量
import { createInstalledServiceLoader, FleetClient, startFleet } from '@crvouga/mockingbird-fleet'
const fleet = await startFleet({ services: {
database: { target: 'postgres', port: 0 },
cache: { target: 'redis', port: 0 },
identity: { target: 'cognito', port: 0 },
}}, { load: createInstalledServiceLoader({
projectRoot: process.cwd(), services: ['postgres', 'redis', 'cognito'],
}) })
try {
const client = new FleetClient(fleet.manifest.adminBase)
await client.createNamespace('test')
} finally {
await fleet.close()
}
解析器只允许从它们中添加已安装的服务后缀 /server 导出,
相对于明确的消费项目根(包括pnpm symlinks). 从来没有安装过
软件包。 使用不同实例名称 target。习惯 load 仍然支持调用.
mockingbird-fleet serve --config mockingbird.json --ready-json
mockingbird-fleet fleet doctor --config mockingbird.json --json
该套件出口类型为生命周期、客户端、档案、仓库、发现、迁移、, 参与者、连接提供和延长合同。 公开发现省略了证书; 将连接文件写入私有路径。 公共入侵支助是针对提供者的.
一个文件 : mockingbird.yaml
serve --config 使用 JSON 或 YAML 的舰队配置,或 mockingbird.yaml
声明:文件Fleet Cloud适用。 同样的文件然后运行你的机器上的舰队.
version: 1
organization: acme
projects:
web:
fleets:
acme-staging:
services:
stripe: { durability: strict }
db: { target: postgres, protocol: postgres, port: 5432, local: true }
npx mockingbird-fleet serve --config mockingbird.yaml # add --fleet <slug> when it declares several
MOCKINGBIRD_FLEET_URL=https://… MOCKINGBIRD_FLEET_TOKEN=… npx mockingbird-fleet plan
npx mockingbird-fleet apply # --prune also deletes what the file no longer declares
只有舰队云读取的密钥durability, (中文(简体) ), flushIntervalMs, (中文(简体) ), webhookOrigins, (中文(简体) ), local,则a
车队 access 财务报告和审定财务报表 requestsPerMinute)在本地舰队开始前被放弃. plan 财务报告和审定财务报表
apply 带 --file (默认) mockingbird.yaml, (中文(简体) ), --url, (中文(简体) ), --token-env 财务报告和审定财务报表 --json。 。 。 .
API 密码
FleetClient, (中文(简体) ), FleetClientError, (中文(简体) ), FleetClientResponseError, (中文(简体) ), FleetInstrumentation, (中文(简体) ), FleetObservations, (中文(简体) ), FleetRunError, (中文(简体) ), NamespacePool, (中文(简体) ), RepositoryWriter, (中文(简体) ), advertisedHttpBase, (中文(简体) ), archiveCompatibility, (中文(简体) ), archiveProtector, (中文(简体) ), archiveReachability, (中文(简体) ), assertArchiveCompatibility, (中文(简体) ), assertFleetConfig, (中文(简体) ), compactArchive, (中文(简体) ), composeFleetSchema, (中文(简体) ), createFleetIngress, (中文(简体) ), createInstalledServiceLoader, (中文(简体) ), diffArchives, (中文(简体) ), doctorFleet, (中文(简体) ), fileParticipant, (中文(简体) ), filesystemConditionalStore, (中文(简体) ), filesystemOperationJournal, (中文(简体) ), filesystemRepository, (中文(简体) ), fleetCommands, (中文(简体) ), fleetConfigSchema, (中文(简体) ), incrementalArchive, (中文(简体) ), ingressSupport, (中文(简体) ), inspectArchive, (中文(简体) ), launchFleet, (中文(简体) ), listen, (中文(简体) ), materializeArchive, (中文(简体) ), migrateAndVerify, (中文(简体) ), migrateApplicationArchive, (中文(简体) ), migrateArchive, (中文(简体) ), ownedTransport, (中文(简体) ), participantConformance, (中文(简体) ), planRestoreBindings, (中文(简体) ), providerServeOptions, (中文(简体) ), providerServeValues, (中文(简体) ), publishIncremental, (中文(简体) ), readJsonOption, (中文(简体) ), rebaseArchiveNamespace, (中文(简体) ), reconcileOperation, (中文(简体) ), rehearseFleet, (中文(简体) ), renderConnections, (中文(简体) ), replayFleetTrace, (中文(简体) ), resolveServeControls, (中文(简体) ), resolveServeIdBase, (中文(简体) ), resolveServeSettings, (中文(简体) ), runCli, (中文(简体) ), s3ConditionalStore, (中文(简体) ), s3Repository, (中文(简体) ), serve, (中文(简体) ), serveCommand, (中文(简体) ), startFleet, (中文(简体) ), validateArchive, (中文(简体) ), validateFleetConfig, (中文(简体) ), withFleetRun, (中文(简体) ), writeConnections。 。 。 .
mockingbird.yaml 声明: parseDeclaration, (中文(简体) ), checkDeclaration, (中文(简体) ), DeclarationError, (中文(简体) ), isDeclaration, (中文(简体) ), declaredFleets, (中文(简体) ), localFleetConfig, (中文(简体) ), DURABILITY_MODES, (中文(简体) ), ACCESS_MODES, (中文(简体) ), CLOUD_SERVICE_KEYS。 。 。 .
客户运输和私人环境
FleetClient 拒绝后续之前的每个 HTTP 重定向, 包括同源重定向 .
自定义 fetch 适配器必须尊重 redirect: 'manual' 和提供的中止信号;适配器
无法执行证书边界。 重定向错误曝光
只有状态/代码,绝不是位置。 代理错误保留 HTTP 状态为 FleetClientError; 错误
诊断器保持有界机器 type编号 :code 识别符和去掉原始体、信件和摘录.
JSON 产量不合格 FleetClientResponseError 与 code: 'invalid_json'; 空关
回复成功 undefined。请求绝不自动重试突变.
解码响应默认为64 MiB字节限制. maxResponseBytes 客户端或 request
设定明确的限制,包括归档呼叫。 广告长度和流出块总数
选中; 超量注销主体 code: 'response_too_large'. 请求截止日期和
调用器中止信号通过解码一起应用.
renderConnections 接受 {service, field?, fallback?} 测绘. 现有 {service} 条目
仍然返回完整的 URL 。 字段为 url, (中文(简体) ), hostname, (中文(简体) ), port, (中文(简体) ), username, (中文(简体) ), password, (中文(简体) ),
pathname 财务报告和审定财务报表 database (路径没有它的领先斜线)。 IPv6 主机名去掉 URL 括号;
证书和路径是 %-decode 的。 端口使用明确的 URL 端口; 没有服务默认值
被猜测。 缺少组件拒绝, 除非配置一个明确的字符串倒置, 包括
一个空字符串。 缺少协议命名空间 URL, 缺少服务, URL 错误和未知
字段拒绝整个渲染操作。 HTTP 命名空间路径模板仍然可用
构造 HTTP 命名空间 URL 。 只有私人货单上有证明. writeConnections
保留原子0600 JSON/dotenv输出; 绝不将私人输出作为发现或诊断发布.
应用程序归档兼容性
配置 startFleet(..., {archiveCompatibility: {tags: {schema: 'v3', seed: 'baseline-a'}}}) 改为
在每个归档的 SHA-256 受保护元数据中包含应用程序标记,并要求相同的精确度
标记映射,然后恢复任何命名空间或整个环境。 此检查也适用于仓库
康复和康复 rehearseFleet (通过同样的政策)。 编解码器迁移仍然分开;
软件包 semver 绝不意味着应用程序的相容性.
未标记的后遗档案在有政策时拒绝,除非 missing: 'allow' 明确
批准遗留投入。 在没有政策的情况下,仍支持贴有标签和未加标记的档案。 标记是
调用器拥有的非秘密值:最多32个条目,1-64 ASCII 标识字符的密钥和
值为 1–256 个字符,没有控制字符。 不将证书放入标签 .
assertArchiveCompatibility 检查离线档案。 备选的第三项政策论点
archiveCompatibility(input, registry, policy) 在编解码器规划中添加相同的应用程序检查. migrateApplicationArchive 需要一个
明确的源政策,目的地标记和注册的变换回调,运行在克隆上,
并封存和验证新的档案;呼叫者可以使用 migrateAndVerify/存储器出版物
用于排练和出版。 来源始终不变。 期间没有隐性迁移
恢复,不匹配永远不会触发新的重置。 校验和检测腐败; 使用存档
* 保护真实性/机密性,防止敌方能够替换整个档案.
核查
packed.consumer.test.ts 装入此软件包并选择 Postgres、 Redis、 Cognitto 和 SQLite
文物,安装在单体外 然后使用节点开始,发现,命名空间,
进出口这批人 它声称没有Frede和私人的帮助包。 这个
中立的CLI也从消费者项目之外行使,并解决安装的服务
从它的消费根。 运行 bunx turbo run test --filter=@crvouga/mockingbird-fleet 在一次离职中.