Claude Code 可以结合 Cohesivity 构建并部署一个全栈候补名单应用:创建临时租户,配置 Postgres 和 Railway 托管,添加仅限服务端使用的注册端点,测试重复写入,再上传构建后的应用。认领项目或进入付费环节前,仍然需要用户批准。
本教程选择候补名单应用,是因为它足够小、方便检查,同时又涵盖数据校验、唯一性、服务端凭据、重试和部署。
配置资源前先定义行为
应用需要:
- 一个电子邮件表单,并清楚显示等待、成功和错误状态;
- 一个负责校验并规范化邮件地址的服务端端点;
- 一张带有邮件地址唯一约束的 Postgres 表;
- 能安全处理重复请求的插入逻辑;
- 仅限服务端使用的后端凭据;
- 可部署的应用和公开健康检查。
它不需要社交登录、实时通信、向量存储或模型 API。配置这些服务只会增加工作量,对当前任务没有帮助。
后端资源配置指南解释了下文使用的控制面与数据面分离方式。
先让 Claude 提供方案
在项目中启动 Claude Code,让它识别框架、包管理器、现有测试配置、仅限服务端的环境变量约定、构建输出和部署命令。官方 Claude Code CLI支持面向规划的权限模式和工具限制,因此在检查期间应禁用外部调用。
方案应明确列出要修改的文件和需要的资源。如果 Claude 提议将 Cohesivity 密钥放入 NEXT_PUBLIC_、VITE_ 或浏览器可读取的变量中,应拒绝该方案。
创建隔离租户
如果存在有效的 .cohesivity 文件,Claude 应复用它。否则可以先预览,再执行初始化:
npx @cohesivity/init --dry-run
npx @cohesivity/init
创建的临时租户有效期为 72 小时。该命令还会提供 Claude 所需的项目上下文。不要把生成的密钥粘贴到聊天、日志或源代码中。
读取并配置 Postgres
调用 Postgres 前,Claude 必须获取最新 offering 页面:
curl -sS -A "ClaudeCode-Waitlist/1.0" \
https://cohesivity.ai/offerings/postgres
获得批准后,Claude 会通过文档约定的管理端点配置 postgres,并使用稳定的幂等键。然后从服务端代码创建 schema:
CREATE TABLE IF NOT EXISTS waitlist_signups (
id BIGSERIAL PRIMARY KEY,
email TEXT NOT NULL UNIQUE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
唯一约束是防止两个请求插入同一个规范化地址的最后一道防线。应用代码仍应处理冲突并返回已有的注册状态,而不是笼统的 500 错误。
添加服务端端点
处理程序应该:
- 解析 JSON,并拒绝缺失或格式错误的地址。
- 按照一项有明确文档的规则去除首尾空白并规范化邮件地址。
- 使用参数化 PostgreSQL 查询和
$1占位符。 - 为本次逻辑注册操作发送一个幂等键。
- 将唯一约束冲突映射为表示记录已存在的成功响应。
- 返回精简的公开结构,不包含内部错误或凭据。
浏览器调用应用自己的端点,只有服务端才能调用 Cohesivity。这样可以避免管理密钥和应用密钥进入客户端 bundle。
测试失败路径
至少运行以下四个用例:
| 用例 | 预期结果 |
|---|---|
| 有效的新邮件地址 | 一条记录和成功响应 |
| 无效的邮件地址 | 校验响应,不调用数据库 |
| 两次使用同一个规范化邮件地址 | 一条记录和稳定的已存在响应 |
| 响应丢失后重试 | 一个逻辑结果,不产生重复行 |
还要在构建后的客户端资源中搜索 coh_man_ 和 coh_app_。单元测试通过并不能证明打包工具没有把密钥放进客户端。
应用从公开候补名单扩展到多用户场景后,可以使用第二位用户后端检查增加跨用户和跨租户测试。
通过 Railway 托管完成配置与部署
Claude 获取 https://cohesivity.ai/offerings/railway-hosting,配置相应 offering,再通过 Cohesivity 的 Railway 部署 API 上传应用。它应该使用返回的 Cohesivity deployment_url 和 logs_url,而不应安装 Railway CLI、连接 GitHub 仓库或索取 Railway 凭据。
等待部署和公网路由均已就绪,然后对公开服务器运行健康检查和一次真实注册。仅有提供商的部署状态,并不能证明路由可以正常访问。
清晰地交付结果
Claude 应报告:
- 公开部署 URL;
- 执行的测试及其结果;
- 创建的资源;
- 租户过期时间;
- 认领项目所需的操作;
- 包含服务端环境配置的文件;
- 用户不保留项目时的清理路径。
下方的提示词覆盖了完整任务,并保留所有审批节点。