@defrex/autobuild-hosted-store-service
可选主机自动构建服务由远程构建 Store 和
全票源 HTTP 协议 @defrex/autobuild-postgres-store; 数据
协议服务器住在这里, 而客户端的一半, 电线计划, 和符号
装有薄荷的船 @defrex/autobuild 核心软件包。 Next.js 应用程序
住在这个包裹里 app/ 树:它挂载这些机器协议
不变,并服务 饼干认证操作仪表板在同一
源代码. server.ts 此包中仍为已命名的赤本
非下一个主机的机器服务入口.
全面部署
使用软件包 deployment/package.json 财务报告和审定财务报表 deployment/vercel.json 作为
小数 Git 仓库, 用 Bun 安装, 输入锁定文件, 并导入到
韦克塞尔。 模板明确标出此服务及其所需的核心
对等到同一释放。 软件包构建命令阶段 完整的应用程序, 迁移
Postgres,然后创建 Next.js. 不需要源检出或补丁 .
跟着 自主办指南 确切的模板,
环境、检查和升级程序。 它在这个包裹中飞来飞去; 自我接待
不支持和买方的谨慎。 仅存储
模式是默认:没有可选的调度器, /api/dispatch 返回时
503个,“为这一部署在其他地方部署”,没有提供克龙.
项目证书不透明 abp_1_<id>_<secret> 无记名值绑定在一个
已注册的正态寄存器 。 服务只储存一份SHA-256摘要
随机秘密,加上项目,创建者,创建时间,最后使用,过期和
撤销元数据。 它检查证书状况和项目登记
读取单个数据库中的每个请求, 没有正验证缓存
在请求之间。 最后使用最多为每60秒一次,并有线索
实际使用时间最多为60秒; 相互竞争的服务实例共享数据库
断取. 已经在飞行中的认证在撤销时可能完成 .
存储器存在读取仅在一个 HTTP 引用中重复使用; 事件
读取和变异锁保持新鲜。 撤销对下一个请求生效而不影响
其他全权证书。 收到不明、过期或被吊销的证书 401 auth· ;
收到已删除的项目 403 auth 与 project not registered。 。 。 .
部署所有者在本地运行这些命令, 并访问数据库 :
ab-hosted-store credentials issue https://github.com/acme/app --user [email protected]
ab-hosted-store credentials list https://github.com/acme/app
ab-hosted-store credentials revoke https://github.com/acme/app --id ID --user [email protected]
发布此密钥一次; 列表仅包含元数据 。 可选发行
接受 --ttl-seconds N 或者说 --expires-at ISO-8601对于行政/非互动印发,将返回的符号设定为:
AB_TOKEN. 互动项目登入使用 ab connect <service-url>· ;
它能把证书保存在寄存处之外 并且没有秘密 上一个 AB_TOKEN 价值和价值 mint operator 编号 : mint build 为:
已退休: 服务回复到证书格式已改变并点数
改为 credentials issue。所支持的旧协议形状仍然与新的
证书; 协议兼容性不会恢复已退休的认证 .
mint admin --ttl-seconds N 创建明确的版本, 归属所有者
碎玻璃证书。 它可以跨越项目界限. 仅保留所有者 :
从不给,或 AB_STORE_SECRET 给调度员或建筑代理人.
见 远程存储权限, (中文(简体) ), 入场券 财务报告和审定财务报表 运营者授权。 。 。 .
网络/自动变量
BETTER_AUTH_SECRET: 单独 32+ 字符高通会话秘密.BETTER_AUTH_URL:确切的公开来源(http://localhost:3000(当地).GITHUB_CLIENT_ID, (中文(简体) ),GITHUB_CLIENT_SECRET: 仅服务器 OAuth 应用程序值.AB_WEB_AUTH_PROVIDERS=github: 启用提供者设置 .AB_WEB_SUPER_USER_EMAILS:逗号分隔,大小写不敏感超级用户电子邮件列表.AB_WEB_REPOSITORIES(折旧):可选每数据库导入一次 正常寄存器来源 。 持久登记册在 导入; 编辑和重新启动从未复活已删除的工程.AB_WEB_MCP_RESOURCE(可选): MCP 服务器的保护资源 将符号绑定为; 默认为<BETTER_AUTH_URL>/mcp见 自动托管指南的变量。 。 。 .
删除电子邮件会屏蔽其下一个网关请求, 即使其数据库支持
语句尚未过期。 旋转 BETTER_AUTH_SECRET 结束每个浏览器
届会. AB_STORE_SECRETGitHub的客户端秘密 PostgreSQL/blob证书,
机器代号,和 OAuth 账户代号是只使用服务器的,决不能使用
NEXT_PUBLIC_ 名称.
在另一个能装箱的主机, bun run dev 或者说 bun run start 从此
软件包目录为完整服务
应用. bun run hosted-store 仅服务机器路线.
主机调度器
发件内核不属于此包. 认证的
GET /api/dispatch 结束点及其部署时的站点在单独的
@defrex/autobuild-hosted-dispatcher
软件包; 部署选择通过安装并安装其
路径,而且只有主机状态的部署从未尝试过调度勾选.
随着调度器的安装, ab-hosted-service-build 收拾宾客
分发归档 。 它传送归档和选定的提供者插件
输入 /api/dispatch。调度器 README 声明插件选择规则.
见 自主办指南 页:1
时间表、功能持续时间和耗尽.
Sandbox SDK 认证了内部部署的 OIDC 身份
Vercel 函数,所以不 VERCEL_TOKEN 属于主机部署
方式; 查看调度包的 README 环境
变量和证书处理.
已连接的项目
在部署前从被绑定的释放中移出 PostgreSQL(bun run postgres:migrate) (中文(简体) ). 该服务保持独立、持久的项目登记册;
现有的构建或售票数据不登记项目。 一个管理员
使用部署数据库证书管理,不重新部署:
ab-hosted-store projects list
ab-hosted-store projects add https://github.com/owner/project --user [email protected]
ab-hosted-store projects remove https://github.com/owner/project --user [email protected]
从源检出, 替换 bun packages/hosted-store-service/src/bin.ts
页:1 ab-hosted-store配置 AB_POSTGRES_URL 或者说 DATABASE_URL 在那个
进程。 数据库拥有补助金管理; --user 被宣布为审计
归属,不是经过验证的登录 。 普通工程/仓库令牌无法管理
登记。 每个条目记录归正源 URL,添加时间,
和增加身份。 SSH git 拼写规范化为 HTTPS; 本地路径和
拒绝带有证书的 HTTPS URL 。 复制增加了保存元数据;
删除是一元化的,并重新添加记录新的添加.
超级用户可以操作每个已注册的项目. 组织成员可以 仅运作分配给各自组织的现行项目;未分配遗产 只有超级用户才能看到项目。 成员由正式成员授予 电子邮件,包括首次登录前的电子邮件,并在每次请求中重新检查。 仪表盘, MCP 发现和呼叫,以及每个操作员 API 路由查询当前 登记。 从所有这些表面隐藏一个工程以及随后的 - 建筑、活动、文物和门票, 并且重新登记可以恢复访问。 已经开始的工作没有取消 . 机器证书与一个注册项目挂钩;立即删除 拒绝其证书而不删除历史.
直接链接到 /?repo=<URL-encoded normalized origin>。页面选择
当请求的原产地丢失或被移除时,第一个登记来源,以及
空登记册显示没有项目数据或控制 。 登记册出错未能结案;
数据库失败后环境不会倒退.
AB_WEB_REPOSITORIES 已贬值。 非空 CSV 完全导入一次
在第一个登记册初始化时,
与演员 system:AB_WEB_REPOSITORIES。导入和持久标记承诺
在解剖学上,同时开始。 没有的变量不消耗
标记。 以后重新启动或编辑到变量中从未重新添加已删除的工程;
使用所有者命令进行后续管理.
主机调度员查询每个授权的当前注册情况
引证. 与 AB_DISPATCHER_REPOSITORIES 未设置, 它服务所有注册
项目; 明确清单维护其顺序,并与当前
登记。 空登记册是成功的零项目引用.
该服务公布已知的虚假放置时间 CRON_SECRET 是未设或空白的,
不需要调度人员来源。 启用时, 它会发布持久发送
从这一选择中插入,包括:
不包括的项目。 授权项目读取前同步同一事实
回答;不需要账户秘密。 见
放置协议。 。 。 .
托管的入场券范围为证书注册项目. 生命周期
源自该项目的有效配置
跟踪器将连接保留在调度器中并接收源反馈
从服务票表面。 此服务没有线性后端 .
AB_TICKET_BACKEND 财务报告和审定财务报表 LINEAR_API_KEY 一个启动删除时被忽略
和所有 AB_TICKET_*_STATE 寿命周期变量被删除并被忽略.
部署从解剖角度构建了人口众多的v1机票数据,需要
blob 证书、访问权限和这样做的前缀
拥有者 ab-hosted-store tickets assign-team 命令.
退休人员 AB_WEB_ALLOWED_EMAILS 变量在启动时被拒绝,即使为空.
替换为 AB_WEB_SUPER_USER_EMAILS;审查清单,因为这些身份
是部署维护者。 第一个组织通过
浏览器管理合同, (中文(简体) ),
然后通过电子邮件添加成员,并分配未分配的遗留项目。 单靠超级用户
创建鼠标,设置或清除单一所有者,并指定或移动项目。 拥有者
管理他们的成员。 删除最后一个成员或超级用户的指定
在下次请求时取消人类访问而不重新登录;现有项目
证书在被撤销之前一直有效.
项目秘密加密
设定 AB_PROJECT_SECRETS_KEY 服务配置和部署配置
32个随机字节的编码,用 openssl rand -base64 32。 。 。 .
把它保存在数据库和源控制之外 用部署机密备份.
适配器验证每个写入和项目有秘密时的密钥
以决定。 部署核查员检测到不同的密钥,包括写入
第一次加密写入后为空 。 缺少、错误或错误的密钥
失败写入并关闭非空解析;元数据仍然可以读取。 项目
没有秘密 继续发送没有加密密钥, 即使另一个
计划有秘密 如果添加了秘密, 空快照仍然拒绝交接
自决议通过以来.
密钥从不传递到内核/儿童环境. 轮回不支持.
刷新提供者类型是内部集成; 此发布没有真实
OpenAI 类型或登录端点. 静态秘密使用连接的主人的CLI.