@lark-apaas/coding-miaoda-sandbox-skills 0.1.21 → 0.1.23
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/miaoda/lark-apps-db/SKILL.md +2 -2
- package/miaoda/lark-apps-ops/SKILL.md +2 -1
- package/miaoda/lark-apps-ops/references/lark-apps-export.md +46 -0
- package/miaoda-modern/lark-apps-ops/SKILL.md +2 -1
- package/miaoda-modern/lark-apps-ops/references/lark-apps-export.md +46 -0
- package/package.json +1 -1
|
@@ -178,12 +178,12 @@ CREATE POLICY "修改本人数据" ON <table>
|
|
|
178
178
|
|---|---|
|
|
179
179
|
| 数量 | 新建表默认插 3-6 条(除非用户明确不要);现有表仅用户要求时造数据;要求更多时单表最多 20 条,再多走 `+db-data-import` |
|
|
180
180
|
| 字段一致性 | 页面 / 业务会读的同表字段必须都在 SQL mock 中提供,禁止一半 DB 一半代码拼 |
|
|
181
|
-
| user_id 来源 | 上下文明确 user_id > `env.userId` / `env.user.id` >
|
|
181
|
+
| user_id 来源 | 上下文明确 user_id > `env.userId` / `env.user.id` > 测试用户列表;禁止编造。外发字段(通知/发送/提醒/审批/群发/消息收件人,或传给飞书/邮件/IM/审批服务)禁止用测试用户列表或测试用户 `COALESCE`/默认/兜底;只用登录用户、用户明确 @ 或提供的可达对象。无可达对象时,留空收件人,或把样例状态设为 `pending`/`disabled`/仅展示。 |
|
|
182
182
|
| 图片 URL | 写入数据库的任何图片字段,包括 JSONB 内嵌图片,都按“用户上传图 -> 历史语义匹配图 -> `generate_image`”顺序处理;只有工具失败才用带 seed 的 Picsum 兜底 |
|
|
183
183
|
| 关联 | 外键 / 子查询引用的数据必须已存在;UUID 字段不用手写 |
|
|
184
184
|
| 审计列 | `_created_at` / `_updated_at` 可省略;需要归属时显式写 `_created_by` / `_updated_by` |
|
|
185
185
|
|
|
186
|
-
|
|
186
|
+
测试用户(**仅用于数据库 `user_profile` 展示/筛选样例**):`1847292357012580` 张伟、`1847292986161210` 李明、`1838411738368010` 刘洋、`1847292458018820` 赵丽、`1847286122258458` 孙强、`1846114399229988` John Smith、`1847298549409911` Emma Johnson、`1847291727560708` Michael Brown、`1848568929333380` Robert Wilson、`1847751107397639` Maria Garcia。
|
|
187
187
|
|
|
188
188
|
> ⚠️ 这些是妙搭数字 user_id,**不是飞书 open_id**:禁止传给 `+role-member-add/remove` 的 `--users`(只收 `ou_`)或任何要 open_id 的飞书接口。
|
|
189
189
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lark-apps-ops
|
|
3
|
-
description: "Use when 在妙搭沙箱里用 `lark-cli apps +<cmd>` 操作【当前这个已存在的】妙搭应用:本地开发与部署发布上线(+release
|
|
3
|
+
description: "Use when 在妙搭沙箱里用 `lark-cli apps +<cmd>` 操作【当前这个已存在的】妙搭应用:本地开发与部署发布上线(+release-*)、导出应用源码为 zip(+export)、环境变量管理(+env-*)、线上日志/Trace/监控指标/PV-UV 查询(+log-*/+trace-*/+metric-list/+analytics-list)、运行时可见范围(+access-scope-*)、应用协作者与协作权限设置(+member-*)、AI 与飞书平台能力插件安装/卸载(+plugin-*)、改应用名或描述(+update)、开放 API Key 管理(+openapi-key-*)、运行时缓存调试(+cache-get/+cache-delete/+cache-clear)、妙搭 user_id 与飞书 open_id/union_id/user_id 互转(+user-id-convert);本 skill 也是 apps 命令族的意图路由入口——应用数据库走 lark-apps-db、应用文件存储走 lark-apps-file、角色与权限走 lark-apps-authz。触发词:部署, 上线, 发布, 导出源码, 源码快照, 下载源码, zip, 环境变量, 线上日志, 接口请求量, 错误量, 延迟, CPU, 内存, PV, UV, 访问量, 可见范围, 分享链接, 协作者, 开发权限, 谁能改这个应用, 外部协作, 插件, 改名, API Key, 缓存, cache, 清缓存, 缓存没更新, ID 转换, open_id 转 user_id, +release-, +export, +env-, +access-scope-, +member-, +plugin-, +openapi-key-, +cache-, +user-id-convert. NOT for 新建应用/应用列表/初始化/HTML 发布/会话/自动化等未开放命令(见「能力边界」),以及非 apps 域的飞书操作(走 lark-cli skill)。"
|
|
4
4
|
metadata:
|
|
5
5
|
requires:
|
|
6
6
|
bins: ["lark-cli"]
|
|
@@ -37,6 +37,7 @@ control-by-feature-ab: true
|
|
|
37
37
|
| 本地开发:改代码、调试数据库(仅全栈应用有数据库)、提交推送(源码已在工作区),再走发布链路上线。**执行前必读**,含部署流程和领域规则 | 原生 `git`(提交推送)+ 下方发布链路 | [local-dev](references/lark-apps-local-dev.md) |
|
|
38
38
|
| **部署/上线应用**("部署""上线""推上去并部署""发布到云端");查发布状态/历史 | `+release-create`(部署上线动作)、`+release-get`(轮询发布结果,finished 给 online_url / failed 给 error_logs)、`+release-list` | [release-create](references/lark-apps-release-create.md)、[release-get](references/lark-apps-release-get.md)、[release-list](references/lark-apps-release-list.md) |
|
|
39
39
|
| 管理应用环境变量(查看/设置/删除) | `+env-list`、`+env-set`、`+env-delete` | [env](references/lark-apps-env.md) |
|
|
40
|
+
| 导出应用源码为 zip(要一份源码快照:读代码/审计/归档/静态分析;或取**别人分享给你的**创意应用源码,你对其仓库无权限)。仅取快照、不继续开发 | `+export`(下载 zip,只读;`--app-id` 与 `--meta-token` 恰传其一) | [export](references/lark-apps-export.md) |
|
|
40
41
|
| 查线上日志、Trace、请求数、错误率、延迟、CPU、memory、PV/UV/访问量 | `+log-list`、`+log-get`、`+trace-list`、`+trace-get`、`+metric-list`、`+analytics-list` | [observability](references/lark-apps-observability.md) |
|
|
41
42
|
| 应用数据库:看表/改表、执行 SQL、导入导出、多环境发布、审计、时间点恢复、DB 用量 | `+db-*` 命令族 | **→ [lark-apps-db](../lark-apps-db/SKILL.md)** |
|
|
42
43
|
| 应用文件存储:上传/下载/列出/删除文件、临时分享链接、存储用量 | `+file-*` 命令族 | **→ [lark-apps-file](../lark-apps-file/SKILL.md)** |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# apps +export
|
|
2
|
+
|
|
3
|
+
把妙搭应用的源码打成 zip 下载到本地。运行时命令事实以 `lark-cli apps +export --help` 为准。只读操作。
|
|
4
|
+
|
|
5
|
+
## 何时用
|
|
6
|
+
|
|
7
|
+
只要一份源码快照的场景:读代码、审计、归档、做静态分析、把源码喂给别的工具。
|
|
8
|
+
|
|
9
|
+
**跨应用是它的核心价值**:创意应用的分享链接(`/page/<token>`)指向别人的应用,你对那个仓库没有权限,`git clone` 走不通;`+export` 只要求你对该应用有下载权限。
|
|
10
|
+
|
|
11
|
+
## 不要用它的时候
|
|
12
|
+
|
|
13
|
+
当前应用要继续开发时不用它——当前应用源码通常已在工作区,直接改。`+export` 只给一个 zip:无 git 历史、无远端、无凭证、不拉环境变量,改完发不回去,只适合「拿一份只读快照」。
|
|
14
|
+
|
|
15
|
+
## 导出的是「最后一次提交」,不是沙箱当前状态
|
|
16
|
+
|
|
17
|
+
服务端对远端仓库跑 `git archive`,从不读沙箱文件系统。沙箱里改了文件但没提交或发布,**那些改动不在归档里**。若导出结果看起来"少了刚写的代码",先确认改动是否已提交,而不是重试导出。
|
|
18
|
+
|
|
19
|
+
## 命令骨架
|
|
20
|
+
|
|
21
|
+
- `--app-id` 与 `--meta-token` **恰传其一**:前者是应用 ID(`$app_id`),后者是分享链接 `/page/<token>` 里的 token。两者作为独立字段走 `POST /apps/export`(`app_id` / `meta_token`),服务端按传入字段区分。
|
|
22
|
+
- 两者都只收**裸标识符**。拿到的是整条链接(`.../app/<app_id>` 或 `.../page/<token>`)时只传最后一段——整条 URL 传进来会被本地拦下并提示,不会变成看起来像"应用不存在"的 404。
|
|
23
|
+
- `--output` 可选,相对当前目录;省略时用服务端给的文件名(通常 `<app_id>.zip`)。
|
|
24
|
+
|
|
25
|
+
## 示例
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
lark-cli apps +export --app-id "$app_id" --output ./src.zip
|
|
29
|
+
lark-cli apps +export --app-id "$app_id" # 存成 ./<app_id>.zip
|
|
30
|
+
lark-cli apps +export --meta-token <share-token> # 别人分享给你的应用
|
|
31
|
+
lark-cli apps +export --app-id "$app_id" --dry-run
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 输出契约
|
|
35
|
+
|
|
36
|
+
- 成功时 stdout 是 JSON envelope,含 `output`(落盘的绝对路径)与 `size_bytes`;传了 `--app-id` 时还会回显 `app_id`。
|
|
37
|
+
- 归档以流式写盘,不会整包驻留内存,大仓库也安全。
|
|
38
|
+
- 失败时不会留下半个文件。
|
|
39
|
+
|
|
40
|
+
## 错误处理
|
|
41
|
+
|
|
42
|
+
| 情况 | 怎么办 |
|
|
43
|
+
|---|---|
|
|
44
|
+
| 应用尚未发布(`code 40901 app not published`) | 该应用是产物托管形态(如静态 HTML 应用),导出的是「最新已发布产物」,而它还没有成功发布过版本,此刻没有可导的东西。**先发布应用再重试**——不是 app_id 写错,重试也没用 |
|
|
45
|
+
| 权限不足(403) | 需要该应用的下载权限。**持有分享 token 不等于有权限** |
|
|
46
|
+
| 应用不存在(404) | 核对 `--app-id` / `--meta-token` 传的是不是对应的裸标识符(不是整条 URL) |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lark-apps-ops
|
|
3
|
-
description: "Use when 在妙搭沙箱里用 `lark-cli apps +<cmd>` 操作【当前这个已存在的】妙搭应用:本地开发与部署发布上线(+release
|
|
3
|
+
description: "Use when 在妙搭沙箱里用 `lark-cli apps +<cmd>` 操作【当前这个已存在的】妙搭应用:本地开发与部署发布上线(+release-*)、导出应用源码为 zip(+export)、环境变量管理(+env-*)、线上日志/Trace/监控指标/PV-UV 查询(+log-*/+trace-*/+metric-list/+analytics-list)、运行时可见范围(+access-scope-*)、应用协作者与协作权限设置(+member-*)、AI 与飞书平台能力插件安装/卸载(+plugin-*)、改应用名或描述(+update)、开放 API Key 管理(+openapi-key-*)、运行时缓存调试(+cache-get/+cache-delete/+cache-clear)、妙搭 user_id 与飞书 open_id/union_id/user_id 互转(+user-id-convert);本 skill 也是 apps 命令族的意图路由入口——应用数据库走 lark-apps-db、应用文件存储走 lark-apps-file、角色与权限走 lark-apps-authz。触发词:部署, 上线, 发布, 导出源码, 源码快照, 下载源码, zip, 环境变量, 线上日志, 接口请求量, 错误量, 延迟, CPU, 内存, PV, UV, 访问量, 可见范围, 分享链接, 协作者, 开发权限, 谁能改这个应用, 外部协作, 插件, 改名, API Key, 缓存, cache, 清缓存, 缓存没更新, ID 转换, open_id 转 user_id, +release-, +export, +env-, +access-scope-, +member-, +plugin-, +openapi-key-, +cache-, +user-id-convert. NOT for 新建应用/应用列表/初始化/HTML 发布/会话/自动化等未开放命令(见「能力边界」),以及非 apps 域的飞书操作(走 lark-cli skill)。"
|
|
4
4
|
metadata:
|
|
5
5
|
requires:
|
|
6
6
|
bins: ["lark-cli"]
|
|
@@ -37,6 +37,7 @@ control-by-feature-ab: true
|
|
|
37
37
|
| 本地开发:改代码、调试数据库(仅全栈应用有数据库)、提交推送(源码已在工作区),再走发布链路上线。**执行前必读**,含部署流程和领域规则 | 原生 `git`(提交推送)+ 下方发布链路 | [local-dev](references/lark-apps-local-dev.md) |
|
|
38
38
|
| **部署/上线应用**("部署""上线""推上去并部署""发布到云端");查发布状态/历史 | `+release-create`(部署上线动作)、`+release-get`(轮询发布结果,finished 给 online_url / failed 给 error_logs)、`+release-list` | [release-create](references/lark-apps-release-create.md)、[release-get](references/lark-apps-release-get.md)、[release-list](references/lark-apps-release-list.md) |
|
|
39
39
|
| 管理应用环境变量(查看/设置/删除) | `+env-list`、`+env-set`、`+env-delete` | [env](references/lark-apps-env.md) |
|
|
40
|
+
| 导出应用源码为 zip(要一份源码快照:读代码/审计/归档/静态分析;或取**别人分享给你的**创意应用源码,你对其仓库无权限)。仅取快照、不继续开发 | `+export`(下载 zip,只读;`--app-id` 与 `--meta-token` 恰传其一) | [export](references/lark-apps-export.md) |
|
|
40
41
|
| 查线上日志、Trace、请求数、错误率、延迟、CPU、memory、PV/UV/访问量 | `+log-list`、`+log-get`、`+trace-list`、`+trace-get`、`+metric-list`、`+analytics-list` | [observability](references/lark-apps-observability.md) |
|
|
41
42
|
| 应用数据库:看表/改表、执行 SQL、导入导出、多环境发布、审计、时间点恢复、DB 用量 | `+db-*` 命令族 | **→ [lark-apps-db](../lark-apps-db/SKILL.md)** |
|
|
42
43
|
| 应用文件存储:上传/下载/列出/删除文件、临时分享链接、存储用量 | `+file-*` 命令族 | **→ [lark-apps-file](../lark-apps-file/SKILL.md)** |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# apps +export
|
|
2
|
+
|
|
3
|
+
把妙搭应用的源码打成 zip 下载到本地。运行时命令事实以 `lark-cli apps +export --help` 为准。只读操作。
|
|
4
|
+
|
|
5
|
+
## 何时用
|
|
6
|
+
|
|
7
|
+
只要一份源码快照的场景:读代码、审计、归档、做静态分析、把源码喂给别的工具。
|
|
8
|
+
|
|
9
|
+
**跨应用是它的核心价值**:创意应用的分享链接(`/page/<token>`)指向别人的应用,你对那个仓库没有权限,`git clone` 走不通;`+export` 只要求你对该应用有下载权限。
|
|
10
|
+
|
|
11
|
+
## 不要用它的时候
|
|
12
|
+
|
|
13
|
+
当前应用要继续开发时不用它——当前应用源码通常已在工作区,直接改。`+export` 只给一个 zip:无 git 历史、无远端、无凭证、不拉环境变量,改完发不回去,只适合「拿一份只读快照」。
|
|
14
|
+
|
|
15
|
+
## 导出的是「最后一次提交」,不是沙箱当前状态
|
|
16
|
+
|
|
17
|
+
服务端对远端仓库跑 `git archive`,从不读沙箱文件系统。沙箱里改了文件但没提交或发布,**那些改动不在归档里**。若导出结果看起来"少了刚写的代码",先确认改动是否已提交,而不是重试导出。
|
|
18
|
+
|
|
19
|
+
## 命令骨架
|
|
20
|
+
|
|
21
|
+
- `--app-id` 与 `--meta-token` **恰传其一**:前者是应用 ID(`$app_id`),后者是分享链接 `/page/<token>` 里的 token。两者作为独立字段走 `POST /apps/export`(`app_id` / `meta_token`),服务端按传入字段区分。
|
|
22
|
+
- 两者都只收**裸标识符**。拿到的是整条链接(`.../app/<app_id>` 或 `.../page/<token>`)时只传最后一段——整条 URL 传进来会被本地拦下并提示,不会变成看起来像"应用不存在"的 404。
|
|
23
|
+
- `--output` 可选,相对当前目录;省略时用服务端给的文件名(通常 `<app_id>.zip`)。
|
|
24
|
+
|
|
25
|
+
## 示例
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
lark-cli apps +export --app-id "$app_id" --output ./src.zip
|
|
29
|
+
lark-cli apps +export --app-id "$app_id" # 存成 ./<app_id>.zip
|
|
30
|
+
lark-cli apps +export --meta-token <share-token> # 别人分享给你的应用
|
|
31
|
+
lark-cli apps +export --app-id "$app_id" --dry-run
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 输出契约
|
|
35
|
+
|
|
36
|
+
- 成功时 stdout 是 JSON envelope,含 `output`(落盘的绝对路径)与 `size_bytes`;传了 `--app-id` 时还会回显 `app_id`。
|
|
37
|
+
- 归档以流式写盘,不会整包驻留内存,大仓库也安全。
|
|
38
|
+
- 失败时不会留下半个文件。
|
|
39
|
+
|
|
40
|
+
## 错误处理
|
|
41
|
+
|
|
42
|
+
| 情况 | 怎么办 |
|
|
43
|
+
|---|---|
|
|
44
|
+
| 应用尚未发布(`code 40901 app not published`) | 该应用是产物托管形态(如静态 HTML 应用),导出的是「最新已发布产物」,而它还没有成功发布过版本,此刻没有可导的东西。**先发布应用再重试**——不是 app_id 写错,重试也没用 |
|
|
45
|
+
| 权限不足(403) | 需要该应用的下载权限。**持有分享 token 不等于有权限** |
|
|
46
|
+
| 应用不存在(404) | 核对 `--app-id` / `--meta-token` 传的是不是对应的裸标识符(不是整条 URL) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lark-apaas/coding-miaoda-sandbox-skills",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.23",
|
|
4
4
|
"description": "Miaoda 合并沙箱 skills 包(包含原 miaoda-skills 的 miaoda / miaoda-modern / miaoda-design / shared 四条业务线);发布公网 npm,随沙箱运行时经 update-skills 同步到 .agent/skills/",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|