openxiangda 2.75.6 → 2.75.9
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/browser/components/workflow/WorkflowDesigner.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowDesigner.js +62 -13
- package/dist/browser/components/workflow/WorkflowDesigner.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowDiagram.d.ts +2 -1
- package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowDiagram.js +2 -2
- package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.d.ts +3 -1
- package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.js +13 -11
- package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts +1 -0
- package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowFlowCanvas.js +24 -11
- package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts +3 -1
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +22 -12
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowPeopleSourceEditor.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowPeopleSourceEditor.js +19 -16
- package/dist/browser/components/workflow/WorkflowPeopleSourceEditor.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowPeopleSourceParametersEditor.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowPeopleSourceParametersEditor.js +9 -3
- package/dist/browser/components/workflow/WorkflowPeopleSourceParametersEditor.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.js +2 -2
- package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.js.map +1 -1
- package/dist/browser/components/workflow/workflow-canvas-editing.d.ts +5 -0
- package/dist/browser/components/workflow/workflow-canvas-editing.d.ts.map +1 -0
- package/dist/browser/components/workflow/workflow-canvas-editing.js +56 -0
- package/dist/browser/components/workflow/workflow-canvas-editing.js.map +1 -0
- package/dist/browser/components/workflow/workflow-people-source-presentation.d.ts.map +1 -1
- package/dist/browser/components/workflow/workflow-people-source-presentation.js +2 -0
- package/dist/browser/components/workflow/workflow-people-source-presentation.js.map +1 -1
- package/dist/browser/styles.css +11 -0
- package/documentation/application-operations.md +2 -1
- package/documentation/getting-started.md +7 -7
- package/documentation/manifest.json +6 -6
- package/documentation/multi-organization.md +5 -2
- package/documentation/reference/mcp.md +134 -0
- package/documentation/workflow-events.md +15 -0
- package/package.json +25 -27
- package/releases/2.75.9.json +33 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +4 -4
- package/skills/openxiangda-v2/references/application-operations.md +2 -1
- package/skills/openxiangda-v2/references/getting-started.md +7 -7
- package/skills/openxiangda-v2/references/mcp.md +134 -0
- package/skills/openxiangda-v2/references/multi-organization.md +5 -2
- package/skills/openxiangda-v2/references/workflow-events.md +15 -0
- package/releases/2.63.0.json +0 -45
- package/releases/2.63.1.json +0 -46
- package/releases/2.66.0.json +0 -29
- package/releases/2.66.1.json +0 -29
- package/releases/2.66.2.json +0 -29
- package/releases/2.67.0.json +0 -33
- package/releases/2.67.1.json +0 -35
- package/releases/2.67.2.json +0 -34
- package/releases/2.68.2.json +0 -33
- package/releases/2.70.0.json +0 -35
- package/releases/2.70.1.json +0 -34
- package/releases/2.75.2.json +0 -34
- package/releases/2.75.4.json +0 -31
- package/releases/2.75.6.json +0 -35
|
@@ -1706,6 +1706,140 @@ MCP 使用项目锁定的根包;在客户端配置下列 stdio 启动参数,
|
|
|
1706
1706
|
"input"
|
|
1707
1707
|
]
|
|
1708
1708
|
},
|
|
1709
|
+
{
|
|
1710
|
+
"type": "object",
|
|
1711
|
+
"additionalProperties": false,
|
|
1712
|
+
"properties": {
|
|
1713
|
+
"operation": {
|
|
1714
|
+
"const": "notifications.configure-dingtalk-card",
|
|
1715
|
+
"description": "配置钉钉互动卡片与可选的三方组织授权;仅使用 Secret 引用"
|
|
1716
|
+
},
|
|
1717
|
+
"environment": {
|
|
1718
|
+
"type": "string",
|
|
1719
|
+
"enum": [
|
|
1720
|
+
"test",
|
|
1721
|
+
"production"
|
|
1722
|
+
]
|
|
1723
|
+
},
|
|
1724
|
+
"input": {
|
|
1725
|
+
"type": "object",
|
|
1726
|
+
"additionalProperties": false,
|
|
1727
|
+
"properties": {
|
|
1728
|
+
"bindingCode": {
|
|
1729
|
+
"type": "string",
|
|
1730
|
+
"minLength": 1,
|
|
1731
|
+
"maxLength": 128
|
|
1732
|
+
},
|
|
1733
|
+
"expectedRevision": {
|
|
1734
|
+
"type": "integer",
|
|
1735
|
+
"minimum": 0,
|
|
1736
|
+
"maximum": 9007199254740991
|
|
1737
|
+
},
|
|
1738
|
+
"status": {
|
|
1739
|
+
"type": "string",
|
|
1740
|
+
"enum": [
|
|
1741
|
+
"active",
|
|
1742
|
+
"paused"
|
|
1743
|
+
]
|
|
1744
|
+
},
|
|
1745
|
+
"config": {
|
|
1746
|
+
"type": "object",
|
|
1747
|
+
"additionalProperties": false,
|
|
1748
|
+
"properties": {
|
|
1749
|
+
"schemaVersion": {
|
|
1750
|
+
"const": "openxiangda.notification.dingtalk-card-channel/v2"
|
|
1751
|
+
},
|
|
1752
|
+
"corpId": {
|
|
1753
|
+
"type": "string",
|
|
1754
|
+
"minLength": 1,
|
|
1755
|
+
"maxLength": 128
|
|
1756
|
+
},
|
|
1757
|
+
"usage": {
|
|
1758
|
+
"const": "ADVANCED"
|
|
1759
|
+
},
|
|
1760
|
+
"authorizationMode": {
|
|
1761
|
+
"const": "THIRD_PARTY_INSTALLATION"
|
|
1762
|
+
},
|
|
1763
|
+
"defaultCardTemplateId": {
|
|
1764
|
+
"type": "string",
|
|
1765
|
+
"minLength": 1,
|
|
1766
|
+
"maxLength": 255
|
|
1767
|
+
},
|
|
1768
|
+
"informationalTemplateParameters": {
|
|
1769
|
+
"type": "object",
|
|
1770
|
+
"additionalProperties": false,
|
|
1771
|
+
"properties": {
|
|
1772
|
+
"content": {
|
|
1773
|
+
"type": "string",
|
|
1774
|
+
"minLength": 1,
|
|
1775
|
+
"maxLength": 64,
|
|
1776
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$"
|
|
1777
|
+
},
|
|
1778
|
+
"link": {
|
|
1779
|
+
"type": "string",
|
|
1780
|
+
"minLength": 1,
|
|
1781
|
+
"maxLength": 64,
|
|
1782
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$"
|
|
1783
|
+
}
|
|
1784
|
+
},
|
|
1785
|
+
"required": [
|
|
1786
|
+
"content",
|
|
1787
|
+
"link"
|
|
1788
|
+
]
|
|
1789
|
+
},
|
|
1790
|
+
"clientIdSecretRef": {
|
|
1791
|
+
"type": "string",
|
|
1792
|
+
"minLength": 1,
|
|
1793
|
+
"maxLength": 128
|
|
1794
|
+
},
|
|
1795
|
+
"clientSecretSecretRef": {
|
|
1796
|
+
"type": "string",
|
|
1797
|
+
"minLength": 1,
|
|
1798
|
+
"maxLength": 128
|
|
1799
|
+
},
|
|
1800
|
+
"robotCode": {
|
|
1801
|
+
"type": "string",
|
|
1802
|
+
"minLength": 1,
|
|
1803
|
+
"maxLength": 255
|
|
1804
|
+
},
|
|
1805
|
+
"callbackMode": {
|
|
1806
|
+
"const": "STREAM"
|
|
1807
|
+
},
|
|
1808
|
+
"supportForward": {
|
|
1809
|
+
"const": false
|
|
1810
|
+
},
|
|
1811
|
+
"actionTokenTtlMinutes": {
|
|
1812
|
+
"type": "integer",
|
|
1813
|
+
"minimum": 5,
|
|
1814
|
+
"maximum": 43200
|
|
1815
|
+
}
|
|
1816
|
+
},
|
|
1817
|
+
"required": [
|
|
1818
|
+
"schemaVersion",
|
|
1819
|
+
"corpId",
|
|
1820
|
+
"usage",
|
|
1821
|
+
"clientIdSecretRef",
|
|
1822
|
+
"clientSecretSecretRef",
|
|
1823
|
+
"callbackMode",
|
|
1824
|
+
"supportForward",
|
|
1825
|
+
"actionTokenTtlMinutes"
|
|
1826
|
+
]
|
|
1827
|
+
}
|
|
1828
|
+
},
|
|
1829
|
+
"required": [
|
|
1830
|
+
"bindingCode",
|
|
1831
|
+
"expectedRevision",
|
|
1832
|
+
"status",
|
|
1833
|
+
"config"
|
|
1834
|
+
]
|
|
1835
|
+
}
|
|
1836
|
+
},
|
|
1837
|
+
"required": [
|
|
1838
|
+
"operation",
|
|
1839
|
+
"environment",
|
|
1840
|
+
"input"
|
|
1841
|
+
]
|
|
1842
|
+
},
|
|
1709
1843
|
{
|
|
1710
1844
|
"type": "object",
|
|
1711
1845
|
"additionalProperties": false,
|
|
@@ -1310,3 +1310,18 @@ generationPath、sequencePath、statePath、recipientPaths、titlePath 和可选
|
|
|
1310
1310
|
并创建下一轮,不因管理员变化覆盖旧任务。此能力复用平台任务中心、通知发件箱、
|
|
1311
1311
|
供应方关闭和审计;普通 informational 通知仍不能创建待办。业务提交成功不等于
|
|
1312
1312
|
供应方投递或用户收到,分别核对业务回执、事件投递和消息详情。
|
|
1313
|
+
|
|
1314
|
+
|
|
1315
|
+
### 三方应用互动卡片与班级接收范围
|
|
1316
|
+
|
|
1317
|
+
应用通过 `notifications.configure-dingtalk-card` 配置模板、Secret引用和可选的 `authorizationMode: THIRD_PARTY_INSTALLATION`。三方模式按消息持久化来源组织核对Suite安装及企业身份;配置corpId仅供管理员检查渠道,不作为未知消息的默认投递企业。应用决定内容、模板和PC/移动详情目标,平台统一校验、投递并维护回执。
|
|
1318
|
+
|
|
1319
|
+
信息模板可以声明 `informationalTemplateParameters: { content: 'content', link: 'link' }`:变量名属于应用;内容来自应用的summary,链接从应用声明的navigationTarget封装,保留路由、业务参数与字面量corpId占位符。该模式不能隐藏审批办理动作,原标准模板默认不变。高级显式卡片继续使用应用提供的cardParamMap。
|
|
1320
|
+
|
|
1321
|
+
事件通知的可选 `directoryRecipients: [{ classIdPath: 'projection.classId', roleCodes: ['guardian'] }]` 按不可变事件所属组织解析已同步班级身份,可与recipientPaths合并去重;recipientPaths可在有目录范围时传空数组。角色限guardian/head_teacher/teacher,最多20个范围,合计最多1000人;无有效人员、无来源组织、超限、失效身份均拒绝。此能力不导出通讯录、不依据URL的corpId授权、不推断其他组织。
|
|
1322
|
+
|
|
1323
|
+
上线渠道不会补发历史通知;真实金丝雀投递仅使用指定新业务和接收人。渠道健康、消息收到、点击打开正确组织以及业务详情权限需分别验收。
|
|
1324
|
+
|
|
1325
|
+
通知事件可用 `targetOrganizationPath` 指向不可变业务事实中的目标组织ID(例如区级规则所属组织)。平台核验同租户有效组织及来源的祖先/后代关系,按目标组织核验接收人及安装;URL或浏览器输入不授予权限。`directoryRecipients` 始终限原学校,不允许借此跨组织展开班级成员。来源组织归属保留,接受后的目标与接收人冻结,原键重试不重新展开。
|
|
1326
|
+
|
|
1327
|
+
worker-effect在readFields中可显式声明系统只读元数据 `organization_id`,用于冻结继承规则的真实所有者;行授权不变,未授予不能选择,写入始终拒绝。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openxiangda",
|
|
3
|
-
"version": "2.75.
|
|
3
|
+
"version": "2.75.9",
|
|
4
4
|
"description": "OpenXiangda 2.0 的统一命令、应用 SDK、MCP 与中文 AI 技能资料。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -95,13 +95,13 @@
|
|
|
95
95
|
"dayjs": "1.11.18",
|
|
96
96
|
"docx-preview": "0.3.7",
|
|
97
97
|
"elkjs": "0.12.0",
|
|
98
|
-
"openxiangda-cli": "2.11.
|
|
99
|
-
"openxiangda-contracts": "2.
|
|
100
|
-
"openxiangda-devkit-core": "2.
|
|
98
|
+
"openxiangda-cli": "2.11.21",
|
|
99
|
+
"openxiangda-contracts": "2.96.0",
|
|
100
|
+
"openxiangda-devkit-core": "2.72.0",
|
|
101
101
|
"openxiangda-legacy": "npm:openxiangda@1.0.269",
|
|
102
|
-
"openxiangda-mcp": "2.2.
|
|
103
|
-
"openxiangda-nest": "2.22.
|
|
104
|
-
"openxiangda-skill-kit": "2.3.
|
|
102
|
+
"openxiangda-mcp": "2.2.31",
|
|
103
|
+
"openxiangda-nest": "2.22.11",
|
|
104
|
+
"openxiangda-skill-kit": "2.3.134",
|
|
105
105
|
"xlsx": "https://github.com/1377385356/openxiangda/releases/download/vendor-mirror/xlsx-0.20.3.tgz"
|
|
106
106
|
},
|
|
107
107
|
"peerDependencies": {
|
|
@@ -167,38 +167,36 @@
|
|
|
167
167
|
},
|
|
168
168
|
"openxiangdaRelease": {
|
|
169
169
|
"schemaVersion": "openxiangda.release-notes/v1",
|
|
170
|
-
"version": "2.75.
|
|
170
|
+
"version": "2.75.9",
|
|
171
171
|
"status": "reviewed",
|
|
172
|
-
"title": "OpenXiangda 2.75.
|
|
173
|
-
"summary": "
|
|
174
|
-
"newFeatures": [
|
|
175
|
-
|
|
176
|
-
"
|
|
177
|
-
"
|
|
178
|
-
"CLI 模板及官方 contracts 制品随同一源提交配对发布;编译器授权和业务语义未改变。"
|
|
172
|
+
"title": "OpenXiangda 2.75.9: organization-scoped third-party cards",
|
|
173
|
+
"summary": "Generic event contracts retain application-owned content and targets while the platform resolves enterprise authorization and class recipients.",
|
|
174
|
+
"newFeatures": [
|
|
175
|
+
"Declared class-role notification audiences and verified related delivery organizations.",
|
|
176
|
+
"Managed configuration for third-party card channels and custom content/link parameter names.",
|
|
177
|
+
"Explicit read-only organization_id metadata for event workers; no wider row authority."
|
|
179
178
|
],
|
|
179
|
+
"fixes": [],
|
|
180
180
|
"affectedUsers": [
|
|
181
|
-
"
|
|
181
|
+
"V2 application developers sending cards through third-party school installations."
|
|
182
182
|
],
|
|
183
183
|
"compatibility": {
|
|
184
|
-
"node": "Node.js 24 or newer
|
|
185
|
-
"generation": "
|
|
186
|
-
"platform": "
|
|
184
|
+
"node": "Node.js 24 or newer",
|
|
185
|
+
"generation": "V2 only; V1 unchanged",
|
|
186
|
+
"platform": "Requires matching notification platform services and compiler.",
|
|
187
187
|
"releaseChannels": "latest / stable-v2"
|
|
188
188
|
},
|
|
189
189
|
"upgradeSteps": [
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
"分别验证新旧登录、续期、退出、跨标签页及真实钉钉回调;包发布不代表现场业务验收。"
|
|
190
|
+
"Upgrade the matching backend and configure published templates with encrypted credential references.",
|
|
191
|
+
"Pin the SDK, verify organization isolation and detail permissions on TEST, then promote."
|
|
193
192
|
],
|
|
194
193
|
"knownLimitations": [
|
|
195
|
-
"
|
|
196
|
-
"
|
|
197
|
-
"免登仍要求对应租户的真实钉钉配置与用户身份,不会继承其他租户账号。"
|
|
194
|
+
"Package tests do not prove real DingTalk receipt, placeholder substitution or login return.",
|
|
195
|
+
"No automatic historical resend; recover uncertain results with original keys."
|
|
198
196
|
],
|
|
199
197
|
"issues": [],
|
|
200
|
-
"sha256": "
|
|
201
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.
|
|
198
|
+
"sha256": "3c215aa49c0d416cb2f5cb1b73cb8914810048ee54b1474fae49e20c877682bf",
|
|
199
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.9"
|
|
202
200
|
},
|
|
203
201
|
"scripts": {
|
|
204
202
|
"build": "node ../../scripts/prune-package-dist.mjs && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
+
"version": "2.75.9",
|
|
4
|
+
"status": "reviewed",
|
|
5
|
+
"title": "OpenXiangda 2.75.9: organization-scoped third-party cards",
|
|
6
|
+
"summary": "Generic event contracts retain application-owned content and targets while the platform resolves enterprise authorization and class recipients.",
|
|
7
|
+
"newFeatures": [
|
|
8
|
+
"Declared class-role notification audiences and verified related delivery organizations.",
|
|
9
|
+
"Managed configuration for third-party card channels and custom content/link parameter names.",
|
|
10
|
+
"Explicit read-only organization_id metadata for event workers; no wider row authority."
|
|
11
|
+
],
|
|
12
|
+
"fixes": [],
|
|
13
|
+
"affectedUsers": [
|
|
14
|
+
"V2 application developers sending cards through third-party school installations."
|
|
15
|
+
],
|
|
16
|
+
"compatibility": {
|
|
17
|
+
"node": "Node.js 24 or newer",
|
|
18
|
+
"generation": "V2 only; V1 unchanged",
|
|
19
|
+
"platform": "Requires matching notification platform services and compiler.",
|
|
20
|
+
"releaseChannels": "latest / stable-v2"
|
|
21
|
+
},
|
|
22
|
+
"upgradeSteps": [
|
|
23
|
+
"Upgrade the matching backend and configure published templates with encrypted credential references.",
|
|
24
|
+
"Pin the SDK, verify organization isolation and detail permissions on TEST, then promote."
|
|
25
|
+
],
|
|
26
|
+
"knownLimitations": [
|
|
27
|
+
"Package tests do not prove real DingTalk receipt, placeholder substitution or login return.",
|
|
28
|
+
"No automatic historical resend; recover uncertain results with original keys."
|
|
29
|
+
],
|
|
30
|
+
"issues": [],
|
|
31
|
+
"sha256": "3c215aa49c0d416cb2f5cb1b73cb8914810048ee54b1474fae49e20c877682bf",
|
|
32
|
+
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.75.9"
|
|
33
|
+
}
|
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": "4210e05cdd97c259e667e85cc4dd87deafa9efe535747c2621b7e5bde81b20ae"
|
|
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.75.
|
|
44
|
-
pnpm dlx openxiangda@2.75.
|
|
45
|
-
pnpm dlx openxiangda@2.75.
|
|
46
|
-
pnpm dlx openxiangda@2.75.
|
|
43
|
+
pnpm dlx openxiangda@2.75.9 auth status --cwd <应用目录> --base-url <平台地址> --json
|
|
44
|
+
pnpm dlx openxiangda@2.75.9 login --cwd <应用目录> --base-url <平台地址>
|
|
45
|
+
pnpm dlx openxiangda@2.75.9 create <应用目录> --base-url <同一平台地址>
|
|
46
|
+
pnpm dlx openxiangda@2.75.9 skill install --force
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
创建前把产品要求的目标平台明确带入命令,不从旧登录态推断站点。已有工作区从原绑定恢复,平台不一致时先解决登录与目标,不改 link 文件跨站创建。
|
|
@@ -118,7 +118,8 @@ Native记录事件才能使用 `ordering:record`。订阅错误先修正应用
|
|
|
118
118
|
|
|
119
119
|
先读 `notifications.diagnostics/channels/rules`。缺少标准模板/规则时执行
|
|
120
120
|
`notifications.bootstrap` 再回读。已有健康渠道可直接选默认,不必重新配置或获取密码。
|
|
121
|
-
|
|
121
|
+
新增/更新使用 `notifications.configure-external-http`、`notifications.configure-dingtalk-oa` 或 `notifications.configure-dingtalk-card`。
|
|
122
|
+
互动卡片可显式启用 `authorizationMode: THIRD_PARTY_INSTALLATION`,由平台按可信消息所属组织核对三方安装;内容、模板和详情目标由应用控制。OA工作通知配置不能代替互动卡片渠道。
|
|
122
123
|
完整参数见目录inputSchema;新渠道revision用0,更新用实时revision。配置只接受Secret引用,
|
|
123
124
|
不接受token、明文clientSecret或收件身份。External HTTP支持HMAC、OAuth2客户端凭据和mTLS。
|
|
124
125
|
正式启用沿用服务器 `confirmProduction:true`,表示该请求明确选择正式环境,无需管理页。
|
|
@@ -68,10 +68,10 @@ MCP 服务随项目根包一起安装,AI 客户端的 stdio 连接仍需配置
|
|
|
68
68
|
以下命令的版本占位符由随包资料替换为该根包的精确版本。网站源码阅读者应先确认要使用的发行版本。
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
pnpm dlx openxiangda@2.75.
|
|
72
|
-
pnpm dlx openxiangda@2.75.
|
|
73
|
-
pnpm dlx openxiangda@2.75.
|
|
74
|
-
pnpm dlx openxiangda@2.75.
|
|
71
|
+
pnpm dlx openxiangda@2.75.9 skill install --force
|
|
72
|
+
pnpm dlx openxiangda@2.75.9 auth status --base-url <平台地址> --json
|
|
73
|
+
pnpm dlx openxiangda@2.75.9 login --cwd my-app --base-url https://platform.example.com
|
|
74
|
+
pnpm dlx openxiangda@2.75.9 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
|
|
@@ -221,9 +221,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
221
221
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
222
222
|
|
|
223
223
|
```bash
|
|
224
|
-
pnpm dlx openxiangda@2.75.
|
|
225
|
-
pnpm dlx openxiangda@2.75.
|
|
226
|
-
pnpm dlx openxiangda@2.75.
|
|
224
|
+
pnpm dlx openxiangda@2.75.9 auth status --base-url <平台> --json
|
|
225
|
+
pnpm dlx openxiangda@2.75.9 source resolve <仓库URL> --base-url <平台> --json
|
|
226
|
+
pnpm dlx openxiangda@2.75.9 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
227
227
|
```
|
|
228
228
|
|
|
229
229
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|
|
@@ -1706,6 +1706,140 @@ MCP 使用项目锁定的根包;在客户端配置下列 stdio 启动参数,
|
|
|
1706
1706
|
"input"
|
|
1707
1707
|
]
|
|
1708
1708
|
},
|
|
1709
|
+
{
|
|
1710
|
+
"type": "object",
|
|
1711
|
+
"additionalProperties": false,
|
|
1712
|
+
"properties": {
|
|
1713
|
+
"operation": {
|
|
1714
|
+
"const": "notifications.configure-dingtalk-card",
|
|
1715
|
+
"description": "配置钉钉互动卡片与可选的三方组织授权;仅使用 Secret 引用"
|
|
1716
|
+
},
|
|
1717
|
+
"environment": {
|
|
1718
|
+
"type": "string",
|
|
1719
|
+
"enum": [
|
|
1720
|
+
"test",
|
|
1721
|
+
"production"
|
|
1722
|
+
]
|
|
1723
|
+
},
|
|
1724
|
+
"input": {
|
|
1725
|
+
"type": "object",
|
|
1726
|
+
"additionalProperties": false,
|
|
1727
|
+
"properties": {
|
|
1728
|
+
"bindingCode": {
|
|
1729
|
+
"type": "string",
|
|
1730
|
+
"minLength": 1,
|
|
1731
|
+
"maxLength": 128
|
|
1732
|
+
},
|
|
1733
|
+
"expectedRevision": {
|
|
1734
|
+
"type": "integer",
|
|
1735
|
+
"minimum": 0,
|
|
1736
|
+
"maximum": 9007199254740991
|
|
1737
|
+
},
|
|
1738
|
+
"status": {
|
|
1739
|
+
"type": "string",
|
|
1740
|
+
"enum": [
|
|
1741
|
+
"active",
|
|
1742
|
+
"paused"
|
|
1743
|
+
]
|
|
1744
|
+
},
|
|
1745
|
+
"config": {
|
|
1746
|
+
"type": "object",
|
|
1747
|
+
"additionalProperties": false,
|
|
1748
|
+
"properties": {
|
|
1749
|
+
"schemaVersion": {
|
|
1750
|
+
"const": "openxiangda.notification.dingtalk-card-channel/v2"
|
|
1751
|
+
},
|
|
1752
|
+
"corpId": {
|
|
1753
|
+
"type": "string",
|
|
1754
|
+
"minLength": 1,
|
|
1755
|
+
"maxLength": 128
|
|
1756
|
+
},
|
|
1757
|
+
"usage": {
|
|
1758
|
+
"const": "ADVANCED"
|
|
1759
|
+
},
|
|
1760
|
+
"authorizationMode": {
|
|
1761
|
+
"const": "THIRD_PARTY_INSTALLATION"
|
|
1762
|
+
},
|
|
1763
|
+
"defaultCardTemplateId": {
|
|
1764
|
+
"type": "string",
|
|
1765
|
+
"minLength": 1,
|
|
1766
|
+
"maxLength": 255
|
|
1767
|
+
},
|
|
1768
|
+
"informationalTemplateParameters": {
|
|
1769
|
+
"type": "object",
|
|
1770
|
+
"additionalProperties": false,
|
|
1771
|
+
"properties": {
|
|
1772
|
+
"content": {
|
|
1773
|
+
"type": "string",
|
|
1774
|
+
"minLength": 1,
|
|
1775
|
+
"maxLength": 64,
|
|
1776
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$"
|
|
1777
|
+
},
|
|
1778
|
+
"link": {
|
|
1779
|
+
"type": "string",
|
|
1780
|
+
"minLength": 1,
|
|
1781
|
+
"maxLength": 64,
|
|
1782
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,63}$"
|
|
1783
|
+
}
|
|
1784
|
+
},
|
|
1785
|
+
"required": [
|
|
1786
|
+
"content",
|
|
1787
|
+
"link"
|
|
1788
|
+
]
|
|
1789
|
+
},
|
|
1790
|
+
"clientIdSecretRef": {
|
|
1791
|
+
"type": "string",
|
|
1792
|
+
"minLength": 1,
|
|
1793
|
+
"maxLength": 128
|
|
1794
|
+
},
|
|
1795
|
+
"clientSecretSecretRef": {
|
|
1796
|
+
"type": "string",
|
|
1797
|
+
"minLength": 1,
|
|
1798
|
+
"maxLength": 128
|
|
1799
|
+
},
|
|
1800
|
+
"robotCode": {
|
|
1801
|
+
"type": "string",
|
|
1802
|
+
"minLength": 1,
|
|
1803
|
+
"maxLength": 255
|
|
1804
|
+
},
|
|
1805
|
+
"callbackMode": {
|
|
1806
|
+
"const": "STREAM"
|
|
1807
|
+
},
|
|
1808
|
+
"supportForward": {
|
|
1809
|
+
"const": false
|
|
1810
|
+
},
|
|
1811
|
+
"actionTokenTtlMinutes": {
|
|
1812
|
+
"type": "integer",
|
|
1813
|
+
"minimum": 5,
|
|
1814
|
+
"maximum": 43200
|
|
1815
|
+
}
|
|
1816
|
+
},
|
|
1817
|
+
"required": [
|
|
1818
|
+
"schemaVersion",
|
|
1819
|
+
"corpId",
|
|
1820
|
+
"usage",
|
|
1821
|
+
"clientIdSecretRef",
|
|
1822
|
+
"clientSecretSecretRef",
|
|
1823
|
+
"callbackMode",
|
|
1824
|
+
"supportForward",
|
|
1825
|
+
"actionTokenTtlMinutes"
|
|
1826
|
+
]
|
|
1827
|
+
}
|
|
1828
|
+
},
|
|
1829
|
+
"required": [
|
|
1830
|
+
"bindingCode",
|
|
1831
|
+
"expectedRevision",
|
|
1832
|
+
"status",
|
|
1833
|
+
"config"
|
|
1834
|
+
]
|
|
1835
|
+
}
|
|
1836
|
+
},
|
|
1837
|
+
"required": [
|
|
1838
|
+
"operation",
|
|
1839
|
+
"environment",
|
|
1840
|
+
"input"
|
|
1841
|
+
]
|
|
1842
|
+
},
|
|
1709
1843
|
{
|
|
1710
1844
|
"type": "object",
|
|
1711
1845
|
"additionalProperties": false,
|
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
| 应用角色 `self` / `subtree` | V2 声明、组织维度角色绑定和实时 SQL 准入已接通 | 声明每个角色的覆盖意图;旧应用未声明继续沿用原行为 |
|
|
30
30
|
| 家校事实到应用角色、班级范围的消费 | `authz.directoryRoleSources` 由平台投影到应用角色和字符串 scope | 使用真实来源角色事实,目录派生绑定不能手工覆盖;事实退休立即拒绝旧投影 |
|
|
31
31
|
| 组织数据归属、隔离、后代可见与内容下发 | `organization.mode=owned/inherited-down`、不可改归属及 RLS 已实现 | 声明策略并核验目标站点的配套能力,按真实组织角色验收允许和拒绝 |
|
|
32
|
-
|
|
|
32
|
+
| 安装回调、每校自动定时同步 | 尚未完成整条自动接入 | 不假定安装完成后立即能登录 |
|
|
33
|
+
| 三方互动卡片按组织授权与身份路由 | 配套平台支持显式启用的THIRD_PARTY_INSTALLATION渠道 | 核对可信来源组织、有效安装及企业身份;应用控制内容、模板、接收范围和详情目标,实际投递与点击分别验证 |
|
|
33
34
|
|
|
34
35
|
平台管理组织的授权与应用业务授权是两种事实。能开通学校或查询组织树,不会自动获得该学校的业务数据权限;看到一条成员关系,也不会自动成为应用管理员。
|
|
35
36
|
|
|
@@ -181,7 +182,7 @@ data: {
|
|
|
181
182
|
|
|
182
183
|
组织已开通但尚未安装,或安装已匹配但成员尚未同步,均不等于用户已获得应用访问权限。提示“账号信息尚未同步,请稍后再试”等状态可以使用实际平台结果,不能假装登录成功。自动安装事件、逐组织定时同步、应用可触发的有界同步请求尚未接通,不应在应用里开启无界轮询或用管理员凭据调用修复接口。
|
|
183
184
|
|
|
184
|
-
|
|
185
|
+
配套平台版本的 Notification Hub 支持通过THIRD_PARTY_INSTALLATION卡片渠道按持久化来源组织选择有效Suite安装与企业身份,首次接受通知时固定接收范围及目标安装,发送前复核身份。应用通过正式事件通知契约声明内容和目标;需要班级来源角色时可声明directoryRecipients,平台仅在事件所属组织中有界解析,不导出通讯录。信息模板的变量名由应用配置,链接封装保留应用业务参数和corpId占位符,详见[工作流与事件](workflow-events.md)。管理员必须先核对目标站点的配套版本、渠道、安装与权限。消息到人、消息点击进入正确学校和该用户有业务权限是三个独立条件,需分别验收;不能仅凭 unionId 或SDK接口存在就认定实际路由通过。
|
|
185
186
|
|
|
186
187
|
## 开发前核对与验收 {#verification}
|
|
187
188
|
|
|
@@ -202,3 +203,5 @@ DirectoryClassSummary.directoryClassId 是平台目录 UUID,sourceClassId 是
|
|
|
202
203
|
具名后端动作声明 platformAccess: { directoryClasses: { maxIds: 20 } },调用 OpenXiangdaBusinessDirectoryService.currentClasses(sourceClassIds) 精确解析1..maxIds个来源班级。同一动作证明中的人和工作组织由平台决定,不能传入其他userId/corpId/organizationId。缺少来源事实、工作组织、活动成员或任一选择不可读时整体拒绝;事务还需 actor-authority 和业务行边界复核。该能力是只读目录,无目录同步/管理授权。
|
|
203
204
|
|
|
204
205
|
HTTP GET /openxiangda-api/v2/platform/organizations/me/directory-classes 只接受limit/after;POST /openxiangda-api/v2/applications/:appCode/directory/current-classes 的 schemaVersion 为 openxiangda.current-classes-directory-request/v1、字段为sourceClassIds。返回 openxiangda.directory-class-page/v1,绑定userId和organizationId。未部署此能力的站点不能仅凭SDK方法存在就报告接入完成。
|
|
206
|
+
|
|
207
|
+
通知事件可用 `targetOrganizationPath` 指向不可变业务事实中的目标组织ID(例如区级规则所属组织)。平台核验同租户有效组织及来源的祖先/后代关系,按目标组织核验接收人及安装;URL或浏览器输入不授予权限。`directoryRecipients` 始终限原学校,不允许借此跨组织展开班级成员。来源组织归属保留,接受后的目标与接收人冻结,原键重试不重新展开。
|
|
@@ -1310,3 +1310,18 @@ generationPath、sequencePath、statePath、recipientPaths、titlePath 和可选
|
|
|
1310
1310
|
并创建下一轮,不因管理员变化覆盖旧任务。此能力复用平台任务中心、通知发件箱、
|
|
1311
1311
|
供应方关闭和审计;普通 informational 通知仍不能创建待办。业务提交成功不等于
|
|
1312
1312
|
供应方投递或用户收到,分别核对业务回执、事件投递和消息详情。
|
|
1313
|
+
|
|
1314
|
+
|
|
1315
|
+
### 三方应用互动卡片与班级接收范围
|
|
1316
|
+
|
|
1317
|
+
应用通过 `notifications.configure-dingtalk-card` 配置模板、Secret引用和可选的 `authorizationMode: THIRD_PARTY_INSTALLATION`。三方模式按消息持久化来源组织核对Suite安装及企业身份;配置corpId仅供管理员检查渠道,不作为未知消息的默认投递企业。应用决定内容、模板和PC/移动详情目标,平台统一校验、投递并维护回执。
|
|
1318
|
+
|
|
1319
|
+
信息模板可以声明 `informationalTemplateParameters: { content: 'content', link: 'link' }`:变量名属于应用;内容来自应用的summary,链接从应用声明的navigationTarget封装,保留路由、业务参数与字面量corpId占位符。该模式不能隐藏审批办理动作,原标准模板默认不变。高级显式卡片继续使用应用提供的cardParamMap。
|
|
1320
|
+
|
|
1321
|
+
事件通知的可选 `directoryRecipients: [{ classIdPath: 'projection.classId', roleCodes: ['guardian'] }]` 按不可变事件所属组织解析已同步班级身份,可与recipientPaths合并去重;recipientPaths可在有目录范围时传空数组。角色限guardian/head_teacher/teacher,最多20个范围,合计最多1000人;无有效人员、无来源组织、超限、失效身份均拒绝。此能力不导出通讯录、不依据URL的corpId授权、不推断其他组织。
|
|
1322
|
+
|
|
1323
|
+
上线渠道不会补发历史通知;真实金丝雀投递仅使用指定新业务和接收人。渠道健康、消息收到、点击打开正确组织以及业务详情权限需分别验收。
|
|
1324
|
+
|
|
1325
|
+
通知事件可用 `targetOrganizationPath` 指向不可变业务事实中的目标组织ID(例如区级规则所属组织)。平台核验同租户有效组织及来源的祖先/后代关系,按目标组织核验接收人及安装;URL或浏览器输入不授予权限。`directoryRecipients` 始终限原学校,不允许借此跨组织展开班级成员。来源组织归属保留,接受后的目标与接收人冻结,原键重试不重新展开。
|
|
1326
|
+
|
|
1327
|
+
worker-effect在readFields中可显式声明系统只读元数据 `organization_id`,用于冻结继承规则的真实所有者;行授权不变,未授予不能选择,写入始终拒绝。
|
package/releases/2.63.0.json
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
-
"version": "2.63.0",
|
|
4
|
-
"status": "reviewed",
|
|
5
|
-
"title": "Workflow design, handling nodes and editable application templates",
|
|
6
|
-
"summary": "Publish the reviewed mainline workflow designer and handling capabilities, shared-record Save, structured parallel branches and guarded workflow source synchronisation. Add editable templates, resource reference read/update contexts and read-only AI command reconciliation. The platform must use the same public contracts 2.79.0 pure compiler as the SDK.",
|
|
7
|
-
"newFeatures": [
|
|
8
|
-
"Canonical workflow designer definitions, target/variable catalogs, administration, proposals and instance adoption share the same pure validation rules.",
|
|
9
|
-
"Independent handling and correction nodes support explicit completion actions, opinion requirements, shared-record Save, return policies, durable reminders, platform notifications and supervisor-chain assignments.",
|
|
10
|
-
"Paired parallel/join nodes have bounded disjoint branches, branch-scoped position proofs and publication validation while retaining immutable task-entry authority.",
|
|
11
|
-
"Workflow source export/import, read-only version registration plans and environment synchronisation use digest and target-head guards and preserve prepared version history.",
|
|
12
|
-
"Editable application templates cover administration, PC, mobile and login frames, with shared resource-page controllers, source digests and composition validation.",
|
|
13
|
-
"Resource reference filtering has an independent read intent; ordinary edits supply saved-record id/revision and actual edits for authoritative server-side merge.",
|
|
14
|
-
"AI reconciliation binds a read-only GET/read operation to the original command receipt instead of replaying a business mutation."
|
|
15
|
-
],
|
|
16
|
-
"fixes": [
|
|
17
|
-
"Give the new workflow pure-rule APIs a fresh public contracts version so platforms need not privately add exports under an already published semver.",
|
|
18
|
-
"Correct canvas branch selection, outline hierarchy and approval action presentation while retaining permissions, CAS, idempotency and unknown-result recovery.",
|
|
19
|
-
"Export standard resource query, cascade and address helpers from shared contracts so browser and platform consumers use the same query semantics."
|
|
20
|
-
],
|
|
21
|
-
"affectedUsers": [
|
|
22
|
-
"OpenXiangda V2 platforms and applications using workflow design, independent handling, shared Save, reminders, notifications or instance adoption.",
|
|
23
|
-
"V2 workspaces using editable template composition, resource reference fields or read-only AI result reconciliation."
|
|
24
|
-
],
|
|
25
|
-
"upgradeSteps": [
|
|
26
|
-
"Deploy a platform matching the actual contracts 2.79.0 native validator first. Server contracts must come from the official published tarball with verified SRI.",
|
|
27
|
-
"Upgrade the complete workspace distribution to public openxiangda 2.63.0, install the lockfile and refresh project documentation and MCP sessions.",
|
|
28
|
-
"Preserve application, record, task, workflow-version and idempotency identities. Run normal check/deploy preflight against the actual platform capabilities and validator digest.",
|
|
29
|
-
"Verify workflow design, shared Save, handling completion, return paths, notification recipients and reference reads/updates with real roles before environment promotion."
|
|
30
|
-
],
|
|
31
|
-
"knownLimitations": [
|
|
32
|
-
"New reference contexts and workflow contracts require the matching platform to be deployed first; declaring a different digest does not establish compatibility.",
|
|
33
|
-
"Template appearance and package regressions do not replace real-role, notification, instance-adoption and business-data acceptance.",
|
|
34
|
-
"The separate event-receipt lease-ownership and worker-effect candidates are not included in this public release."
|
|
35
|
-
],
|
|
36
|
-
"compatibility": {
|
|
37
|
-
"generation": "v2",
|
|
38
|
-
"node": ">=24",
|
|
39
|
-
"platform": "contracts 2.79.0 exact native validator and matching workflow/resource contexts",
|
|
40
|
-
"v1": "Independent 1.x maintenance distribution is unchanged"
|
|
41
|
-
},
|
|
42
|
-
"issues": [],
|
|
43
|
-
"sha256": "ef4279a6f846a604d68dbd1adc2473203ffef4287e2dc74b51aa17727a7397b5",
|
|
44
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.63.0"
|
|
45
|
-
}
|
package/releases/2.63.1.json
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
-
"version": "2.63.1",
|
|
4
|
-
"status": "reviewed",
|
|
5
|
-
"title": "流程设计、独立办理与公开契约配套发行",
|
|
6
|
-
"summary": "正式发行已评审的流程设计、办理节点、共享数据保存、结构化并行、提醒通知和流程源码同步能力,提供可编辑应用模板、资源引用读取上下文及只读 AI 回执核对,同时修复首次导入前的源基线比较和配置写入边界。公开 SDK 与 contracts 2.79.1 使用同一冻结分发。",
|
|
7
|
-
"newFeatures": [
|
|
8
|
-
"流程设计、变量和目标目录、管理员配置、设计提案及历史实例接管共用规范定义与纯校验规则。",
|
|
9
|
-
"独立办理与补正节点支持明确完成动作、意见要求、共享数据保存、退回策略、持久提醒、平台通知和主管链规则。",
|
|
10
|
-
"结构化 parallel/join 节点支持有界独立分支、分支位置证明及发布校验,保留任务进入时的权威事实。",
|
|
11
|
-
"流程源码导出、导入、版本注册和环境同步使用源摘要及目标版本守卫,保留准备版本历史。",
|
|
12
|
-
"可编辑模板覆盖后台、PC、移动端和登录外观,资源页控制器、来源摘要及组合校验共用标准边界。",
|
|
13
|
-
"资源引用筛选使用独立读取意图;普通关联编辑提供记录 id/revision 和实际编辑上下文,由平台合并权威绑定。",
|
|
14
|
-
"AI 核对通过只读 GET/read 查询原幂等键的提交回执,不重新执行业务命令。"
|
|
15
|
-
],
|
|
16
|
-
"fixes": [
|
|
17
|
-
"首次导入前按目标应用声明比较流程源状态,忽略其他环境观察,复用规范摘要、校验源锁并将写入限定于应用导出的配置。",
|
|
18
|
-
"并行分支卡片居中且条件开关保持单行,审批布局继续保留权限、CAS、幂等和未知结果恢复。",
|
|
19
|
-
"新增流程规则使用正式公开 contracts 新版本,不在已公开旧版本号下私有添加 API。",
|
|
20
|
-
"封包清单正确检查 template/list 命令,参考候选仓库支持显式任务代理访问官方上游。"
|
|
21
|
-
],
|
|
22
|
-
"affectedUsers": [
|
|
23
|
-
"使用流程设计、独立办理、共享保存、提醒通知、流程源同步或历史实例接管的 OpenXiangda 2.0 平台和应用。",
|
|
24
|
-
"使用可编辑模板、资源引用字段或只读 AI 结果核对的 2.0 工作区。"
|
|
25
|
-
],
|
|
26
|
-
"upgradeSteps": [
|
|
27
|
-
"先部署与 contracts 2.79.1 实际纯规则摘要一致的平台;服务器使用官方公开 tarball 并核对 SRI。",
|
|
28
|
-
"完整工作区分发升级到 openxiangda 2.63.1,按锁文件安装并刷新资料及 MCP 连接。",
|
|
29
|
-
"保留原应用、数据、任务、流程版本和幂等标识,正常 check/deploy 核对实际能力与 validatorDigest。",
|
|
30
|
-
"按真实角色验证设计、保存、办理完成、退回、通知收件人及关联字段读写,再执行原晋级流程。"
|
|
31
|
-
],
|
|
32
|
-
"knownLimitations": [
|
|
33
|
-
"新增读取上下文和流程契约需要配套平台先升级,修改摘要不能代替真实兼容性。",
|
|
34
|
-
"包测试和模板外观不代替真实角色、通知、实例接管及业务数据读回验收。",
|
|
35
|
-
"事件回执租约对象归属和 Worker 原子效果仍为独立 PLT-040 候选,本次不包含未整合改动。"
|
|
36
|
-
],
|
|
37
|
-
"compatibility": {
|
|
38
|
-
"generation": "v2",
|
|
39
|
-
"node": ">=24",
|
|
40
|
-
"platform": "contracts 2.79.1 exact native validator and matching workflow/resource contexts",
|
|
41
|
-
"v1": "独立 1.x 维护分发不变"
|
|
42
|
-
},
|
|
43
|
-
"issues": [],
|
|
44
|
-
"sha256": "364565fc1ab2b4a1db89328b684ca7f5d1b261ad882e00e5da7c1687e5be7861",
|
|
45
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.63.1"
|
|
46
|
-
}
|