openxiangda-contracts 2.73.0 → 2.76.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.d.ts +1 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +1 -0
- package/dist/browser.js.map +1 -1
- package/dist/native-compiler/compiler.d.ts +1 -1
- package/dist/native-compiler/compiler.d.ts.map +1 -1
- package/dist/native-compiler/compiler.js +46 -8
- package/dist/native-compiler/compiler.js.map +1 -1
- package/dist/native-compiler/declaration-capacity.d.ts +3 -1
- package/dist/native-compiler/declaration-capacity.d.ts.map +1 -1
- package/dist/native-compiler/declaration-capacity.js +5 -1
- package/dist/native-compiler/declaration-capacity.js.map +1 -1
- package/dist/native-compiler/index.cjs +5 -5
- package/dist/native-compiler/index.d.ts +2 -0
- package/dist/native-compiler/index.d.ts.map +1 -1
- package/dist/native-compiler/index.js +5 -5
- package/dist/native-compiler/parent-read-policy.d.ts +23 -0
- package/dist/native-compiler/parent-read-policy.d.ts.map +1 -0
- package/dist/native-compiler/parent-read-policy.js +83 -0
- package/dist/native-compiler/parent-read-policy.js.map +1 -0
- package/dist/native-compiler/rich-text-policy.d.ts +15 -0
- package/dist/native-compiler/rich-text-policy.d.ts.map +1 -0
- package/dist/native-compiler/rich-text-policy.js +15 -0
- package/dist/native-compiler/rich-text-policy.js.map +1 -0
- package/dist/native-version.d.ts +4 -0
- package/dist/native-version.d.ts.map +1 -1
- package/dist/native-version.js +4 -0
- package/dist/native-version.js.map +1 -1
- package/dist/native.d.ts +11 -0
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/rich-text.cjs +8115 -0
- package/dist/rich-text.d.ts +24 -0
- package/dist/rich-text.d.ts.map +1 -0
- package/dist/rich-text.js +255 -0
- package/dist/rich-text.js.map +1 -0
- package/dist/schemas.d.ts +50 -2
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +8 -0
- package/dist/schemas.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +14 -3
package/dist/browser.d.ts
CHANGED
|
@@ -40,4 +40,5 @@ export * from './native-compiler/role-membership-batch.js';
|
|
|
40
40
|
export * from './native-compiler/actor-authority.js';
|
|
41
41
|
export * from './native-compiler/user-candidates.js';
|
|
42
42
|
export * from './native-compiler/workflow-completion-deadline.js';
|
|
43
|
+
export * from './native-compiler/rich-text-policy.js';
|
|
43
44
|
//# sourceMappingURL=browser.d.ts.map
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kDAAkD,CAAC;AACjE,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AAErD,cAAc,sCAAsC,CAAC;AAErD,cAAc,mDAAmD,CAAC"}
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kDAAkD,CAAC;AACjE,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AAErD,cAAc,sCAAsC,CAAC;AAErD,cAAc,mDAAmD,CAAC;AAElE,cAAc,uCAAuC,CAAC"}
|
package/dist/browser.js
CHANGED
|
@@ -40,4 +40,5 @@ export * from './native-compiler/role-membership-batch.js';
|
|
|
40
40
|
export * from './native-compiler/actor-authority.js';
|
|
41
41
|
export * from './native-compiler/user-candidates.js';
|
|
42
42
|
export * from './native-compiler/workflow-completion-deadline.js';
|
|
43
|
+
export * from './native-compiler/rich-text-policy.js';
|
|
43
44
|
//# sourceMappingURL=browser.js.map
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kDAAkD,CAAC;AACjE,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AAErD,cAAc,sCAAsC,CAAC;AAErD,cAAc,mDAAmD,CAAC"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kDAAkD,CAAC;AACjE,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AAErD,cAAc,sCAAsC,CAAC;AAErD,cAAc,mDAAmD,CAAC;AAElE,cAAc,uCAAuC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type RequiredPlatformCapabilityContract as OpenXiangdaRequiredPlatformCapabilityV3 } from '../types.js';
|
|
2
2
|
declare const PROJECTION_SCHEMA = "openxiangda.native-configuration-projection/v1";
|
|
3
3
|
declare const COMPILER_CONTRACT_VERSION: "native-4";
|
|
4
|
-
export { NATIVE_CONTRACT_CAPACITY_V2, requiresExtendedDeclarationCapacity, generatedCrudCapabilityOperations } from './declaration-capacity.js';
|
|
4
|
+
export { NATIVE_CONTRACT_CAPACITY_V2, requiresExtendedDeclarationCapacity, requiresExtendedRoleCapacity, generatedCrudCapabilityOperations } from './declaration-capacity.js';
|
|
5
5
|
export { NATIVE_ARTIFACT_CAPACITY_V2, NATIVE_HIGH_DENSITY_ARTIFACT_CAPACITY_V2, requiresHighDensityArtifactCapacity, requiresExtendedArtifactCapacity, requiresExtendedConfigurationBytes } from './artifact-capacity.js';
|
|
6
6
|
export declare const DATA_EVENT_TYPES_V2: readonly ["openxiangda.data.record.created.v2", "openxiangda.data.record.updated.v2", "openxiangda.data.record.deleted.v2"];
|
|
7
7
|
export declare const WORKFLOW_EVENT_TYPES_V2: readonly ["openxiangda.workflow.node.skipped.v2", "openxiangda.workflow.step.requested.v2", "openxiangda.workflow.step.result_received.v2", "openxiangda.workflow.step.completed.v2", "openxiangda.workflow.step.continuation_failed.v2", "openxiangda.workflow.instance.started.v2", "openxiangda.workflow.instance.cc_added.v2", "openxiangda.workflow.instance.completed.v2", "openxiangda.workflow.instance.rejected.v2", "openxiangda.workflow.instance.returned.v2", "openxiangda.workflow.instance.resumed.v2", "openxiangda.workflow.instance.withdrawn.v2", "openxiangda.workflow.instance.terminated.v2", "openxiangda.workflow.task.created.v2", "openxiangda.workflow.task.assigned.v2", "openxiangda.workflow.task.assignment_pending.v2", "openxiangda.workflow.task.assignment_resolution_failed.v2", "openxiangda.workflow.task.approved.v2", "openxiangda.workflow.task.completed.v2", "openxiangda.workflow.task.rejected.v2", "openxiangda.workflow.task.returned.v2", "openxiangda.workflow.task.resubmitted.v2", "openxiangda.workflow.task.transferred.v2", "openxiangda.workflow.task.reassigned.v2", "openxiangda.workflow.task.delegated.v2", "openxiangda.workflow.task.assignee_added.v2", "openxiangda.workflow.task.cancelled.v2", "openxiangda.workflow.participant.activated.v2", "openxiangda.workflow.participant.completed.v2", "openxiangda.workflow.participant.rejected.v2", "openxiangda.workflow.participant.returned.v2", "openxiangda.workflow.participant.transferred.v2", "openxiangda.workflow.participant.reassigned.v2", "openxiangda.workflow.participant.delegated.v2", "openxiangda.workflow.participant.added.v2", "openxiangda.workflow.participant.suspended.v2", "openxiangda.workflow.participant.resumed.v2", "openxiangda.workflow.participant.cancelled.v2"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hasNativeParentReadPolicy, resolveNativeParentReadBinding, validateNativeParentReadPolicies, NativeParentReadPolicyError } from './parent-read-policy.js';
|
|
1
2
|
import { requiresExtendedFieldCapacity, WORKFLOW_LAUNCH_MAX_INPUTS } from './data-capacity.js';
|
|
2
3
|
import { assertWorkflowNativeStagePolicy } from './workflow-native-stage.js';
|
|
3
4
|
import { validateAuthenticatedPublicRead, AuthenticatedPublicReadContractError } from './authenticated-public-read.js';
|
|
@@ -117,8 +118,8 @@ const EVENT_AUTHORIZATION_SYSTEM_FIELDS = new Set([
|
|
|
117
118
|
'created_at',
|
|
118
119
|
'updated_at',
|
|
119
120
|
]);
|
|
120
|
-
export { NATIVE_CONTRACT_CAPACITY_V2, requiresExtendedDeclarationCapacity, generatedCrudCapabilityOperations } from './declaration-capacity.js';
|
|
121
|
-
import { NATIVE_CONTRACT_CAPACITY_V2, requiresExtendedDeclarationCapacity } from './declaration-capacity.js';
|
|
121
|
+
export { NATIVE_CONTRACT_CAPACITY_V2, requiresExtendedDeclarationCapacity, requiresExtendedRoleCapacity, generatedCrudCapabilityOperations } from './declaration-capacity.js';
|
|
122
|
+
import { NATIVE_CONTRACT_CAPACITY_V2, requiresExtendedDeclarationCapacity, requiresExtendedRoleCapacity } from './declaration-capacity.js';
|
|
122
123
|
export { NATIVE_ARTIFACT_CAPACITY_V2, NATIVE_HIGH_DENSITY_ARTIFACT_CAPACITY_V2, requiresHighDensityArtifactCapacity, requiresExtendedArtifactCapacity, requiresExtendedConfigurationBytes } from './artifact-capacity.js';
|
|
123
124
|
import { NATIVE_ARTIFACT_CAPACITY_V2, NATIVE_HIGH_DENSITY_ARTIFACT_CAPACITY_V2, requiresHighDensityArtifactCapacity, requiresExtendedArtifactCapacity, requiresExtendedConfigurationBytes } from './artifact-capacity.js';
|
|
124
125
|
export const DATA_EVENT_TYPES_V2 = [
|
|
@@ -313,7 +314,7 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
|
|
|
313
314
|
'department.single',
|
|
314
315
|
'department.multiple',
|
|
315
316
|
].includes(field.type))) ||
|
|
316
|
-
operations.some(operation => operation.platformAccess?.directory);
|
|
317
|
+
operations.some(operation => operation.platformAccess?.directory || operation.platformAccess?.selectedDepartments);
|
|
317
318
|
const usesEvents = Boolean(config.events.subscriptions.length ||
|
|
318
319
|
config.events.timers.length ||
|
|
319
320
|
config.events.dateTriggers.length ||
|
|
@@ -385,6 +386,9 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
|
|
|
385
386
|
},
|
|
386
387
|
};
|
|
387
388
|
const usages = [
|
|
389
|
+
...(requiresExtendedRoleCapacity(config)
|
|
390
|
+
? [{ code: 'application.extended-role-capacity',
|
|
391
|
+
declaration: { roles: config.authz.roles.length, maximum: NATIVE_CONTRACT_CAPACITY_V2.roles } }] : []),
|
|
388
392
|
...(requiresExtendedConfigurationBytes(config)
|
|
389
393
|
? [{ code: 'application.extended-configuration-bytes',
|
|
390
394
|
declaration: { legacyConfigBytes: NATIVE_ARTIFACT_CAPACITY_V2.legacyConfigBytes,
|
|
@@ -416,6 +420,9 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
|
|
|
416
420
|
...(operations.some(operation => operation.platformAccess?.dataCommands)
|
|
417
421
|
? [{ code: 'data.business-commands', declaration: operations.filter(operation => operation.platformAccess?.dataCommands) }]
|
|
418
422
|
: []),
|
|
423
|
+
...(config.authz.dataPolicies.some(hasNativeParentReadPolicy)
|
|
424
|
+
? [{ code: 'data.parent-read-policy',
|
|
425
|
+
declaration: config.authz.dataPolicies.filter(hasNativeParentReadPolicy) }] : []),
|
|
419
426
|
...(config.authz.dataPolicies.some((policy) => policy.publicRead)
|
|
420
427
|
? [{ code: 'data.authenticated-public-projection',
|
|
421
428
|
declaration: config.authz.dataPolicies.filter((policy) => policy.publicRead) }]
|
|
@@ -513,6 +520,7 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
|
|
|
513
520
|
},
|
|
514
521
|
]
|
|
515
522
|
: []),
|
|
523
|
+
...(operations.some(operation => operation.platformAccess?.selectedDepartments) ? [{ code: 'directory.selected-departments', declaration: operations.filter(operation => operation.platformAccess?.selectedDepartments).map(operation => ({ code: operation.code, selectedDepartments: operation.platformAccess.selectedDepartments })) }] : []),
|
|
516
524
|
...(operations.some(operation => operation.platformAccess?.directory?.mode === 'selected-user') ? [{ code: 'directory.selected-user', declaration: operations.filter(operation => operation.platformAccess?.directory?.mode === 'selected-user').map(operation => ({ code: operation.code, directory: operation.platformAccess.directory })) }] : []),
|
|
517
525
|
...(initiatorPhoneOperations.length || initiatorPhoneCommands.length ? [{
|
|
518
526
|
code: 'directory.current-initiator-phone',
|
|
@@ -521,6 +529,7 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
|
|
|
521
529
|
commands: initiatorPhoneCommands.map((command) => ({ code: command.code, directory: command.execution.directory })),
|
|
522
530
|
},
|
|
523
531
|
}] : []),
|
|
532
|
+
...(config.data.resources.some((resource) => resource.schema.fields.some((field) => field.type === 'text.rich')) ? [{ code: 'data.rich-text', declaration: { policyVersion: 'rich-text-html/1' } }] : []),
|
|
524
533
|
...(usesManagedFiles
|
|
525
534
|
? [
|
|
526
535
|
{
|
|
@@ -797,11 +806,15 @@ export function compileNativeEventCapturePlansV2(input) {
|
|
|
797
806
|
}
|
|
798
807
|
const authorizationFields = new Set();
|
|
799
808
|
for (const rule of policy?.rules || []) {
|
|
800
|
-
authorizationFields.add(
|
|
809
|
+
authorizationFields.add(rule.parentRead
|
|
810
|
+
? resolveNativeParentReadBinding(input.resources, code, rule.parentRead, `${pointer}/parentRead`).foreignKey
|
|
811
|
+
: String(rule.field));
|
|
801
812
|
}
|
|
802
813
|
if (policy?.readExpression) {
|
|
803
814
|
for (const entry of nativeDataPolicyExpressionLeavesV2(policy.readExpression, `${pointer}/readExpression`)) {
|
|
804
|
-
authorizationFields.add(
|
|
815
|
+
authorizationFields.add(entry.rule.parentRead
|
|
816
|
+
? resolveNativeParentReadBinding(input.resources, code, entry.rule.parentRead, `${pointer}/parentRead`).foreignKey
|
|
817
|
+
: String(entry.rule.field));
|
|
805
818
|
}
|
|
806
819
|
}
|
|
807
820
|
const filterFields = new Set();
|
|
@@ -1291,7 +1304,7 @@ function validateEventSubscriptionPlatformAccess(value, pointer, declaredResourc
|
|
|
1291
1304
|
sourceFields.forEach((field, fieldIndex) => {
|
|
1292
1305
|
const sourceType = source.get(field);
|
|
1293
1306
|
const targetType = target.get(targetFields[fieldIndex]);
|
|
1294
|
-
if (!['file', 'image'].includes(String(sourceType)) || sourceType !== targetType) {
|
|
1307
|
+
if (!['file', 'image', 'text.rich'].includes(String(sourceType)) || sourceType !== targetType) {
|
|
1295
1308
|
fail('NATIVE_EVENT_MANAGED_FILE_COPY_FIELD_INVALID', `${entryPointer}/sourceFieldCodes/${fieldIndex}`);
|
|
1296
1309
|
}
|
|
1297
1310
|
});
|
|
@@ -1908,7 +1921,7 @@ function validateOperationPlatformAccess(value, pointer, declaredResources, decl
|
|
|
1908
1921
|
if (value === undefined)
|
|
1909
1922
|
return null;
|
|
1910
1923
|
const access = object(value, pointer);
|
|
1911
|
-
exactKeys(access, ['directory', 'managedFiles', 'managedFileCopies', 'notification', 'workflow', 'roleAssertions', 'decimalReservation', 'dataCommands', 'recordEdit', 'ownedSubject', 'workflowStage'], pointer, true);
|
|
1924
|
+
exactKeys(access, ['directory', 'selectedDepartments', 'managedFiles', 'managedFileCopies', 'notification', 'workflow', 'roleAssertions', 'decimalReservation', 'dataCommands', 'recordEdit', 'ownedSubject', 'workflowStage'], pointer, true);
|
|
1912
1925
|
if (Object.keys(access).length === 0) {
|
|
1913
1926
|
fail('NATIVE_OPERATION_PLATFORM_ACCESS_EMPTY', pointer);
|
|
1914
1927
|
}
|
|
@@ -1985,6 +1998,15 @@ function validateOperationPlatformAccess(value, pointer, declaredResources, decl
|
|
|
1985
1998
|
fields: uniqueSorted(fields),
|
|
1986
1999
|
};
|
|
1987
2000
|
}
|
|
2001
|
+
if (access.selectedDepartments !== undefined) {
|
|
2002
|
+
const entryPointer = `${pointer}/selectedDepartments`;
|
|
2003
|
+
const entry = object(access.selectedDepartments, entryPointer);
|
|
2004
|
+
exactKeys(entry, ['fields', 'maxIds'], entryPointer);
|
|
2005
|
+
const fields = uniqueStrings(entry.fields, `${entryPointer}/fields`, 4);
|
|
2006
|
+
if (!fields.includes('name') || fields.some(field => !['name', 'path', 'parent', 'fullPath'].includes(field)) || !Number.isSafeInteger(entry.maxIds) || entry.maxIds < 1 || entry.maxIds > 50)
|
|
2007
|
+
fail('NATIVE_OPERATION_SELECTED_DEPARTMENTS_INVALID', entryPointer);
|
|
2008
|
+
result.selectedDepartments = { fields: uniqueSorted(fields), maxIds: entry.maxIds };
|
|
2009
|
+
}
|
|
1988
2010
|
if (access.managedFiles !== undefined) {
|
|
1989
2011
|
const entries = boundedArray(access.managedFiles, `${pointer}/managedFiles`, 16);
|
|
1990
2012
|
if (!entries.length) {
|
|
@@ -2042,7 +2064,7 @@ function validateOperationPlatformAccess(value, pointer, declaredResources, decl
|
|
|
2042
2064
|
sourceFields.forEach((field, fieldIndex) => {
|
|
2043
2065
|
const sourceType = source.get(field);
|
|
2044
2066
|
const targetType = target.get(targetFields[fieldIndex]);
|
|
2045
|
-
if (!['file', 'image'].includes(String(sourceType)) || sourceType !== targetType) {
|
|
2067
|
+
if (!['file', 'image', 'text.rich'].includes(String(sourceType)) || sourceType !== targetType) {
|
|
2046
2068
|
fail('NATIVE_OPERATION_MANAGED_FILE_COPY_FIELD_INVALID', `${entryPointer}/sourceFieldCodes/${fieldIndex}`);
|
|
2047
2069
|
}
|
|
2048
2070
|
});
|
|
@@ -4308,6 +4330,7 @@ function validateDataPolicyReferences(config) {
|
|
|
4308
4330
|
}
|
|
4309
4331
|
for (const { rule, pointer: rulePointer } of ruleEntries) {
|
|
4310
4332
|
exactKeys(rule, [
|
|
4333
|
+
'parentRead',
|
|
4311
4334
|
'subject',
|
|
4312
4335
|
'dimensionCode',
|
|
4313
4336
|
'relationCode',
|
|
@@ -4321,6 +4344,13 @@ function validateDataPolicyReferences(config) {
|
|
|
4321
4344
|
'value',
|
|
4322
4345
|
'operand',
|
|
4323
4346
|
], rulePointer, true);
|
|
4347
|
+
if (rule.parentRead !== undefined) {
|
|
4348
|
+
for (const roleCode of uniqueStrings(rule.roleCodes || [], `${rulePointer}/roleCodes`, 100)) {
|
|
4349
|
+
if (!roleCodes.has(roleCode))
|
|
4350
|
+
fail('NATIVE_ROLE_REFERENCE_MISSING', `${rulePointer}/roleCodes`);
|
|
4351
|
+
}
|
|
4352
|
+
continue;
|
|
4353
|
+
}
|
|
4324
4354
|
const field = fieldCodeValue(rule.field, `${rulePointer}/field`);
|
|
4325
4355
|
const fieldDefinition = policyFields?.get(field);
|
|
4326
4356
|
if (hasReadExpression && !fieldDefinition) {
|
|
@@ -4405,6 +4435,14 @@ function validateDataPolicyReferences(config) {
|
|
|
4405
4435
|
}
|
|
4406
4436
|
}
|
|
4407
4437
|
}
|
|
4438
|
+
try {
|
|
4439
|
+
validateNativeParentReadPolicies(config.data.resources, config.authz.dataPolicies);
|
|
4440
|
+
}
|
|
4441
|
+
catch (error) {
|
|
4442
|
+
if (error instanceof NativeParentReadPolicyError)
|
|
4443
|
+
fail(error.code, error.pointer);
|
|
4444
|
+
throw error;
|
|
4445
|
+
}
|
|
4408
4446
|
for (const [index, raw] of config.data.resources.entries()) {
|
|
4409
4447
|
const resource = object(raw, `/config/data/resources/${index}`);
|
|
4410
4448
|
if (resource.dataPolicyCode && !policyCodes.has(resource.dataPolicyCode)) {
|