openxiangda 2.29.2 → 2.30.0
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/documentation/data-authz.md +55 -0
- package/documentation/getting-started.md +7 -7
- package/documentation/manifest.json +3 -3
- package/package.json +24 -22
- package/releases/2.30.0.json +34 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +4 -4
- package/skills/openxiangda-v2/references/data-authz.md +55 -0
- package/skills/openxiangda-v2/references/getting-started.md +7 -7
|
@@ -29,6 +29,61 @@ pnpm openxiangda check
|
|
|
29
29
|
|
|
30
30
|
角色成员、维度授权和平台管理员由平台管理面维护,不属于应用开发 CLI。
|
|
31
31
|
|
|
32
|
+
### 条件唯一键
|
|
33
|
+
|
|
34
|
+
需要“同一编号只能有一条有效主档”时,在模型声明 `uniqueKeys`。平台在环境
|
|
35
|
+
激活时安装约束;普通 CRUD、导入和业务事务共用该约束。应用无需先查重再创建,
|
|
36
|
+
也无需另建锁服务。声明会自动要求平台能力 `data.unique-keys@1.0.0`,旧平台在
|
|
37
|
+
发布前明确报告缺少能力。未声明的模型不增加这一要求。
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
const partners = defineDataModel({
|
|
41
|
+
code: 'partners', name: '往来单位',
|
|
42
|
+
fields: [
|
|
43
|
+
{ code: 'externalId', label: '外部编号', type: 'text.short' },
|
|
44
|
+
{ code: 'name', label: '名称', type: 'text.short' },
|
|
45
|
+
{ code: 'state', label: '状态', type: 'option.single', options: [
|
|
46
|
+
{ value: 'active', label: '有效' }, { value: 'void', label: '作废' },
|
|
47
|
+
] },
|
|
48
|
+
],
|
|
49
|
+
uniqueKeys: [{
|
|
50
|
+
code: 'active-external-id',
|
|
51
|
+
fields: [{ fieldCode: 'externalId', normalizer: 'nfkc-upper-ascii-v1' }],
|
|
52
|
+
when: [{ fieldCode: 'state', operator: 'in', values: ['active'] }],
|
|
53
|
+
}],
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
规则只比较同一租户、应用与环境内的记录。上例中 `ABC` 和 `abc` 视为相同
|
|
58
|
+
编号,只有 `active` 记录参与;切换状态进入比较集合时也执行约束。平台不会猜测
|
|
59
|
+
业务中的有效、作废或软删除语义,条件由应用声明。
|
|
60
|
+
|
|
61
|
+
- 每模型最多 8 条,稳定 `code` 使用最长 20 字符的 lower-kebab-case;每条包含
|
|
62
|
+
1–4 个不重复字段、最多 4 个 AND 条件。
|
|
63
|
+
- 字段支持短文本、UUID、单选和单记录引用;单选/引用比较保存的 `value`,忽略标签。
|
|
64
|
+
- `exact-v1` 原样比较(默认);文本可用 `nfkc-space-v1` 做 NFKC 归一化、Unicode
|
|
65
|
+
空白折叠和首尾修剪,或 `nfkc-upper-ascii-v1` 再将 ASCII 小写转大写。非文本只
|
|
66
|
+
支持 exact;不按操作系统 locale 折叠其他文字大小写。
|
|
67
|
+
- 文本条件是 `empty` / `nonempty`,按 NFKC 空白规则判断;单选条件是 `in` /
|
|
68
|
+
`notIn`,包含 1–16 个已声明选项值。缺失选项不满足 `notIn`。
|
|
69
|
+
- 任一键字段为空或归一化后为空,该行不参加比较。需要每行填写时仍应声明字段
|
|
70
|
+
必填。参与比较的每个字段归一化后最多 256 个 UTF-8 字节。
|
|
71
|
+
|
|
72
|
+
重复写入返回 HTTP 409 `OPENXIANGDA_NATIVE_DATA_RESOURCE_UNIQUE_CONFLICT`,并给出
|
|
73
|
+
`resourceCode`、`ruleCode`;不会泄露其他记录 ID、值或原始 SQL。界面应让用户核实
|
|
74
|
+
输入并复用自己有权访问的记录,不自动重试创建。超长返回 HTTP 422
|
|
75
|
+
`OPENXIANGDA_NATIVE_DATA_RESOURCE_UNIQUE_VALUE_TOO_LONG`。事务中的任何操作失败,
|
|
76
|
+
该事务的记录、事件及回执整体回滚。
|
|
77
|
+
|
|
78
|
+
首次启用会检查历史数据。发现重复或超长时,激活失败且原环境 Head 保持;平台
|
|
79
|
+
不会自动合并、改名或删除数据。已有规则可原样保留或新增规则,修改/移除规则、
|
|
80
|
+
替换其字段类型或删除所用字段需要平台受管迁移。连接开发仍可添加普通字段,但
|
|
81
|
+
规则变化会要求先正式激活测试版本。回滚到旧模型时也应保留已经安装的规则。
|
|
82
|
+
|
|
83
|
+
平台为安装设置有界锁等待与扫描预算,超时不会留下部分约束。归一化依赖数据库
|
|
84
|
+
版本;跨 PostgreSQL 大版本升级由平台安排受管重建,不能由应用绕过规则或重试
|
|
85
|
+
写入来修复。
|
|
86
|
+
|
|
32
87
|
### 授权来源声明
|
|
33
88
|
|
|
34
89
|
应用可以在 `authz` 中声明四类授权来源,让平台从业务数据投影出维度授权、应用角色成员和
|
|
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
|
|
|
68
68
|
以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
pnpm dlx openxiangda@2.
|
|
72
|
-
pnpm dlx openxiangda@2.
|
|
73
|
-
pnpm dlx openxiangda@2.
|
|
74
|
-
pnpm dlx openxiangda@2.
|
|
71
|
+
pnpm dlx openxiangda@2.30.0 skill install --force
|
|
72
|
+
pnpm dlx openxiangda@2.30.0 auth status --base-url <平台地址> --json
|
|
73
|
+
pnpm dlx openxiangda@2.30.0 login --cwd my-app --base-url https://platform.example.com
|
|
74
|
+
pnpm dlx openxiangda@2.30.0 create my-app --base-url https://platform.example.com
|
|
75
75
|
cd my-app
|
|
76
76
|
pnpm openxiangda context --json
|
|
77
77
|
pnpm openxiangda dev
|
|
@@ -174,9 +174,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
174
174
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
175
175
|
|
|
176
176
|
```bash
|
|
177
|
-
pnpm dlx openxiangda@2.
|
|
178
|
-
pnpm dlx openxiangda@2.
|
|
179
|
-
pnpm dlx openxiangda@2.
|
|
177
|
+
pnpm dlx openxiangda@2.30.0 auth status --base-url <平台> --json
|
|
178
|
+
pnpm dlx openxiangda@2.30.0 source resolve <仓库URL> --base-url <平台> --json
|
|
179
|
+
pnpm dlx openxiangda@2.30.0 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "openxiangda.documentation/v1",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.30.0",
|
|
4
4
|
"topics": [
|
|
5
5
|
{
|
|
6
6
|
"id": "getting-started",
|
|
7
7
|
"title": "安装与开始开发",
|
|
8
8
|
"file": "getting-started.md",
|
|
9
|
-
"sha256": "
|
|
9
|
+
"sha256": "53c29676a178d4f9b0e656196cca8b6ac01461677ff9772e1c386fbaf67d2198"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"id": "product-design",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"id": "data-authz",
|
|
73
73
|
"title": "数据查询与权限",
|
|
74
74
|
"file": "data-authz.md",
|
|
75
|
-
"sha256": "
|
|
75
|
+
"sha256": "b35904b721bcd837c3a26cdf91ef9514c82c87bd517c35572b84ee2a90c5a89f"
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"id": "public-access",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openxiangda",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.30.0",
|
|
4
4
|
"description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -60,13 +60,13 @@
|
|
|
60
60
|
"antd-mobile": "5.42.3",
|
|
61
61
|
"dayjs": "1.11.18",
|
|
62
62
|
"docx-preview": "0.3.7",
|
|
63
|
-
"openxiangda-cli": "2.6.
|
|
64
|
-
"openxiangda-contracts": "2.
|
|
65
|
-
"openxiangda-devkit-core": "2.
|
|
63
|
+
"openxiangda-cli": "2.6.1",
|
|
64
|
+
"openxiangda-contracts": "2.27.0",
|
|
65
|
+
"openxiangda-devkit-core": "2.30.0",
|
|
66
66
|
"openxiangda-legacy": "npm:openxiangda@1.0.269",
|
|
67
|
-
"openxiangda-mcp": "2.0.
|
|
68
|
-
"openxiangda-nest": "2.7.
|
|
69
|
-
"openxiangda-skill-kit": "2.3.
|
|
67
|
+
"openxiangda-mcp": "2.0.51",
|
|
68
|
+
"openxiangda-nest": "2.7.4",
|
|
69
|
+
"openxiangda-skill-kit": "2.3.25",
|
|
70
70
|
"xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
@@ -132,35 +132,37 @@
|
|
|
132
132
|
},
|
|
133
133
|
"openxiangdaRelease": {
|
|
134
134
|
"schemaVersion": "openxiangda.release-notes/v1",
|
|
135
|
-
"version": "2.
|
|
135
|
+
"version": "2.30.0",
|
|
136
136
|
"status": "reviewed",
|
|
137
|
-
"title": "OpenXiangda 2.
|
|
138
|
-
"summary": "
|
|
139
|
-
"newFeatures": [
|
|
140
|
-
|
|
141
|
-
"
|
|
142
|
-
"通用 JSON/JSONL 事件和模板摘要绑定使用独立 CLI 契约,不再依赖已退役产品。"
|
|
137
|
+
"title": "OpenXiangda 2.30.0:平台条件唯一键",
|
|
138
|
+
"summary": "模型可声明条件唯一键,统一约束普通 CRUD、导入和业务事务;编译器在发布前检查规则并识别目标平台是否支持。",
|
|
139
|
+
"newFeatures": [
|
|
140
|
+
"模型与数据资源支持有界 uniqueKeys 声明,可选择精确比较、NFKC 空白折叠或 ASCII 大写,并按文本空值或单选集合限定参与记录。",
|
|
141
|
+
"两端编译器、JSON Schema、声明诊断和能力清单使用一致契约,自动要求 data.unique-keys@1.0.0。未声明的模型不增加能力要求。"
|
|
143
142
|
],
|
|
143
|
+
"fixes": [],
|
|
144
144
|
"affectedUsers": [
|
|
145
|
-
"
|
|
145
|
+
"需要跨并发写入保障业务编号或复合字段唯一性的 OpenXiangda 2.0 应用开发者。"
|
|
146
146
|
],
|
|
147
147
|
"upgradeSteps": [
|
|
148
|
-
"更新到 openxiangda@2.
|
|
149
|
-
"
|
|
148
|
+
"更新到 openxiangda@2.30.0 并更新锁文件;在需要唯一性的模型声明 uniqueKeys,使用当前版本的数据与权限文档。",
|
|
149
|
+
"先确认目标平台实际提供 data.unique-keys@1.0.0,再激活测试版本。历史重复或超长数据会明确拒绝激活并保留原环境。",
|
|
150
|
+
"重复写入处理 HTTP 409 和规则标识;长度超限处理 HTTP 422。避免盲目重试创建,事务失败后按原业务状态恢复。"
|
|
150
151
|
],
|
|
151
152
|
"knownLimitations": [
|
|
152
|
-
"
|
|
153
|
-
"
|
|
153
|
+
"每资源最多 8 条、每条 1–4 个键字段和最多 4 个 AND 条件;参与比较字段归一化后最多 256 个 UTF-8 字节。",
|
|
154
|
+
"已有规则的修改、删除和所用字段替换需要平台受管迁移;连接开发不能私自改变规则。",
|
|
155
|
+
"平台升级与 SDK 发行分别验收;npm 发行不代表客户节点已经上线。跨 PostgreSQL 大版本变更须先安排归一化索引的受管重建。"
|
|
154
156
|
],
|
|
155
157
|
"issues": [],
|
|
156
158
|
"compatibility": {
|
|
157
159
|
"node": ">=24",
|
|
158
160
|
"workspaceGenerations": "v2",
|
|
159
|
-
"platform": "
|
|
161
|
+
"platform": "声明规则时要求 data.unique-keys@1.0.0;普通应用沿用现有能力。",
|
|
160
162
|
"v1": "独立 V1 引擎和工作区不受影响。"
|
|
161
163
|
},
|
|
162
|
-
"sha256": "
|
|
163
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.
|
|
164
|
+
"sha256": "cbe1a5766e0cc0d8948d54b6d2129320b5d2fbe1e8f7120874b9f56c774b1fcb",
|
|
165
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.30.0"
|
|
164
166
|
},
|
|
165
167
|
"scripts": {
|
|
166
168
|
"build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.30.0",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.30.0:平台条件唯一键",
|
|
6
|
+
"summary": "模型可声明条件唯一键,统一约束普通 CRUD、导入和业务事务;编译器在发布前检查规则并识别目标平台是否支持。",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"模型与数据资源支持有界 uniqueKeys 声明,可选择精确比较、NFKC 空白折叠或 ASCII 大写,并按文本空值或单选集合限定参与记录。",
|
|
9
|
+
"两端编译器、JSON Schema、声明诊断和能力清单使用一致契约,自动要求 data.unique-keys@1.0.0。未声明的模型不增加能力要求。"
|
|
10
|
+
],
|
|
11
|
+
"fixes": [],
|
|
12
|
+
"affectedUsers": [
|
|
13
|
+
"需要跨并发写入保障业务编号或复合字段唯一性的 OpenXiangda 2.0 应用开发者。"
|
|
14
|
+
],
|
|
15
|
+
"upgradeSteps": [
|
|
16
|
+
"更新到 openxiangda@2.30.0 并更新锁文件;在需要唯一性的模型声明 uniqueKeys,使用当前版本的数据与权限文档。",
|
|
17
|
+
"先确认目标平台实际提供 data.unique-keys@1.0.0,再激活测试版本。历史重复或超长数据会明确拒绝激活并保留原环境。",
|
|
18
|
+
"重复写入处理 HTTP 409 和规则标识;长度超限处理 HTTP 422。避免盲目重试创建,事务失败后按原业务状态恢复。"
|
|
19
|
+
],
|
|
20
|
+
"knownLimitations": [
|
|
21
|
+
"每资源最多 8 条、每条 1–4 个键字段和最多 4 个 AND 条件;参与比较字段归一化后最多 256 个 UTF-8 字节。",
|
|
22
|
+
"已有规则的修改、删除和所用字段替换需要平台受管迁移;连接开发不能私自改变规则。",
|
|
23
|
+
"平台升级与 SDK 发行分别验收;npm 发行不代表客户节点已经上线。跨 PostgreSQL 大版本变更须先安排归一化索引的受管重建。"
|
|
24
|
+
],
|
|
25
|
+
"issues": [],
|
|
26
|
+
"compatibility": {
|
|
27
|
+
"node": ">=24",
|
|
28
|
+
"workspaceGenerations": "v2",
|
|
29
|
+
"platform": "声明规则时要求 data.unique-keys@1.0.0;普通应用沿用现有能力。",
|
|
30
|
+
"v1": "独立 V1 引擎和工作区不受影响。"
|
|
31
|
+
},
|
|
32
|
+
"sha256": "cbe1a5766e0cc0d8948d54b6d2129320b5d2fbe1e8f7120874b9f56c774b1fcb",
|
|
33
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.30.0"
|
|
34
|
+
}
|
package/skills/manifest.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
{
|
|
5
5
|
"name": "openxiangda-v2",
|
|
6
6
|
"description": "使用 OpenXiangda 2.0 从模糊业务想法、已有资料或具体变更出发,通过对话发现模块、完成详细产品设计,由当前 AI Agent 按需用 Image 2.5 等图片能力形成视觉参考,直接实现真实页面并在浏览器修正,再检查和交付应用;维护 1.x 应用时使用对应的 1.x 技能。",
|
|
7
|
-
"sha256": "
|
|
7
|
+
"sha256": "43362f7f5e18dbfbaba0909a8c78d1ee83effa8ffbb1089131b150da408974ad"
|
|
8
8
|
}
|
|
9
9
|
]
|
|
10
10
|
}
|
|
@@ -40,10 +40,10 @@ AI 接到新应用、页面或改版任务时,在同一个 OpenXiangda 工作
|
|
|
40
40
|
未创建工作区时使用本 Skill 随根包发布的精确版本:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
pnpm dlx openxiangda@2.
|
|
44
|
-
pnpm dlx openxiangda@2.
|
|
45
|
-
pnpm dlx openxiangda@2.
|
|
46
|
-
pnpm dlx openxiangda@2.
|
|
43
|
+
pnpm dlx openxiangda@2.30.0 auth status --cwd <应用目录> --base-url <平台地址> --json
|
|
44
|
+
pnpm dlx openxiangda@2.30.0 login --cwd <应用目录> --base-url <平台地址>
|
|
45
|
+
pnpm dlx openxiangda@2.30.0 create <应用目录> --base-url <同一平台地址>
|
|
46
|
+
pnpm dlx openxiangda@2.30.0 skill install --force
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
|
|
@@ -29,6 +29,61 @@ pnpm openxiangda check
|
|
|
29
29
|
|
|
30
30
|
角色成员、维度授权和平台管理员由平台管理面维护,不属于应用开发 CLI。
|
|
31
31
|
|
|
32
|
+
### 条件唯一键
|
|
33
|
+
|
|
34
|
+
需要“同一编号只能有一条有效主档”时,在模型声明 `uniqueKeys`。平台在环境
|
|
35
|
+
激活时安装约束;普通 CRUD、导入和业务事务共用该约束。应用无需先查重再创建,
|
|
36
|
+
也无需另建锁服务。声明会自动要求平台能力 `data.unique-keys@1.0.0`,旧平台在
|
|
37
|
+
发布前明确报告缺少能力。未声明的模型不增加这一要求。
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
const partners = defineDataModel({
|
|
41
|
+
code: 'partners', name: '往来单位',
|
|
42
|
+
fields: [
|
|
43
|
+
{ code: 'externalId', label: '外部编号', type: 'text.short' },
|
|
44
|
+
{ code: 'name', label: '名称', type: 'text.short' },
|
|
45
|
+
{ code: 'state', label: '状态', type: 'option.single', options: [
|
|
46
|
+
{ value: 'active', label: '有效' }, { value: 'void', label: '作废' },
|
|
47
|
+
] },
|
|
48
|
+
],
|
|
49
|
+
uniqueKeys: [{
|
|
50
|
+
code: 'active-external-id',
|
|
51
|
+
fields: [{ fieldCode: 'externalId', normalizer: 'nfkc-upper-ascii-v1' }],
|
|
52
|
+
when: [{ fieldCode: 'state', operator: 'in', values: ['active'] }],
|
|
53
|
+
}],
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
规则只比较同一租户、应用与环境内的记录。上例中 `ABC` 和 `abc` 视为相同
|
|
58
|
+
编号,只有 `active` 记录参与;切换状态进入比较集合时也执行约束。平台不会猜测
|
|
59
|
+
业务中的有效、作废或软删除语义,条件由应用声明。
|
|
60
|
+
|
|
61
|
+
- 每模型最多 8 条,稳定 `code` 使用最长 20 字符的 lower-kebab-case;每条包含
|
|
62
|
+
1–4 个不重复字段、最多 4 个 AND 条件。
|
|
63
|
+
- 字段支持短文本、UUID、单选和单记录引用;单选/引用比较保存的 `value`,忽略标签。
|
|
64
|
+
- `exact-v1` 原样比较(默认);文本可用 `nfkc-space-v1` 做 NFKC 归一化、Unicode
|
|
65
|
+
空白折叠和首尾修剪,或 `nfkc-upper-ascii-v1` 再将 ASCII 小写转大写。非文本只
|
|
66
|
+
支持 exact;不按操作系统 locale 折叠其他文字大小写。
|
|
67
|
+
- 文本条件是 `empty` / `nonempty`,按 NFKC 空白规则判断;单选条件是 `in` /
|
|
68
|
+
`notIn`,包含 1–16 个已声明选项值。缺失选项不满足 `notIn`。
|
|
69
|
+
- 任一键字段为空或归一化后为空,该行不参加比较。需要每行填写时仍应声明字段
|
|
70
|
+
必填。参与比较的每个字段归一化后最多 256 个 UTF-8 字节。
|
|
71
|
+
|
|
72
|
+
重复写入返回 HTTP 409 `OPENXIANGDA_NATIVE_DATA_RESOURCE_UNIQUE_CONFLICT`,并给出
|
|
73
|
+
`resourceCode`、`ruleCode`;不会泄露其他记录 ID、值或原始 SQL。界面应让用户核实
|
|
74
|
+
输入并复用自己有权访问的记录,不自动重试创建。超长返回 HTTP 422
|
|
75
|
+
`OPENXIANGDA_NATIVE_DATA_RESOURCE_UNIQUE_VALUE_TOO_LONG`。事务中的任何操作失败,
|
|
76
|
+
该事务的记录、事件及回执整体回滚。
|
|
77
|
+
|
|
78
|
+
首次启用会检查历史数据。发现重复或超长时,激活失败且原环境 Head 保持;平台
|
|
79
|
+
不会自动合并、改名或删除数据。已有规则可原样保留或新增规则,修改/移除规则、
|
|
80
|
+
替换其字段类型或删除所用字段需要平台受管迁移。连接开发仍可添加普通字段,但
|
|
81
|
+
规则变化会要求先正式激活测试版本。回滚到旧模型时也应保留已经安装的规则。
|
|
82
|
+
|
|
83
|
+
平台为安装设置有界锁等待与扫描预算,超时不会留下部分约束。归一化依赖数据库
|
|
84
|
+
版本;跨 PostgreSQL 大版本升级由平台安排受管重建,不能由应用绕过规则或重试
|
|
85
|
+
写入来修复。
|
|
86
|
+
|
|
32
87
|
### 授权来源声明
|
|
33
88
|
|
|
34
89
|
应用可以在 `authz` 中声明四类授权来源,让平台从业务数据投影出维度授权、应用角色成员和
|
|
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
|
|
|
68
68
|
以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
pnpm dlx openxiangda@2.
|
|
72
|
-
pnpm dlx openxiangda@2.
|
|
73
|
-
pnpm dlx openxiangda@2.
|
|
74
|
-
pnpm dlx openxiangda@2.
|
|
71
|
+
pnpm dlx openxiangda@2.30.0 skill install --force
|
|
72
|
+
pnpm dlx openxiangda@2.30.0 auth status --base-url <平台地址> --json
|
|
73
|
+
pnpm dlx openxiangda@2.30.0 login --cwd my-app --base-url https://platform.example.com
|
|
74
|
+
pnpm dlx openxiangda@2.30.0 create my-app --base-url https://platform.example.com
|
|
75
75
|
cd my-app
|
|
76
76
|
pnpm openxiangda context --json
|
|
77
77
|
pnpm openxiangda dev
|
|
@@ -174,9 +174,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
174
174
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
175
175
|
|
|
176
176
|
```bash
|
|
177
|
-
pnpm dlx openxiangda@2.
|
|
178
|
-
pnpm dlx openxiangda@2.
|
|
179
|
-
pnpm dlx openxiangda@2.
|
|
177
|
+
pnpm dlx openxiangda@2.30.0 auth status --base-url <平台> --json
|
|
178
|
+
pnpm dlx openxiangda@2.30.0 source resolve <仓库URL> --base-url <平台> --json
|
|
179
|
+
pnpm dlx openxiangda@2.30.0 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|