Prisma Composer 是用于部署和管理使用 @prisma/composer 的应用的框架,应用是由 TypeScript 编写并交给 prisma-composer CLI 的类型化声明树。核心原则有两条:代码从不读取运行环境,依赖、配置、凭证和端口都通过 service 节点类型化传入;Composer 不打包也不转换代码,由你自己的打包器构建,框架按确定性步骤组装产物并交给部署目标。
三种节点:Service(compute()),运行中的代码单元;Resource(rawPostgres()、bucket()),有状态的管理依赖;Module(module()),分组边界,不运行自身代码,暴露类型化端口。节点通过端口相连,deps 声明需要什么,expose 声明提供什么,在 Module 的 builder 中通过 provision() 接线,交给 CLI 的根 Module 即 App。端口有类型,编译器会检查每一条连线。
两条通道:来自其他节点的值走 deps 声明、provision() 接线、load() 读取;配置或凭证作为输入 schema 的一个字段,在 provision() 处用字面量、envParam() 或 envSecret() 绑定,通过 input() 读取。凭证字段使用 @prisma/composer/arktype 的 secretString()。envParam 以原始字符串到达;保留端口通过 service.port() 读取。
契约是服务间通信的类型化接口,双方引用同一值,调用以 HTTP RPC 传输。服务键、幂等与重试由框架提供,不应重新实现。构建由你完成:普通服务需指向单个自包含 ESM 文件,部署不携带 node_modules;Next.js 使用 output: 'standalone'。部署配置位于 prisma.config.ts 的 composer 段,仅允许 extensions 与 state。数据库支持 rawPostgres() 与 Prisma ORM 类型化的 postgres(),部署只重放已提交的迁移,不自行创建 schema。部署采用收敛模型,stage 在命令行指定,销毁需明确目标。底层引擎为 alchemy,作为固定版本依赖随 @prisma/composer 提供。更多当前完整文档见 prisma.io/docs。