跳到主要内容

Colony

Colony

Colony 是托管 Bolt 工作区的可自托管运行时。你提供工作区源码,Colony 负责运行:它路由租户路径、用 @norbital-ai/bolt 编译 checkout、构建并发布发布产物、配置并迁移租户数据库、绑定设施(Postgres、文件、AI、同步传输、身份认证),并承载工作区工作室。开发环境的引导每次启动都会收敛;生产环境运行同一个服务。

Bolt 定义工作区;Colony 托管它
本节之前的内容描述编写 SDK、工作区源码契约与运行时。本节记录运行这一切的宿主。

为什么运行 Colony?

每个 bolt 工作区都需要宿主。Colony 正是平台自身运行的宿主,因此你不必自行拼装托管环节:

  • 单进程 —— 调用无需旁路运行时:Colony 在常驻宿主中以全新 isolated-vm 上下文评估每一次租户调用,调用一结束即释放;只有产物检查使用一次性工作线程,编写构建运行在一次性 KVM 微虚拟机中。开发引导每次启动都会收敛,本地环境始终保持最新。
  • 发布产物 —— 开发引导仅在开发环境启动时编译已配置的本地 checkout。托管环境只通过显式预览或发布操作构建并发布不可变产物;被路由的租户精确提供所选产物。
  • 租户数据库 —— COLONY_MODE 决定租户拓扑:development 始终绑定 PGlite 集群,production 始终绑定按组织隔离的 Neon(每个线上租户一个分支;每个活动预览最多一个自动休眠分支)。COLONY_POSTGRES_URL 只指向控制库 Postgres。
  • 身份认证、团队与计费 —— 包含 Cookie 会话、邮箱 OTP 登录、团队与邀请,以及 Stripe 计费。
  • 运维与更新 —— Colony 直接消费 @norbital-ai/bolt 包,运行时升级以普通包发布的方式落地。在具名卷备份自动化实现之前,备份与恢复仍是运维人员的显式职责。

Colony 与自建宿主对比

同一份工作区源码在两者上都能运行。区别在于由谁负责托管的每个环节:

能力Colony(可自托管)基于 @norbital-ai/bolt 的自建宿主
部署与路由租户矩阵持久化路由元数据;发布构建与 bundle 服务都已内置。路由不拥有工作线程。你需要自行构建、部署并提供工作区,并维护这条流水线。
发布管理每个工作区的不可变发布产物,由显式预览或发布操作构建并直接复用,不会再次构建。你自己的构建、发布与环境管理。
回滚恢复先前的发布产物;部署历史保留当前部署与回滚点。由你设计、测试并执行自己的回滚。
数据库COLONY_MODE 决定租户拓扑:development 绑定 PGlite 集群,production 绑定按组织隔离的 Neon(每个线上租户一个分支;每个活动预览最多一个自动休眠分支),由 Colony 配置并迁移。由你自行配置、迁移、备份并监控 Postgres。
构建每次构建与发布都使用 bolt sync 与 boltPlugin() Vite 插件。构建运行在你自己的 CI 与基础设施上。
身份认证与组织内置——Cookie 会话、邮箱 OTP、团队与邀请。由你构建或集成自己的身份层。
计费内置——一个 Stripe 订阅:基础价格加按用量的计算与 AI 用量,并在 Checkout 授予试用。你自己的计量、开票与收款。
Agent内置——与应用同 ACL 的工作区内 AI 助手。Bolt 提供循环与界面;由你绑定 ai 设施。同一宿主接纳每次循环迭代。
更新与运维Colony 直接消费 @norbital-ai/bolt 包;备份与恢复仍由运维人员管理。由你自己跟踪、测试并应用 bolt 发布。

想要开箱即用的宿主就选 Colony;需要在 bolt 包之上拥有托管层时再自建。

Colony 表面

工作区工作室是一个 host 插件 —— 它的界面随编译后的 Bolt 工作区 shell 提供,只有像 Colony 这样的 host 才会把它暴露出来。Colony 是以下两者的托管宿主: @norbital-ai/bolt (Agent 归 Bolt 所有;Colony 把每次循环调用准入一个一次性工作线程,在同一次调用内恢复设施等待,并计量实际使用的工作线程 CPU):

  • 工作区工作室 —— 用于编辑一个个人工作台、构建确切预览、请求审查与管理组织设置的浏览器 UI( 工作区工作室文档
  • Agent —— Bolt 所有的循环、/agent 界面与对话记录;Colony 接纳每次调用,在其中恢复模型与工具等待,并计量实际使用的工作线程 CPU( Norbius 文档

构建者通过工作区工作室发布—— 预览 与 批准并发布 —— 他们不运行自己的部署流水线。

变更如何上线

  Edit My workbench — source · scripts · skills, no database
        │
        ▼
  Preview — generate/edit DDL → lint · typecheck · health · bundle
            → persistent route metadata + one Neon fork
            → inspection: one-shot worker; invocation: fresh isolate
        │
        ▼
  Request review — every reviewer opens that exact Preview
        │
        ▼
  Approve — apply the reviewed schema plan and fast-forward Live
        │
        ▼
  Rollback (if needed) — restore a prior release artifact from history
  • 编辑 —— 我的工作台中的可变源码
  • 预览 —— 一个确切工作台提交、持久路由元数据与自动休眠的数据库分支;工作线程是一次性的
  • 生产 —— 已部署发布加线上租户数据库
编辑不是应用
选择 预览 会生成可编辑 DDL 并验证,但不会改变生产。只有 批准 会把已审查提交快进到生产。

发布产物

发布产物 是发布动作产生的不可变工作区构建。一次成功的预览或发布会向 Colony\u2019s 产物库发布一份冻结 bundle,以发布 ID 与产物 ID 标识。新的提交或发布会创建新产物;它从不改写旧产物,回滚会重新部署先前的产物而非重放历史。参见 工作区工作室 的 Review 标签、工具栏控件与回滚流程。

一个发布产物包含:

  • server bundle —— guest 入口 bundle.mjs 及其 code/*.mjs 代码图:集合、写入契约、管道、自动化、函数与 Envoy 运行时
  • .norbital/migrations/ —— 宿主可读的清单与经验证的 ESM 代码图,也是宿主读取的权威
  • .norbital/dist/ —— 按摘要寻址的资源:schema、迁移沿革、浏览器资源、服务端资源、锁文件与代码

预览默认只输出增量 DDL。破坏性变更会触发 migration_required:系统打开生成的迁移供审查与编辑,需要再次发布/预览。批准会把经过审查的确切迁移计划应用到生产。

Colony 提供什么

  • 源码存储 —— 租户 Git 仓库中的规范线上源码;每个人的私有草稿是内容寻址的 blob 加控制库指针,产物/对象存储仅保存不可变构建产物
  • 构建编排 —— 开发引导在启动时加载已配置的本地 checkout。托管的预览与发布操作调用工作区锁定版本的 Bolt 工具链和 bolt sync ,在经过验证的临时物化目录中构建并发布不可变产物,完成后删除该目录
  • 发布注册表 —— 控制存储跟踪每个租户环境已部署的 releaseId 及其产物 artifactId ),以及回滚历史与工作区源码快照
  • 租户数据库 —— COLONY_MODE 决定租户拓扑:development 绑定 PGlite 集群,production 绑定按组织隔离的 Neon(每个线上租户一个分支;每个活动预览最多一个自动休眠分支)
  • 同步传输 —— 托管并代理 Bolt’s 的同步路由,让租户应用注册实时查询、接收 SSE apply 帧并推送变更( 同步引擎 )
  • 身份认证与组织 —— Bolt Cookie 会话、邮箱 OTP,以及租户原生的邀请接受与成功页面。邀请 GET 只检查状态;只有已认证的确认才消费凭证,因此邮件扫描器无法代为接受。
  • 计费 —— 一个 Stripe 订阅:基础价格加按用量的计算与 AI 用量,并在 Checkout 授予试用
  • 工作区工作室 —— 源码编辑、预览构建、发布请求与完整租户拓扑的浏览器 UI

Colony 不拥有什么

Colony 不导入 任何 bolt TypeScript 内部实现。它不直接内嵌租户逻辑。集合操作以签名 guest 命令进入 host.invoke guest 分发(collections.write 等),在那里评估策略与 SQL。策略评估、审批门与 SQL 编译始终在 bolt 运行时内进行。

双数据库模型

  • 系统库 —— 组织、路由与发布元数据、计费标识
  • 租户库 —— 每个组织的 Postgres,含集合数据、策略、审批与应用记录

控制存储持有路由与发布状态。身份存在于租户运行时;集合读写通过 bolt 运行时代理进租户库。

订阅

  • 基础价格 —— 通过 Checkout 订阅的一个 Stripe 订阅,首次订阅客户有配置好的试用期
  • 按用量计费 —— 计算与 AI 用量通过 Stripe 计费表(billing meters)计费;部署配置列出计量价格

参见 定价 。