openxiangda-devkit-core 2.0.0-alpha.80 → 2.0.0-alpha.84
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/application-services.d.ts +5 -0
- package/dist/application-services.d.ts.map +1 -1
- package/dist/application-services.js +29 -36
- package/dist/application-services.js.map +1 -1
- package/dist/compiler/ai-catalog.js +1 -1
- package/dist/compiler/ai-catalog.js.map +1 -1
- package/dist/compiler/authorization-transition.d.ts +7 -0
- package/dist/compiler/authorization-transition.d.ts.map +1 -0
- package/dist/compiler/authorization-transition.js +27 -0
- package/dist/compiler/authorization-transition.js.map +1 -0
- package/dist/compiler/bundle.d.ts +2 -2
- package/dist/compiler/bundle.d.ts.map +1 -1
- package/dist/compiler/bundle.js +170 -14
- package/dist/compiler/bundle.js.map +1 -1
- package/dist/compiler/config.d.ts +39 -14
- package/dist/compiler/config.d.ts.map +1 -1
- package/dist/compiler/config.js +229 -41
- package/dist/compiler/config.js.map +1 -1
- package/dist/compiler/field-physical-plan.d.ts +1 -0
- package/dist/compiler/field-physical-plan.d.ts.map +1 -1
- package/dist/compiler/field-physical-plan.js +8 -1
- package/dist/compiler/field-physical-plan.js.map +1 -1
- package/dist/compiler/package-compiler.d.ts +3 -3
- package/dist/compiler/package-compiler.d.ts.map +1 -1
- package/dist/compiler/package-compiler.js +182 -31
- package/dist/compiler/package-compiler.js.map +1 -1
- package/dist/compiler/schema-composition.js +2 -2
- package/dist/compiler/schema-composition.js.map +1 -1
- package/dist/control-plane-client.d.ts +6 -28
- package/dist/control-plane-client.d.ts.map +1 -1
- package/dist/control-plane-client.js +10 -19
- package/dist/control-plane-client.js.map +1 -1
- package/dist/deployment.d.ts +4 -4
- package/dist/deployment.d.ts.map +1 -1
- package/dist/deployment.js +28 -11
- package/dist/deployment.js.map +1 -1
- package/dist/internal/workflow.d.ts.map +1 -1
- package/dist/internal/workflow.js +29 -0
- package/dist/internal/workflow.js.map +1 -1
- package/dist/workspace-loader.d.ts.map +1 -1
- package/dist/workspace-loader.js +12 -1
- package/dist/workspace-loader.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { type AppApiOperationDeclaration, type AppAuthorizationTransitionDeclaration, type AppBackendSecretDeclaration, type AppCapabilityDeclaration, type AppDataPolicyDeclaration, type AppDataPolicyExpressionDeclaration, type AppDataPolicyRuleDeclaration, type AppFrontendRouteDeclaration, type ApplicationAuthenticationDeclarationV2, type AppAdminNavigationDeclaration, type AppAdminNavigationGroupDeclaration, type AppAdminNavigationItemDeclaration, type AppWorkflowLaunchDeclaration, type AppWorkflowDetailRouteCodeDeclaration, type AppPerspectiveDeclaration, type AppRoleDeclaration, type AppRoleMembershipSourceDeclaration, type AppRelationshipGrantSourceDeclaration, type AppScopeDimensionDeclaration, type AppScopeSourceDeclaration, type NativeWorkflowEditableParameterDeclaration, type DataFieldDefinition, type DataFieldPolicy, type DataFieldSurfaceWidget, type DataResourceSurface, type DataResource, type Diagnostic, type ApplicationEventSchemaDeclaration, type DateTrigger, type EventSubscription, type TimerSubscription, type WorkflowBinding, type WorkflowDefinition } from 'openxiangda-contracts';
|
|
1
|
+
import { type AppApiOperationDeclaration, type AppEventSubscriptionPlatformAccessDeclaration, type AppAuthorizationTransitionDeclaration, type AppBackendSecretDeclaration, type AppCapabilityDeclaration, type AppDataPolicyDeclaration, type AppDataPolicyExpressionDeclaration, type AppDataPolicyRuleDeclaration, type AppFrontendRouteDeclaration, type ApplicationAuthenticationDeclarationV2, type AppAdminNavigationDeclaration, type AppAdminNavigationGroupDeclaration, type AppAdminNavigationItemDeclaration, type AppWorkflowLaunchDeclaration, type AppWorkflowDetailRouteCodeDeclaration, type AppPerspectiveDeclaration, type AppRoleDeclaration, type AppRoleMembershipSourceDeclaration, type AppRelationshipGrantSourceDeclaration, type AppScopeDimensionDeclaration, type AppScopeSourceDeclaration, type NativeWorkflowEditableParameterDeclaration, type DataFieldDefinition, type DataFieldPolicy, type DataFieldSurfaceWidget, type DataResourceSurface, type DataResource, type Diagnostic, type ApplicationEventSchemaDeclaration, type DateTrigger, type EventSubscription, type TimerSubscription, type WorkflowBinding, type WorkflowDefinition } from 'openxiangda-contracts';
|
|
2
2
|
export type EventSubscriptionDeclaration = Pick<EventSubscription, 'code' | 'eventTypes'> & {
|
|
3
3
|
description?: string;
|
|
4
4
|
filter?: EventSubscription['filter'];
|
|
5
5
|
payload?: Partial<EventSubscription['payload']>;
|
|
6
|
+
platformAccess?: AppEventSubscriptionPlatformAccessDeclaration;
|
|
6
7
|
delivery?: Partial<EventSubscription['delivery']>;
|
|
7
8
|
};
|
|
8
9
|
export type TimerSubscriptionDeclaration = Pick<TimerSubscription, 'code' | 'eventType' | 'cronExpression' | 'timezone' | 'payload'> & {
|
|
@@ -23,6 +24,7 @@ export interface WorkflowActivationDeclaration {
|
|
|
23
24
|
workflowCode: string;
|
|
24
25
|
definitionVersion: number;
|
|
25
26
|
bindingVersion: number;
|
|
27
|
+
acceptedCommandDeactivationPolicy: WorkflowDefinition['acceptedCommandDeactivationPolicy'];
|
|
26
28
|
}
|
|
27
29
|
export interface WorkflowAssigneeProviderDeclaration {
|
|
28
30
|
code: string;
|
|
@@ -61,6 +63,7 @@ export interface AppDataFieldDeclaration {
|
|
|
61
63
|
scale?: DataFieldDefinition['scale'];
|
|
62
64
|
min?: DataFieldDefinition['min'];
|
|
63
65
|
max?: DataFieldDefinition['max'];
|
|
66
|
+
rangeBoundary?: NonNullable<DataFieldDefinition['rangeBoundary']>;
|
|
64
67
|
timePrecision?: DataFieldDefinition['timePrecision'];
|
|
65
68
|
file?: DataFieldDefinition['file'];
|
|
66
69
|
serial?: DataFieldDefinition['serial'];
|
|
@@ -144,8 +147,6 @@ export interface OpenXiangdaAppConfig {
|
|
|
144
147
|
};
|
|
145
148
|
platform: {
|
|
146
149
|
root: string;
|
|
147
|
-
/** Additional platform contracts used directly by custom application code. */
|
|
148
|
-
requiredCapabilities?: string[];
|
|
149
150
|
};
|
|
150
151
|
perspectives?: AppPerspectiveDeclaration[];
|
|
151
152
|
data?: {
|
|
@@ -170,6 +171,7 @@ export interface OpenXiangdaAppConfig {
|
|
|
170
171
|
workflows?: {
|
|
171
172
|
definitions: WorkflowDefinitionDeclaration[];
|
|
172
173
|
bindings: WorkflowBindingDeclaration[];
|
|
174
|
+
/** Complete desired activation set; removing an item deactivates it on deploy. */
|
|
173
175
|
activations: WorkflowActivationDeclaration[];
|
|
174
176
|
providers?: WorkflowAssigneeProviderDeclaration[];
|
|
175
177
|
editableParameters?: NativeWorkflowEditableParameterDeclaration[];
|
|
@@ -318,17 +320,6 @@ export declare const openXiangdaAppConfigSchema: {
|
|
|
318
320
|
readonly type: "string";
|
|
319
321
|
readonly minLength: 1;
|
|
320
322
|
};
|
|
321
|
-
readonly requiredCapabilities: {
|
|
322
|
-
readonly type: "array";
|
|
323
|
-
readonly maxItems: 64;
|
|
324
|
-
readonly uniqueItems: true;
|
|
325
|
-
readonly items: {
|
|
326
|
-
readonly type: "string";
|
|
327
|
-
readonly minLength: 1;
|
|
328
|
-
readonly maxLength: 128;
|
|
329
|
-
readonly pattern: "^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$";
|
|
330
|
-
};
|
|
331
|
-
};
|
|
332
323
|
};
|
|
333
324
|
};
|
|
334
325
|
readonly perspectives: {
|
|
@@ -606,6 +597,40 @@ export declare const openXiangdaAppConfigSchema: {
|
|
|
606
597
|
readonly maxItems: 100;
|
|
607
598
|
readonly items: {
|
|
608
599
|
readonly type: "object";
|
|
600
|
+
readonly additionalProperties: false;
|
|
601
|
+
readonly required: readonly ["fromAuthzDigest", "reason"];
|
|
602
|
+
readonly properties: {
|
|
603
|
+
readonly fromAuthzDigest: {
|
|
604
|
+
readonly type: "string";
|
|
605
|
+
readonly pattern: "^[0-9a-f]{64}$";
|
|
606
|
+
};
|
|
607
|
+
readonly removeRoleCodes: {
|
|
608
|
+
readonly type: "array";
|
|
609
|
+
readonly maxItems: 2000;
|
|
610
|
+
readonly uniqueItems: true;
|
|
611
|
+
readonly items: {
|
|
612
|
+
readonly type: "string";
|
|
613
|
+
readonly pattern: "^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$";
|
|
614
|
+
readonly maxLength: 128;
|
|
615
|
+
};
|
|
616
|
+
};
|
|
617
|
+
readonly removeCapabilityCodes: {
|
|
618
|
+
readonly type: "array";
|
|
619
|
+
readonly maxItems: 2000;
|
|
620
|
+
readonly uniqueItems: true;
|
|
621
|
+
readonly items: {
|
|
622
|
+
readonly type: "string";
|
|
623
|
+
readonly pattern: "^[A-Za-z*][A-Za-z0-9:._*-]{0,254}$";
|
|
624
|
+
readonly maxLength: 255;
|
|
625
|
+
};
|
|
626
|
+
};
|
|
627
|
+
readonly reason: {
|
|
628
|
+
readonly type: "string";
|
|
629
|
+
readonly minLength: 1;
|
|
630
|
+
readonly maxLength: 2000;
|
|
631
|
+
readonly pattern: "\\S";
|
|
632
|
+
};
|
|
633
|
+
};
|
|
609
634
|
};
|
|
610
635
|
};
|
|
611
636
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/compiler/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/compiler/config.ts"],"names":[],"mappings":"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"}
|
package/dist/compiler/config.js
CHANGED
|
@@ -7,6 +7,7 @@ import { physicalPlanForField } from './field-physical-plan.js';
|
|
|
7
7
|
import { SEMANTIC_FIELD_PATH_PATTERN, semanticFieldPathRoot, validateAuthzSemanticBindings, } from './field-policy-path.js';
|
|
8
8
|
import { compatibleWidgets, isCompatibleFieldWidget, resolveDataFieldSurfaceWidget, } from './field-surface.js';
|
|
9
9
|
import { DATA_POLICY_EXPRESSION_MAX_DEPTH, DATA_POLICY_EXPRESSION_MAX_GROUP_ITEMS, DATA_POLICY_EXPRESSION_MAX_LEAVES, dataPolicyExpressionToCnf, } from './data-policy-expression.js';
|
|
10
|
+
import { AUTHORIZATION_TRANSITION_CAPABILITY_CODE_PATTERN, AUTHORIZATION_TRANSITION_KEYS, AUTHORIZATION_TRANSITION_ROLE_CODE_PATTERN, exactKeys, isExactStringArray, isPlainRecord, } from './authorization-transition.js';
|
|
10
11
|
// The compiler owns the application source contract. Devkit and every adapter
|
|
11
12
|
// re-export this module instead of maintaining separate configuration models.
|
|
12
13
|
import { validateWorkflowBinding, validateWorkflowDefinition, } from '../internal/workflow.js';
|
|
@@ -269,6 +270,43 @@ const relationshipGrantSourceInputSchema = {
|
|
|
269
270
|
...authorizationProjectionControlProperties,
|
|
270
271
|
},
|
|
271
272
|
};
|
|
273
|
+
const authorizationTransitionInputSchema = {
|
|
274
|
+
type: 'object',
|
|
275
|
+
additionalProperties: false,
|
|
276
|
+
required: ['fromAuthzDigest', 'reason'],
|
|
277
|
+
properties: {
|
|
278
|
+
fromAuthzDigest: {
|
|
279
|
+
type: 'string',
|
|
280
|
+
pattern: '^[0-9a-f]{64}$',
|
|
281
|
+
},
|
|
282
|
+
removeRoleCodes: {
|
|
283
|
+
type: 'array',
|
|
284
|
+
maxItems: 2000,
|
|
285
|
+
uniqueItems: true,
|
|
286
|
+
items: {
|
|
287
|
+
type: 'string',
|
|
288
|
+
pattern: '^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$',
|
|
289
|
+
maxLength: 128,
|
|
290
|
+
},
|
|
291
|
+
},
|
|
292
|
+
removeCapabilityCodes: {
|
|
293
|
+
type: 'array',
|
|
294
|
+
maxItems: 2000,
|
|
295
|
+
uniqueItems: true,
|
|
296
|
+
items: {
|
|
297
|
+
type: 'string',
|
|
298
|
+
pattern: '^[A-Za-z*][A-Za-z0-9:._*-]{0,254}$',
|
|
299
|
+
maxLength: 255,
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
reason: {
|
|
303
|
+
type: 'string',
|
|
304
|
+
minLength: 1,
|
|
305
|
+
maxLength: 2000,
|
|
306
|
+
pattern: '\\S',
|
|
307
|
+
},
|
|
308
|
+
},
|
|
309
|
+
};
|
|
272
310
|
export const openXiangdaAppConfigSchema = {
|
|
273
311
|
$id: 'openxiangda.app-config/v3',
|
|
274
312
|
type: 'object',
|
|
@@ -346,17 +384,6 @@ export const openXiangdaAppConfigSchema = {
|
|
|
346
384
|
required: ['root'],
|
|
347
385
|
properties: {
|
|
348
386
|
root: { type: 'string', minLength: 1 },
|
|
349
|
-
requiredCapabilities: {
|
|
350
|
-
type: 'array',
|
|
351
|
-
maxItems: 64,
|
|
352
|
-
uniqueItems: true,
|
|
353
|
-
items: {
|
|
354
|
-
type: 'string',
|
|
355
|
-
minLength: 1,
|
|
356
|
-
maxLength: 128,
|
|
357
|
-
pattern: '^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$',
|
|
358
|
-
},
|
|
359
|
-
},
|
|
360
387
|
},
|
|
361
388
|
},
|
|
362
389
|
perspectives: {
|
|
@@ -454,7 +481,7 @@ export const openXiangdaAppConfigSchema = {
|
|
|
454
481
|
authorizationTransitions: {
|
|
455
482
|
type: 'array',
|
|
456
483
|
maxItems: 100,
|
|
457
|
-
items:
|
|
484
|
+
items: authorizationTransitionInputSchema,
|
|
458
485
|
},
|
|
459
486
|
},
|
|
460
487
|
},
|
|
@@ -737,19 +764,14 @@ export function validateAppConfig(value) {
|
|
|
737
764
|
if (!string(app.name)) {
|
|
738
765
|
diagnostics.push(diagnostic('APP_CONFIG_NAME_REQUIRED', 'app.name 必须是非空字符串', 'app.name'));
|
|
739
766
|
}
|
|
740
|
-
const
|
|
741
|
-
|
|
742
|
-
(
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
requiredCapabilities.some(capability => typeof capability !== 'string' ||
|
|
746
|
-
capability.length > 128 ||
|
|
747
|
-
!/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/.test(capability)))) {
|
|
748
|
-
diagnostics.push(diagnostic('APP_CONFIG_PLATFORM_CAPABILITIES_INVALID', 'platform.requiredCapabilities 必须是不重复的规范平台能力代码数组(最多 64 项)', 'platform.requiredCapabilities'));
|
|
767
|
+
const platform = object(config.platform);
|
|
768
|
+
for (const key of Object.keys(platform)) {
|
|
769
|
+
if (key !== 'root') {
|
|
770
|
+
diagnostics.push(diagnostic('APP_CONFIG_PLATFORM_PROPERTY_UNSUPPORTED', `platform.${key} 不属于应用声明合同;平台能力要求只能由 compiler 派生`, `platform.${key}`));
|
|
771
|
+
}
|
|
749
772
|
}
|
|
750
773
|
const frontend = object(config.frontend);
|
|
751
774
|
const backend = object(config.backend);
|
|
752
|
-
const platform = object(config.platform);
|
|
753
775
|
const backendKeys = new Set([
|
|
754
776
|
'root',
|
|
755
777
|
'runtime',
|
|
@@ -795,10 +817,25 @@ export function validateAppConfig(value) {
|
|
|
795
817
|
validateFrontendRoutes(config, diagnostics);
|
|
796
818
|
validateAdminNavigation(config, diagnostics);
|
|
797
819
|
validatePerspectives(config.perspectives, object(config.authz).roles, diagnostics);
|
|
798
|
-
const
|
|
820
|
+
const declaredResources = new Map((Array.isArray(object(config.data).resources)
|
|
799
821
|
? object(config.data).resources
|
|
800
|
-
: []).map(resource =>
|
|
801
|
-
|
|
822
|
+
: []).map(resource => {
|
|
823
|
+
const item = object(resource);
|
|
824
|
+
const schema = object(item.schema);
|
|
825
|
+
const fields = Array.isArray(schema.fields) ? schema.fields : [];
|
|
826
|
+
return [
|
|
827
|
+
string(item.code),
|
|
828
|
+
new Map(fields.map(field => {
|
|
829
|
+
const declaration = object(field);
|
|
830
|
+
return [string(declaration.code), string(declaration.type)];
|
|
831
|
+
})),
|
|
832
|
+
];
|
|
833
|
+
}));
|
|
834
|
+
const declaredResourceCodes = new Set(declaredResources.keys());
|
|
835
|
+
const declaredWorkflowCodes = new Set((Array.isArray(object(config.workflows).activations)
|
|
836
|
+
? object(config.workflows).activations
|
|
837
|
+
: []).map(item => string(object(item).workflowCode)));
|
|
838
|
+
validateBackendOperations(backend.operations, declaredResources, declaredWorkflowCodes, diagnostics);
|
|
802
839
|
const eventConfig = object(config.events);
|
|
803
840
|
const workflowConfig = object(config.workflows);
|
|
804
841
|
if (backend.enabled === false &&
|
|
@@ -1626,6 +1663,16 @@ export function validateAppConfig(value) {
|
|
|
1626
1663
|
referencedFields.forEach(field => captured.add(field));
|
|
1627
1664
|
captureFieldsByResource.set(resourceCode, captured);
|
|
1628
1665
|
}
|
|
1666
|
+
if (subscription.platformAccess !== undefined) {
|
|
1667
|
+
const access = object(subscription.platformAccess);
|
|
1668
|
+
const notification = object(access.notification);
|
|
1669
|
+
if (Object.keys(access).some(key => key !== 'notification') ||
|
|
1670
|
+
access.notification === undefined ||
|
|
1671
|
+
notification.mode !== 'business-standard' ||
|
|
1672
|
+
Object.keys(notification).some(key => key !== 'mode')) {
|
|
1673
|
+
diagnostics.push(diagnostic('APP_CONFIG_EVENT_PLATFORM_ACCESS_INVALID', '事件订阅 platformAccess 只能显式声明标准业务通知依赖', `${path}.platformAccess`));
|
|
1674
|
+
}
|
|
1675
|
+
}
|
|
1629
1676
|
const delivery = {
|
|
1630
1677
|
timeoutMs: 10_000,
|
|
1631
1678
|
maxAttempts: 8,
|
|
@@ -1646,7 +1693,7 @@ export function validateAppConfig(value) {
|
|
|
1646
1693
|
!Number.isInteger(delivery.maxBackoffMs) ||
|
|
1647
1694
|
Number(delivery.maxBackoffMs) < Number(delivery.initialBackoffMs) ||
|
|
1648
1695
|
Number(delivery.maxBackoffMs) > 1_800_000 ||
|
|
1649
|
-
!['none', 'record'].includes(string(delivery.ordering)) ||
|
|
1696
|
+
!['none', 'record', 'workflow-instance'].includes(string(delivery.ordering)) ||
|
|
1650
1697
|
!Number.isInteger(delivery.concurrency) ||
|
|
1651
1698
|
Number(delivery.concurrency) < 1 ||
|
|
1652
1699
|
Number(delivery.concurrency) > 50) {
|
|
@@ -1881,6 +1928,20 @@ export function validateAppConfig(value) {
|
|
|
1881
1928
|
string(object(declaration.definition).code)) {
|
|
1882
1929
|
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_USER_TITLE_REQUIRED', 'Workflow title 必须是用户可读本地化名称,不能等于内部 code', `${path}.definition.title`));
|
|
1883
1930
|
}
|
|
1931
|
+
const subject = object(definition.subject);
|
|
1932
|
+
const factProjection = object(subject.factProjection);
|
|
1933
|
+
const factEntries = Object.entries(factProjection);
|
|
1934
|
+
const subjectFields = eventResourceFields.get(string(subject.resourceCode));
|
|
1935
|
+
if (Object.keys(subject).some(key => !['resourceCode', 'factProjection'].includes(key)) ||
|
|
1936
|
+
!subjectFields ||
|
|
1937
|
+
!isRecord(subject.factProjection) ||
|
|
1938
|
+
factEntries.length < 1 ||
|
|
1939
|
+
factEntries.length > 64 ||
|
|
1940
|
+
factEntries.some(([factKey, fieldCode]) => !/^[A-Za-z][A-Za-z0-9_.]{0,127}$/.test(factKey) ||
|
|
1941
|
+
!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(string(fieldCode)) ||
|
|
1942
|
+
!subjectFields.has(string(fieldCode)))) {
|
|
1943
|
+
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_SUBJECT_INVALID', 'Workflow subject 必须绑定已声明资源,并将 1 到 64 个 fact key 映射到该资源的已声明字段', `${path}.definition.subject`));
|
|
1944
|
+
}
|
|
1884
1945
|
for (const error of validateWorkflowDefinition(definition)) {
|
|
1885
1946
|
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_DEFINITION_INVALID', error, path));
|
|
1886
1947
|
}
|
|
@@ -1904,10 +1965,23 @@ export function validateAppConfig(value) {
|
|
|
1904
1965
|
}
|
|
1905
1966
|
bindingByKey.set(key, binding);
|
|
1906
1967
|
});
|
|
1968
|
+
const activationWorkflowCodes = new Set();
|
|
1907
1969
|
activations.forEach((item, index) => {
|
|
1908
1970
|
const activation = object(item);
|
|
1909
1971
|
const path = `workflows.activations[${index}]`;
|
|
1972
|
+
if (Object.keys(activation).some(key => ![
|
|
1973
|
+
'workflowCode',
|
|
1974
|
+
'definitionVersion',
|
|
1975
|
+
'bindingVersion',
|
|
1976
|
+
'acceptedCommandDeactivationPolicy',
|
|
1977
|
+
].includes(key))) {
|
|
1978
|
+
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_ACTIVATION_INVALID', 'Workflow activation 只能声明固定版本与停用策略', path));
|
|
1979
|
+
}
|
|
1910
1980
|
const workflowCode = string(activation.workflowCode);
|
|
1981
|
+
if (activationWorkflowCodes.has(workflowCode)) {
|
|
1982
|
+
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_ACTIVATION_DUPLICATE', `Workflow activation 重复: ${workflowCode}`, path));
|
|
1983
|
+
}
|
|
1984
|
+
activationWorkflowCodes.add(workflowCode);
|
|
1911
1985
|
if ('environmentKey' in activation) {
|
|
1912
1986
|
diagnostics.push(diagnostic('APP_CONFIG_ENVIRONMENT_OVERRIDE_FORBIDDEN', 'Workflow activation 属于环境中立 AppVersion,不能声明 environmentKey', `${path}.environmentKey`));
|
|
1913
1987
|
}
|
|
@@ -1919,6 +1993,10 @@ export function validateAppConfig(value) {
|
|
|
1919
1993
|
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_ACTIVATION_VERSION_NOT_FOUND', 'Workflow activation 引用的 definition 或 binding 版本不存在', path));
|
|
1920
1994
|
return;
|
|
1921
1995
|
}
|
|
1996
|
+
if (activation.acceptedCommandDeactivationPolicy !==
|
|
1997
|
+
definition.acceptedCommandDeactivationPolicy) {
|
|
1998
|
+
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_ACTIVATION_DEACTIVATION_POLICY_MISMATCH', 'Workflow activation 停用策略必须等于所选 definition', `${path}.acceptedCommandDeactivationPolicy`));
|
|
1999
|
+
}
|
|
1922
2000
|
for (const error of validateWorkflowBinding(definition, binding)) {
|
|
1923
2001
|
diagnostics.push(diagnostic('APP_CONFIG_WORKFLOW_BINDING_INVALID', error, path));
|
|
1924
2002
|
}
|
|
@@ -2047,7 +2125,8 @@ function validateCapabilityDeclarations(appCode, declarations, diagnostics) {
|
|
|
2047
2125
|
seen.add(code);
|
|
2048
2126
|
});
|
|
2049
2127
|
}
|
|
2050
|
-
function validateBackendOperations(rawOperations,
|
|
2128
|
+
function validateBackendOperations(rawOperations, declaredResources, declaredWorkflowCodes, diagnostics) {
|
|
2129
|
+
const declaredResourceCodes = new Set(declaredResources.keys());
|
|
2051
2130
|
if (rawOperations !== undefined && !Array.isArray(rawOperations)) {
|
|
2052
2131
|
diagnostics.push(diagnostic('APP_CONFIG_BACKEND_OPERATIONS_INVALID', 'backend.operations 必须是数组', 'backend.operations'));
|
|
2053
2132
|
return;
|
|
@@ -2075,6 +2154,87 @@ function validateBackendOperations(rawOperations, declaredResourceCodes, diagnos
|
|
|
2075
2154
|
if ('resources' in operation) {
|
|
2076
2155
|
diagnostics.push(diagnostic('APP_CONFIG_BACKEND_OPERATION_RESOURCES_REMOVED', '资源范围只能在显式 backend.operations[].ai 中声明', `${path}.resources`));
|
|
2077
2156
|
}
|
|
2157
|
+
if (operation.platformAccess !== undefined) {
|
|
2158
|
+
const access = object(operation.platformAccess);
|
|
2159
|
+
const allowedAccessKeys = new Set([
|
|
2160
|
+
'directory',
|
|
2161
|
+
'managedFiles',
|
|
2162
|
+
'notification',
|
|
2163
|
+
'workflow',
|
|
2164
|
+
]);
|
|
2165
|
+
let invalid = !isRecord(operation.platformAccess) ||
|
|
2166
|
+
Object.keys(access).length === 0 ||
|
|
2167
|
+
Object.keys(access).some(key => !allowedAccessKeys.has(key));
|
|
2168
|
+
if (access.directory !== undefined) {
|
|
2169
|
+
const directory = object(access.directory);
|
|
2170
|
+
const fields = Array.isArray(directory.fields) ? directory.fields : [];
|
|
2171
|
+
const allowedFields = new Set([
|
|
2172
|
+
'displayName',
|
|
2173
|
+
'employeeNumber',
|
|
2174
|
+
'primaryDepartment',
|
|
2175
|
+
'departments',
|
|
2176
|
+
]);
|
|
2177
|
+
invalid ||=
|
|
2178
|
+
directory.mode !== 'current-initiator' ||
|
|
2179
|
+
fields.length === 0 ||
|
|
2180
|
+
fields.length > allowedFields.size ||
|
|
2181
|
+
new Set(fields).size !== fields.length ||
|
|
2182
|
+
fields.some(field => !allowedFields.has(string(field))) ||
|
|
2183
|
+
Object.keys(directory).some(key => !['mode', 'fields'].includes(key));
|
|
2184
|
+
}
|
|
2185
|
+
if (access.managedFiles !== undefined) {
|
|
2186
|
+
const managedFiles = Array.isArray(access.managedFiles)
|
|
2187
|
+
? access.managedFiles
|
|
2188
|
+
: [];
|
|
2189
|
+
invalid ||= managedFiles.length === 0 || managedFiles.length > 16;
|
|
2190
|
+
const resources = new Set();
|
|
2191
|
+
for (const rawManagedFile of managedFiles) {
|
|
2192
|
+
const managedFile = object(rawManagedFile);
|
|
2193
|
+
const resourceCode = string(managedFile.resourceCode);
|
|
2194
|
+
const fieldCodes = Array.isArray(managedFile.fieldCodes)
|
|
2195
|
+
? managedFile.fieldCodes.map(string)
|
|
2196
|
+
: [];
|
|
2197
|
+
const intents = Array.isArray(managedFile.intents)
|
|
2198
|
+
? managedFile.intents.map(string)
|
|
2199
|
+
: [];
|
|
2200
|
+
const resourceFields = declaredResources.get(resourceCode);
|
|
2201
|
+
invalid ||=
|
|
2202
|
+
!resourceFields ||
|
|
2203
|
+
resources.has(resourceCode) ||
|
|
2204
|
+
fieldCodes.length === 0 ||
|
|
2205
|
+
fieldCodes.length > 16 ||
|
|
2206
|
+
new Set(fieldCodes).size !== fieldCodes.length ||
|
|
2207
|
+
fieldCodes.some(fieldCode => !['file', 'image', 'signature'].includes(string(resourceFields?.get(fieldCode)))) ||
|
|
2208
|
+
intents.length === 0 ||
|
|
2209
|
+
intents.length > 2 ||
|
|
2210
|
+
new Set(intents).size !== intents.length ||
|
|
2211
|
+
intents.some(intent => !['create', 'update'].includes(intent)) ||
|
|
2212
|
+
Object.keys(managedFile).some(key => !['resourceCode', 'fieldCodes', 'intents'].includes(key));
|
|
2213
|
+
resources.add(resourceCode);
|
|
2214
|
+
}
|
|
2215
|
+
}
|
|
2216
|
+
if (access.notification !== undefined) {
|
|
2217
|
+
const notification = object(access.notification);
|
|
2218
|
+
invalid ||=
|
|
2219
|
+
notification.mode !== 'business-standard' ||
|
|
2220
|
+
Object.keys(notification).some(key => key !== 'mode');
|
|
2221
|
+
}
|
|
2222
|
+
if (access.workflow !== undefined) {
|
|
2223
|
+
const workflow = object(access.workflow);
|
|
2224
|
+
const workflowCodes = Array.isArray(workflow.codes)
|
|
2225
|
+
? workflow.codes.map(string)
|
|
2226
|
+
: [];
|
|
2227
|
+
invalid ||=
|
|
2228
|
+
workflowCodes.length === 0 ||
|
|
2229
|
+
workflowCodes.length > 16 ||
|
|
2230
|
+
new Set(workflowCodes).size !== workflowCodes.length ||
|
|
2231
|
+
workflowCodes.some(code => !declaredWorkflowCodes.has(code)) ||
|
|
2232
|
+
Object.keys(workflow).some(key => key !== 'codes');
|
|
2233
|
+
}
|
|
2234
|
+
if (invalid) {
|
|
2235
|
+
diagnostics.push(diagnostic('APP_CONFIG_BACKEND_OPERATION_PLATFORM_ACCESS_INVALID', 'operation.platformAccess 必须只声明有界的发起人目录、托管文件、标准通知或现有工作流依赖', `${path}.platformAccess`));
|
|
2236
|
+
}
|
|
2237
|
+
}
|
|
2078
2238
|
if (operation.ai !== undefined) {
|
|
2079
2239
|
const ai = object(operation.ai);
|
|
2080
2240
|
const aiResources = Array.isArray(ai.resources) ? ai.resources : [];
|
|
@@ -2612,23 +2772,35 @@ function validateAuthorizationTransitions(rawTransitions, _roleCodes, diagnostic
|
|
|
2612
2772
|
}
|
|
2613
2773
|
const digests = new Set();
|
|
2614
2774
|
(Array.isArray(rawTransitions) ? rawTransitions : []).forEach((raw, index) => {
|
|
2615
|
-
const transition = object(raw);
|
|
2616
|
-
const digest = string(transition.fromAuthzDigest);
|
|
2617
2775
|
const path = `authz.authorizationTransitions[${index}]`;
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2776
|
+
if (!isPlainRecord(raw)) {
|
|
2777
|
+
diagnostics.push(diagnostic('APP_CONFIG_AUTHZ_TRANSITION_INVALID', '授权 transition 必须是只含 canonical 字段的对象', path));
|
|
2778
|
+
return;
|
|
2779
|
+
}
|
|
2780
|
+
if (!exactKeys(raw, AUTHORIZATION_TRANSITION_KEYS)) {
|
|
2781
|
+
const unknownKey = Object.keys(raw).find(key => !AUTHORIZATION_TRANSITION_KEYS.includes(key));
|
|
2782
|
+
diagnostics.push(diagnostic('APP_CONFIG_AUTHZ_TRANSITION_INVALID', '授权 transition 只允许 fromAuthzDigest、removeRoleCodes、removeCapabilityCodes、reason', unknownKey ? `${path}.${unknownKey}` : path));
|
|
2783
|
+
return;
|
|
2784
|
+
}
|
|
2785
|
+
const transition = raw;
|
|
2786
|
+
const digest = transition.fromAuthzDigest;
|
|
2787
|
+
const removeRolesValid = transition.removeRoleCodes === undefined ||
|
|
2788
|
+
isExactStringArray(transition.removeRoleCodes, AUTHORIZATION_TRANSITION_ROLE_CODE_PATTERN, 128);
|
|
2789
|
+
const removeCapabilitiesValid = transition.removeCapabilityCodes === undefined ||
|
|
2790
|
+
isExactStringArray(transition.removeCapabilityCodes, AUTHORIZATION_TRANSITION_CAPABILITY_CODE_PATTERN, 255);
|
|
2791
|
+
if (typeof digest !== 'string' ||
|
|
2792
|
+
!/^[0-9a-f]{64}$/.test(digest) ||
|
|
2625
2793
|
digests.has(digest) ||
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2794
|
+
typeof transition.reason !== 'string' ||
|
|
2795
|
+
!transition.reason.trim() ||
|
|
2796
|
+
transition.reason.length > 2000 ||
|
|
2797
|
+
!removeRolesValid ||
|
|
2798
|
+
!removeCapabilitiesValid) {
|
|
2799
|
+
diagnostics.push(diagnostic('APP_CONFIG_AUTHZ_TRANSITION_INVALID', '授权 transition 必须按来源摘要唯一,并使用有界、不重复的 canonical 移除项和 reason', path));
|
|
2800
|
+
}
|
|
2801
|
+
if (typeof digest === 'string' && /^[0-9a-f]{64}$/.test(digest)) {
|
|
2802
|
+
digests.add(digest);
|
|
2630
2803
|
}
|
|
2631
|
-
digests.add(digest);
|
|
2632
2804
|
});
|
|
2633
2805
|
}
|
|
2634
2806
|
function validateCapabilityClosure(appCode, config, declarations, diagnostics) {
|
|
@@ -2824,6 +2996,9 @@ export function materializeDataResource(appCode, declaration) {
|
|
|
2824
2996
|
...(field.scale !== undefined ? { scale: field.scale } : {}),
|
|
2825
2997
|
...(field.min !== undefined ? { min: field.min } : {}),
|
|
2826
2998
|
...(field.max !== undefined ? { max: field.max } : {}),
|
|
2999
|
+
...(field.rangeBoundary
|
|
3000
|
+
? { rangeBoundary: field.rangeBoundary }
|
|
3001
|
+
: {}),
|
|
2827
3002
|
...(field.timePrecision ? { timePrecision: field.timePrecision } : {}),
|
|
2828
3003
|
...(field.file ? { file: field.file } : {}),
|
|
2829
3004
|
...(field.serial ? { serial: field.serial } : {}),
|
|
@@ -2876,6 +3051,9 @@ export function materializeDataResource(appCode, declaration) {
|
|
|
2876
3051
|
...(field.scale !== undefined ? { scale: field.scale } : {}),
|
|
2877
3052
|
...(field.min !== undefined ? { min: field.min } : {}),
|
|
2878
3053
|
...(field.max !== undefined ? { max: field.max } : {}),
|
|
3054
|
+
...(field.rangeBoundary
|
|
3055
|
+
? { rangeBoundary: field.rangeBoundary }
|
|
3056
|
+
: {}),
|
|
2879
3057
|
...(field.file?.maxCount !== undefined
|
|
2880
3058
|
? { maxCount: field.file.maxCount }
|
|
2881
3059
|
: {}),
|
|
@@ -2972,6 +3150,7 @@ export function validateAppDeclaration(value) {
|
|
|
2972
3150
|
'scale',
|
|
2973
3151
|
'min',
|
|
2974
3152
|
'max',
|
|
3153
|
+
'rangeBoundary',
|
|
2975
3154
|
'timePrecision',
|
|
2976
3155
|
'file',
|
|
2977
3156
|
'serial',
|
|
@@ -3049,6 +3228,15 @@ export function validateAppDeclaration(value) {
|
|
|
3049
3228
|
if (field.sortable === true && !supportsSort(semanticType)) {
|
|
3050
3229
|
diagnostics.push(diagnostic('APP_CONFIG_DATA_FIELD_SORT_UNSUPPORTED', `${semanticType} 不支持稳定排序`, `${fieldPath}.sortable`));
|
|
3051
3230
|
}
|
|
3231
|
+
const rangeType = semanticType === 'date-range' || semanticType === 'datetime-range';
|
|
3232
|
+
if (rangeType &&
|
|
3233
|
+
!['closed', 'half-open'].includes(string(field.rangeBoundary))) {
|
|
3234
|
+
materializable = false;
|
|
3235
|
+
diagnostics.push(diagnostic('APP_CONFIG_DATA_FIELD_RANGE_BOUNDARY_REQUIRED', `${semanticType} 必须显式声明 rangeBoundary: closed 或 half-open`, `${fieldPath}.rangeBoundary`));
|
|
3236
|
+
}
|
|
3237
|
+
else if (!rangeType && field.rangeBoundary !== undefined) {
|
|
3238
|
+
diagnostics.push(diagnostic('APP_CONFIG_DATA_FIELD_RANGE_BOUNDARY_TYPE_INVALID', 'rangeBoundary 只能用于 date-range 或 datetime-range', `${fieldPath}.rangeBoundary`));
|
|
3239
|
+
}
|
|
3052
3240
|
if (field.indexed === false &&
|
|
3053
3241
|
(field.filter === true ||
|
|
3054
3242
|
field.searchable === true ||
|