openxiangda 2.59.3-http.0 → 2.60.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/dist/browser/admin-contributions.d.ts.map +1 -1
- package/dist/browser/admin-contributions.js +3 -4
- package/dist/browser/admin-contributions.js.map +1 -1
- package/dist/browser/application.d.ts +4 -2
- package/dist/browser/application.d.ts.map +1 -1
- package/dist/browser/application.js +2 -2
- package/dist/browser/application.js.map +1 -1
- package/dist/browser/components/platform-fields/AttachmentFileList.d.ts +5 -0
- package/dist/browser/components/platform-fields/AttachmentFileList.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/AttachmentFileList.js +11 -0
- package/dist/browser/components/platform-fields/AttachmentFileList.js.map +1 -1
- package/dist/browser/components/platform-fields/DateTimeField.js +1 -1
- package/dist/browser/components/platform-fields/DateTimeField.js.map +1 -1
- package/dist/browser/components/platform-fields/MobileDateTimeField.js +1 -1
- package/dist/browser/components/platform-fields/MobileDateTimeField.js.map +1 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.d.ts +2 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/MobileManagedFileField.js +4 -4
- package/dist/browser/components/platform-fields/MobileManagedFileField.js.map +1 -1
- package/dist/browser/components/platform-fields/MobileZonedDateTimeField.d.ts +1 -1
- package/dist/browser/components/platform-fields/MobileZonedDateTimeField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/MobileZonedDateTimeField.js +3 -3
- package/dist/browser/components/platform-fields/MobileZonedDateTimeField.js.map +1 -1
- package/dist/browser/components/platform-fields/SubtableField.d.ts +6 -0
- package/dist/browser/components/platform-fields/SubtableField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/SubtableField.js +17 -10
- package/dist/browser/components/platform-fields/SubtableField.js.map +1 -1
- package/dist/browser/components/platform-fields/ZonedDateTimeField.d.ts +1 -1
- package/dist/browser/components/platform-fields/ZonedDateTimeField.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/ZonedDateTimeField.js +3 -2
- package/dist/browser/components/platform-fields/ZonedDateTimeField.js.map +1 -1
- package/dist/browser/components/platform-fields/zoned-date-time.d.ts +2 -0
- package/dist/browser/components/platform-fields/zoned-date-time.d.ts.map +1 -1
- package/dist/browser/components/platform-fields/zoned-date-time.js +6 -0
- package/dist/browser/components/platform-fields/zoned-date-time.js.map +1 -1
- package/dist/browser/components/resource/SurfaceFields.d.ts +5 -0
- package/dist/browser/components/resource/SurfaceFields.d.ts.map +1 -1
- package/dist/browser/components/resource/SurfaceFields.js +9 -9
- package/dist/browser/components/resource/SurfaceFields.js.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts +15 -2
- package/dist/browser/components/workflow/StandardWorkflowPages.d.ts.map +1 -1
- package/dist/browser/components/workflow/StandardWorkflowPages.js +115 -45
- package/dist/browser/components/workflow/StandardWorkflowPages.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowDiagram.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowDiagram.js +12 -5
- package/dist/browser/components/workflow/WorkflowDiagram.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowFlowCanvas.js +14 -7
- package/dist/browser/components/workflow/WorkflowFlowCanvas.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js +4 -2
- package/dist/browser/components/workflow/WorkflowNodeConfigurationEditor.js.map +1 -1
- package/dist/browser/components/workflow/WorkflowTaskForm.d.ts +9 -1
- package/dist/browser/components/workflow/WorkflowTaskForm.d.ts.map +1 -1
- package/dist/browser/components/workflow/WorkflowTaskForm.js +32 -3
- package/dist/browser/components/workflow/WorkflowTaskForm.js.map +1 -1
- package/dist/browser/components/workflow/standard-process-values.d.ts +2 -2
- package/dist/browser/components/workflow/standard-process-values.d.ts.map +1 -1
- package/dist/browser/components/workflow/standard-process-values.js +18 -3
- package/dist/browser/components/workflow/standard-process-values.js.map +1 -1
- package/dist/browser/components/workflow/workflow-graph-presentation.d.ts +1 -1
- package/dist/browser/components/workflow/workflow-graph-presentation.d.ts.map +1 -1
- package/dist/browser/components/workflow/workflow-graph-presentation.js +4 -3
- package/dist/browser/components/workflow/workflow-graph-presentation.js.map +1 -1
- package/dist/browser/components/workflow/workflow-submission-form.d.ts +9 -0
- package/dist/browser/components/workflow/workflow-submission-form.d.ts.map +1 -1
- package/dist/browser/components/workflow/workflow-submission-form.js +34 -1
- package/dist/browser/components/workflow/workflow-submission-form.js.map +1 -1
- package/dist/browser/navigation-guard.d.ts +4 -1
- package/dist/browser/navigation-guard.d.ts.map +1 -1
- package/dist/browser/navigation-guard.js +39 -10
- package/dist/browser/navigation-guard.js.map +1 -1
- package/dist/browser/styles.css +19 -0
- package/dist/browser/workflow-definitions.d.ts +14 -1
- package/dist/browser/workflow-definitions.d.ts.map +1 -1
- package/dist/browser/workflow-definitions.js +8 -3
- package/dist/browser/workflow-definitions.js.map +1 -1
- package/documentation/AGENTS.md +1 -0
- package/documentation/administration.md +5 -2
- package/documentation/application-operations.md +150 -0
- package/documentation/appspec.md +1 -1
- package/documentation/backend.md +21 -0
- package/documentation/delivery.md +31 -2
- package/documentation/getting-started.md +7 -7
- package/documentation/manifest.json +15 -9
- package/documentation/reference/cli.md +1 -1
- package/documentation/reference/mcp.md +1120 -0
- package/documentation/workflow-events.md +73 -5
- package/package.json +32 -23
- package/releases/2.20.2.json +30 -0
- package/releases/2.20.3.json +29 -0
- package/releases/2.60.0.json +38 -0
- package/skills/manifest.json +1 -1
- package/skills/openxiangda-v2/SKILL.md +5 -4
- package/skills/openxiangda-v2/references/administration.md +5 -2
- package/skills/openxiangda-v2/references/application-operations.md +150 -0
- package/skills/openxiangda-v2/references/appspec.md +1 -1
- package/skills/openxiangda-v2/references/backend.md +21 -0
- package/skills/openxiangda-v2/references/cli.md +1 -1
- package/skills/openxiangda-v2/references/delivery.md +31 -2
- package/skills/openxiangda-v2/references/getting-started.md +7 -7
- package/skills/openxiangda-v2/references/mcp.md +1120 -0
- package/skills/openxiangda-v2/references/workflow-events.md +73 -5
- package/releases/2.0.0.json +0 -50
- package/releases/2.0.1.json +0 -39
- package/releases/2.1.0.json +0 -44
- package/releases/2.1.1.json +0 -48
- package/releases/2.10.0.json +0 -42
- package/releases/2.11.0.json +0 -41
- package/releases/2.12.0.json +0 -38
- package/releases/2.13.0.json +0 -41
- package/releases/2.13.1.json +0 -33
- package/releases/2.13.2.json +0 -31
- package/releases/2.14.0.json +0 -41
- package/releases/2.15.0.json +0 -40
- package/releases/2.16.0.json +0 -41
- package/releases/2.17.0.json +0 -39
- package/releases/2.17.1.json +0 -34
- package/releases/2.18.0.json +0 -37
- package/releases/2.18.1.json +0 -31
- package/releases/2.18.10.json +0 -29
- package/releases/2.18.2.json +0 -30
- package/releases/2.18.3.json +0 -30
- package/releases/2.18.9.json +0 -37
- package/releases/2.19.0.json +0 -38
- package/releases/2.2.0.json +0 -48
- package/releases/2.2.1.json +0 -35
- package/releases/2.2.2.json +0 -34
- package/releases/2.20.0.json +0 -36
- package/releases/2.21.0.json +0 -35
- package/releases/2.21.1.json +0 -36
- package/releases/2.21.2.json +0 -34
- package/releases/2.21.3.json +0 -31
- package/releases/2.21.4.json +0 -31
- package/releases/2.22.0.json +0 -35
- package/releases/2.22.1.json +0 -32
- package/releases/2.22.2.json +0 -35
- package/releases/2.22.3.json +0 -32
- package/releases/2.22.4.json +0 -33
- package/releases/2.22.5.json +0 -31
- package/releases/2.22.6.json +0 -29
- package/releases/2.22.7.json +0 -29
- package/releases/2.23.0.json +0 -34
- package/releases/2.24.0.json +0 -33
- package/releases/2.24.1.json +0 -33
- package/releases/2.24.2.json +0 -31
- package/releases/2.24.3.json +0 -33
- package/releases/2.25.0.json +0 -31
- package/releases/2.25.1.json +0 -33
- package/releases/2.25.2.json +0 -32
- package/releases/2.25.3.json +0 -32
- package/releases/2.26.0.json +0 -41
- package/releases/2.27.0.json +0 -38
- package/releases/2.28.0.json +0 -37
- package/releases/2.28.1.json +0 -34
- package/releases/2.29.0.json +0 -37
- package/releases/2.29.1.json +0 -34
- package/releases/2.29.2.json +0 -32
- package/releases/2.3.0.json +0 -37
- package/releases/2.30.0.json +0 -34
- package/releases/2.31.0.json +0 -39
- package/releases/2.31.1.json +0 -38
- package/releases/2.31.2.json +0 -34
- package/releases/2.31.3.json +0 -32
- package/releases/2.31.4.json +0 -33
- package/releases/2.31.6.json +0 -29
- package/releases/2.31.7.json +0 -29
- package/releases/2.31.8.json +0 -33
- package/releases/2.31.9.json +0 -33
- package/releases/2.32.0.json +0 -38
- package/releases/2.33.0.json +0 -33
- package/releases/2.34.0.json +0 -38
- package/releases/2.34.1.json +0 -34
- package/releases/2.34.2.json +0 -36
- package/releases/2.34.3.json +0 -35
- package/releases/2.35.0.json +0 -42
- package/releases/2.35.1.json +0 -43
- package/releases/2.35.2.json +0 -45
- package/releases/2.35.3.json +0 -46
- package/releases/2.36.0.json +0 -38
- package/releases/2.36.1.json +0 -33
- package/releases/2.37.0.json +0 -39
- package/releases/2.37.1.json +0 -33
- package/releases/2.37.2.json +0 -31
- package/releases/2.38.0.json +0 -40
- package/releases/2.39.0.json +0 -37
- package/releases/2.39.1.json +0 -32
- package/releases/2.4.0.json +0 -37
- package/releases/2.4.1.json +0 -35
- package/releases/2.40.0.json +0 -38
- package/releases/2.40.1.json +0 -30
- package/releases/2.41.0.json +0 -39
- package/releases/2.41.1.json +0 -33
- package/releases/2.41.2.json +0 -34
- package/releases/2.42.0.json +0 -36
- package/releases/2.43.0.json +0 -38
- package/releases/2.44.0.json +0 -36
- package/releases/2.44.1.json +0 -33
- package/releases/2.45.0.json +0 -35
- package/releases/2.46.0.json +0 -35
- package/releases/2.46.1.json +0 -30
- package/releases/2.46.2.json +0 -29
- package/releases/2.46.3.json +0 -30
- package/releases/2.47.0.json +0 -34
- package/releases/2.47.1.json +0 -31
- package/releases/2.47.2.json +0 -28
- package/releases/2.47.3.json +0 -29
- package/releases/2.47.4.json +0 -29
- package/releases/2.47.5.json +0 -29
- package/releases/2.48.0.json +0 -33
- package/releases/2.48.1.json +0 -30
- package/releases/2.48.2.json +0 -29
- package/releases/2.48.3.json +0 -32
- package/releases/2.48.4.json +0 -31
- package/releases/2.49.0.json +0 -35
- package/releases/2.49.1.json +0 -32
- package/releases/2.49.10.json +0 -34
- package/releases/2.49.11.json +0 -30
- package/releases/2.49.12.json +0 -30
- package/releases/2.49.13.json +0 -29
- package/releases/2.49.14.json +0 -30
- package/releases/2.49.2.json +0 -31
- package/releases/2.49.3.json +0 -31
- package/releases/2.49.4.json +0 -30
- package/releases/2.49.5.json +0 -31
- package/releases/2.49.6.json +0 -30
- package/releases/2.49.8.json +0 -33
- package/releases/2.49.9.json +0 -35
- package/releases/2.5.0.json +0 -37
- package/releases/2.50.0.json +0 -32
- package/releases/2.51.0.json +0 -32
- package/releases/2.52.0.json +0 -34
- package/releases/2.53.0.json +0 -34
- package/releases/2.54.0.json +0 -35
- package/releases/2.54.1.json +0 -29
- package/releases/2.54.4.json +0 -30
- package/releases/2.54.6.json +0 -30
- package/releases/2.55.0.json +0 -34
- package/releases/2.55.2.json +0 -31
- package/releases/2.55.3.json +0 -32
- package/releases/2.55.4.json +0 -30
- package/releases/2.55.5.json +0 -30
- package/releases/2.56.0.json +0 -32
- package/releases/2.57.0.json +0 -35
- package/releases/2.58.0.json +0 -37
- package/releases/2.58.1.json +0 -31
- package/releases/2.59.2.json +0 -33
- package/releases/2.59.4.json +0 -38
- package/releases/2.59.5.json +0 -40
- package/releases/2.59.6.json +0 -30
- package/releases/2.59.7.json +0 -32
- package/releases/2.6.0.json +0 -37
- package/releases/2.7.0.json +0 -37
- package/releases/2.7.1.json +0 -31
- package/releases/2.8.0.json +0 -32
- package/releases/2.8.1.json +0 -30
- package/releases/2.9.0.json +0 -33
- package/releases/2.9.1.json +0 -31
- package/releases/2.9.2.json +0 -33
- package/releases/2.9.3.json +0 -31
- package/releases/2.9.4.json +0 -37
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-definitions.js","sourceRoot":"","sources":["../../src/browser/workflow-definitions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-definitions.js","sourceRoot":"","sources":["../../src/browser/workflow-definitions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AAC3E,OAAO,EACL,2BAA2B,GAI5B,MAAM,+BAA+B,CAAC;AAyEvC,MAAM,UAAU,4BAA4B,CAC1C,KAAuC;IAEvC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAsC,CAAC;IAClE,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAgC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IACE,CAAC,OAAO;YACR,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACpD,CAAC,OAAO,CAAC,cAAc;YACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC,EAChD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IACE,aAAa,KAAK,SAAS;YAC3B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC5B,aAAa,CAAC,MAAM,GAAG,2BAA2B;gBAClD,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM;gBACpD,aAAa,CAAC,IAAI,CAChB,KAAK,CAAC,EAAE,CACN,OAAO,KAAK,KAAK,QAAQ;oBACzB,CAAC,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,CAC9C,CAAC,EACJ,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CACxD,UAAU,CAAC,MAAM,CAAC,IAAI,CACvB,CAAC;QACF,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;QACrD,MAAM,qBAAqB,GAAG,wBAAwB,IAAI,SAAS,CAAC;QACpE,IACE,QAAQ;YACN,CAAC,CAAC,eAAe;gBACf,CAAC,CAAC,UAAU,CAAC,oBAAoB,KAAK,SAAS;oBAC7C,eAAe,CAAC,IAAI,KAAK,iBAAiB;oBAC1C,CAAC,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;gBACxD,CAAC,CAAC,UAAU,CAAC,oBAAoB,KAAK,qBAAqB;YAC7D,CAAC,CAAC,UAAU,CAAC,oBAAoB,KAAK,SAAS;gBAC7C,eAAe,KAAK,SAAS,EACjC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,mDAAmD,IAAI,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,WAAW,CAAC,GAAG,CACb,IAAI,EACJ,MAAM,CAAC,MAAM,CAAC;YACZ,GAAG,UAAU;YACb,IAAI;YACJ,KAAK;YACL,OAAO,EAAE;gBACP,GAAG,OAAO;gBACV,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;aACvD;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,0BAA0B,GAAG,aAAa,CAE9C,IAAI,GAAG,EAAE,CAAC,CAAC;AAYb,MAAM,wBAAwB,GAAG,aAAa,CAA4B,EAAE,CAAC,CAAC;AAE9E,MAAM,UAAU,sCAAsC,CAAC,EACrD,QAAQ,EACR,WAAW,EACX,SAAS,GAAG,EAAE,GAKf;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,4BAA4B,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3F,OAAO,CACL,KAAC,0BAA0B,CAAC,QAAQ,IAClC,KAAK,EAAE,UAAU,YAEjB,KAAC,wBAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,YAAG,QAAQ,GAAqC,GAC/D,CACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,OAAO,UAAU,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,UAAU,CAAC,0BAA0B,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,sBAAsB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
|
package/documentation/AGENTS.md
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
- 默认读取 AppSpec 当前规格、设计索引、活动变更和阶段缺口。新应用先用自然语言对话主动发现模块,完成本期 PRD、旅程、逐页交互、视觉/原型、权限与架构设计及实际确认,形成内容摘要绑定的评审基线后再制定实施计划和实现业务;参见 docs product-design 和 docs interaction-patterns。既有应用仅修订受影响设计,不把 AI 建议写成用户确认。总纲保存长期规则,本轮变更关联需求、任务、源码与 AC 验收;测试发布前完成设计与计划,生产晋级前保存绑定原测试运行及包摘要的实际验收报告。更新当前规则、验证与发布结果和交接后归档;不得编造确认或通过结果。
|
|
20
20
|
- 根据变化风险记录业务意图。无行为变化引用已有记录;已有授权和已确认意图不重复向用户请求机械确认。真实角色和浏览器验收与本地测试分别记录。
|
|
21
21
|
- 失败保留错误码、指针和原候选;查询平台状态后使用允许的恢复操作,不自动重放未知结果。
|
|
22
|
+
- 事件高水位、缺少正式环境密钥或通知故障先读 `docs application-operations` 和 `admin operations --json`(MCP `application_operations`)。AI 沿用当前应用管理权限,在已授权范围内直接用 `admin execute` / `application_operation` 完成诊断、加密环境凭据复用、渠道配置及指定投递恢复,无需转交用户操作管理页面。显式选择环境,保留修订与原幂等键,不读取密钥明文、不重建原业务、不批量重发历史通知。
|
|
22
23
|
- 平台契约、诊断和产品/架构咨询按 openxiangda-support 技能持续跟进已授权案例。使用 support status 查看 DWS 接入状态;待 OAuth、钉钉入群或网络恢复不阻塞独立开发,后台续跑以实际宿主监听/定时配置为准。
|
|
23
24
|
|
|
24
25
|
MCP 使用同一项目 CLI:`pnpm exec openxiangda --mcp-stdio --cwd <workspace>`。先读取 workspace_context,再按任务读取 docs_read 和当前契约。登录、创建及长期 dev 使用 CLI/终端。
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# 应用管理与有效配置
|
|
2
2
|
|
|
3
|
+
事件高水位、正式环境缺凭据或消息未发送时,开发者AI直接读取[应用自助操作](./application-operations.md)
|
|
4
|
+
并使用 `admin operations` / MCP `application_operations` 发现和执行已有管理能力,无需人工管理页面。
|
|
5
|
+
|
|
3
6
|
平台的应用管理控制台维护应用成员、角色授权和流程运行参数。应用自身声明的 `/admin` 业务菜单展示业务页面,两者职责不同。可见入口和可执行操作以当前用户与目标环境返回结果为准。
|
|
4
7
|
|
|
5
8
|
角色成员的范围维度也支持模型字段的 `userCandidates.scope` 引用,不要求为审批人职责增加无关的数据读写策略。目录 `scopeDimensions[].applicability.candidateFields` 返回字段所在的资源、数据修订、字段、角色与操作;当前环境及仍在办理的历史流程所引用的字段均可贡献范围适用性。实例完成或发起命令取消后,旧字段不再单独贡献适用性。配置成员的范围不会自动授予数据读写、菜单或应用管理权限;实际选人与提交仍核验范围、操作、成员有效期及账号状态。
|
|
@@ -111,7 +114,7 @@ jointReviewers: {
|
|
|
111
114
|
管理员仅在代码开放人员来源配置的节点中调整职责组合;单选仍保存 `roleCode`,
|
|
112
115
|
多选保存 `roleCodes`。保存、版本激活均检查所有职责,任何职责失效或查询失败都不能
|
|
113
116
|
变成部分名单。总候选最多 200 个成员身份;去重后的审批上限仍受原 binding 限制,
|
|
114
|
-
|
|
117
|
+
自动抄送遵守原binding人数预算,默认20、显式最大200人。声明自动协商 `workflow.role-union@1.0.0`,无需初始化开关。
|
|
115
118
|
|
|
116
119
|
管理范围检索使用 `listRoleManagementScopeValues(dimensionCode, { keyword, limit, offset })`,返回 `NativeRoleManagementScopeValuePage` 的 `id/label` 与 `limit/offset`。它使用 `openxiangda.native-role-management-scope-value-page/v2`,与 Data 字段选择器的 `value/label/cursor` 协议分开。权限仍要求对成员的分配或更新能力;只读权限不因此扩张。
|
|
117
120
|
|
|
@@ -199,7 +202,7 @@ export function ReadableWorkflow({ workflowCode, version }: {
|
|
|
199
202
|
|
|
200
203
|
模式为 `single/any/all/sequence` 的允许子集;可维护来源限 `fixed_users/app_role/app_role_in_scope`,范围角色必须已有代码声明的 scope。按钮 code 保持同意、拒绝、退回、转交、委托、加签的稳定语义;同意和拒绝不能关闭。只有同意/拒绝支持意见规则;拒绝默认必填,固定节点代码可用 operationPolicy.reject.commentRequired: false 显式选填。管理员可收紧选填规则,也可恢复代码明确允许的选填;不能放宽代码必填或未声明时的拒绝默认必填。已进入的任务保留冻结规则。字段显隐、填写与必填行为由应用页面和代码维护,不提供流程节点的字段管理覆盖。可编译声明见 `examples/workflow-administration/declaration.ts`。
|
|
201
204
|
|
|
202
|
-
自动抄送节点仅开放名称、说明和显式声明的 `administration.assigneeProviders
|
|
205
|
+
自动抄送节点仅开放名称、说明和显式声明的 `administration.assigneeProviders`;未开放时接收来源只读。共享编辑器显示“抄送人”,不显示审批方式或审批按钮,固定名单遵守原binding的 `min/max`,默认1–20、显式最大200人;管理员不能扩大该预算。`next`、空人策略和通知策略仍归代码;新配置只影响以后进入,过去抄送名单保持冻结。完整例子见 `examples/workflow-administration/automatic-cc.ts`,执行及读取边界见[自动抄送](./workflow-events.md#automatic-cc)。
|
|
203
206
|
|
|
204
207
|
应用自定义管理页可使用 `WorkflowNodeConfigurationEditor`(`openxiangda/react`),输入同一读面中的节点、principals 和 context.headRevision,放在平台 App/UI 作用域内。它复用下列当前用户 SDK:
|
|
205
208
|
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# AI 应用运行自助操作
|
|
2
|
+
|
|
3
|
+
开发者 AI 使用当前平台账号和工作区绑定直接完成事件、环境凭据和消息中心维护。
|
|
4
|
+
用户已授权的诊断及修复无需再让用户点击管理页面。平台仍核验已有应用管理权限;
|
|
5
|
+
首次账号登录沿用原认证流程,开发者身份不自动获得管理员权限。
|
|
6
|
+
|
|
7
|
+
## 发现和执行 {#discovery}
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pnpm openxiangda context --json
|
|
11
|
+
pnpm openxiangda admin context --environment production --json
|
|
12
|
+
pnpm openxiangda admin operations --json
|
|
13
|
+
pnpm openxiangda docs application-operations
|
|
14
|
+
printf '%s' '{}' | pnpm openxiangda admin execute events.status --environment production --input - --json
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
`admin operations` 读取本地目录,每项给出 `operation/inputSchema/effect/permission/recovery`。
|
|
18
|
+
`admin execute <operation> --environment <test|production> --input <file|-> --json` 直接执行。
|
|
19
|
+
输入文件或标准输入只放目录中的 **input** 对象,最多32KiB,不放密码。
|
|
20
|
+
执行必须明确环境;test映射平台preproduction。应用、站点和身份来自当前工作区及会话,
|
|
21
|
+
拒绝任意路径、自报appCode、tenantId、actor和environmentKey。
|
|
22
|
+
|
|
23
|
+
MCP先调用 `application_operations`,再调用 `application_operation`:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{"operation":"events.status","environment":"production","input":{}}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
CLI与MCP共用输入Schema、服务和平台错误。成功结果在 `data.result`,环境在 `data.environment`。
|
|
30
|
+
配置与恢复在已授权范围内直接执行;health访问外部健康接口并保存元信息。
|
|
31
|
+
操作目录不证明远端接口已部署或当前用户有权,执行结果由平台决定。
|
|
32
|
+
|
|
33
|
+
## 事件高水位与指定恢复 {#events}
|
|
34
|
+
|
|
35
|
+
遇到 `EVENT_V2_BACKPRESSURE_HIGH_WATER` 先读 `events.status` 的admission:采样新鲜度、
|
|
36
|
+
触发条件、当前值、阈值、恢复条件和消费者健康。再用 `events.subscriptions`、
|
|
37
|
+
`events.deliveries`、`events.journal`、`events.audit` 定位订阅、原事实及投递。
|
|
38
|
+
分页默认20/最大100,按服务器cursor继续,不无限遍历历史。
|
|
39
|
+
按原requestId或commandId核对事务,见[部署与诊断](./delivery.md)。未观测到、超时或503
|
|
40
|
+
不能证明未提交,不换键重建业务数据。
|
|
41
|
+
|
|
42
|
+
Native记录事件才能使用 `ordering:record`。订阅错误先修正应用声明并正常部署,
|
|
43
|
+
再用 `events.replay` 恢复指定原deliveryId:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"deliveryId":"11111111-1111-4111-8111-111111111111",
|
|
48
|
+
"reason":"原订阅配置已修复并部署,恢复该投递",
|
|
49
|
+
"idempotencyKey":"event-recovery:original-operation-id",
|
|
50
|
+
"useCurrentSubscription":true
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
示例UUID换成实际查询结果。false使用原订阅规格,必须显式选择。
|
|
55
|
+
平台核对类型、过滤和排序事实,只恢复该订阅投递并保留历史审计,不重建会员。
|
|
56
|
+
未知结果先查投递/审计,保留同键同请求。低于阈值且取得新鲜采样后自动恢复写入;
|
|
57
|
+
没有清队列或提高容量阈值的应用操作。验证单笔事务回执及列表后再继续授权导入。
|
|
58
|
+
|
|
59
|
+
## 环境凭据复用 {#secrets}
|
|
60
|
+
|
|
61
|
+
遇到 `APPLICATION_V2_SECRET_NOT_CONFIGURED`,分别在test及production执行 `secrets.list`。
|
|
62
|
+
只返回名称、状态、revision、hasValue和有效期等元信息。来源用途已经验证且有效时,
|
|
63
|
+
在目标production执行 `secrets.copy`,首次正式部署前也可操作,无需询问或读取明文:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"sourceEnvironment":"test",
|
|
68
|
+
"reason":"正式环境复用已验证的集成凭据",
|
|
69
|
+
"idempotencyKey":"secret-copy:original-operation-id",
|
|
70
|
+
"secrets":[{"name":"integration-client-secret","sourceRevision":3,"expectedRevision":0}]
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
名称和修订取自两侧实时列表;目标不存在用0,覆盖用目标实际revision。最多50个唯一名称,
|
|
75
|
+
同应用跨环境原子复制,任一冲突拒绝整批。目标拥有独立加密版本,来源轮换不自动覆盖。
|
|
76
|
+
未知结果保留原键和完整请求,先回读,必要时显式同键重试。确认的409先刷新两侧基准、
|
|
77
|
+
核对后形成新操作,不能只递增revision强行覆盖。
|
|
78
|
+
随后执行 `deploy --environment production --from <成功测试运行ID> --dry-run`。
|
|
79
|
+
环境变量注入需新部署才读取目标版本;动态Secret服务沿用原读取规则。
|
|
80
|
+
工具不会自动复制所有项;测试凭据是否适用于真实生产由已确认的集成用途决定。
|
|
81
|
+
|
|
82
|
+
## 通知渠道与默认路由 {#channels}
|
|
83
|
+
|
|
84
|
+
先读 `notifications.diagnostics/channels/rules`。缺少标准模板/规则时执行
|
|
85
|
+
`notifications.bootstrap` 再回读。已有健康渠道可直接选默认,不必重新配置或获取密码。
|
|
86
|
+
新增/更新分别用 `notifications.configure-external-http` 和 `notifications.configure-dingtalk-oa`。
|
|
87
|
+
完整参数见目录inputSchema;新渠道revision用0,更新用实时revision。配置只接受Secret引用,
|
|
88
|
+
不接受token、明文clientSecret或收件身份。External HTTP支持HMAC、OAuth2客户端凭据和mTLS。
|
|
89
|
+
正式启用沿用服务器 `confirmProduction:true`,表示该请求明确选择正式环境,无需管理页。
|
|
90
|
+
|
|
91
|
+
以下仅演示结构,真实providerCode、baseUrl、identityRealm、功能和Secret引用来自已授权集成,
|
|
92
|
+
不能直接把示例地址发送到生产:
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{
|
|
96
|
+
"bindingCode":"organization.default","expectedRevision":0,"status":"active","confirmProduction":true,
|
|
97
|
+
"config":{
|
|
98
|
+
"schemaVersion":"openxiangda.notification.external-http-channel/v2",
|
|
99
|
+
"providerCode":"organization","baseUrl":"https://notify.example.com","identityRealm":"organization",
|
|
100
|
+
"auth":{"mode":"HMAC_SHA256","keyId":"primary","secretRef":"notification-hmac"},
|
|
101
|
+
"callback":{"enabled":false,"maxSkewSeconds":300,"actionTokenTtlMinutes":60},
|
|
102
|
+
"features":{"interactiveActions":false,"readReceipt":false,"todoSemantics":true},
|
|
103
|
+
"requestTimeoutMs":10000
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
配置后执行 `notifications.test`:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{"bindingCode":"organization.default","channel":"external-http"}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
这是协议/凭据健康检查,不发实际收件通知。随后执行 `notifications.set-default`:
|
|
115
|
+
|
|
116
|
+
```json
|
|
117
|
+
{"bindingCode":"organization.default","expectedRevision":2,"expectedBindingRevision":1}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
两个revision分别来自workflow.standard规则和渠道。冲突先回读核对。默认只影响当前环境
|
|
121
|
+
的标准工作流通知;自定义规则仍由原owner维护。正式隐式路由不选Fake,Fake成功只证明模拟。
|
|
122
|
+
|
|
123
|
+
## 原通知失败与恢复 {#notification-recovery}
|
|
124
|
+
|
|
125
|
+
`notifications.messages` 按correlationId或recipientUserId查原消息,默认20/最大100;
|
|
126
|
+
`notifications.message` 传原messageId,读取recipients/deliveries/attempts/审计。
|
|
127
|
+
平台受理、渠道发送、已读和待办关闭分别核对,不能把受理当成老师已经收到。
|
|
128
|
+
|
|
129
|
+
| 证据 | AI下一步 |
|
|
130
|
+
| --- | --- |
|
|
131
|
+
| 凭据缺失/禁用/过期 | secrets.list核对;用途合适时secrets.copy,随后test |
|
|
132
|
+
| 默认未设置或规则缺少 | rules/channels核对,必要时bootstrap,再set-default |
|
|
133
|
+
| 通道协议或联通失败 | 核对原集成接口、鉴权引用和功能,configure修正后test |
|
|
134
|
+
| RECIPIENT_CHANNEL_IDENTITY_NOT_FOUND | 核对目标平台用户及identityRealm对应外部账号;由现有身份目录/消息服务owner维护映射,不创建虚假老师身份 |
|
|
135
|
+
| 共享队列、数据库或网络故障 | 保存requestId、环境、消息/投递ID及状态证据,交给平台基础设施owner |
|
|
136
|
+
| 403权限不足 | 由应用管理员授予已有管理权限,不获取服务器root或密码替代 |
|
|
137
|
+
| 404新接口不存在 | 核对工具及平台版本,升级对应能力,不用临时SQL绕过 |
|
|
138
|
+
|
|
139
|
+
修复后查 `notifications.dead-letters`,可按messageId限定。确认原任务仍有效且授权包括
|
|
140
|
+
实际通知恢复,再执行 `notifications.replay`,只传指定deadLetterId。这可能真正发送通知。
|
|
141
|
+
平台保留原消息、目标和审计;不重建通知或批量恢复历史待办。
|
|
142
|
+
网络中断后查询原死信/消息;已恢复后的404不能当成未执行,不自动连续重放。
|
|
143
|
+
已投递或被新修订取代的消息遵守服务器原有规则。
|
|
144
|
+
|
|
145
|
+
## 升级与验收 {#verification}
|
|
146
|
+
|
|
147
|
+
已有项目使用精确锁定版本;升级后运行 `skill install --workspace <应用目录> --force` 并
|
|
148
|
+
重启MCP。应用AI不需要本地平台、数据库、Docker或学校服务器账号。
|
|
149
|
+
先做只读诊断、无实际收件人的健康测试及CAS拒绝验证,再验收单笔回执/落库/实际投递。
|
|
150
|
+
不要用批量导入或历史群发测试恢复。首次会话授权、权限委托和外部身份owner边界沿用原合同。
|
package/documentation/appspec.md
CHANGED
|
@@ -172,7 +172,7 @@ ADR 状态支持 `proposed`、`accepted`、`superseded`、`rejected`;按真实
|
|
|
172
172
|
|
|
173
173
|
### 按 ID 读取
|
|
174
174
|
|
|
175
|
-
`context` / `workspace_context` 默认返回总纲、相关变更索引、阶段缺口和下一步。`spec context` / `appspec_context` 的 context v4 默认只返回总纲正文及有界索引,按稳定 ID 加载相关能力、变更、ADR 和 DES-* 设计正文及 documents 传递引用。product/experience/design/reviews 的单层 Markdown 也进入当前资料与原测试提交读取;非 Markdown 原型只引用不执行。当前资料最多
|
|
175
|
+
`context` / `workspace_context` 默认返回总纲、相关变更索引、阶段缺口和下一步。`spec context` / `appspec_context` 的 context v4 默认只返回总纲正文及有界索引,按稳定 ID 加载相关能力、变更、ADR 和 DES-* 设计正文及 documents 传递引用。product/experience/design/reviews 的单层 Markdown 也进入当前资料与原测试提交读取;非 Markdown 原型只引用不执行。当前资料最多 512 文件、2 MiB,正文上下文最多 256 KiB,超出时明确诊断。较大的应用可保留各批次的产品、架构、变更与评审,不需要删除历史来容纳新模块;增加文件数量不放宽字节或上下文预算。
|
|
176
176
|
|
|
177
177
|
历史与当前资料独立预算,每页 50 条,使用 `--history-offset 50` 或 MCP `historyOffset` 翻页。历史索引仅读取头部,稳定历史 ID 可直接读取页外正文;归档增加不会挤掉当前资料。索引读取上限为 256 个年份目录、10 万个记录名和 5 秒,达到预算给出提示,文件不会删除。`workspaceDigest` 对应当前资料与实时契约,分页不改变它;`selectionDigest` 对应选中的具体正文与契约。
|
|
178
178
|
|
package/documentation/backend.md
CHANGED
|
@@ -16,6 +16,19 @@ operation、事件消费者、人员提供器,然后运行 `pnpm openxiangda c
|
|
|
16
16
|
工具从当前版本的内置模板初始化后端源码并安装依赖;后续不会覆盖业务代码。
|
|
17
17
|
标准表单、流程定义/激活和平台待办通知使用平台运行时,不会隐式启用 Nest。
|
|
18
18
|
|
|
19
|
+
当前官方 Dockerfile 保留原 package.json,使用 `--frozen-lockfile` 安装后端和共享契约
|
|
20
|
+
依赖;锁文件与源码不一致会明确失败,请在本地更新并提交锁文件。pnpm store、registry
|
|
21
|
+
metadata 与 Corepack 使用当前 BuildKit builder 的持久缓存,依赖层失效时优先复用已有包。
|
|
22
|
+
生产依赖整理也使用同一包和 metadata 缓存及 `--prefer-offline`;首次 legacy deploy
|
|
23
|
+
仍需读取 registry metadata,缓存命中后减少重复联网。首次构建或 builder 缓存被回收后
|
|
24
|
+
仍需要下载依赖。不要求应用更改本地 workspace 链接方式。
|
|
25
|
+
|
|
26
|
+
随模板生成的 `Dockerfile.dockerignore` 仅包含后端必需输入,避免前端/文档变化使
|
|
27
|
+
依赖层失效。已有后端源码归应用所有,不自动覆盖旧 Dockerfile;升级时可对照
|
|
28
|
+
工具包 `openxiangda-devkit-core/templates/backend/` 更新 Dockerfile 和专用 ignore,
|
|
29
|
+
并保留自己的业务构建步骤及依赖。需要额外目录时同步加入 ignore 白名单,重新验证。
|
|
30
|
+
纯前端发布的镜像复用与重建选项见[交付](delivery.md#测试部署)。
|
|
31
|
+
|
|
19
32
|
依赖安装失败会保留新源码并报告 `OPENXIANGDA_BACKEND_INSTALL_FAILED`;重试相同命令
|
|
20
33
|
即可继续。关闭 backend 不自动删除用户源码。仅删除已经确认不用的后端目录和其依赖。
|
|
21
34
|
开发者本地 `/api` 经过 connected proxy 进入 Nest;普通浏览器身份经过平台实时授权,
|
|
@@ -91,6 +104,14 @@ return businessProcess.commandWithData({
|
|
|
91
104
|
`not_observed` 仅表示尚未看到确定回执;保留原输入、原 token 和原键,按用户显式操作恢复。
|
|
92
105
|
声明及限制见[工作流](workflow-events.md#correction-business-command)。
|
|
93
106
|
|
|
107
|
+
更正指导老师、申报部门或预约场馆时,可在固定resubmit handler声明
|
|
108
|
+
`derivedSubjectFields`白名单。处理器恢复原结果后,按当前可信字典和资料计算实际
|
|
109
|
+
改变的字段,将它们与非事实审计值放入同一次subject update并携带来源guards;
|
|
110
|
+
用户输入不能直接提供派生审批人,页面仍只提交原补正表单。平台从权威Native记录
|
|
111
|
+
重读事实,与任务、数据和回执同事务更新;无法安全重放、来源/CAS或类型变化整笔
|
|
112
|
+
回滚。未变化字段省略,确保已固定的无此声明旧实例仍可做普通更正。完整限制与
|
|
113
|
+
自动能力协商见上述工作流专题,不另建重算API、事务或权限状态。
|
|
114
|
+
|
|
94
115
|
### 数据修改的原结果恢复 {#data-business-commands}
|
|
95
116
|
|
|
96
117
|
仅修改业务资料的具名动作,在 `platformAccess` 声明
|
|
@@ -46,7 +46,26 @@ pnpm openxiangda logs <deployment-id> --json
|
|
|
46
46
|
|
|
47
47
|
默认目标为 `test`,平台内部标识为 `preproduction`。只读预览不生成构建产物、不上传制品、不提交 DeploymentRun;因此预览成功不能证明代码已通过检查。正式检查使用本地完整校验,再通过目标平台的 `configurationCompatibility` 核对同源规则、密钥、已有物理模型和登录提供方等只读条件;失败时停止后续步骤。只有启用了自定义 Nest 后端的应用才需要构建后端镜像及对应 Docker 环境。
|
|
48
48
|
|
|
49
|
-
平台启用镜像上传后,`deploy`
|
|
49
|
+
平台启用镜像上传后,`deploy` 优先校验本机保存的同输入 OCI 制品,并用当前平台登录态取得原镜像的回执;没有有效制品时才用 Docker Buildx 构建并分片上传。开发者只需应用部署权限,无需登录平台管理员的镜像仓库或取得推送凭据。已完成的镜像层按摘要复用,中断后重新执行同一条部署命令可恢复上传;平台核验镜像完整性后才进入应用发布。尚未升级的旧平台保留其原镜像构建合同;新平台已声明上传能力但未启用时,命令会明确报告平台配置缺失。
|
|
50
|
+
|
|
51
|
+
官方模板按实际后端输入匹配缓存:根 manifest、锁文件、workspace/tsconfig、后端目录、
|
|
52
|
+
共享 contracts、vendor、Dockerfile 和有效 ignore 规则。只改前端源码或文档时可跳过
|
|
53
|
+
Docker 构建,前端及配置仍重新检查、编译和发布。独立配置摘要变化不会直接使镜像失效;
|
|
54
|
+
配置改变生成 contracts 时会重建。缓存只绑定当前账号、平台、应用、环境和工具版本,
|
|
55
|
+
不会跨身份复用。自定义 Dockerfile 默认比较完整构建上下文;用
|
|
56
|
+
`<后端目录>/Dockerfile.dockerignore` 明确限制实际 Docker 输入后,也可复用同输入制品。
|
|
57
|
+
修改 Dockerfile 后不再推测其 shell 命令只读取哪些文件。
|
|
58
|
+
|
|
59
|
+
成功镜像同样短期保留,不保存远端 ready 状态或 reference;每次复用都校验全部 OCI
|
|
60
|
+
字节并由平台重新鉴权。平台没有原镜像时上传同一制品,不重新构建。缓存过期或被回收
|
|
61
|
+
后需正常构建。需要重新执行本机构建时可用:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
OPENXIANGDA_BACKEND_IMAGE_CACHE=false pnpm openxiangda deploy
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
此设置禁用成功制品复用和保留,仍恢复同输入的未完成上传;Docker 自身的层缓存继续
|
|
68
|
+
生效。它不跳过检查、权限或平台回执。无需为普通前端改动手工指定旧镜像或平台管理员介入。
|
|
50
69
|
|
|
51
70
|
上传失败后,本机保留原 OCI 制品,错误的 `details` 包含候选 ID、原 digest、失效时间及真实 `causeCode`。
|
|
52
71
|
按错误的 `remediation` 处理后,在原工作区执行原 `pnpm openxiangda deploy` 命令(保留原环境等参数):
|
|
@@ -63,6 +82,8 @@ pnpm openxiangda logs <deployment-id> --json
|
|
|
63
82
|
|
|
64
83
|
缓存保留最多 24 小时、8 个候选、总预算 8 GiB;空间不足时仅回收未被使用的旧候选。
|
|
65
84
|
仅当平台单镜像上限不超过 8 GiB 时启用本地恢复,较大的平台配额保留原上传路径,不降低平台允许的镜像大小。
|
|
85
|
+
成功制品复用额外预留最多 516 KiB 的 OCI/缓存元数据;平台上限过于接近 8 GiB 时保留
|
|
86
|
+
原上传失败恢复模式,成功后删除,不降低平台单镜像额度。
|
|
66
87
|
缓存和登录凭据分开,位于本机用户私有目录。过期或已经回收的候选需重新构建;已有 DeploymentRun
|
|
67
88
|
的未知结果仍查询原运行,镜像上传恢复不会重新发起已提交的部署。
|
|
68
89
|
|
|
@@ -76,7 +97,7 @@ pnpm openxiangda status <deployment-id> --watch
|
|
|
76
97
|
|
|
77
98
|
网络响应不确定时先查询原运行,不凭本地输出创建重复部署。平台部署成功后,仍需执行真实角色的业务验收。
|
|
78
99
|
|
|
79
|
-
|
|
100
|
+
新的发布使用当前源码准备前端与配置,后端按实际输入复用或构建;同输入镜像可复用上述短期原制品缓存。
|
|
80
101
|
该缓存不保存部署状态,平台仍唯一拥有 DeploymentRun。提交响应不确定时使用原 DeploymentRun 的 status/logs 和 recovery 继续处理。
|
|
81
102
|
|
|
82
103
|
## 测试环境验收
|
|
@@ -156,3 +177,11 @@ MCP 的 check_app、deployment_plan、deploy_app 使用与 CLI 相同的环境
|
|
|
156
177
|
先运行 `openxiangda deploy --environment test --strategy maintenance-replace --dry-run --json` 查看前驱版本、Head revision 和停止后的容量估算,再使用相同参数去掉 `--dry-run` 提交。计划不预留资源。只有已存在、身份匹配的单副本 TEST 后端才可使用;前端应用、新应用和 production 不支持。默认仍为 rolling,不会因配额不足自动停止实例。
|
|
157
178
|
|
|
158
179
|
策略属于部署幂等请求。默认维护幂等键含策略,显式幂等键不能在不同策略之间复用。已有运行通过 status/retry 恢复;持续恢复中的运行保持 preparing/maintenance-recovery-required,平台会重试恢复,恢复失败时保留原运行与错误。
|
|
180
|
+
|
|
181
|
+
## OSS 直传与静态分发
|
|
182
|
+
|
|
183
|
+
平台管理员在「平台内置对象存储 → 应用构建与分发」启用「开发工具直传 OSS」后,新版 CLI 自动协商并直传构建包和镜像分块。开发者无需本机 OSS 密钥;平台从自己的存储读取,校验大小及摘要后封存或导入受管镜像仓库。中断后重新运行原 deploy,仍按原 digest/offset 恢复,不手工创建新镜像尝试。旧平台没有此能力时保持原通道;云端失败明确报告,不静默改用另一通道。
|
|
184
|
+
|
|
185
|
+
「前端静态资源 → OSS / CDN」让 JS、CSS、字体等从 OSS 的不可变版本目录加载。HTML、登录、路由和 API 保留平台入口。Public Base URL 可配置已可用的 HTTPS CDN 域名;未配 CDN 时是 OSS 分发,不能据此承诺 CDN 加速。OSS GET/HEAD 的 CORS 需包含实际平台 origin。源码映射不公开。
|
|
186
|
+
|
|
187
|
+
存储权限需覆盖隔离目录的 PutObject、GetObject、对象 ACL(暂存 private,校验后的静态资源 public-read)。不得更改整桶 ACL。建议为 `openxiangda/application-staging/` 配置 1 天生命周期;平台不自动覆盖现有生命周期。配置切换发生在直传和导入之间会明确拒绝,重新运行原部署即可按新配置恢复。关闭直传/切回平台静态分发可回退,不修改业务数据或环境版本。
|
|
@@ -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.60.0 skill install --force
|
|
72
|
+
pnpm dlx openxiangda@2.60.0 auth status --base-url <平台地址> --json
|
|
73
|
+
pnpm dlx openxiangda@2.60.0 login --cwd my-app --base-url https://platform.example.com
|
|
74
|
+
pnpm dlx openxiangda@2.60.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
|
|
@@ -204,9 +204,9 @@ MCP 的 `docs_read` 可以读取本说明,当前没有独立的源码操作 MC
|
|
|
204
204
|
无需本地工作区,使用本 Skill 随包精确版本或已安装的对应 CLI:
|
|
205
205
|
|
|
206
206
|
```bash
|
|
207
|
-
pnpm dlx openxiangda@2.
|
|
208
|
-
pnpm dlx openxiangda@2.
|
|
209
|
-
pnpm dlx openxiangda@2.
|
|
207
|
+
pnpm dlx openxiangda@2.60.0 auth status --base-url <平台> --json
|
|
208
|
+
pnpm dlx openxiangda@2.60.0 source resolve <仓库URL> --base-url <平台> --json
|
|
209
|
+
pnpm dlx openxiangda@2.60.0 source clone <仓库URL> <新目录> --base-url <平台> --json
|
|
210
210
|
```
|
|
211
211
|
|
|
212
212
|
登录缺失或站点不匹配时,先按该平台执行 login。resolve 根据平台已经登记的绑定返回
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "openxiangda.documentation/v1",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.60.0",
|
|
4
4
|
"topics": [
|
|
5
5
|
{
|
|
6
6
|
"id": "getting-started",
|
|
7
7
|
"title": "安装与开始开发",
|
|
8
8
|
"file": "getting-started.md",
|
|
9
|
-
"sha256": "
|
|
9
|
+
"sha256": "c34f0485ea0136f2d57c56bf8d71e8cde1d87d440d0c9d3c191ee943dc02bdca"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
"id": "product-design",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"id": "appspec",
|
|
49
49
|
"title": "需求、设计与交付记录",
|
|
50
50
|
"file": "appspec.md",
|
|
51
|
-
"sha256": "
|
|
51
|
+
"sha256": "a63d3336a1390913ea11ccbdeb4037240167353ca0ecc6e19c1a624294148354"
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
"id": "concepts",
|
|
@@ -84,13 +84,13 @@
|
|
|
84
84
|
"id": "workflow-events",
|
|
85
85
|
"title": "审批、事件与通知",
|
|
86
86
|
"file": "workflow-events.md",
|
|
87
|
-
"sha256": "
|
|
87
|
+
"sha256": "8ba415778a40ea79ad90714bc8cebc4173929565628d61a85287915d003c2e4d"
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
90
|
"id": "backend",
|
|
91
91
|
"title": "按需后端与业务动作",
|
|
92
92
|
"file": "backend.md",
|
|
93
|
-
"sha256": "
|
|
93
|
+
"sha256": "51a329e8b30df0f2e164a1e311e1798b9e76912f8f6f2c554a61e95b29479dd7"
|
|
94
94
|
},
|
|
95
95
|
{
|
|
96
96
|
"id": "agent-cards",
|
|
@@ -120,7 +120,13 @@
|
|
|
120
120
|
"id": "administration",
|
|
121
121
|
"title": "应用管理与有效配置",
|
|
122
122
|
"file": "administration.md",
|
|
123
|
-
"sha256": "
|
|
123
|
+
"sha256": "15c708c0de93879fca605399a03e64368a7b07275045e605a4de64b3b5323838"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"id": "application-operations",
|
|
127
|
+
"title": "AI 自助诊断、环境密钥和通知配置",
|
|
128
|
+
"file": "application-operations.md",
|
|
129
|
+
"sha256": "9aabd1c174ba560aa2a24b20a58ac4aa07dfbbca3bff5779dfcf95aead6d2397"
|
|
124
130
|
},
|
|
125
131
|
{
|
|
126
132
|
"id": "testing",
|
|
@@ -132,7 +138,7 @@
|
|
|
132
138
|
"id": "delivery",
|
|
133
139
|
"title": "部署、生产晋级与恢复",
|
|
134
140
|
"file": "delivery.md",
|
|
135
|
-
"sha256": "
|
|
141
|
+
"sha256": "547d0b22704d86566d337dfe4ef192fd2264180485ed7139bb3b02746b3b0632"
|
|
136
142
|
},
|
|
137
143
|
{
|
|
138
144
|
"id": "upgrading",
|
|
@@ -144,13 +150,13 @@
|
|
|
144
150
|
"id": "cli",
|
|
145
151
|
"title": "CLI 命令参考",
|
|
146
152
|
"file": "reference/cli.md",
|
|
147
|
-
"sha256": "
|
|
153
|
+
"sha256": "f3f912eb9b151e460ce610b5ba7f67a4b30f56d62b8817871ec47b44622c07c7"
|
|
148
154
|
},
|
|
149
155
|
{
|
|
150
156
|
"id": "mcp",
|
|
151
157
|
"title": "MCP 配置与工具参考",
|
|
152
158
|
"file": "reference/mcp.md",
|
|
153
|
-
"sha256": "
|
|
159
|
+
"sha256": "22ef30028c7d1f5a970508fcc0df5243dbfeaaa90235ab0172c31eba3f0eaf19"
|
|
154
160
|
}
|
|
155
161
|
]
|
|
156
162
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
| `pnpm openxiangda auth` | 只读 | 只读核验指定平台授权,不登录或刷新会话 |
|
|
8
8
|
| `pnpm openxiangda context` | 只读 | 只读查看工作区、版本与平台绑定 |
|
|
9
9
|
| `pnpm openxiangda docs` | 只读 | 按主题和章节读取当前版本中文资料 |
|
|
10
|
-
| `pnpm openxiangda admin` |
|
|
10
|
+
| `pnpm openxiangda admin` | 远端变更 | 查看管理能力、自助操作契约,或按明确环境执行事件、密钥及通知操作 |
|
|
11
11
|
| `pnpm openxiangda create` | 远端变更 | 创建、绑定并初始化应用 |
|
|
12
12
|
| `pnpm openxiangda source` | 远端变更 | 配置应用源码仓库、查看状态或提交推送 |
|
|
13
13
|
| `pnpm openxiangda dev` | 本地写入 | 连接平台测试数据启动本地 Web,按需启动 Nest |
|