openxiangda 2.62.0 → 2.63.1
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/AuthoritativeSelector.d.ts +4 -3
- package/dist/browser/AuthoritativeSelector.d.ts.map +1 -1
- package/dist/browser/AuthoritativeSelector.js +25 -16
- package/dist/browser/AuthoritativeSelector.js.map +1 -1
- package/dist/browser/admin-contributions.d.ts +26 -0
- package/dist/browser/admin-contributions.d.ts.map +1 -1
- package/dist/browser/admin-contributions.js +30 -0
- package/dist/browser/admin-contributions.js.map +1 -1
- package/dist/browser/components/administration/membership-batch-model.d.ts.map +1 -1
- package/dist/browser/components/administration/membership-batch-model.js +2 -1
- package/dist/browser/components/administration/membership-batch-model.js.map +1 -1
- package/dist/browser/components/platform-fields/AttachmentFileList.d.ts +2 -1
- package/dist/browser/components/platform-fields/AttachmentFileList.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/AttachmentFileList.js +3 -3
- package/dist/browser/components/platform-fields/AttachmentFileList.js.map +1 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.js +2 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.js.map +1 -1
- package/dist/browser/components/platform-fields/ResourceReferenceField.d.ts +4 -2
- package/dist/browser/components/platform-fields/ResourceReferenceField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/ResourceReferenceField.js +4 -4
- package/dist/browser/components/platform-fields/ResourceReferenceField.js.map +1 -1
- package/dist/browser/components/platform-fields/SubtableField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/SubtableField.js +3 -2
- package/dist/browser/components/platform-fields/SubtableField.js.map +1 -1
- package/dist/browser/components/platform-fields/address-value.d.ts +2 -12
- package/dist/browser/components/platform-fields/address-value.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/address-value.js +1 -69
- package/dist/browser/components/platform-fields/address-value.js.map +1 -1
- package/dist/browser/components/platform-fields/cascade-value.d.ts +2 -5
- package/dist/browser/components/platform-fields/cascade-value.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/cascade-value.js +1 -46
- package/dist/browser/components/platform-fields/cascade-value.js.map +1 -1
- package/dist/browser/components/platform-fields/resource-query.d.ts +3 -19
- package/dist/browser/components/platform-fields/resource-query.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/resource-query.js +2 -153
- package/dist/browser/components/platform-fields/resource-query.js.map +1 -1
- package/dist/browser/components/resource/GeneratedResourceCrud.d.ts +393 -2
- package/dist/browser/components/resource/GeneratedResourceCrud.d.ts.map +1 -1
- package/dist/browser/components/resource/GeneratedResourceCrud.js +148 -71
- package/dist/browser/components/resource/GeneratedResourceCrud.js.map +1 -1
- package/dist/browser/components/resource/GeneratedResourceForm.d.ts.map +1 -1
- package/dist/browser/components/resource/GeneratedResourceForm.js +7 -1
- package/dist/browser/components/resource/GeneratedResourceForm.js.map +1 -1
- package/dist/browser/components/resource/RecordDetailFrame.d.ts +4 -1
- package/dist/browser/components/resource/RecordDetailFrame.d.ts.map +1 -1
- package/dist/browser/components/resource/RecordDetailFrame.js +4 -2
- package/dist/browser/components/resource/RecordDetailFrame.js.map +1 -1
- package/dist/browser/components/resource/ResourceBatchActions.d.ts.map +1 -1
- package/dist/browser/components/resource/ResourceBatchActions.js +7 -6
- package/dist/browser/components/resource/ResourceBatchActions.js.map +1 -1
- package/dist/browser/components/resource/SurfaceFields.d.ts +4 -1
- package/dist/browser/components/resource/SurfaceFields.d.ts.map +1 -1
- package/dist/browser/components/resource/SurfaceFields.js +8 -8
- package/dist/browser/components/resource/SurfaceFields.js.map +1 -1
- package/dist/browser/components/resource/record-comment-session.d.ts.map +1 -1
- package/dist/browser/components/resource/record-comment-session.js +2 -1
- package/dist/browser/components/resource/record-comment-session.js.map +1 -1
- package/dist/browser/components/resource/record-deletion-session.d.ts.map +1 -1
- package/dist/browser/components/resource/record-deletion-session.js +2 -1
- package/dist/browser/components/resource/record-deletion-session.js.map +1 -1
- package/dist/browser/components/resource/useResourceFormDrafts.d.ts.map +1 -1
- package/dist/browser/components/resource/useResourceFormDrafts.js +2 -9
- package/dist/browser/components/resource/useResourceFormDrafts.js.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +5 -2
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.js +107 -64
- package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.js +2 -1
- package/dist/browser/components/workflow/WorkflowAssignmentRoutingEditor.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js +15 -9
- package/dist/browser/components/workflow/WorkflowBusinessStepRecoveryPanel.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.d.ts +18 -0
- package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.js +29 -0
- package/dist/browser/components/workflow/WorkflowConditionConfigurationEditor.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowConditionEditor.d.ts +9 -0
- package/dist/browser/components/workflow/WorkflowConditionEditor.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowConditionEditor.js +33 -0
- package/dist/browser/components/workflow/WorkflowConditionEditor.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowDelegationManager.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowDelegationManager.js +2 -1
- package/dist/browser/components/workflow/WorkflowDelegationManager.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowDesigner.d.ts +14 -0
- package/dist/browser/components/workflow/WorkflowDesigner.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowDesigner.js +510 -0
- package/dist/browser/components/workflow/WorkflowDesigner.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowDesignerAssistant.d.ts +15 -0
- package/dist/browser/components/workflow/WorkflowDesignerAssistant.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowDesignerAssistant.js +75 -0
- package/dist/browser/components/workflow/WorkflowDesignerAssistant.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowDiagram.d.ts +8 -2
- package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowDiagram.js +6 -6
- package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.d.ts +13 -0
- package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.js +20 -0
- package/dist/browser/components/workflow/WorkflowDraftHandlingEditor.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts +7 -0
- package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowFlowCanvas.js +84 -23
- package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeCard.d.ts +2 -1
- package/dist/browser/components/workflow/WorkflowNodeCard.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeCard.js +12 -10
- package/dist/browser/components/workflow/WorkflowNodeCard.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts +13 -2
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +72 -24
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowNotificationEditor.d.ts +20 -0
- package/dist/browser/components/workflow/WorkflowNotificationEditor.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowNotificationEditor.js +18 -0
- package/dist/browser/components/workflow/WorkflowNotificationEditor.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.d.ts +10 -0
- package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.js +24 -0
- package/dist/browser/components/workflow/WorkflowParallelConfigurationEditor.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowRecordEditor.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowRecordEditor.js +2 -1
- package/dist/browser/components/workflow/WorkflowRecordEditor.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowReminderEditor.d.ts +7 -0
- package/dist/browser/components/workflow/WorkflowReminderEditor.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowReminderEditor.js +7 -0
- package/dist/browser/components/workflow/WorkflowReminderEditor.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.d.ts +8 -0
- package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.d.ts.map +1 -0
- package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.js +33 -0
- package/dist/browser/components/workflow/WorkflowReturnPolicyEditor.js.map +1 -0
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.js +2 -1
- package/dist/browser/components/workflow/WorkflowTaskDraftPanel.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowTaskFiles.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowTaskFiles.js +2 -1
- package/dist/browser/components/workflow/WorkflowTaskFiles.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowTaskForm.d.ts +1 -4
- package/dist/browser/components/workflow/WorkflowTaskForm.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowTaskForm.js +5 -6
- package/dist/browser/components/workflow/WorkflowTaskForm.js.map +1 -1
- package/dist/browser/components/workflow/workflow-approval-presentation.d.ts +13 -0
- package/dist/browser/components/workflow/workflow-approval-presentation.d.ts.map +1 -0
- package/dist/browser/components/workflow/workflow-approval-presentation.js +21 -0
- package/dist/browser/components/workflow/workflow-approval-presentation.js.map +1 -0
- package/dist/browser/components/workflow/workflow-designer-presentation.d.ts +13 -0
- package/dist/browser/components/workflow/workflow-designer-presentation.d.ts.map +1 -0
- package/dist/browser/components/workflow/workflow-designer-presentation.js +69 -0
- package/dist/browser/components/workflow/workflow-designer-presentation.js.map +1 -0
- package/dist/browser/components/workflow/workflow-flow-layout.d.ts +11 -2
- package/dist/browser/components/workflow/workflow-flow-layout.d.ts.map +1 -1
- package/dist/browser/components/workflow/workflow-flow-layout.js +44 -9
- package/dist/browser/components/workflow/workflow-flow-layout.js.map +1 -1
- package/dist/browser/components/workflow/workflow-operation-layout.d.ts +6 -0
- package/dist/browser/components/workflow/workflow-operation-layout.d.ts.map +1 -0
- package/dist/browser/components/workflow/workflow-operation-layout.js +17 -0
- package/dist/browser/components/workflow/workflow-operation-layout.js.map +1 -0
- package/dist/browser/durable-command.d.ts.map +1 -1
- package/dist/browser/durable-command.js +2 -1
- package/dist/browser/durable-command.js.map +1 -1
- package/dist/browser/managed-command.d.ts.map +1 -1
- package/dist/browser/managed-command.js +2 -1
- package/dist/browser/managed-command.js.map +1 -1
- package/dist/browser/platform-client.d.ts +71 -3
- package/dist/browser/platform-client.d.ts.map +1 -1
- package/dist/browser/platform-client.js +58 -9
- package/dist/browser/platform-client.js.map +1 -1
- package/dist/browser/record-detail.css +4 -3
- package/dist/browser/styles.css +355 -1
- package/dist/browser/uuid.d.ts +7 -0
- package/dist/browser/uuid.d.ts.map +1 -0
- package/dist/browser/uuid.js +19 -0
- package/dist/browser/uuid.js.map +1 -0
- package/dist/browser/workflow-approval.css +205 -0
- package/dist/browser/workflow-operation-input.d.ts.map +1 -1
- package/dist/browser/workflow-operation-input.js +1 -0
- package/dist/browser/workflow-operation-input.js.map +1 -1
- package/dist/core.d.ts +1 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +1 -0
- package/dist/core.js.map +1 -1
- package/dist/react.d.ts +1 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +1 -0
- package/dist/react.js.map +1 -1
- package/dist/resource.d.ts +22 -0
- package/dist/resource.d.ts.map +1 -0
- package/dist/resource.js +18 -0
- package/dist/resource.js.map +1 -0
- package/documentation/AGENTS.md +1 -1
- package/documentation/application-templates.md +37 -0
- package/documentation/field-components.md +10 -1
- package/documentation/frontend.md +14 -4
- package/documentation/getting-started.md +9 -7
- package/documentation/manifest.json +13 -7
- package/documentation/reference/cli.md +2 -0
- package/documentation/reference/mcp.md +238 -0
- package/documentation/workflow-events.md +33 -0
- package/package.json +39 -29
- package/releases/2.63.0.json +45 -0
- package/releases/2.63.1.json +46 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +7 -7
- package/skills/openxiangda-v2/references/application-templates.md +37 -0
- package/skills/openxiangda-v2/references/cli.md +2 -0
- package/skills/openxiangda-v2/references/field-components.md +10 -1
- package/skills/openxiangda-v2/references/frontend.md +14 -4
- package/skills/openxiangda-v2/references/getting-started.md +9 -7
- package/skills/openxiangda-v2/references/mcp.md +238 -0
- package/skills/openxiangda-v2/references/workflow-events.md +33 -0
- package/releases/2.20.1.json +0 -30
- package/releases/2.20.2.json +0 -30
- package/releases/2.20.3.json +0 -29
- package/releases/2.20.4.json +0 -30
- package/releases/2.31.5.json +0 -33
- package/releases/2.59.3.json +0 -36
- package/releases/2.60.0.json +0 -38
- package/releases/2.61.0.json +0 -39
- package/releases/2.61.1.json +0 -37
- package/releases/2.61.2.json +0 -32
- package/releases/2.61.3.json +0 -33
- package/releases/2.62.0.json +0 -40
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# 源码模板与业务场景
|
|
2
|
+
|
|
3
|
+
## 选择与创建 {#create}
|
|
4
|
+
|
|
5
|
+
模板是应用源码的初始化,不是不可编辑的 SDK 页面。后台、PC 用户端、移动用户端和登录外观分别选择布局;公共登录行为继续由 SDK 提供。既有 builtin:application 保持基础空应用。
|
|
6
|
+
|
|
7
|
+
先运行 `openxiangda template list --json`,或读取 MCP template_list。已确定业务和授权创建时直接初始化,无需为模板选择增加确认。
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
openxiangda create ./visitor-app --base-url <测试平台> --scenario visitor
|
|
11
|
+
openxiangda create ./records-app --base-url <测试平台> --scenario crud --style graphite-blue
|
|
12
|
+
openxiangda create ./visitor-app --base-url <测试平台> --scenario visitor --admin topbar --pc workbench --mobile task-list --login centered
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
with/without 接受逗号分隔模块。未知场景、布局、风格、模块及缺失依赖在物化前报错。访客默认包含 time-slot、pass-and-checkin、party-directory、my-records;没有应用后端或工作流。移除依赖模块时必须同时移除依赖它的模块。创建到已有工作区只恢复原来源;不能换一套模板覆盖应用源码。
|
|
16
|
+
|
|
17
|
+
## 源码所有权 {#ownership}
|
|
18
|
+
|
|
19
|
+
后台外壳位于 apps/web/src/frames/admin/AdminShell.tsx;PC/移动 frame 位于同目录;登录布局位于 apps/web/src/login;样式位于 apps/web/src/theme;后台资源页位于 apps/web/src/admin。开发者可复制、修改、替换、重构,平台不会自动覆盖这些文件。通用模板修复由各应用选择采用。
|
|
20
|
+
|
|
21
|
+
唯一后台通过 ui.admin.shell 挂载,菜单和路径来自平台已授权模型。保留 SDK 的路由及权限边界。应用页面通过 resourcePages 的 resource/view/list/detail/form contribution 挂载;未声明的页面沿用 SDK fallback。用户端通过 standardUserSurfaces 和普通页面贡献使用同一个应用路由。
|
|
22
|
+
|
|
23
|
+
## 修改列表 {#resource-list}
|
|
24
|
+
|
|
25
|
+
从 openxiangda/resource 导入 useResourceListController 和 ResourceListActions、ResourceListQueryBar、ResourceListAdvancedFilter、ResourceListAppliedFilters、ResourceListTable、ResourceListBatchBar、ResourceListOverlays 等块。控制器拥有数据、查询、列偏好、选择和获准动作;页面决定布局。columnRenderers 可替换可读列展示。移动端使用 useMobileResourceListController 与对应块。SDK 默认页使用相同边界。
|
|
26
|
+
|
|
27
|
+
resourcePages: { visits: { default: { list: VisitListPage } } } 按资源和视图注册。应用组件获得 definition、paths、mode 和 variant;路由先核验生成声明、读取/动作能力,再渲染贡献页。隐藏列不授予权限,新增视觉动作仍由服务器校验。
|
|
28
|
+
|
|
29
|
+
模板带 check:imports,解析真实 TypeScript 导入并核验包 exports;不允许私有 dist/src 深导入。资源 detail/form 先提供已有块,独立控制器继续扩展。
|
|
30
|
+
|
|
31
|
+
## 登录与验收 {#login}
|
|
32
|
+
|
|
33
|
+
登录模板消费 SDK 提供的 methods、state、error、passwordLogin、startSso、startDingTalk。支持账号密码、组织配置的 SSO/钉钉、验证码挑战、恢复身份和错误反馈;不建立第二个登录态,不显示未配置的入口。
|
|
34
|
+
|
|
35
|
+
访客角色起点:host 可邀请且读取自己创建的记录;front_desk 可进入唯一后台并登记到访,数据范围由平台策略约束。区域及角色为示例,接入实际组织前按业务修改。简单 CRUD 场景提供表单、我的记录和后台数据管理。
|
|
36
|
+
|
|
37
|
+
验收分别记录本地编译、浏览器、测试平台、实际角色和业务回读。模板初始化和设计图不是已部署业务。先 check,再按已授权环境验证邀请→接待→状态回读,桌面及 390px 均覆盖。参考[页面与标准组件](frontend.md)、[无账号访问](public-access.md)和[校验](testing.md)。
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
| `pnpm openxiangda context` | 只读 | 只读查看工作区、版本与平台绑定 |
|
|
9
9
|
| `pnpm openxiangda docs` | 只读 | 按主题和章节读取当前版本中文资料 |
|
|
10
10
|
| `pnpm openxiangda admin` | 远端变更 | 查看管理能力、自助操作契约,或按明确环境执行事件、密钥及通知操作 |
|
|
11
|
+
| `pnpm openxiangda template` | 只读 | 列出场景、模块、布局和风格模板 |
|
|
11
12
|
| `pnpm openxiangda create` | 远端变更 | 创建、绑定并初始化应用 |
|
|
13
|
+
| `pnpm openxiangda workflow` | 远端变更 | 导出流程、导入到源码、规划版本登记、查看状态并显式同步到目标环境 |
|
|
12
14
|
| `pnpm openxiangda source` | 远端变更 | 配置应用源码仓库、查看状态或提交推送 |
|
|
13
15
|
| `pnpm openxiangda dev` | 本地写入 | 连接平台测试数据启动本地 Web,按需启动 Nest |
|
|
14
16
|
| `pnpm openxiangda check` | 本地写入 | 生成契约并在目标平台预检后执行检查、测试和构建 |
|
|
@@ -121,7 +121,16 @@ import { AttachmentFileList } from 'openxiangda/field-kit';
|
|
|
121
121
|
}
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
来源端点接受关键字和游标;页大小由 `source.pageSize` 固定。创建表单使用 `operation: 'create'` 和当前绑定值。
|
|
125
|
+
普通编辑表单使用 `operation: 'update', record: { id, expectedRevision }`,只传实际编辑的 `bindings`;平台以已保存记录合并这些编辑,检查行/字段更新权限及记录版本。没有编辑的绑定即使不可读,也由服务端参与查找,不返回它的原值。清空绑定传 `null`;最终提交仍由普通 Data API 验证必填和引用规则。
|
|
126
|
+
|
|
127
|
+
列表筛选使用 `operation: 'filter'`:只需要宿主资源及字段的读取权限,目标保持当前用户的读取投影和行策略。写入 `source.filters` 不参与筛选,所以历史停用或已不满足写入条件的引用仍可查询;调用中不能携带 `bindings`、`record`、`launch`、`action` 或任务上下文。如需只展示某一类身份,可声明至多 20 个常量条件,例如 `filterWhere: [{ field: 'kind', operator: 'eq', value: 'building' }]`;支持 `eq`/`in`,不接受字段绑定。没有目标资源读取权限时,不会返回候选。
|
|
128
|
+
|
|
129
|
+
普通生成表单自动传入保存上下文和实际编辑。自定义编辑表单通过 `SurfaceFieldRenderers.referenceBindings` 提供编辑值,`SurfaceFieldControl`/`MobileSurfaceFieldControl` 根据 `recordId` 和 `expectedRevision` 发送同样上下文。直接使用 `ResourceReferenceField` 时提供 `record` 和 `bindingEdits`。不传绑定编辑即使用保存值,不用把不可读字段填进浏览器。
|
|
130
|
+
|
|
131
|
+
目录筛选通过现有目录检索的 `purpose: 'filter'` 返回可选的历史停用项,并标明停用;普通成员选择仍只接受有效项。范围来源支持 `operation: 'filter'`,使用读取范围授权,包含停用身份;自定义范围筛选控件使用 `renderScopeFilter`,与编辑态 `renderScope` 分开。
|
|
132
|
+
|
|
133
|
+
含这些引用/目录字段或来源维度的编译包自动要求 `data.field-source-contexts` 版本 `1.0.0`,目标平台先升级后才能交付新包。
|
|
125
134
|
标准流程的具名动作发起表单由 `WorkflowSubmissionPage` 自动传递 `launch: { workflowCode, operationCode }`。
|
|
126
135
|
平台核对当前环境已部署的流程、动作、输入字段映射和当前用户动作权限;不要求额外授予宿主表单 CRUD 权限。
|
|
127
136
|
普通 CRUD 表单不传此绑定,继续检查对应创建/修改权限。自定义选择器可通过 `searchResource` 的同名选项传递
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
|
|
27
27
|
### 应用骨架优先与视觉页面边界
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
有管理任务的应用可选择源码后台模板,并在 ui.admin.shell 中挂载唯一外壳。应用拥有后台布局、资源列表和用户页面源码,可自由修改或重构;SDK 保留路由、当前用户权限与数据行为。模板选择是初始化,不增加第二套后台。
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
资源页通过 resourcePages contribution 替换,列表从 openxiangda/resource 导入公共控制器和可组合块。未声明替换的旧应用仍用 SDK 默认页。PC/移动端和登录外观分别选择源码模板;登录共性行为留在 SDK。详见[源码模板与业务场景](application-templates.md)。
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
按真实任务实现并分别验证后台、表单、数据列表、按需流程及 PC/移动入口。没有管理任务时不强行添加后台;图片和原型只提供视觉参考,不能替代实际路由、授权、业务交互和验收。
|
|
34
34
|
|
|
35
35
|
| 任务 | 页面与组件起点 |
|
|
36
36
|
| --- | --- |
|
|
@@ -359,7 +359,17 @@ typed timeline 和 operation descriptors。业务字段继续使用平台 `Surfa
|
|
|
359
359
|
PC canonical 路径为 `/tasks/:taskId` 和 `/workflows/:instanceId`,使用独立全屏页面而不进入
|
|
360
360
|
后台 Shell;旧 admin 详情路径不存在。桌面和移动使用独立
|
|
361
361
|
renderer,但共享同一授权与命令生命周期。主决策操作固定在底部,
|
|
362
|
-
|
|
362
|
+
低频操作进入“更多”;意见输入延迟到动作确认层,页面不常驻空白意见表单。
|
|
363
|
+
审批内容与本节点补填先于审批进度,附件独立展示,资料变更收进进度卡底部,默认折叠并在展开后加载,不使用内容 Tabs。
|
|
364
|
+
PC 使用摘要页头、内容主栏与审批进度/参与人侧栏;移动端使用居中流程名称、纵向字段列表和底部单行操作栏。当前会签计数只读取当前任务的真实参与人,历史节点不推测审批模式。
|
|
365
|
+
宽度足够时桌面右侧显示进度栏;窄屏按同一阅读顺序堆叠。移动端显示邻近三个节点,并可查看全部进度。
|
|
366
|
+
|
|
367
|
+
审批详情不展示私有草稿入口。服务端提供的“保存”位于“更多”,仅保存当前填写的申请数据,不推进审批流程。`uiSchema.presentation: direct` 的操作直接复用同一提交控制器,保留权限、字段校验、数据修订与原请求恢复边界。
|
|
368
|
+
操作顺序消费服务端可选的 `prominence`(正整数越小越突出,`null` 表示更多)和 `consequence`,
|
|
369
|
+
不由应用猜测权限或重写命令。手机最多两项主操作与更多入口保持单行,桌面最多三项主操作;
|
|
370
|
+
配套服务端将同意/重新提交、退回、拒绝申请依次排列,保存进入更多。
|
|
371
|
+
旧服务端缺少这些元数据时沿用其 `placement`/`emphasis`。表单、上传、原请求恢复、
|
|
372
|
+
权限撤回和写入成功后刷新失败仍由同一 SDK controller 处理。
|
|
363
373
|
页面只显示非系统业务字段与节点内操作,不展示 UUID、revision、事件序列或技术信息区;
|
|
364
374
|
`stale` 不产生常驻提示,真实命令冲突才显示刷新提示。
|
|
365
375
|
应用只有在业务交互确实不能由标准页表达时才声明成对的 custom detail route。
|
|
@@ -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.63.1 skill install --force
|
|
72
|
+
pnpm dlx openxiangda@2.63.1 auth status --base-url <平台地址> --json
|
|
73
|
+
pnpm dlx openxiangda@2.63.1 login --cwd my-app --base-url https://platform.example.com
|
|
74
|
+
pnpm dlx openxiangda@2.63.1 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
|
|
@@ -79,6 +79,8 @@ pnpm openxiangda dev
|
|
|
79
79
|
|
|
80
80
|
将两处示例平台地址替换为同一个目标地址。`create` 先核对目标与当前登录平台,再创建本地目录、安装依赖并初始化远端应用;新应用不会自动沿用文件中最后登录的站点。CI 使用原有成对的 `OPENXIANGDA_BASE_URL` 和 `OPENXIANGDA_TOKEN` 时,可以由该显式地址指定目标。
|
|
81
81
|
|
|
82
|
+
已有明确业务时可加 `--scenario visitor` 或 `--scenario crud`,使用 `template list --json` 查看四类布局、风格和模块。模板复制为应用源码,可独立修改;详见[源码模板与业务场景](application-templates.md)。
|
|
83
|
+
|
|
82
84
|
初始化中断后重试同一命令;已有目录会核对原平台绑定,不能通过 `create` 改绑到其他站点。地址不一致时先检查目标并登录正确的平台;确需把工作区切换到其他站点时,使用 `openxiangda link rebind --base-url <新平台>` 显式换绑(见[跨站点与换绑](#cross-site)),不手改 link 文件绕过检查,也不要使用内部 provision 接口另建应用。创建操作应在用户要求创建应用的范围内执行。
|
|
83
85
|
|
|
84
86
|
进入项目后使用 `pnpm openxiangda`,由项目依赖和锁文件决定版本。查看使用资料运行 `pnpm openxiangda docs`;查看单一主题运行 `pnpm openxiangda docs frontend`。安装到其他 AI 工具时使用 `skill install --destination <Skill根目录>`。
|
|
@@ -203,9 +205,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
203
205
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
204
206
|
|
|
205
207
|
```bash
|
|
206
|
-
pnpm dlx openxiangda@2.
|
|
207
|
-
pnpm dlx openxiangda@2.
|
|
208
|
-
pnpm dlx openxiangda@2.
|
|
208
|
+
pnpm dlx openxiangda@2.63.1 auth status --base-url <平台> --json
|
|
209
|
+
pnpm dlx openxiangda@2.63.1 source resolve <仓库URL> --base-url <平台> --json
|
|
210
|
+
pnpm dlx openxiangda@2.63.1 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
209
211
|
```
|
|
210
212
|
|
|
211
213
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|
|
@@ -59,6 +59,25 @@ MCP 使用项目锁定的根包;在客户端配置下列 stdio 启动参数,
|
|
|
59
59
|
}
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
+
## template_list
|
|
63
|
+
|
|
64
|
+
发现源码模板。列出业务场景、模块依赖、四类源码外壳和主题;创建使用 CLI,不执行远端操作。
|
|
65
|
+
|
|
66
|
+
- 只读:是
|
|
67
|
+
- 可替换文件或改变远端状态:否
|
|
68
|
+
- 幂等:否
|
|
69
|
+
|
|
70
|
+
输入参数:
|
|
71
|
+
|
|
72
|
+
```json
|
|
73
|
+
{
|
|
74
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
75
|
+
"type": "object",
|
|
76
|
+
"properties": {},
|
|
77
|
+
"additionalProperties": false
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
62
81
|
## workspace_context
|
|
63
82
|
|
|
64
83
|
查看工作区。首先读取当前项目、工具链版本和绑定,不运行构建或创建远端对象。
|
|
@@ -1356,6 +1375,225 @@ MCP 使用项目锁定的根包;在客户端配置下列 stdio 启动参数,
|
|
|
1356
1375
|
}
|
|
1357
1376
|
```
|
|
1358
1377
|
|
|
1378
|
+
## workflow_sync
|
|
1379
|
+
|
|
1380
|
+
同步流程到目标环境。按目标流程修订号显式同步,默认同时更新在途和新申请;复用发布及版本适用规则。保留指定人员边界。
|
|
1381
|
+
|
|
1382
|
+
- 只读:否
|
|
1383
|
+
- 可替换文件或改变远端状态:是
|
|
1384
|
+
- 幂等:是
|
|
1385
|
+
|
|
1386
|
+
输入参数:
|
|
1387
|
+
|
|
1388
|
+
```json
|
|
1389
|
+
{
|
|
1390
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1391
|
+
"type": "object",
|
|
1392
|
+
"properties": {
|
|
1393
|
+
"workflowCode": {
|
|
1394
|
+
"type": "string",
|
|
1395
|
+
"minLength": 1,
|
|
1396
|
+
"maxLength": 128
|
|
1397
|
+
},
|
|
1398
|
+
"fromEnvironment": {
|
|
1399
|
+
"type": "string",
|
|
1400
|
+
"enum": [
|
|
1401
|
+
"test",
|
|
1402
|
+
"production"
|
|
1403
|
+
]
|
|
1404
|
+
},
|
|
1405
|
+
"toEnvironment": {
|
|
1406
|
+
"type": "string",
|
|
1407
|
+
"enum": [
|
|
1408
|
+
"test",
|
|
1409
|
+
"production"
|
|
1410
|
+
]
|
|
1411
|
+
},
|
|
1412
|
+
"expectedSourceHeadRevision": {
|
|
1413
|
+
"type": "integer",
|
|
1414
|
+
"minimum": 1,
|
|
1415
|
+
"maximum": 9007199254740991
|
|
1416
|
+
},
|
|
1417
|
+
"expectedTargetHeadRevision": {
|
|
1418
|
+
"type": "integer",
|
|
1419
|
+
"minimum": 1,
|
|
1420
|
+
"maximum": 9007199254740991
|
|
1421
|
+
},
|
|
1422
|
+
"operationId": {
|
|
1423
|
+
"type": "string",
|
|
1424
|
+
"minLength": 1,
|
|
1425
|
+
"maxLength": 128
|
|
1426
|
+
},
|
|
1427
|
+
"reason": {
|
|
1428
|
+
"type": "string",
|
|
1429
|
+
"minLength": 1,
|
|
1430
|
+
"maxLength": 1000
|
|
1431
|
+
},
|
|
1432
|
+
"scope": {
|
|
1433
|
+
"type": "string",
|
|
1434
|
+
"enum": [
|
|
1435
|
+
"running_and_new",
|
|
1436
|
+
"new_only"
|
|
1437
|
+
]
|
|
1438
|
+
},
|
|
1439
|
+
"acknowledgeExceptions": {
|
|
1440
|
+
"type": "boolean"
|
|
1441
|
+
},
|
|
1442
|
+
"copyHandlingDefaults": {
|
|
1443
|
+
"type": "boolean"
|
|
1444
|
+
}
|
|
1445
|
+
},
|
|
1446
|
+
"required": [
|
|
1447
|
+
"workflowCode",
|
|
1448
|
+
"fromEnvironment",
|
|
1449
|
+
"toEnvironment",
|
|
1450
|
+
"expectedSourceHeadRevision",
|
|
1451
|
+
"expectedTargetHeadRevision",
|
|
1452
|
+
"operationId",
|
|
1453
|
+
"reason"
|
|
1454
|
+
],
|
|
1455
|
+
"additionalProperties": false
|
|
1456
|
+
}
|
|
1457
|
+
```
|
|
1458
|
+
|
|
1459
|
+
## workflow_export
|
|
1460
|
+
|
|
1461
|
+
导出流程到工作区。只读导出环境中的规范定义、绑定和办理设置摘要;不包含运行记录或环境内部标识。
|
|
1462
|
+
|
|
1463
|
+
- 只读:否
|
|
1464
|
+
- 可替换文件或改变远端状态:否
|
|
1465
|
+
- 幂等:否
|
|
1466
|
+
|
|
1467
|
+
输入参数:
|
|
1468
|
+
|
|
1469
|
+
```json
|
|
1470
|
+
{
|
|
1471
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1472
|
+
"type": "object",
|
|
1473
|
+
"properties": {
|
|
1474
|
+
"environment": {
|
|
1475
|
+
"default": "test",
|
|
1476
|
+
"description": "目标环境;默认 test,production 必须明确选择",
|
|
1477
|
+
"type": "string",
|
|
1478
|
+
"enum": [
|
|
1479
|
+
"test",
|
|
1480
|
+
"production"
|
|
1481
|
+
]
|
|
1482
|
+
},
|
|
1483
|
+
"workflowCode": {
|
|
1484
|
+
"type": "string",
|
|
1485
|
+
"minLength": 1
|
|
1486
|
+
},
|
|
1487
|
+
"out": {
|
|
1488
|
+
"type": "string",
|
|
1489
|
+
"minLength": 1
|
|
1490
|
+
}
|
|
1491
|
+
},
|
|
1492
|
+
"required": [
|
|
1493
|
+
"workflowCode",
|
|
1494
|
+
"out"
|
|
1495
|
+
],
|
|
1496
|
+
"additionalProperties": false
|
|
1497
|
+
}
|
|
1498
|
+
```
|
|
1499
|
+
|
|
1500
|
+
## workflow_import
|
|
1501
|
+
|
|
1502
|
+
把流程导入源码。验证代码能力和摘要后修改工作区显式流程声明,保留人员配置边界。
|
|
1503
|
+
|
|
1504
|
+
- 只读:否
|
|
1505
|
+
- 可替换文件或改变远端状态:是
|
|
1506
|
+
- 幂等:否
|
|
1507
|
+
|
|
1508
|
+
输入参数:
|
|
1509
|
+
|
|
1510
|
+
```json
|
|
1511
|
+
{
|
|
1512
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1513
|
+
"type": "object",
|
|
1514
|
+
"properties": {
|
|
1515
|
+
"path": {
|
|
1516
|
+
"type": "string",
|
|
1517
|
+
"minLength": 1
|
|
1518
|
+
},
|
|
1519
|
+
"adoptHandlingDefaults": {
|
|
1520
|
+
"default": false,
|
|
1521
|
+
"type": "boolean"
|
|
1522
|
+
}
|
|
1523
|
+
},
|
|
1524
|
+
"required": [
|
|
1525
|
+
"path"
|
|
1526
|
+
],
|
|
1527
|
+
"additionalProperties": false
|
|
1528
|
+
}
|
|
1529
|
+
```
|
|
1530
|
+
|
|
1531
|
+
## workflow_plan_registration
|
|
1532
|
+
|
|
1533
|
+
规划流程版本登记。服务器只读查询已有摘要和下一版本数字;write 只写源码版本数字,不写环境观察。
|
|
1534
|
+
|
|
1535
|
+
- 只读:否
|
|
1536
|
+
- 可替换文件或改变远端状态:否
|
|
1537
|
+
- 幂等:否
|
|
1538
|
+
|
|
1539
|
+
输入参数:
|
|
1540
|
+
|
|
1541
|
+
```json
|
|
1542
|
+
{
|
|
1543
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1544
|
+
"type": "object",
|
|
1545
|
+
"properties": {
|
|
1546
|
+
"environment": {
|
|
1547
|
+
"default": "test",
|
|
1548
|
+
"description": "目标环境;默认 test,production 必须明确选择",
|
|
1549
|
+
"type": "string",
|
|
1550
|
+
"enum": [
|
|
1551
|
+
"test",
|
|
1552
|
+
"production"
|
|
1553
|
+
]
|
|
1554
|
+
},
|
|
1555
|
+
"write": {
|
|
1556
|
+
"default": false,
|
|
1557
|
+
"type": "boolean"
|
|
1558
|
+
}
|
|
1559
|
+
},
|
|
1560
|
+
"additionalProperties": false
|
|
1561
|
+
}
|
|
1562
|
+
```
|
|
1563
|
+
|
|
1564
|
+
## workflow_status
|
|
1565
|
+
|
|
1566
|
+
查看流程源码同步状态。比较源声明、导入基线和环境摘要,显示待导回源码、待部署或冲突及未启用版本数量。
|
|
1567
|
+
|
|
1568
|
+
- 只读:是
|
|
1569
|
+
- 可替换文件或改变远端状态:否
|
|
1570
|
+
- 幂等:否
|
|
1571
|
+
|
|
1572
|
+
输入参数:
|
|
1573
|
+
|
|
1574
|
+
```json
|
|
1575
|
+
{
|
|
1576
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1577
|
+
"type": "object",
|
|
1578
|
+
"properties": {
|
|
1579
|
+
"environment": {
|
|
1580
|
+
"default": "test",
|
|
1581
|
+
"description": "目标环境;默认 test,production 必须明确选择",
|
|
1582
|
+
"type": "string",
|
|
1583
|
+
"enum": [
|
|
1584
|
+
"test",
|
|
1585
|
+
"production"
|
|
1586
|
+
]
|
|
1587
|
+
},
|
|
1588
|
+
"workflowCode": {
|
|
1589
|
+
"type": "string",
|
|
1590
|
+
"minLength": 1
|
|
1591
|
+
}
|
|
1592
|
+
},
|
|
1593
|
+
"additionalProperties": false
|
|
1594
|
+
}
|
|
1595
|
+
```
|
|
1596
|
+
|
|
1359
1597
|
## workflow_node_configurations
|
|
1360
1598
|
|
|
1361
1599
|
查看流程有效参数。修改已部署流程前,读取管理员维护的节点配置。已有任务和后续节点进入使用各自适用版本。
|
|
@@ -1212,3 +1212,36 @@ subject update和来源guards提交实际改变的派生字段;普通补填仍
|
|
|
1212
1212
|
不改变字段授权、审批参数或流程版本;不提供该选项的应用保持既有行为。
|
|
1213
1213
|
|
|
1214
1214
|
`commandHandlers.resubmit` 仅绑定固定 correction 节点的业务重校验。普通 `return_review` 任务继续由 Kernel 标准 `resubmit` 办理:Surface 不返回 correction operationCode,审批人不需要起草提交 capability。无需增加 `taskKinds` 字段、改动已有定义版本或重建在途实例;直接对普通退回任务调用 correction 业务动作仍被拒绝。
|
|
1215
|
+
|
|
1216
|
+
## 画布、源码与测试环境同步
|
|
1217
|
+
|
|
1218
|
+
管理员可以在画布修改节点和条件并直接发布。发布默认更新在途申请与新申请,当前已经进入的任务继续保留其人员、操作按钮、页面与字段权限;后续流转使用新版本。只让新申请生效、保留个别在途申请属于显式例外。
|
|
1219
|
+
|
|
1220
|
+
应用源码与画布共同引用同一份不可变定义和绑定登记。画布修改后,后续仅改页面或后端的应用部署会保留兼容的画布版本。两边都改了流程而基线不一致时,部署返回 `WORKFLOW_SOURCE_DIVERGED`,需要先把正式环境流程导回源码:
|
|
1221
|
+
|
|
1222
|
+
```sh
|
|
1223
|
+
pnpm openxiangda workflow export request-review --environment production --out platform/workflows/request-review.bundle.json
|
|
1224
|
+
pnpm openxiangda workflow import platform/workflows/request-review.bundle.json --to source
|
|
1225
|
+
pnpm openxiangda workflow plan-registration --environment test --write
|
|
1226
|
+
pnpm openxiangda workflow status --environment test
|
|
1227
|
+
```
|
|
1228
|
+
|
|
1229
|
+
`export` 包含规范定义、绑定、任务页面与代码步骤契约、办理设置摘要;不含申请、待办、审批日志、密钥或环境内部标识。源码本来声明的固定用户标识会保留;管理员实际指定人员的覆盖只导出数量。`import` 只改 `openxiangda.config.ts` 中显式的 `workflows` 声明及 `platform/workflows/<code>.lock.json`,保留其他代码。新增或变化的代码步骤、页面契约需要先由开发者补齐;缺少这些契约的导入会在写文件前拒绝。
|
|
1230
|
+
|
|
1231
|
+
可加 `--adopt-handling-defaults` 把办理模式与按钮开关、文案作为源码默认值。它保留原有必需动作,不把管理员指定人员复制成源码默认值。导入的摘要基线写在源码 activation 的 `sourceBase`;来源环境与修订号只保留在审计锁文件,不进入密封应用制品。锁文件与导出的规范文档可能包含合法源码用户引用,应按项目访问权限管理。
|
|
1232
|
+
|
|
1233
|
+
`plan-registration` 是服务器只读查询,返回相同内容已有的版本号或下一整数;`--write` 只把数字写入本机源码。最终准备仍检查编号冲突、内容冲突和跳号。准备成功但后续部署失败的版本保留为未启用的不可变登记,相同制品可复用这些数字;不会删除或重排。`status` 显示 `in_sync`、`behind`、`ahead`、`diverged`、`not_active` 和未启用登记数量。它没有远端写入。首次导入之前,状态比较使用目标环境当前应用版本的源码声明作为基线;跨环境导入的来源修订不会冒充目标环境基线。
|
|
1234
|
+
|
|
1235
|
+
如果只希望把正式环境的流程规则同步到已有测试环境,可先读取两边的 `status`,记录实际流程 Head 修订号,再显式执行同步:
|
|
1236
|
+
|
|
1237
|
+
```sh
|
|
1238
|
+
pnpm openxiangda workflow sync request-review --from production --to test \
|
|
1239
|
+
--expected-source-head 14 --expected-target-head 3 \
|
|
1240
|
+
--operation-id workflow-sync-20261012-01 --reason '同步正式环境流程到测试'
|
|
1241
|
+
```
|
|
1242
|
+
|
|
1243
|
+
示例修订号必须替换成实际读取值。源和目标必须属于同一应用且均有已启用流程。同步检查目标现有页面、代码步骤、角色与固定人员引用,复用源版本,并通过正常发布与在途适用规则生效。默认同时更新在途和新申请;`--new-only` 只更新新申请。存在不兼容在途申请时,在确认预览结果后加 `--acknowledge-exceptions`,这些申请继续保留原版本。
|
|
1244
|
+
|
|
1245
|
+
`--copy-handling-defaults` 可复制办理模式、按钮和角色覆盖;两边的指定人员覆盖都保持环境所有。源环境不被修改。同步后的目标画布草稿若基线已经过时,需要重读或合并,不能覆盖新的 Head。请求不确定时,保留相同操作标识、两个修订号和完整参数重试;不要换标识重做。CLI 与 MCP 共用这些权限、校验、幂等和发布入口。
|
|
1246
|
+
|
|
1247
|
+
部署前记录目标流程修订号,激活前再次核对。期间若有人发布了画布,激活返回 `WORKFLOW_SOURCE_HEAD_CHANGED`,应用 Head 与流程 Head 在同一事务回滚;已准备的不可变登记保留。同步成功、源码检查成功、包发布与真实审批验收分别核对。
|
package/releases/2.20.1.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
-
"version": "2.20.1",
|
|
4
|
-
"status": "reviewed",
|
|
5
|
-
"title": "OpenXiangda 2.20.1:contracts 资源级审计列排序修复",
|
|
6
|
-
"summary": "openxiangda-contracts 修复资源级 surface list defaultSort 对平台审计列(created_at/updated_at 等)的 fail-closed 误拒:与命名视图 defaultSort、Data API order 的系统列规则对齐。devkit 与 openxiangda 2.20.0 已含的行为不变。",
|
|
7
|
-
"newFeatures": [
|
|
8
|
-
"资源级 surface list defaultSort 支持平台审计列(created_at/updated_at/created_by/updated_by/id/revision),不再按未知字段 fail-closed;补回归测试。"
|
|
9
|
-
],
|
|
10
|
-
"fixes": [],
|
|
11
|
-
"affectedUsers": [
|
|
12
|
-
"所有使用数据策略、行级权限、匿名公开访问的 OpenXiangda 2.0 应用开发者与 AI 开发会话。"
|
|
13
|
-
],
|
|
14
|
-
"upgradeSteps": [
|
|
15
|
-
"应用把 openxiangda 精确钉扎到 2.20.0 并重跑 pnpm openxiangda check;出现新告警/报错时按提示调整策略声明。",
|
|
16
|
-
"使用 created_by 行规则需平台服务端配套版本;升级前请确认平台列车已包含该修复。"
|
|
17
|
-
],
|
|
18
|
-
"knownLimitations": [
|
|
19
|
-
"created_by 行规则的运行时 WITH CHECK 正向匹配修复仍随平台列车交付。"
|
|
20
|
-
],
|
|
21
|
-
"issues": [],
|
|
22
|
-
"compatibility": {
|
|
23
|
-
"node": ">=24",
|
|
24
|
-
"workspaceGenerations": "v2",
|
|
25
|
-
"platform": "无强制平台配合要求;created_by 行规则的运行时生效需平台列车跟进。",
|
|
26
|
-
"v1": "V1 工作区不受影响。"
|
|
27
|
-
},
|
|
28
|
-
"sha256": "043a0bdb2615be80b4efff4a9f2e58107965e261e9294050a1decee22a6b7e6c",
|
|
29
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.20.1"
|
|
30
|
-
}
|
package/releases/2.20.2.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
-
"version": "2.20.2",
|
|
4
|
-
"status": "reviewed",
|
|
5
|
-
"title": "OpenXiangda 2.20.2:应用制品断线去重修复",
|
|
6
|
-
"summary": "Devkit 按平台制品收据的规范分类复用已验证的 Application v2 制品。修复 frontend/config/contracts/manifest 在平台已有相同摘要时仍重复完整上传的问题,保持 AppPackage 字节、权限和部署状态的原有权威边界。",
|
|
7
|
-
"newFeatures": [],
|
|
8
|
-
"fixes": [
|
|
9
|
-
"断线恢复时,仅在摘要、平台规范分类、Content-Type 和字节大小都匹配时复用已存制品;已存的大前端制品不再重复上传。"
|
|
10
|
-
],
|
|
11
|
-
"affectedUsers": [
|
|
12
|
-
"经慢速或易断网络向支持 Application v2 制品收据的私有平台部署应用的 OpenXiangda 2.0 开发者。"
|
|
13
|
-
],
|
|
14
|
-
"upgradeSteps": [
|
|
15
|
-
"将应用钉扎的 openxiangda-devkit-core 更新到 2.18.2,并按锁文件安装;如统一入口也被钉扎则升级到 openxiangda 2.20.2。",
|
|
16
|
-
"先回读原 DeploymentRun 和环境 Head;若此前失败仅发生在制品上传且无新运行,按 CLI 的可重试指针从原候选执行 deploy。"
|
|
17
|
-
],
|
|
18
|
-
"knownLimitations": [
|
|
19
|
-
"平台尚未存储的制品仍需完整上传;本修复不能改善首次传输的链路速度或替代真实角色、CAS、人事与通知业务验收。"
|
|
20
|
-
],
|
|
21
|
-
"issues": [],
|
|
22
|
-
"compatibility": {
|
|
23
|
-
"node": ">=24",
|
|
24
|
-
"workspaceGenerations": "v2",
|
|
25
|
-
"platform": "复用需要平台 Application v2 GET 制品收据返回规范分类、摘要、媒体类型和字节大小;无新数据库迁移。",
|
|
26
|
-
"v1": "V1 工作区与维护引擎不受影响。"
|
|
27
|
-
},
|
|
28
|
-
"sha256": "f5a6101d822234b7f1bf093c878692b94144f64dd829e99e72dc241780d5909e",
|
|
29
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.20.2"
|
|
30
|
-
}
|
package/releases/2.20.3.json
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
-
"version": "2.20.3",
|
|
4
|
-
"status": "reviewed",
|
|
5
|
-
"title": "OpenXiangda 2.20.3:标准日期时间选择修复",
|
|
6
|
-
"summary": "修复指定时区的 PC 标准日期时间控件缺少小时和分钟列的问题,普通字段、生成表单、筛选与范围共用修复,不改变 UTC 存储和移动端协议。",
|
|
7
|
-
"newFeatures": [],
|
|
8
|
-
"fixes": [
|
|
9
|
-
"分钟精度显式显示时、分列,秒精度显式显示时、分、秒列。CLI 新应用模板同步钉扎修复后的根包。"
|
|
10
|
-
],
|
|
11
|
-
"affectedUsers": [
|
|
12
|
-
"使用 Field Kit 指定时区日期时间输入的 OpenXiangda 2.0 应用。"
|
|
13
|
-
],
|
|
14
|
-
"upgradeSteps": [
|
|
15
|
-
"将应用精确依赖升级到 openxiangda 2.20.3,按锁文件安装并验证日期选择后发布预发布版本。"
|
|
16
|
-
],
|
|
17
|
-
"knownLimitations": [
|
|
18
|
-
"服务端业务时间窗、权限、DST 不存在和重复墙上时间校验保持原约束。本修复不替代应用真实角色验收。"
|
|
19
|
-
],
|
|
20
|
-
"issues": [],
|
|
21
|
-
"compatibility": {
|
|
22
|
-
"node": ">=24",
|
|
23
|
-
"workspaceGenerations": "v2",
|
|
24
|
-
"platform": "无需服务端或数据库迁移。",
|
|
25
|
-
"v1": "V1 工作区与维护引擎不受影响。"
|
|
26
|
-
},
|
|
27
|
-
"sha256": "bd5d7d513df7ccc123d949842a5a987e585002848e98d52569190a687b212464",
|
|
28
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.20.3"
|
|
29
|
-
}
|
package/releases/2.20.4.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
-
"version": "2.20.4",
|
|
4
|
-
"status": "reviewed",
|
|
5
|
-
"title": "OpenXiangda 2.20.4:Native 事件审计来源契约修复",
|
|
6
|
-
"summary": "严格接收平台已有的 Native 数据事件操作来源审计信息,避免具名业务动作和封存数据修复事件在处理器执行前被错误拒绝。",
|
|
7
|
-
"newFeatures": [],
|
|
8
|
-
"fixes": [
|
|
9
|
-
"Native 事件 actor 显式支持有界 initiatedBy、businessAction 和 platformMaintenance;未知字段、凭据形字段和错误签名仍严格拒绝。"
|
|
10
|
-
],
|
|
11
|
-
"affectedUsers": [
|
|
12
|
-
"使用 Nest 订阅具名业务动作或封存数据修复所产生 Native 数据事件的 OpenXiangda 2.0 应用。"
|
|
13
|
-
],
|
|
14
|
-
"upgradeSteps": [
|
|
15
|
-
"将应用精确依赖升级到 openxiangda 2.20.4,按锁文件安装并刷新工作区技能,验证后部署测试环境。",
|
|
16
|
-
"需要恢复的既有失败事件应核对原投递后使用正式 replay API,不重复提交业务动作。"
|
|
17
|
-
],
|
|
18
|
-
"knownLimitations": [
|
|
19
|
-
"本修复不自动重放历史死信,也不替代应用真实角色、通知幂等和业务结果验收。"
|
|
20
|
-
],
|
|
21
|
-
"issues": [],
|
|
22
|
-
"compatibility": {
|
|
23
|
-
"node": ">=24",
|
|
24
|
-
"workspaceGenerations": "v2",
|
|
25
|
-
"platform": "匹配现有平台 Native 事件生产者,无需服务端或数据库迁移。",
|
|
26
|
-
"v1": "V1 工作区与维护引擎不受影响。"
|
|
27
|
-
},
|
|
28
|
-
"sha256": "b797b6e42ef1b54c312f40b14ecaea7064be9799d98bc9b200ed7dd88936e821",
|
|
29
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.20.4"
|
|
30
|
-
}
|
package/releases/2.31.5.json
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
-
"version": "2.31.5",
|
|
4
|
-
"status": "reviewed",
|
|
5
|
-
"title": "OpenXiangda 2.31.5:应用 Agent 自定义卡片",
|
|
6
|
-
"summary": "应用可以把填写卡和结果卡的自定义脚本随同一发布版本交付,由平台在隔离卡片 Host 中展示。",
|
|
7
|
-
"newFeatures": [
|
|
8
|
-
"ai.agent.inputCard 和 resultCard 可声明受限的 agent-cards/*.js 资源;发布时核验脚本进入同一前端制品。",
|
|
9
|
-
"openxiangda/agent-card SDK 提供状态接收、只读选项查询、固定任务提交和尺寸同步;中文开发资料与 Skill 给出构建和验收示例。"
|
|
10
|
-
],
|
|
11
|
-
"fixes": [],
|
|
12
|
-
"affectedUsers": [
|
|
13
|
-
"需要在平台业务 Agent 中展示应用自有填写或结果布局的 OpenXiangda 2.0 应用开发者。"
|
|
14
|
-
],
|
|
15
|
-
"upgradeSteps": [
|
|
16
|
-
"升级 openxiangda 并更新锁文件;保留标准 inputCard/resultCard 字段声明作为资源失败时的回退。",
|
|
17
|
-
"将使用 SDK 的卡片构建为单文件 IIFE 放入前端 dist/agent-cards/,配置对应 resource,然后运行 check 与预发 deploy。",
|
|
18
|
-
"确认平台已发布配套 Agent 卡片资源端点与隔离 Host;在预发验证歧义选择、刷新、重复提交、权限拒绝与业务回读。"
|
|
19
|
-
],
|
|
20
|
-
"knownLimitations": [
|
|
21
|
-
"首版消息桥是平台限定协议,不宣称与官方 MCP Apps 线级兼容;卡片只支持已声明的选项查询和固定提交。",
|
|
22
|
-
"结果卡只收到已声明的标量字段;复杂列表、附件和额外工具调用仍需后续独立契约。"
|
|
23
|
-
],
|
|
24
|
-
"issues": [],
|
|
25
|
-
"compatibility": {
|
|
26
|
-
"node": ">=24",
|
|
27
|
-
"workspaceGenerations": "v2",
|
|
28
|
-
"platform": "自定义卡片需要配套 Agent Center 资源解析服务和无同源 iframe Host。",
|
|
29
|
-
"v1": "独立 V1 引擎和工作区不受影响。"
|
|
30
|
-
},
|
|
31
|
-
"sha256": "b674dd23dcb5fc9e00a7af758f01291295c78b8b6756b43d5f678ba79e4df345",
|
|
32
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.31.5"
|
|
33
|
-
}
|
package/releases/2.59.3.json
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "openxiangda.release-notes/v1",
|
|
3
|
-
"version": "2.59.3",
|
|
4
|
-
"status": "reviewed",
|
|
5
|
-
"title": "开发者AI应用自助操作与主线工具组合",
|
|
6
|
-
"summary": "让AI沿用当前应用权限直接诊断事件、复用加密环境凭据、配置通知和恢复指定投递;发行同源主线已评审的流程及编译契约。",
|
|
7
|
-
"newFeatures": [
|
|
8
|
-
"admin operations和MCP application_operations发现20项有界操作;admin execute及application_operation直接执行,必须明确环境,密钥仅返回元信息。",
|
|
9
|
-
"角色审批可按固定代码步骤或事实的选人结果取当前有效角色候选;平台必须提供workflow.role-input-selection能力,缺失时拒绝新声明。",
|
|
10
|
-
"流程表单支持已加载固定子表行及按原Native资源授权读取材料;流程图支持展开已声明代码逻辑说明。"
|
|
11
|
-
],
|
|
12
|
-
"fixes": [
|
|
13
|
-
"当前能力目录完整合法闭包不再受旧64项上限误拒绝;未知代码、重复项及制品绑定仍拒绝。",
|
|
14
|
-
"补正可编辑未参与流转事实投影的一层owned子表;固定子表条件隐藏采用当前表单值。",
|
|
15
|
-
"流程画布就绪后才开放导航,用户导航不再被迟到初始化覆盖;大型AppSpec支持512文件并保留原字节界限。"
|
|
16
|
-
],
|
|
17
|
-
"affectedUsers": [
|
|
18
|
-
"使用V2开发者CLI/MCP进行应用运维,或使用本批流程/编译增强的应用。稳定V1独立维护。"
|
|
19
|
-
],
|
|
20
|
-
"upgradeSteps": [
|
|
21
|
-
"精确更新完整工具组合,刷新工作区Skill和AGENTS平台区块并重启MCP。先读docs application-operations及admin operations --json。",
|
|
22
|
-
"共享校验器须与平台安装的openxiangda-contracts 2.71.0配对;已有生产应用保持原不可变版本,升级工具不代表重新部署业务。"
|
|
23
|
-
],
|
|
24
|
-
"knownLimitations": [
|
|
25
|
-
"沿用当前应用管理授权;首次账号授权、权限委托和外部身份目录维护仍由原owner处理。旧平台缺少接口时明确拒绝,不使用SQL或保护绕过。",
|
|
26
|
-
"通道健康成功不证明实际老师收件或已读。恢复只处理指定原投递,不自动导入、重建业务、批量重发历史通知或读取密钥明文。"
|
|
27
|
-
],
|
|
28
|
-
"issues": [],
|
|
29
|
-
"compatibility": {
|
|
30
|
-
"node": ">=24",
|
|
31
|
-
"platform": "共享纯校验器同源配对;新增角色选人声明要求workflow.role-input-selection@1.0.0",
|
|
32
|
-
"v1": "V1不消费本批V2契约或运行时"
|
|
33
|
-
},
|
|
34
|
-
"sha256": "b09fb5780d5ceea6c72a61c174952039396debc774d9b4249aef79794308bb72",
|
|
35
|
-
"url": "https://github.com/1377385356/openxiangda/releases/tag/v2.59.3"
|
|
36
|
-
}
|