@clawos-dev/clawd 0.2.454 → 0.2.455
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-builder-plugin/mcp-server.cjs +12 -5
- package/dist/cli.cjs +1119 -899
- package/dist/deploy-kit/scripts/new-extension.sh +25 -0
- package/dist/deploy-kit/scripts/publish.sh +92 -16
- package/dist/deploy-kit/scripts/publish.spec.ts +138 -1
- package/dist/deploy-kit/scripts/verify.sh +16 -5
- package/dist/persona-defaults/persona-app-builder/.mcp.json +7 -10
- package/dist/persona-defaults/persona-app-builder/CLAUDE.md +17 -10
- package/dist/persona-defaults/persona-app-builder/extension-kit/config.env +28 -22
- package/dist/persona-defaults/persona-app-builder/extension-kit/contract/s.yaml.domain.tmpl +19 -0
- package/dist/persona-defaults/persona-app-builder/extension-kit/contract/s.yaml.tmpl +4 -16
- package/dist/persona-defaults/persona-app-builder/extension-kit/examples/nestjs-react/server/.env.example +7 -6
- package/dist/secrets/README.md +29 -0
- package/dist/secrets/supabase.env +16 -0
- package/package.json +1 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# `src/secrets/` —— 随 OTA 下发的共享凭据表
|
|
2
|
+
|
|
3
|
+
这里的每个 `<name>.env` 是一条**命名凭据**的值,`name` 对齐环境清单
|
|
4
|
+
(`EnvironmentManifest.secrets[].name`)。daemon 在 spawn 时把它们合成一张
|
|
5
|
+
`Record<envName, value>`,只交给**真正用它的那个子进程**(MCP server / deploy-kit 发布脚本),
|
|
6
|
+
agent 主进程 env 一条都不放。读法与合并顺序见 `../deploy/secret-table.ts`。
|
|
7
|
+
|
|
8
|
+
## 为什么单独一个目录,而不是继续写在 persona bundle 里
|
|
9
|
+
|
|
10
|
+
原先 supabase 的 url / anon / service-role 是**明文 CLI 参数**硬写在
|
|
11
|
+
`persona-app-builder/.mcp.json` 里的。那个文件在 persona 目录下,agent 一个 `Read` 就看得见
|
|
12
|
+
——等于每次会话都把 key 摊给模型。挪到这里之后:
|
|
13
|
+
|
|
14
|
+
- persona 目录(agent 的 cwd 及其上级)里没有任何凭据值;
|
|
15
|
+
- 「哪些 key 随 OTA 下发」在**目录层面就是可数的**——将来做收敛(见
|
|
16
|
+
`doc/glossary/persona-cloud.md` 的「随 OTA 下发的凭据 = 公开凭据」)时,要删的就是这个目录。
|
|
17
|
+
|
|
18
|
+
## 信任层级:这里的每一把 key 都等于公开
|
|
19
|
+
|
|
20
|
+
本目录随 npm 包 ship 给所有用户,跟 `deploy-kit/.secrets/aliyun.env` 同级。判断风险时按
|
|
21
|
+
「这把 key 落在所有用户手上」算。把 service-role key 换成受限 role 的收敛方向记在 glossary,
|
|
22
|
+
不在 M1b 范围。
|
|
23
|
+
|
|
24
|
+
## 本机覆盖
|
|
25
|
+
|
|
26
|
+
`~/.clawd/secrets/<name>.env` 覆盖同名条目(逐个 env 变量覆盖,不是整份替换)。用途:
|
|
27
|
+
部署者用自己的 supabase 实例、或轮换出新 key 又不想等 OTA。该目录不随 OTA 覆盖。
|
|
28
|
+
|
|
29
|
+
云上没有这两个文件——gateway 起 Pod 时把同一张表经容器 env 交进来,走同一个交付点。
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# supabase —— 阿里云托管 supabase 实例(公网 endpoint 121.196.249.178:80,
|
|
2
|
+
# 项目 ra-ae0i57kef06s6ix / clawd-app-builder,杭州可用区J)。
|
|
3
|
+
# 消费方两处,都经 daemon 的凭据表交付、都不落 persona 目录:
|
|
4
|
+
# - supabase MCP server(persona-app-builder/.mcp.json 的 ${...} 占位)
|
|
5
|
+
# —— @aliyun-rds/supabase-mcp-server 的 commander option 默认值就读这三个名字,
|
|
6
|
+
# 所以不再传 --supabase-* CLI 参数(参数会出现在 ps 输出里)。
|
|
7
|
+
# - deploy-kit 的 publish.sh / new-extension.sh(渲染进 s.yaml 的 environmentVariables
|
|
8
|
+
# 与项目 server/.env)—— 那两处历史上叫 SUPABASE_KEY,值同 anon。
|
|
9
|
+
#
|
|
10
|
+
# **不放 JWT 签发密钥**:它能自签任意 role / 任意 user 的 token(含 service_role),
|
|
11
|
+
# 下发出去等于把 anon/service key 的轮换能力一起交出去;而 MCP server 里它唯一的用处是
|
|
12
|
+
# verify_jwt_secret 这个自检工具报个 found/preview。摘掉零功能损失。
|
|
13
|
+
SUPABASE_URL=http://121.196.249.178:80
|
|
14
|
+
SUPABASE_ANON_KEY=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJvbGUiOiJhbm9uIiwiaWF0IjoxNzgzMzEwODU1LCJleHAiOjEzMjkzOTUwODU1fQ.sHLZH8q2SGWYbNPEFOzTFlQEtjVK3z1DlEqoU_5Uyyg
|
|
15
|
+
SUPABASE_SERVICE_ROLE_KEY=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJvbGUiOiJzZXJ2aWNlX3JvbGUiLCJpYXQiOjE3ODMzMTA4NTUsImV4cCI6MTMyOTM5NTA4NTV9.MdlymSh0DaJdiOVRmM3QnukUDtkOf_Eljh8_fpdLi8Q
|
|
16
|
+
SUPABASE_KEY=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJvbGUiOiJhbm9uIiwiaWF0IjoxNzgzMzEwODU1LCJleHAiOjEzMjkzOTUwODU1fQ.sHLZH8q2SGWYbNPEFOzTFlQEtjVK3z1DlEqoU_5Uyyg
|