内容
<div align="center">
# 后端平台
### 你的编码代理构建它。 后端平台让它运行。
一个自主的后端平台:PostgreSQL,REST API,身份验证,存储,实时功能和函数,由MCP上的编码代理驱动。 每次更改都经过计划,验证和可逆转。
<br/>
[](LICENSE)
[](packages/)
[](https://github.com/backenly/backenly/stargazers)
[](https://x.com/Backenly)
[](https://www.linkedin.com/company/117034579)
[](https://github.com/backenly/backenly)
**[backenly.com](https://backenly.com)** · [快速开始](https://backenly.com/quickstart) · [客户端库](https://github.com/backenly/backenly-js)
</div>
> 如果后端平台为您节省了时间,存储库中的 ⭐️ 有助于其他构建者找到它。
---
## 这是什么
大多数后端平台为您提供原始功能,并让您负责模式设计,API 连接,RLS 策略,监控和恢复。更新的代理原生后端平台提供原始 SQL,但没有安全网。
后端平台既不这样。您可以通过已经使用的编码代理(Claude Code,Cursor,Codex)通过 MCP 服务器描述要构建的产品。 后端平台派生数据模型,生成端点,编写策略,应用更改,然后**针对运行时进行验证**。 连续自主循环在此之后保持监视,修复漂移,缺失索引,损坏的触发器和 RLS 漏洞。
重要的区别:后端平台不仅*生成*后端资源,还*安全地管理后端更改**。 代理,仪表板或自动化修复程序的每个突变都经过一个类型化的操作内核,并具有干运行,审核和回滚。 故意没有原始 SQL 路径来改变结构。 读取是标准 SQL,您的数据库永远不会被锁定:直接 Postgres 连接字符串和完整的 `pg_dump` 导出是一个命令。
## 它是如何工作的
<div align="center">
<img src=".github/assets/architecture.svg" width="100%" alt="您的编码代理通过 MCP 驱动后端平台。 大脑计划更改,executeAction 控制和验证它,它落在 PostgreSQL 中。 封闭的 MAPE-K 自主循环监视正在运行的后端并通过大脑修复它。" />
</div>
- **意图优先。** LLM 计划从自然语言派生实体,关系和操作。 没有表设计器,没有手写的迁移。
- **一个受控的内核。** 每个突变都流经 `executeAction`,因此代理的数据库模型和数据库本身不能静默地分歧。
- **封闭循环自主性。** 循环通过自身修复可逆转的安全带。 任何风险操作(例如身份验证,外部凭证或破坏性和不可逆转的更改)都需要人类介入。
- **多租户构建。** 每个项目都有自己的 PostgreSQL 模式(`workspace_{projectId}`)。隔离由 Postgres 授权和 RLS 强制执行,而不是应用程序级字符串过滤。
- **PostgREST 数据平面。** 表通过 PostgREST 提供,因此您已经知道的查询语法无需更改。
## 快速开始
需要 Node 20+ 和 Docker(或您自己的 PostgreSQL 14+ 实例)。
```bash
git clone https://github.com/backenly/backenly.git
cd backenly
npm install
cp .env.example .env # 然后设置 OPENAI_API_KEY 和 JWT_SECRET
# PostgreSQL + Redis,匹配 .env.example 中的默认值
docker compose -f docker-compose.dev.yml up -d
npm run db:generate && npm run db:push
npm run dev # 仪表板 :3000 · 运行时 :3001
```
`npm run dev` 同时启动两个进程。 如果您已经运行 PostgreSQL,请跳过 Docker 步骤并将 `DATABASE_URL` 指向它。
两个变量是必需的:
- `JWT_SECRET` 签署每个平台会话。 使用 `openssl rand -hex 32` 为每个部署生成一个。
- `OPENAI_API_KEY` 为规划和自主循环提供支持。
参见 [`.env.example`](.env.example) 获取其余部分。
## 连接编码代理
后端平台旨在通过 MCP 驱动。 将您的代理指向 MCP 服务器:
```bash
npx @backenly/mcp-server init
```
然后描述您想要的内容。 SDK 用于您交付的应用程序:
```js
const backend = new BackenlyClient({ projectId, apiKey })
await backend.auth.signUp({ email, password })
await backend.posts.create({ title: 'Hello' })
await backend.posts.list({ filter: { published: true } })
```
## 存储库布局
| 路径 | 内容 |
|------|------------------|
| `app/` | Next.js 路由:仪表板 UI,平台 API 和公共 `/api/v1/*` 运行时 |
| `lib/ai/` | 大脑:规划,工具循环和 `executeAction`,受控的突变内核 |
| `lib/orchestration/` | 从意图到验证更改的九阶段管道 |
| `lib/autonomy/` | MAPE-K 循环,监视和修复正在运行的后端 |
| `lib/execution/` | 模式写入,迁移和内核下的回滚 |
| `lib/tenant/` | 模式隔离和租户边界 |
| `packages/` | 客户端库:SDK,CLI,MCP 服务器(MIT) |
| `prisma/` | 平台模式:`public` 模式,不是租户数据 |
| `server/` | Express 运行时,为最终用户 API 提供服务 |
[`AGENTS.md`](AGENTS.md) 是更深入的架构指南,适用于在此存储库中工作的编码代理和人员。
## 自托管 vs 云
自托管是免费且完整的。 此存储库是整个平台:运行时,治理和完整的自我修复引擎,而不是剥削的社区版。 您提供服务器,Postgres 和 OpenAI 密钥。
[后端云](https://backenly.com/pricing) 运行相同的代码库,并处理基础设施,备份,升级和自主令牌。 `pg_dump` 在两个方向上移动您的数据。
## 贡献
参见 [CONTRIBUTING.md](CONTRIBUTING.md)。 在打开 PR 之前,运行:
```bash
npm run lint && npm test
```
测试针对真实的 PostgreSQL 实例运行。 数据库从未被模拟,因为模拟导致了生产事件。
## 安全
请不要为安全问题打开公共问题。 参见 [SECURITY.md](SECURITY.md) 获取私有报告路线。
## 许可证
平台在 [Apache License 2.0](LICENSE) 下获得许可。
[`packages/`](packages/) 下的客户端库,SDK,CLI 和 MCP 服务器是 MIT 许可证,因此它们不会对嵌入它们的应用程序施加任何限制。