chore: initial commit of ai site platform
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
80
platform/README.md
Normal file
80
platform/README.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# Platform(go-zero)骨架
|
||||
|
||||
Publish(校验蓝图 → 分配 schema → 生成/执行 DDL → 注册元数据)+ 动态 CRUD + JWT。
|
||||
|
||||
## 目录
|
||||
|
||||
```text
|
||||
platform/
|
||||
platform.go
|
||||
docker-compose.yml # 本地 Postgres
|
||||
etc/platform.yaml
|
||||
internal/
|
||||
authx/ # JWT 签发/校验 + Dev 头兜底
|
||||
blueprint/
|
||||
schema/ # Postgres DDL(数值 PK 用 IDENTITY)
|
||||
meta/
|
||||
crud/ # MemoryEngine + PostgresEngine
|
||||
logic/applogic/
|
||||
handler/
|
||||
```
|
||||
|
||||
## 运行(内存 + JWT)
|
||||
|
||||
```bash
|
||||
cd platform
|
||||
go test ./...
|
||||
go run . -f etc/platform.yaml
|
||||
# 另开终端
|
||||
go run ./scripts/smoke.go
|
||||
```
|
||||
|
||||
冒烟会:签发 JWT → publish → create → list → 非法 token 应 401。
|
||||
|
||||
## 运行(Postgres 行级 Engine)
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
改 `etc/platform.yaml`:
|
||||
|
||||
```yaml
|
||||
DataSource: "postgres://platform:platform@127.0.0.1:5432/platform?sslmode=disable"
|
||||
DevAuth: false
|
||||
```
|
||||
|
||||
再启动服务。此时:
|
||||
- publish **真实建 schema/表**
|
||||
- CRUD 走 `PostgresEngine`(参数化 SQL + `tenant_id` 强制条件)
|
||||
|
||||
## JWT
|
||||
|
||||
```http
|
||||
POST /api/v1/auth/token
|
||||
{"tenant_id":1,"user_id":1,"secret":"dev-only-change-me"}
|
||||
|
||||
→ {"access_token":"...","token_type":"Bearer","expires_at":...}
|
||||
```
|
||||
|
||||
业务请求:
|
||||
|
||||
```http
|
||||
Authorization: Bearer <access_token>
|
||||
```
|
||||
|
||||
| 配置 | 行为 |
|
||||
|------|------|
|
||||
| `DevAuth: false` | 必须带合法 JWT |
|
||||
| `DevAuth: true` | 无 JWT 时可用 `X-Tenant-Id` / `X-User-Id`(仅本地) |
|
||||
| 带了错误 Bearer | 一律 401(即使 DevAuth=true) |
|
||||
|
||||
生产请更换 `Auth.AccessSecret` / `IssueSecret`,并关掉 `DevAuth`。
|
||||
|
||||
## 元数据落库
|
||||
|
||||
启用 DataSource 后自动迁移并使用 `platform_meta.tenant_apps`:
|
||||
|
||||
- 存 blueprint / ddl / endpoints / status
|
||||
- 进程重启后仍可按 slug 解析动态 CRUD
|
||||
- 无库时回退内存 `MemoryStore`
|
||||
Reference in New Issue
Block a user