@nocobase/plugin-flow-engine 2.2.0-alpha.1 → 2.2.0-alpha.3
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/client/index.js +1 -1
- package/dist/externalVersion.js +9 -9
- package/dist/locale/en-US.json +1 -0
- package/dist/locale/index.d.ts +2 -0
- package/dist/locale/zh-CN.json +1 -0
- package/dist/node_modules/@ant-design/icons-svg/package.json +1 -1
- package/dist/node_modules/acorn/package.json +1 -1
- package/dist/node_modules/acorn-jsx/package.json +1 -1
- package/dist/node_modules/acorn-walk/package.json +1 -1
- package/dist/node_modules/ses/package.json +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/flow-surfaces/{runjs-authoring/blocked-global-stop/index.d.ts → approval/authoring-validation.d.ts} +1 -2
- package/dist/server/flow-surfaces/approval/authoring-validation.js +1151 -0
- package/dist/server/flow-surfaces/approval/blueprint-service.js +2 -0
- package/dist/server/flow-surfaces/authoring-validation.js +471 -47
- package/dist/server/flow-surfaces/blueprint/export-document.d.ts +50 -0
- package/dist/server/flow-surfaces/blueprint/export-document.js +2510 -0
- package/dist/server/flow-surfaces/builder.js +16 -1
- package/dist/server/flow-surfaces/catalog.js +13 -2
- package/dist/server/flow-surfaces/configure-options.js +5 -3
- package/dist/server/flow-surfaces/constants.d.ts +9 -2
- package/dist/server/flow-surfaces/constants.js +1 -0
- package/dist/server/flow-surfaces/contract-guard.js +24 -2
- package/dist/server/flow-surfaces/default-action-popup.d.ts +2 -0
- package/dist/server/flow-surfaces/default-action-popup.js +27 -13
- package/dist/server/flow-surfaces/filter-group.d.ts +19 -2
- package/dist/server/flow-surfaces/filter-group.js +232 -3
- package/dist/server/flow-surfaces/planning/compiler.d.ts +1 -0
- package/dist/server/flow-surfaces/planning/compiler.js +205 -82
- package/dist/server/flow-surfaces/planning/key-registry.d.ts +1 -1
- package/dist/server/flow-surfaces/planning/runtime.js +1 -0
- package/dist/server/flow-surfaces/planning/step-link.d.ts +1 -1
- package/dist/server/flow-surfaces/planning/step-link.js +22 -3
- package/dist/server/flow-surfaces/public-data-surface-default-filter.js +0 -9
- package/dist/server/flow-surfaces/reaction/field-value.d.ts +9 -0
- package/dist/server/flow-surfaces/reaction/field-value.js +51 -2
- package/dist/server/flow-surfaces/reaction/linkage.d.ts +6 -1
- package/dist/server/flow-surfaces/reaction/linkage.js +18 -3
- package/dist/server/flow-surfaces/reaction/meta.js +19 -1
- package/dist/server/flow-surfaces/reaction/types.d.ts +19 -0
- package/dist/server/flow-surfaces/relation-backing-foreign-key.d.ts +10 -0
- package/dist/server/flow-surfaces/relation-backing-foreign-key.js +79 -0
- package/dist/server/flow-surfaces/runjs-authoring/ast/source.d.ts +1 -0
- package/dist/server/flow-surfaces/runjs-authoring/ast/source.js +20 -0
- package/dist/server/flow-surfaces/runjs-authoring/rules.js +0 -2
- package/dist/server/flow-surfaces/runjs-authoring/runtime/constants.d.ts +0 -1
- package/dist/server/flow-surfaces/runjs-authoring/runtime/constants.js +11 -19
- package/dist/server/flow-surfaces/runjs-authoring/runtime/types.d.ts +0 -12
- package/dist/server/flow-surfaces/runjs-authoring/scan/filter.js +12 -2
- package/dist/server/flow-surfaces/runjs-authoring/scan/index.d.ts +0 -14
- package/dist/server/flow-surfaces/runjs-authoring/scan/index.js +10 -8
- package/dist/server/flow-surfaces/runjs-authoring/scan/source-patterns.d.ts +0 -14
- package/dist/server/flow-surfaces/runjs-authoring/scan/source-patterns.js +18 -73
- package/dist/server/flow-surfaces/runjs-authoring/types.d.ts +1 -1
- package/dist/server/flow-surfaces/runjs-authoring/validators/index.js +9 -53
- package/dist/server/flow-surfaces/service.d.ts +42 -0
- package/dist/server/flow-surfaces/service.js +741 -100
- package/dist/server/flow-surfaces/types.d.ts +2 -1
- package/dist/server/variables/registry.js +3 -0
- package/dist/swagger/flow-surfaces.d.ts +181 -0
- package/dist/swagger/flow-surfaces.examples.d.ts +11 -0
- package/dist/swagger/flow-surfaces.examples.js +11 -0
- package/dist/swagger/flow-surfaces.js +161 -4
- package/dist/swagger/index.d.ts +181 -0
- package/package.json +2 -2
- package/dist/server/flow-surfaces/runjs-authoring/blocked-global-stop/index.js +0 -40
|
@@ -45,7 +45,8 @@ export type FlowSurfaceConfigureOption = {
|
|
|
45
45
|
type: FlowSurfaceConfigureOptionValueType;
|
|
46
46
|
description?: string;
|
|
47
47
|
enum?: Array<string | number | boolean>;
|
|
48
|
-
example?:
|
|
48
|
+
example?: unknown;
|
|
49
|
+
default?: unknown;
|
|
49
50
|
supportsFlowContext?: boolean;
|
|
50
51
|
};
|
|
51
52
|
export type FlowSurfaceConfigureOptions = Record<string, FlowSurfaceConfigureOption>;
|
|
@@ -89,6 +89,9 @@ class VariableRegistry {
|
|
|
89
89
|
}
|
|
90
90
|
const GLOBAL_KEY = "__ncbVarRegistry__";
|
|
91
91
|
const g = typeof globalThis !== "undefined" ? globalThis : global;
|
|
92
|
+
if (g[GLOBAL_KEY] && typeof g[GLOBAL_KEY] === "object") {
|
|
93
|
+
Object.setPrototypeOf(g[GLOBAL_KEY], VariableRegistry.prototype);
|
|
94
|
+
}
|
|
92
95
|
if (!g[GLOBAL_KEY]) {
|
|
93
96
|
g[GLOBAL_KEY] = new VariableRegistry();
|
|
94
97
|
}
|
|
@@ -5763,6 +5763,186 @@ declare const _default: {
|
|
|
5763
5763
|
};
|
|
5764
5764
|
additionalProperties: boolean;
|
|
5765
5765
|
};
|
|
5766
|
+
FlowSurfaceExportBlueprintUnsupportedPolicy: {
|
|
5767
|
+
type: string;
|
|
5768
|
+
enum: string[];
|
|
5769
|
+
description: string;
|
|
5770
|
+
};
|
|
5771
|
+
FlowSurfaceExportBlueprintUnsupportedItem: {
|
|
5772
|
+
type: string;
|
|
5773
|
+
required: string[];
|
|
5774
|
+
properties: {
|
|
5775
|
+
kind: {
|
|
5776
|
+
type: string;
|
|
5777
|
+
enum: string[];
|
|
5778
|
+
};
|
|
5779
|
+
use: {
|
|
5780
|
+
type: string;
|
|
5781
|
+
example: string;
|
|
5782
|
+
};
|
|
5783
|
+
type: {
|
|
5784
|
+
type: string;
|
|
5785
|
+
example: string;
|
|
5786
|
+
};
|
|
5787
|
+
path: {
|
|
5788
|
+
type: string;
|
|
5789
|
+
example: string;
|
|
5790
|
+
};
|
|
5791
|
+
reasonCode: {
|
|
5792
|
+
type: string;
|
|
5793
|
+
example: string;
|
|
5794
|
+
};
|
|
5795
|
+
manualAction: {
|
|
5796
|
+
type: string;
|
|
5797
|
+
example: string;
|
|
5798
|
+
};
|
|
5799
|
+
};
|
|
5800
|
+
additionalProperties: boolean;
|
|
5801
|
+
};
|
|
5802
|
+
FlowSurfaceExportBlueprintTarget: {
|
|
5803
|
+
oneOf: ({
|
|
5804
|
+
type: string;
|
|
5805
|
+
required: string[];
|
|
5806
|
+
properties: {
|
|
5807
|
+
uid: {
|
|
5808
|
+
type: string;
|
|
5809
|
+
};
|
|
5810
|
+
pageSchemaUid?: undefined;
|
|
5811
|
+
tabSchemaUid?: undefined;
|
|
5812
|
+
routeId?: undefined;
|
|
5813
|
+
};
|
|
5814
|
+
additionalProperties: boolean;
|
|
5815
|
+
} | {
|
|
5816
|
+
type: string;
|
|
5817
|
+
required: string[];
|
|
5818
|
+
properties: {
|
|
5819
|
+
pageSchemaUid: {
|
|
5820
|
+
type: string;
|
|
5821
|
+
};
|
|
5822
|
+
uid?: undefined;
|
|
5823
|
+
tabSchemaUid?: undefined;
|
|
5824
|
+
routeId?: undefined;
|
|
5825
|
+
};
|
|
5826
|
+
additionalProperties: boolean;
|
|
5827
|
+
} | {
|
|
5828
|
+
type: string;
|
|
5829
|
+
required: string[];
|
|
5830
|
+
properties: {
|
|
5831
|
+
tabSchemaUid: {
|
|
5832
|
+
type: string;
|
|
5833
|
+
};
|
|
5834
|
+
uid?: undefined;
|
|
5835
|
+
pageSchemaUid?: undefined;
|
|
5836
|
+
routeId?: undefined;
|
|
5837
|
+
};
|
|
5838
|
+
additionalProperties: boolean;
|
|
5839
|
+
} | {
|
|
5840
|
+
type: string;
|
|
5841
|
+
required: string[];
|
|
5842
|
+
properties: {
|
|
5843
|
+
routeId: {
|
|
5844
|
+
type: string;
|
|
5845
|
+
};
|
|
5846
|
+
uid?: undefined;
|
|
5847
|
+
pageSchemaUid?: undefined;
|
|
5848
|
+
tabSchemaUid?: undefined;
|
|
5849
|
+
};
|
|
5850
|
+
additionalProperties: boolean;
|
|
5851
|
+
})[];
|
|
5852
|
+
description: string;
|
|
5853
|
+
};
|
|
5854
|
+
FlowSurfaceExportBlueprintRequest: {
|
|
5855
|
+
type: string;
|
|
5856
|
+
required: string[];
|
|
5857
|
+
properties: {
|
|
5858
|
+
target: {
|
|
5859
|
+
$ref: string;
|
|
5860
|
+
};
|
|
5861
|
+
options: {
|
|
5862
|
+
type: string;
|
|
5863
|
+
properties: {
|
|
5864
|
+
unsupported: {
|
|
5865
|
+
$ref: string;
|
|
5866
|
+
};
|
|
5867
|
+
};
|
|
5868
|
+
additionalProperties: boolean;
|
|
5869
|
+
};
|
|
5870
|
+
};
|
|
5871
|
+
additionalProperties: boolean;
|
|
5872
|
+
};
|
|
5873
|
+
FlowSurfaceExportBlueprintSource: {
|
|
5874
|
+
type: string;
|
|
5875
|
+
required: string[];
|
|
5876
|
+
properties: {
|
|
5877
|
+
target: {
|
|
5878
|
+
$ref: string;
|
|
5879
|
+
};
|
|
5880
|
+
pageTitle: {
|
|
5881
|
+
type: string;
|
|
5882
|
+
};
|
|
5883
|
+
};
|
|
5884
|
+
additionalProperties: boolean;
|
|
5885
|
+
};
|
|
5886
|
+
FlowSurfaceExportBlueprintDocument: {
|
|
5887
|
+
type: string;
|
|
5888
|
+
required: string[];
|
|
5889
|
+
description: string;
|
|
5890
|
+
properties: {
|
|
5891
|
+
version: {
|
|
5892
|
+
type: string;
|
|
5893
|
+
enum: string[];
|
|
5894
|
+
};
|
|
5895
|
+
mode: {
|
|
5896
|
+
type: string;
|
|
5897
|
+
enum: string[];
|
|
5898
|
+
};
|
|
5899
|
+
target: {
|
|
5900
|
+
$ref: string;
|
|
5901
|
+
};
|
|
5902
|
+
page: {
|
|
5903
|
+
$ref: string;
|
|
5904
|
+
};
|
|
5905
|
+
tabs: {
|
|
5906
|
+
type: string;
|
|
5907
|
+
minItems: number;
|
|
5908
|
+
items: {
|
|
5909
|
+
$ref: string;
|
|
5910
|
+
};
|
|
5911
|
+
};
|
|
5912
|
+
assets: {
|
|
5913
|
+
$ref: string;
|
|
5914
|
+
};
|
|
5915
|
+
reaction: {
|
|
5916
|
+
$ref: string;
|
|
5917
|
+
};
|
|
5918
|
+
};
|
|
5919
|
+
additionalProperties: boolean;
|
|
5920
|
+
};
|
|
5921
|
+
FlowSurfaceExportBlueprintResponse: {
|
|
5922
|
+
type: string;
|
|
5923
|
+
required: string[];
|
|
5924
|
+
properties: {
|
|
5925
|
+
document: {
|
|
5926
|
+
$ref: string;
|
|
5927
|
+
};
|
|
5928
|
+
source: {
|
|
5929
|
+
$ref: string;
|
|
5930
|
+
};
|
|
5931
|
+
warnings: {
|
|
5932
|
+
type: string;
|
|
5933
|
+
items: {
|
|
5934
|
+
type: string;
|
|
5935
|
+
};
|
|
5936
|
+
};
|
|
5937
|
+
unsupported: {
|
|
5938
|
+
type: string;
|
|
5939
|
+
items: {
|
|
5940
|
+
$ref: string;
|
|
5941
|
+
};
|
|
5942
|
+
};
|
|
5943
|
+
};
|
|
5944
|
+
additionalProperties: boolean;
|
|
5945
|
+
};
|
|
5766
5946
|
FlowSurfaceMutateWriteTarget: {
|
|
5767
5947
|
type: string;
|
|
5768
5948
|
required: string[];
|
|
@@ -5922,6 +6102,7 @@ declare const _default: {
|
|
|
5922
6102
|
};
|
|
5923
6103
|
};
|
|
5924
6104
|
example: {};
|
|
6105
|
+
default: {};
|
|
5925
6106
|
supportsFlowContext: {
|
|
5926
6107
|
type: string;
|
|
5927
6108
|
};
|
|
@@ -28,6 +28,14 @@ export declare const flowSurfaceExamples: {
|
|
|
28
28
|
expectedKind: string;
|
|
29
29
|
}[];
|
|
30
30
|
};
|
|
31
|
+
exportBlueprint: {
|
|
32
|
+
target: {
|
|
33
|
+
pageSchemaUid: string;
|
|
34
|
+
};
|
|
35
|
+
options: {
|
|
36
|
+
unsupported: string;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
31
39
|
applyBlueprint: {
|
|
32
40
|
version: string;
|
|
33
41
|
mode: string;
|
|
@@ -660,6 +668,7 @@ export declare const flowSurfaceExamples: {
|
|
|
660
668
|
title: string;
|
|
661
669
|
description: string;
|
|
662
670
|
className: string;
|
|
671
|
+
showBlockCard: boolean;
|
|
663
672
|
version: string;
|
|
664
673
|
code: string;
|
|
665
674
|
};
|
|
@@ -756,6 +765,7 @@ export declare const flowSurfaceExamples: {
|
|
|
756
765
|
title: string;
|
|
757
766
|
description: string;
|
|
758
767
|
className: string;
|
|
768
|
+
showBlockCard: boolean;
|
|
759
769
|
version: string;
|
|
760
770
|
code: string;
|
|
761
771
|
};
|
|
@@ -1060,6 +1070,7 @@ export declare const flowSurfaceExamples: {
|
|
|
1060
1070
|
settings: {
|
|
1061
1071
|
title: string;
|
|
1062
1072
|
description: string;
|
|
1073
|
+
showBlockCard: boolean;
|
|
1063
1074
|
version: string;
|
|
1064
1075
|
code: string;
|
|
1065
1076
|
};
|
|
@@ -106,6 +106,14 @@ const flowSurfaceExamples = {
|
|
|
106
106
|
}
|
|
107
107
|
]
|
|
108
108
|
},
|
|
109
|
+
exportBlueprint: {
|
|
110
|
+
target: {
|
|
111
|
+
pageSchemaUid: "employees-page-schema"
|
|
112
|
+
},
|
|
113
|
+
options: {
|
|
114
|
+
unsupported: "error"
|
|
115
|
+
}
|
|
116
|
+
},
|
|
109
117
|
applyBlueprint: {
|
|
110
118
|
version: "1",
|
|
111
119
|
mode: "create",
|
|
@@ -885,6 +893,7 @@ const flowSurfaceExamples = {
|
|
|
885
893
|
title: "Custom hero",
|
|
886
894
|
description: "Rendered by JS block runtime",
|
|
887
895
|
className: "hero-shell",
|
|
896
|
+
showBlockCard: true,
|
|
888
897
|
version: "1.0.0",
|
|
889
898
|
code: "ctx.render('<div>Hello from JS block</div>');"
|
|
890
899
|
}
|
|
@@ -988,6 +997,7 @@ const flowSurfaceExamples = {
|
|
|
988
997
|
title: "Users hero",
|
|
989
998
|
description: "Rendered from FlowSurfaces configure",
|
|
990
999
|
className: "users-hero",
|
|
1000
|
+
showBlockCard: true,
|
|
991
1001
|
version: "1.0.1",
|
|
992
1002
|
code: "ctx.render('<div>Users hero</div>');"
|
|
993
1003
|
}
|
|
@@ -1333,6 +1343,7 @@ const flowSurfaceExamples = {
|
|
|
1333
1343
|
settings: {
|
|
1334
1344
|
title: "Users banner",
|
|
1335
1345
|
description: "Custom JS rendered banner",
|
|
1346
|
+
showBlockCard: true,
|
|
1336
1347
|
version: "1.0.0",
|
|
1337
1348
|
code: "ctx.render('<div>Users banner</div>');"
|
|
1338
1349
|
}
|
|
@@ -141,7 +141,11 @@ const APPLY_BLUEPRINT_BLOCK_TYPE_ENUM = [
|
|
|
141
141
|
"jsBlock",
|
|
142
142
|
"tree"
|
|
143
143
|
];
|
|
144
|
-
const
|
|
144
|
+
const APPROVAL_BLUEPRINT_GENERIC_BLOCK_TYPE_ENUM = ["markdown", "jsBlock"];
|
|
145
|
+
const APPROVAL_BLUEPRINT_BLOCK_TYPE_ENUM = [
|
|
146
|
+
...import_catalog_specs.APPROVAL_BLOCK_PUBLIC_KEYS,
|
|
147
|
+
...APPROVAL_BLUEPRINT_GENERIC_BLOCK_TYPE_ENUM
|
|
148
|
+
];
|
|
145
149
|
const COMPOSE_BLOCK_TYPE_ENUM = [...APPLY_BLUEPRINT_BLOCK_TYPE_ENUM, ...import_catalog_specs.APPROVAL_BLOCK_PUBLIC_KEYS];
|
|
146
150
|
const RELATION_FIELD_TYPE_ENUM = [
|
|
147
151
|
"text",
|
|
@@ -496,7 +500,7 @@ function buildReactionCapabilitySchema(kind, ruleSchemaName, extraProperties = {
|
|
|
496
500
|
additionalProperties: false
|
|
497
501
|
};
|
|
498
502
|
}
|
|
499
|
-
const FLOW_SURFACES_READ_ACL_NOTE = "Read actions (`get` / `describeSurface` / `catalog` / `context` / `getReactionMeta` / `getEventFlowMeta` / `listTemplates` / `getTemplate`) are open to `loggedIn` by default. Write actions still require the `ui.flowSurfaces` snippet.";
|
|
503
|
+
const FLOW_SURFACES_READ_ACL_NOTE = "Read actions (`get` / `describeSurface` / `exportBlueprint` / `catalog` / `context` / `getReactionMeta` / `getEventFlowMeta` / `listTemplates` / `getTemplate`) are open to `loggedIn` by default. Write actions still require the `ui.flowSurfaces` snippet.";
|
|
500
504
|
const templateActionDocs = (0, import_flow_surfaces2.createFlowSurfaceTemplateActionDocs)({
|
|
501
505
|
tag: FLOW_SURFACES_TAG,
|
|
502
506
|
readAclNote: FLOW_SURFACES_READ_ACL_NOTE,
|
|
@@ -606,6 +610,15 @@ const actionDocs = {
|
|
|
606
610
|
requestBody: requestBody("FlowSurfaceDescribeSurfaceRequest", import_flow_surfaces.flowSurfaceExamples.describeSurface),
|
|
607
611
|
responses: responses("FlowSurfaceDescribeSurfaceResponse")
|
|
608
612
|
},
|
|
613
|
+
exportBlueprint: {
|
|
614
|
+
tags: [FLOW_SURFACES_TAG],
|
|
615
|
+
summary: "Export one root Modern page as an applyBlueprint replace document",
|
|
616
|
+
description: valuesCompatibilityNote(
|
|
617
|
+
`Exports an existing root flow page into a v1 \`FlowSurfaceApplyBlueprintDocument\` that can be sent back to \`flowSurfaces:applyBlueprint\` for same-instance \`replace\`. The request body uses \`{ target, options }\` and does not change the \`flowSurfaces:get\` GET query-locator contract. v1 only supports root page export; block, field, action, tab, and \`tabSchemaUid\` subtree targets return HTTP 400. The exported document intentionally omits \`navigation\` and does not expose raw \`tree\`, \`nodeMap\`, node uid, internal refs, or internal metadata. \`document.target.pageSchemaUid\` is retained for same-instance replace. ${FLOW_SURFACES_READ_ACL_NOTE}`
|
|
618
|
+
),
|
|
619
|
+
requestBody: requestBody("FlowSurfaceExportBlueprintRequest", import_flow_surfaces.flowSurfaceExamples.exportBlueprint),
|
|
620
|
+
responses: responses("FlowSurfaceExportBlueprintResponse")
|
|
621
|
+
},
|
|
609
622
|
applyBlueprint: {
|
|
610
623
|
tags: [FLOW_SURFACES_TAG],
|
|
611
624
|
summary: "Apply a page blueprint to create or replace one Modern page",
|
|
@@ -641,7 +654,7 @@ const actionDocs = {
|
|
|
641
654
|
tags: [FLOW_SURFACES_TAG],
|
|
642
655
|
summary: "Apply an approval blueprint to initiator, approver, or task-card surfaces",
|
|
643
656
|
description: valuesCompatibilityNote(
|
|
644
|
-
"Builds workflow-approval configuration surfaces through the existing flowSurfaces orchestration layer instead of a separate approval resource. This is the preferred whole-surface bootstrap / replace entry for approval initiator, approver, and task-card UIs. Unlike route-backed `applyBlueprint`, this action targets approval-bound FlowModel roots stored on approval workflow trigger config (`workflow.config.approvalUid` / `workflow.config.taskCardUid`) or approval node config (`node.config.approvalUid` / `node.config.taskCardUid`). The backend creates or reuses the correct approval root automatically, rewrites the binding uid, applies a `replace` blueprint to that root, and reconciles approval runtime config derived from approval actions such as withdraw / approve / reject / return / delegate / add-assignee. `surface='initiator'` requires `workflowId` and writes page-like `blocks + layout` into `TriggerChildPageModel -> TriggerChildPageTabModel -> TriggerBlockGridModel`. `surface='approver'` requires `nodeId` and writes page-like `blocks + layout` into `ApprovalChildPageModel -> ApprovalChildPageTabModel -> ApprovalBlockGridModel`. Page-like `blocks[]` may
|
|
657
|
+
"Builds workflow-approval configuration surfaces through the existing flowSurfaces orchestration layer instead of a separate approval resource. This is the preferred whole-surface bootstrap / replace entry for approval initiator, approver, and task-card UIs. Unlike route-backed `applyBlueprint`, this action targets approval-bound FlowModel roots stored on approval workflow trigger config (`workflow.config.approvalUid` / `workflow.config.taskCardUid`) or approval node config (`node.config.approvalUid` / `node.config.taskCardUid`). The backend creates or reuses the correct approval root automatically, rewrites the binding uid, applies a `replace` blueprint to that root, and reconciles approval runtime config derived from approval actions such as withdraw / approve / reject / return / delegate / add-assignee. `surface='initiator'` requires `workflowId` and writes page-like `blocks + layout` into `TriggerChildPageModel -> TriggerChildPageTabModel -> TriggerBlockGridModel`. `approvalInitiator` creates `approvalSubmit` by default; do not include `approvalSubmit` in `blocks[].actions`, otherwise authoring validation returns aggregate `errors[]` and the same write must be retried after removing it. `surface='approver'` requires `nodeId` and writes page-like `blocks + layout` into `ApprovalChildPageModel -> ApprovalChildPageTabModel -> ApprovalBlockGridModel`. Page-like `blocks[]` may declare approval-specific block types, fixed generic block types (`markdown`, `jsBlock`), or reuse a saved block template through `template: { uid, mode }`. `surface='taskCard'` requires exactly one of `workflowId` or `nodeId` and writes `fields + layout` into `ApplyTaskCardDetailsModel` or `ApprovalTaskCardDetailsModel`. This v1 action does not cover legacy schema-config wiring; it focuses on approval FlowModel construction, binding persistence, and approval runtime-config synchronization. When `layout` is omitted, the backend generates a simple top-to-bottom layout for the resulting blocks or fields."
|
|
645
658
|
),
|
|
646
659
|
requestBody: {
|
|
647
660
|
required: true,
|
|
@@ -1345,6 +1358,149 @@ const schemas = {
|
|
|
1345
1358
|
},
|
|
1346
1359
|
additionalProperties: false
|
|
1347
1360
|
},
|
|
1361
|
+
FlowSurfaceExportBlueprintUnsupportedPolicy: {
|
|
1362
|
+
type: "string",
|
|
1363
|
+
enum: ["error", "warn"],
|
|
1364
|
+
description: "`error` rejects visible nodes the v1 mapper cannot express. `warn` skips them and reports warnings/unsupported items."
|
|
1365
|
+
},
|
|
1366
|
+
FlowSurfaceExportBlueprintUnsupportedItem: {
|
|
1367
|
+
type: "object",
|
|
1368
|
+
required: ["kind", "path", "reasonCode", "manualAction"],
|
|
1369
|
+
properties: {
|
|
1370
|
+
kind: {
|
|
1371
|
+
type: "string",
|
|
1372
|
+
enum: ["page", "tab", "block", "field", "action", "recordAction", "reaction", "layout", "popup"]
|
|
1373
|
+
},
|
|
1374
|
+
use: {
|
|
1375
|
+
type: "string",
|
|
1376
|
+
example: "UnknownModel"
|
|
1377
|
+
},
|
|
1378
|
+
type: {
|
|
1379
|
+
type: "string",
|
|
1380
|
+
example: "unknown"
|
|
1381
|
+
},
|
|
1382
|
+
path: {
|
|
1383
|
+
type: "string",
|
|
1384
|
+
example: "$.tabs[0].blocks[2]"
|
|
1385
|
+
},
|
|
1386
|
+
reasonCode: {
|
|
1387
|
+
type: "string",
|
|
1388
|
+
example: "unsupported-node"
|
|
1389
|
+
},
|
|
1390
|
+
manualAction: {
|
|
1391
|
+
type: "string",
|
|
1392
|
+
example: "Recreate this block manually or add mapper support."
|
|
1393
|
+
}
|
|
1394
|
+
},
|
|
1395
|
+
additionalProperties: false
|
|
1396
|
+
},
|
|
1397
|
+
FlowSurfaceExportBlueprintTarget: {
|
|
1398
|
+
oneOf: [
|
|
1399
|
+
{
|
|
1400
|
+
type: "object",
|
|
1401
|
+
required: ["uid"],
|
|
1402
|
+
properties: {
|
|
1403
|
+
uid: { type: "string" }
|
|
1404
|
+
},
|
|
1405
|
+
additionalProperties: false
|
|
1406
|
+
},
|
|
1407
|
+
{
|
|
1408
|
+
type: "object",
|
|
1409
|
+
required: ["pageSchemaUid"],
|
|
1410
|
+
properties: {
|
|
1411
|
+
pageSchemaUid: { type: "string" }
|
|
1412
|
+
},
|
|
1413
|
+
additionalProperties: false
|
|
1414
|
+
},
|
|
1415
|
+
{
|
|
1416
|
+
type: "object",
|
|
1417
|
+
required: ["tabSchemaUid"],
|
|
1418
|
+
properties: {
|
|
1419
|
+
tabSchemaUid: { type: "string" }
|
|
1420
|
+
},
|
|
1421
|
+
additionalProperties: false
|
|
1422
|
+
},
|
|
1423
|
+
{
|
|
1424
|
+
type: "object",
|
|
1425
|
+
required: ["routeId"],
|
|
1426
|
+
properties: {
|
|
1427
|
+
routeId: { type: "string" }
|
|
1428
|
+
},
|
|
1429
|
+
additionalProperties: false
|
|
1430
|
+
}
|
|
1431
|
+
],
|
|
1432
|
+
description: "Exactly one root locator. v1 accepts pageSchemaUid, routeId, or a uid that resolves to the root page. tabSchemaUid and non-root uid targets return HTTP 400."
|
|
1433
|
+
},
|
|
1434
|
+
FlowSurfaceExportBlueprintRequest: {
|
|
1435
|
+
type: "object",
|
|
1436
|
+
required: ["target"],
|
|
1437
|
+
properties: {
|
|
1438
|
+
target: ref("FlowSurfaceExportBlueprintTarget"),
|
|
1439
|
+
options: {
|
|
1440
|
+
type: "object",
|
|
1441
|
+
properties: {
|
|
1442
|
+
unsupported: ref("FlowSurfaceExportBlueprintUnsupportedPolicy")
|
|
1443
|
+
},
|
|
1444
|
+
additionalProperties: false
|
|
1445
|
+
}
|
|
1446
|
+
},
|
|
1447
|
+
additionalProperties: false
|
|
1448
|
+
},
|
|
1449
|
+
FlowSurfaceExportBlueprintSource: {
|
|
1450
|
+
type: "object",
|
|
1451
|
+
required: ["target"],
|
|
1452
|
+
properties: {
|
|
1453
|
+
target: ref("FlowSurfaceApplyBlueprintTarget"),
|
|
1454
|
+
pageTitle: {
|
|
1455
|
+
type: "string"
|
|
1456
|
+
}
|
|
1457
|
+
},
|
|
1458
|
+
additionalProperties: false
|
|
1459
|
+
},
|
|
1460
|
+
FlowSurfaceExportBlueprintDocument: {
|
|
1461
|
+
type: "object",
|
|
1462
|
+
required: ["version", "mode", "target", "tabs", "assets"],
|
|
1463
|
+
description: "Prepared v1 applyBlueprint document in replace mode. It intentionally omits navigation and retains target.pageSchemaUid for same-instance replace.",
|
|
1464
|
+
properties: {
|
|
1465
|
+
version: {
|
|
1466
|
+
type: "string",
|
|
1467
|
+
enum: ["1"]
|
|
1468
|
+
},
|
|
1469
|
+
mode: {
|
|
1470
|
+
type: "string",
|
|
1471
|
+
enum: ["replace"]
|
|
1472
|
+
},
|
|
1473
|
+
target: ref("FlowSurfaceApplyBlueprintTarget"),
|
|
1474
|
+
page: ref("FlowSurfaceApplyBlueprintPage"),
|
|
1475
|
+
tabs: {
|
|
1476
|
+
type: "array",
|
|
1477
|
+
minItems: 1,
|
|
1478
|
+
items: ref("FlowSurfaceApplyBlueprintTab")
|
|
1479
|
+
},
|
|
1480
|
+
assets: ref("FlowSurfaceApplyBlueprintAssets"),
|
|
1481
|
+
reaction: ref("FlowSurfaceApplyBlueprintReaction")
|
|
1482
|
+
},
|
|
1483
|
+
additionalProperties: false
|
|
1484
|
+
},
|
|
1485
|
+
FlowSurfaceExportBlueprintResponse: {
|
|
1486
|
+
type: "object",
|
|
1487
|
+
required: ["document", "source", "warnings", "unsupported"],
|
|
1488
|
+
properties: {
|
|
1489
|
+
document: ref("FlowSurfaceExportBlueprintDocument"),
|
|
1490
|
+
source: ref("FlowSurfaceExportBlueprintSource"),
|
|
1491
|
+
warnings: {
|
|
1492
|
+
type: "array",
|
|
1493
|
+
items: {
|
|
1494
|
+
type: "string"
|
|
1495
|
+
}
|
|
1496
|
+
},
|
|
1497
|
+
unsupported: {
|
|
1498
|
+
type: "array",
|
|
1499
|
+
items: ref("FlowSurfaceExportBlueprintUnsupportedItem")
|
|
1500
|
+
}
|
|
1501
|
+
},
|
|
1502
|
+
additionalProperties: false
|
|
1503
|
+
},
|
|
1348
1504
|
FlowSurfaceMutateWriteTarget: {
|
|
1349
1505
|
type: "object",
|
|
1350
1506
|
required: ["uid"],
|
|
@@ -1486,6 +1642,7 @@ const schemas = {
|
|
|
1486
1642
|
}
|
|
1487
1643
|
},
|
|
1488
1644
|
example: {},
|
|
1645
|
+
default: {},
|
|
1489
1646
|
supportsFlowContext: {
|
|
1490
1647
|
type: "boolean"
|
|
1491
1648
|
}
|
|
@@ -4336,7 +4493,7 @@ const schemas = {
|
|
|
4336
4493
|
FlowSurfaceApplyApprovalBlueprintRequest: {
|
|
4337
4494
|
type: "object",
|
|
4338
4495
|
required: ["surface"],
|
|
4339
|
-
description: "Simplified approval-surface blueprint request for workflow approval UIs. This is the preferred bootstrap / replace route for approval initiator, approver, and task-card surfaces. `version` may be omitted and defaults to '1'. `mode` may be omitted and defaults to `replace`; v1 only supports `replace`. Runtime validation enforces binding rules: `initiator` requires `workflowId`, `approver` requires `nodeId`, and `taskCard` requires exactly one of `workflowId` or `nodeId`. Page-like surfaces (`initiator`, `approver`) accept `blocks + layout`; each block may declare `
|
|
4496
|
+
description: "Simplified approval-surface blueprint request for workflow approval UIs. This is the preferred bootstrap / replace route for approval initiator, approver, and task-card surfaces. `version` may be omitted and defaults to '1'. `mode` may be omitted and defaults to `replace`; v1 only supports `replace`. Runtime validation enforces binding rules: `initiator` requires `workflowId`, `approver` requires `nodeId`, and `taskCard` requires exactly one of `workflowId` or `nodeId`. Page-like surfaces (`initiator`, `approver`) accept `blocks + layout`; each block may declare approval-specific types, fixed generic types (`markdown`, `jsBlock`), or reuse `template: { uid, mode }`. `approvalInitiator` creates `approvalSubmit` by default, so callers should only add optional initiator actions such as `approvalSaveDraft` or `approvalWithdraw`. `taskCard` accepts `fields + layout`. This route does not perform schema wiring, but it does persist binding fields and reconcile approval runtime config from approval actions. Authoring validation failures use the same aggregate `errors[]` retry contract as `applyBlueprint`.",
|
|
4340
4497
|
properties: {
|
|
4341
4498
|
version: {
|
|
4342
4499
|
type: "string",
|