@objectstack/spec 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -125
- package/dist/ai/agent.zod.d.ts +164 -0
- package/dist/ai/agent.zod.d.ts.map +1 -0
- package/dist/ai/agent.zod.js +51 -0
- package/dist/data/dataset.zod.d.ts +60 -0
- package/dist/data/dataset.zod.d.ts.map +1 -0
- package/dist/data/dataset.zod.js +54 -0
- package/dist/data/field.zod.d.ts +170 -0
- package/dist/data/field.zod.d.ts.map +1 -0
- package/dist/data/field.zod.js +81 -0
- package/dist/data/flow.zod.d.ts +242 -0
- package/dist/data/flow.zod.d.ts.map +1 -0
- package/dist/data/flow.zod.js +77 -0
- package/dist/data/mapping.zod.d.ts +257 -0
- package/dist/data/mapping.zod.d.ts.map +1 -0
- package/dist/data/mapping.zod.js +65 -0
- package/dist/data/object.zod.d.ts +364 -0
- package/dist/data/object.zod.d.ts.map +1 -0
- package/dist/data/object.zod.js +54 -0
- package/dist/data/permission.zod.d.ts +163 -0
- package/dist/data/permission.zod.d.ts.map +1 -0
- package/dist/data/permission.zod.js +62 -0
- package/dist/data/query.zod.d.ts +89 -0
- package/dist/data/query.zod.d.ts.map +1 -0
- package/dist/data/query.zod.js +71 -0
- package/dist/data/sharing.zod.d.ts +63 -0
- package/dist/data/sharing.zod.d.ts.map +1 -0
- package/dist/data/sharing.zod.js +57 -0
- package/dist/data/validation.zod.d.ts +236 -0
- package/dist/data/validation.zod.d.ts.map +1 -0
- package/dist/data/validation.zod.js +59 -0
- package/dist/data/workflow.zod.d.ts +195 -0
- package/dist/data/workflow.zod.d.ts.map +1 -0
- package/dist/data/workflow.zod.js +64 -0
- package/dist/index.d.ts +33 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -5
- package/dist/system/api.zod.d.ts +168 -0
- package/dist/system/api.zod.d.ts.map +1 -0
- package/dist/system/api.zod.js +53 -0
- package/dist/system/constants/index.d.ts +11 -0
- package/dist/system/constants/index.d.ts.map +1 -0
- package/dist/system/constants/index.js +26 -0
- package/dist/system/constants/paths.d.ts +71 -0
- package/dist/system/constants/paths.d.ts.map +1 -0
- package/dist/system/constants/paths.js +65 -0
- package/dist/system/datasource.zod.d.ts +127 -0
- package/dist/system/datasource.zod.d.ts.map +1 -0
- package/dist/system/datasource.zod.js +62 -0
- package/dist/system/identity.zod.d.ts +204 -0
- package/dist/system/identity.zod.d.ts.map +1 -0
- package/dist/system/identity.zod.js +68 -0
- package/dist/system/license.zod.d.ts +110 -0
- package/dist/system/license.zod.d.ts.map +1 -0
- package/dist/system/license.zod.js +63 -0
- package/dist/system/manifest.zod.d.ts +126 -0
- package/dist/system/manifest.zod.d.ts.map +1 -0
- package/dist/system/manifest.zod.js +68 -0
- package/dist/system/policy.zod.d.ts +209 -0
- package/dist/system/policy.zod.d.ts.map +1 -0
- package/dist/system/policy.zod.js +54 -0
- package/dist/system/role.zod.d.ts +34 -0
- package/dist/system/role.zod.d.ts.map +1 -0
- package/dist/system/role.zod.js +25 -0
- package/dist/system/territory.zod.d.ts +91 -0
- package/dist/system/territory.zod.d.ts.map +1 -0
- package/dist/system/territory.zod.js +64 -0
- package/dist/system/translation.zod.d.ts +171 -0
- package/dist/system/translation.zod.d.ts.map +1 -0
- package/dist/system/translation.zod.js +34 -0
- package/dist/system/types/index.d.ts +7 -0
- package/dist/system/types/index.d.ts.map +1 -0
- package/dist/system/types/index.js +22 -0
- package/dist/system/types/plugin.d.ts +113 -0
- package/dist/system/types/plugin.d.ts.map +1 -0
- package/dist/system/types/plugin.js +6 -0
- package/dist/system/webhook.zod.d.ts +106 -0
- package/dist/system/webhook.zod.d.ts.map +1 -0
- package/dist/system/webhook.zod.js +56 -0
- package/dist/ui/action.zod.d.ts +148 -0
- package/dist/ui/action.zod.d.ts.map +1 -0
- package/dist/ui/action.zod.js +48 -0
- package/dist/ui/app.zod.d.ts +299 -0
- package/dist/ui/app.zod.d.ts.map +1 -0
- package/dist/ui/app.zod.js +127 -0
- package/dist/ui/dashboard.zod.d.ts +207 -0
- package/dist/ui/dashboard.zod.d.ts.map +1 -0
- package/dist/ui/dashboard.zod.js +66 -0
- package/dist/ui/page.zod.d.ts +187 -0
- package/dist/ui/page.zod.d.ts.map +1 -0
- package/dist/ui/page.zod.js +48 -0
- package/dist/ui/report.zod.d.ts +224 -0
- package/dist/ui/report.zod.d.ts.map +1 -0
- package/dist/ui/report.zod.js +68 -0
- package/dist/ui/view.zod.d.ts +887 -0
- package/dist/ui/view.zod.d.ts.map +1 -0
- package/dist/ui/view.zod.js +83 -0
- package/json-schema/AIKnowledge.json +30 -0
- package/json-schema/AIModelConfig.json +41 -0
- package/json-schema/AITool.json +33 -0
- package/json-schema/Action.json +156 -0
- package/json-schema/ActionParam.json +76 -0
- package/json-schema/Agent.json +140 -0
- package/json-schema/ApiEndpoint.json +162 -0
- package/json-schema/ApiMapping.json +28 -0
- package/json-schema/App.json +286 -0
- package/json-schema/AppBranding.json +24 -0
- package/json-schema/AuditPolicy.json +31 -0
- package/json-schema/AuthProtocol.json +17 -0
- package/json-schema/AuthProvider.json +171 -0
- package/json-schema/CalendarConfig.json +28 -0
- package/json-schema/ChartType.json +19 -0
- package/json-schema/Dashboard.json +117 -0
- package/json-schema/DashboardNavItem.json +42 -0
- package/json-schema/DashboardWidget.json +89 -0
- package/json-schema/Dataset.json +63 -0
- package/json-schema/DatasetMode.json +16 -0
- package/json-schema/Datasource.json +93 -0
- package/json-schema/DatasourceCapabilities.json +36 -0
- package/json-schema/DriverType.json +27 -0
- package/json-schema/EmailAlertAction.json +37 -0
- package/json-schema/Feature.json +51 -0
- package/json-schema/Field.json +219 -0
- package/json-schema/FieldMapping.json +83 -0
- package/json-schema/FieldNode.json +32 -0
- package/json-schema/FieldPermission.json +22 -0
- package/json-schema/FieldType.json +36 -0
- package/json-schema/FieldUpdateAction.json +32 -0
- package/json-schema/FilterNode.json +52 -0
- package/json-schema/FilterOperator.json +26 -0
- package/json-schema/Flow.json +186 -0
- package/json-schema/FlowEdge.json +37 -0
- package/json-schema/FlowNode.json +65 -0
- package/json-schema/FlowNodeAction.json +24 -0
- package/json-schema/FlowVariable.json +34 -0
- package/json-schema/FormSection.json +42 -0
- package/json-schema/FormView.json +99 -0
- package/json-schema/FormatValidation.json +59 -0
- package/json-schema/GanttConfig.json +32 -0
- package/json-schema/GroupNavItem.json +42 -0
- package/json-schema/HttpMethod.json +16 -0
- package/json-schema/Index.json +30 -0
- package/json-schema/KanbanConfig.json +31 -0
- package/json-schema/LDAPConfig.json +39 -0
- package/json-schema/License.json +57 -0
- package/json-schema/ListView.json +153 -0
- package/json-schema/Locale.json +10 -0
- package/json-schema/LogicOperator.json +14 -0
- package/json-schema/Manifest.json +90 -0
- package/json-schema/Mapping.json +270 -0
- package/json-schema/MenuItem.json +28 -0
- package/json-schema/MetricType.json +14 -0
- package/json-schema/NavigationItem.json +214 -0
- package/json-schema/NetworkPolicy.json +31 -0
- package/json-schema/OIDCConfig.json +46 -0
- package/json-schema/OWDModel.json +14 -0
- package/json-schema/Object.json +331 -0
- package/json-schema/ObjectCapabilities.json +36 -0
- package/json-schema/ObjectNavItem.json +46 -0
- package/json-schema/ObjectPermission.json +42 -0
- package/json-schema/Page.json +117 -0
- package/json-schema/PageComponent.json +36 -0
- package/json-schema/PageNavItem.json +47 -0
- package/json-schema/PageRegion.json +63 -0
- package/json-schema/PasswordPolicy.json +41 -0
- package/json-schema/PermissionSet.json +96 -0
- package/json-schema/Plan.json +53 -0
- package/json-schema/Policy.json +138 -0
- package/json-schema/Query.json +128 -0
- package/json-schema/RateLimit.json +26 -0
- package/json-schema/Report.json +219 -0
- package/json-schema/ReportChart.json +45 -0
- package/json-schema/ReportColumn.json +35 -0
- package/json-schema/ReportGrouping.json +38 -0
- package/json-schema/ReportType.json +15 -0
- package/json-schema/Role.json +32 -0
- package/json-schema/SAMLConfig.json +44 -0
- package/json-schema/ScriptValidation.json +48 -0
- package/json-schema/SelectOption.json +32 -0
- package/json-schema/SessionPolicy.json +27 -0
- package/json-schema/SharingLevel.json +13 -0
- package/json-schema/SharingRule.json +58 -0
- package/json-schema/SharingRuleType.json +15 -0
- package/json-schema/SortNode.json +26 -0
- package/json-schema/StateMachineValidation.json +59 -0
- package/json-schema/Territory.json +77 -0
- package/json-schema/TerritoryModel.json +34 -0
- package/json-schema/TerritoryType.json +15 -0
- package/json-schema/TransformType.json +18 -0
- package/json-schema/TranslationBundle.json +78 -0
- package/json-schema/TranslationData.json +75 -0
- package/json-schema/UniquenessValidation.json +59 -0
- package/json-schema/UrlNavItem.json +51 -0
- package/json-schema/ValidationRule.json +211 -0
- package/json-schema/View.json +500 -0
- package/json-schema/Webhook.json +88 -0
- package/json-schema/WebhookReceiver.json +66 -0
- package/json-schema/WebhookTriggerType.json +16 -0
- package/json-schema/WorkflowAction.json +84 -0
- package/json-schema/WorkflowRule.json +128 -0
- package/json-schema/WorkflowTriggerType.json +16 -0
- package/package.json +28 -19
- package/dist/examples.d.ts +0 -28
- package/dist/examples.d.ts.map +0 -1
- package/dist/examples.js +0 -250
- package/dist/types/index.d.ts +0 -9
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -8
- package/dist/types/meta/field-type.d.ts +0 -54
- package/dist/types/meta/field-type.d.ts.map +0 -1
- package/dist/types/meta/field-type.js +0 -42
- package/dist/types/meta/index.d.ts +0 -13
- package/dist/types/meta/index.d.ts.map +0 -1
- package/dist/types/meta/index.js +0 -12
- package/dist/types/meta/object-entity.d.ts +0 -246
- package/dist/types/meta/object-entity.d.ts.map +0 -1
- package/dist/types/meta/object-entity.js +0 -9
- package/dist/types/meta/object-field.d.ts +0 -199
- package/dist/types/meta/object-field.d.ts.map +0 -1
- package/dist/types/meta/object-field.js +0 -9
- package/dist/types/meta/object-view.d.ts +0 -430
- package/dist/types/meta/object-view.d.ts.map +0 -1
- package/dist/types/meta/object-view.js +0 -9
- package/src/examples.ts +0 -257
- package/src/index.ts +0 -10
- package/src/types/index.ts +0 -9
- package/src/types/meta/field-type.ts +0 -91
- package/src/types/meta/index.ts +0 -13
- package/src/types/meta/object-entity.ts +0 -265
- package/src/types/meta/object-field.ts +0 -218
- package/src/types/meta/object-view.ts +0 -475
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.zod.d.ts","sourceRoot":"","sources":["../../src/data/object.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;GAGG;AACH,eAAO,MAAM,kBAAkB;IAC7B,4CAA4C;;IAG5C,oCAAoC;;IAGpC,qCAAqC;;IAGrC,+BAA+B;;IAG/B,iCAAiC;;IAGjC,mCAAmC;;;;;;;;;;;;;;;;EAEnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;EAItB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB,eAAe;;;;;;IAOf,qBAAqB;;;;IAKrB,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGxB,cAAc;;;;;;;;;;;;;;IAGd,iBAAiB;;IAGjB,8BAA8B;;QArD9B,4CAA4C;;QAG5C,oCAAoC;;QAGpC,qCAAqC;;QAGrC,+BAA+B;;QAG/B,iCAAiC;;QAGjC,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCnC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ObjectSchema = exports.IndexSchema = exports.ObjectCapabilities = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const field_zod_1 = require("./field.zod");
|
|
6
|
+
/**
|
|
7
|
+
* Capability Flags
|
|
8
|
+
* Defines what system features are enabled for this object.
|
|
9
|
+
*/
|
|
10
|
+
exports.ObjectCapabilities = zod_1.z.object({
|
|
11
|
+
/** Enable history tracking (Audit Trail) */
|
|
12
|
+
trackHistory: zod_1.z.boolean().default(false),
|
|
13
|
+
/** Enable global search indexing */
|
|
14
|
+
searchable: zod_1.z.boolean().default(true),
|
|
15
|
+
/** Enable REST/GraphQL API access */
|
|
16
|
+
apiEnabled: zod_1.z.boolean().default(true),
|
|
17
|
+
/** Enable attachments/files */
|
|
18
|
+
files: zod_1.z.boolean().default(false),
|
|
19
|
+
/** Enable discussions/chatter */
|
|
20
|
+
feedEnabled: zod_1.z.boolean().default(false),
|
|
21
|
+
/** Enable Recycle Bin mechanics */
|
|
22
|
+
trash: zod_1.z.boolean().default(true),
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Schema for database indexes.
|
|
26
|
+
*/
|
|
27
|
+
exports.IndexSchema = zod_1.z.object({
|
|
28
|
+
name: zod_1.z.string().optional().describe('Index name'),
|
|
29
|
+
fields: zod_1.z.array(zod_1.z.string()).describe('Fields included in the index'),
|
|
30
|
+
unique: zod_1.z.boolean().optional().describe('Whether the index is unique'),
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Object Schema - Enterprise Data Model
|
|
34
|
+
*/
|
|
35
|
+
exports.ObjectSchema = zod_1.z.object({
|
|
36
|
+
/** Identify */
|
|
37
|
+
name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)'),
|
|
38
|
+
label: zod_1.z.string().optional().describe('Singular Label (e.g. "Account")'),
|
|
39
|
+
pluralLabel: zod_1.z.string().optional().describe('Plural Label (e.g. "Accounts")'),
|
|
40
|
+
description: zod_1.z.string().optional().describe('Internal description'),
|
|
41
|
+
icon: zod_1.z.string().optional().describe('Lucide icon name'),
|
|
42
|
+
/** Storage Config */
|
|
43
|
+
datasource: zod_1.z.string().default('default').describe('Datasource name'),
|
|
44
|
+
tableName: zod_1.z.string().optional().describe('Physical DB table override'),
|
|
45
|
+
isSystem: zod_1.z.boolean().default(false).describe('Is system object (protected)'),
|
|
46
|
+
/** Fields Definition */
|
|
47
|
+
fields: zod_1.z.record(field_zod_1.FieldSchema).describe('Map of field definitions'),
|
|
48
|
+
/** Indexes */
|
|
49
|
+
indexes: zod_1.z.array(exports.IndexSchema).optional().describe('Database indexes definition'),
|
|
50
|
+
/** Key Fields */
|
|
51
|
+
nameField: zod_1.z.string().optional().describe('Which field represents the record name/title (usually "name")'),
|
|
52
|
+
/** Features & Capabilities */
|
|
53
|
+
enable: exports.ObjectCapabilities.optional().describe('Enabled system capabilities'),
|
|
54
|
+
});
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Entity (Object) Level Permissions
|
|
4
|
+
* Defines CRUD + VAMA (View All / Modify All) access.
|
|
5
|
+
*/
|
|
6
|
+
export declare const ObjectPermissionSchema: z.ZodObject<{
|
|
7
|
+
/** C: Create */
|
|
8
|
+
allowCreate: z.ZodDefault<z.ZodBoolean>;
|
|
9
|
+
/** R: Read (Owned records or Shared records) */
|
|
10
|
+
allowRead: z.ZodDefault<z.ZodBoolean>;
|
|
11
|
+
/** U: Edit (Owned records or Shared records) */
|
|
12
|
+
allowEdit: z.ZodDefault<z.ZodBoolean>;
|
|
13
|
+
/** D: Delete (Owned records or Shared records) */
|
|
14
|
+
allowDelete: z.ZodDefault<z.ZodBoolean>;
|
|
15
|
+
/**
|
|
16
|
+
* View All Records: Super-user read access.
|
|
17
|
+
* Bypasses Sharing Rules and Ownership checks.
|
|
18
|
+
* Equivalent to Microsoft Dataverse "Organization" level read access.
|
|
19
|
+
*/
|
|
20
|
+
viewAllRecords: z.ZodDefault<z.ZodBoolean>;
|
|
21
|
+
/**
|
|
22
|
+
* Modify All Records: Super-user write access.
|
|
23
|
+
* Bypasses Sharing Rules and Ownership checks.
|
|
24
|
+
* Equivalent to Microsoft Dataverse "Organization" level write access.
|
|
25
|
+
*/
|
|
26
|
+
modifyAllRecords: z.ZodDefault<z.ZodBoolean>;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
allowCreate: boolean;
|
|
29
|
+
allowRead: boolean;
|
|
30
|
+
allowEdit: boolean;
|
|
31
|
+
allowDelete: boolean;
|
|
32
|
+
viewAllRecords: boolean;
|
|
33
|
+
modifyAllRecords: boolean;
|
|
34
|
+
}, {
|
|
35
|
+
allowCreate?: boolean | undefined;
|
|
36
|
+
allowRead?: boolean | undefined;
|
|
37
|
+
allowEdit?: boolean | undefined;
|
|
38
|
+
allowDelete?: boolean | undefined;
|
|
39
|
+
viewAllRecords?: boolean | undefined;
|
|
40
|
+
modifyAllRecords?: boolean | undefined;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Field Level Security (FLS)
|
|
44
|
+
*/
|
|
45
|
+
export declare const FieldPermissionSchema: z.ZodObject<{
|
|
46
|
+
/** Can see this field */
|
|
47
|
+
readable: z.ZodDefault<z.ZodBoolean>;
|
|
48
|
+
/** Can edit this field */
|
|
49
|
+
editable: z.ZodDefault<z.ZodBoolean>;
|
|
50
|
+
}, "strip", z.ZodTypeAny, {
|
|
51
|
+
readable: boolean;
|
|
52
|
+
editable: boolean;
|
|
53
|
+
}, {
|
|
54
|
+
readable?: boolean | undefined;
|
|
55
|
+
editable?: boolean | undefined;
|
|
56
|
+
}>;
|
|
57
|
+
/**
|
|
58
|
+
* Permission Set Schema
|
|
59
|
+
* Defines a collection of permissions that can be assigned to users.
|
|
60
|
+
*
|
|
61
|
+
* DIFFERENTIATION:
|
|
62
|
+
* - Profile: The ONE primary functional definition of a user (e.g. Standard User).
|
|
63
|
+
* - Permission Set: Add-on capabilities assigned to users (e.g. Export Reports).
|
|
64
|
+
* - Role: (Defined in src/system/role.zod.ts) Defines data visibility hierarchy.
|
|
65
|
+
*/
|
|
66
|
+
export declare const PermissionSetSchema: z.ZodObject<{
|
|
67
|
+
/** Unique permission set name */
|
|
68
|
+
name: z.ZodString;
|
|
69
|
+
/** Display label */
|
|
70
|
+
label: z.ZodOptional<z.ZodString>;
|
|
71
|
+
/** Is this a Profile? (Base set for a user) */
|
|
72
|
+
isProfile: z.ZodDefault<z.ZodBoolean>;
|
|
73
|
+
/** Object Permissions Map: <entity_name> -> permissions */
|
|
74
|
+
objects: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
75
|
+
/** C: Create */
|
|
76
|
+
allowCreate: z.ZodDefault<z.ZodBoolean>;
|
|
77
|
+
/** R: Read (Owned records or Shared records) */
|
|
78
|
+
allowRead: z.ZodDefault<z.ZodBoolean>;
|
|
79
|
+
/** U: Edit (Owned records or Shared records) */
|
|
80
|
+
allowEdit: z.ZodDefault<z.ZodBoolean>;
|
|
81
|
+
/** D: Delete (Owned records or Shared records) */
|
|
82
|
+
allowDelete: z.ZodDefault<z.ZodBoolean>;
|
|
83
|
+
/**
|
|
84
|
+
* View All Records: Super-user read access.
|
|
85
|
+
* Bypasses Sharing Rules and Ownership checks.
|
|
86
|
+
* Equivalent to Microsoft Dataverse "Organization" level read access.
|
|
87
|
+
*/
|
|
88
|
+
viewAllRecords: z.ZodDefault<z.ZodBoolean>;
|
|
89
|
+
/**
|
|
90
|
+
* Modify All Records: Super-user write access.
|
|
91
|
+
* Bypasses Sharing Rules and Ownership checks.
|
|
92
|
+
* Equivalent to Microsoft Dataverse "Organization" level write access.
|
|
93
|
+
*/
|
|
94
|
+
modifyAllRecords: z.ZodDefault<z.ZodBoolean>;
|
|
95
|
+
}, "strip", z.ZodTypeAny, {
|
|
96
|
+
allowCreate: boolean;
|
|
97
|
+
allowRead: boolean;
|
|
98
|
+
allowEdit: boolean;
|
|
99
|
+
allowDelete: boolean;
|
|
100
|
+
viewAllRecords: boolean;
|
|
101
|
+
modifyAllRecords: boolean;
|
|
102
|
+
}, {
|
|
103
|
+
allowCreate?: boolean | undefined;
|
|
104
|
+
allowRead?: boolean | undefined;
|
|
105
|
+
allowEdit?: boolean | undefined;
|
|
106
|
+
allowDelete?: boolean | undefined;
|
|
107
|
+
viewAllRecords?: boolean | undefined;
|
|
108
|
+
modifyAllRecords?: boolean | undefined;
|
|
109
|
+
}>>;
|
|
110
|
+
/** Field Permissions Map: <entity_name>.<field_name> -> permissions */
|
|
111
|
+
fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
112
|
+
/** Can see this field */
|
|
113
|
+
readable: z.ZodDefault<z.ZodBoolean>;
|
|
114
|
+
/** Can edit this field */
|
|
115
|
+
editable: z.ZodDefault<z.ZodBoolean>;
|
|
116
|
+
}, "strip", z.ZodTypeAny, {
|
|
117
|
+
readable: boolean;
|
|
118
|
+
editable: boolean;
|
|
119
|
+
}, {
|
|
120
|
+
readable?: boolean | undefined;
|
|
121
|
+
editable?: boolean | undefined;
|
|
122
|
+
}>>>;
|
|
123
|
+
/** System permissions (e.g., "manage_users") */
|
|
124
|
+
systemPermissions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
125
|
+
}, "strip", z.ZodTypeAny, {
|
|
126
|
+
name: string;
|
|
127
|
+
isProfile: boolean;
|
|
128
|
+
objects: Record<string, {
|
|
129
|
+
allowCreate: boolean;
|
|
130
|
+
allowRead: boolean;
|
|
131
|
+
allowEdit: boolean;
|
|
132
|
+
allowDelete: boolean;
|
|
133
|
+
viewAllRecords: boolean;
|
|
134
|
+
modifyAllRecords: boolean;
|
|
135
|
+
}>;
|
|
136
|
+
label?: string | undefined;
|
|
137
|
+
fields?: Record<string, {
|
|
138
|
+
readable: boolean;
|
|
139
|
+
editable: boolean;
|
|
140
|
+
}> | undefined;
|
|
141
|
+
systemPermissions?: string[] | undefined;
|
|
142
|
+
}, {
|
|
143
|
+
name: string;
|
|
144
|
+
objects: Record<string, {
|
|
145
|
+
allowCreate?: boolean | undefined;
|
|
146
|
+
allowRead?: boolean | undefined;
|
|
147
|
+
allowEdit?: boolean | undefined;
|
|
148
|
+
allowDelete?: boolean | undefined;
|
|
149
|
+
viewAllRecords?: boolean | undefined;
|
|
150
|
+
modifyAllRecords?: boolean | undefined;
|
|
151
|
+
}>;
|
|
152
|
+
label?: string | undefined;
|
|
153
|
+
fields?: Record<string, {
|
|
154
|
+
readable?: boolean | undefined;
|
|
155
|
+
editable?: boolean | undefined;
|
|
156
|
+
}> | undefined;
|
|
157
|
+
isProfile?: boolean | undefined;
|
|
158
|
+
systemPermissions?: string[] | undefined;
|
|
159
|
+
}>;
|
|
160
|
+
export type PermissionSet = z.infer<typeof PermissionSetSchema>;
|
|
161
|
+
export type ObjectPermission = z.infer<typeof ObjectPermissionSchema>;
|
|
162
|
+
export type FieldPermission = z.infer<typeof FieldPermissionSchema>;
|
|
163
|
+
//# sourceMappingURL=permission.zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.zod.d.ts","sourceRoot":"","sources":["../../src/data/permission.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,sBAAsB;IACjC,gBAAgB;;IAEhB,gDAAgD;;IAEhD,gDAAgD;;IAEhD,kDAAkD;;IAGlD;;;;OAIG;;IAGH;;;;OAIG;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,yBAAyB;;IAEzB,0BAA0B;;;;;;;;EAE1B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB;IAC9B,iCAAiC;;IAGjC,oBAAoB;;IAGpB,+CAA+C;;IAG/C,2DAA2D;;QArD3D,gBAAgB;;QAEhB,gDAAgD;;QAEhD,gDAAgD;;QAEhD,kDAAkD;;QAGlD;;;;WAIG;;QAGH;;;;WAIG;;;;;;;;;;;;;;;;;IAoCH,uEAAuE;;QA5BvE,yBAAyB;;QAEzB,0BAA0B;;;;;;;;;IA6B1B,gDAAgD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEhD,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermissionSetSchema = exports.FieldPermissionSchema = exports.ObjectPermissionSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Entity (Object) Level Permissions
|
|
7
|
+
* Defines CRUD + VAMA (View All / Modify All) access.
|
|
8
|
+
*/
|
|
9
|
+
exports.ObjectPermissionSchema = zod_1.z.object({
|
|
10
|
+
/** C: Create */
|
|
11
|
+
allowCreate: zod_1.z.boolean().default(false).describe('Create permission'),
|
|
12
|
+
/** R: Read (Owned records or Shared records) */
|
|
13
|
+
allowRead: zod_1.z.boolean().default(false).describe('Read permission'),
|
|
14
|
+
/** U: Edit (Owned records or Shared records) */
|
|
15
|
+
allowEdit: zod_1.z.boolean().default(false).describe('Edit permission'),
|
|
16
|
+
/** D: Delete (Owned records or Shared records) */
|
|
17
|
+
allowDelete: zod_1.z.boolean().default(false).describe('Delete permission'),
|
|
18
|
+
/**
|
|
19
|
+
* View All Records: Super-user read access.
|
|
20
|
+
* Bypasses Sharing Rules and Ownership checks.
|
|
21
|
+
* Equivalent to Microsoft Dataverse "Organization" level read access.
|
|
22
|
+
*/
|
|
23
|
+
viewAllRecords: zod_1.z.boolean().default(false).describe('View All Data (Bypass Sharing)'),
|
|
24
|
+
/**
|
|
25
|
+
* Modify All Records: Super-user write access.
|
|
26
|
+
* Bypasses Sharing Rules and Ownership checks.
|
|
27
|
+
* Equivalent to Microsoft Dataverse "Organization" level write access.
|
|
28
|
+
*/
|
|
29
|
+
modifyAllRecords: zod_1.z.boolean().default(false).describe('Modify All Data (Bypass Sharing)'),
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Field Level Security (FLS)
|
|
33
|
+
*/
|
|
34
|
+
exports.FieldPermissionSchema = zod_1.z.object({
|
|
35
|
+
/** Can see this field */
|
|
36
|
+
readable: zod_1.z.boolean().default(true).describe('Field read access'),
|
|
37
|
+
/** Can edit this field */
|
|
38
|
+
editable: zod_1.z.boolean().default(false).describe('Field edit access'),
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* Permission Set Schema
|
|
42
|
+
* Defines a collection of permissions that can be assigned to users.
|
|
43
|
+
*
|
|
44
|
+
* DIFFERENTIATION:
|
|
45
|
+
* - Profile: The ONE primary functional definition of a user (e.g. Standard User).
|
|
46
|
+
* - Permission Set: Add-on capabilities assigned to users (e.g. Export Reports).
|
|
47
|
+
* - Role: (Defined in src/system/role.zod.ts) Defines data visibility hierarchy.
|
|
48
|
+
*/
|
|
49
|
+
exports.PermissionSetSchema = zod_1.z.object({
|
|
50
|
+
/** Unique permission set name */
|
|
51
|
+
name: zod_1.z.string().describe('Permission set unique name'),
|
|
52
|
+
/** Display label */
|
|
53
|
+
label: zod_1.z.string().optional().describe('Display label'),
|
|
54
|
+
/** Is this a Profile? (Base set for a user) */
|
|
55
|
+
isProfile: zod_1.z.boolean().default(false).describe('Whether this is a user profile'),
|
|
56
|
+
/** Object Permissions Map: <entity_name> -> permissions */
|
|
57
|
+
objects: zod_1.z.record(exports.ObjectPermissionSchema).describe('Entity permissions'),
|
|
58
|
+
/** Field Permissions Map: <entity_name>.<field_name> -> permissions */
|
|
59
|
+
fields: zod_1.z.record(exports.FieldPermissionSchema).optional().describe('Field level security'),
|
|
60
|
+
/** System permissions (e.g., "manage_users") */
|
|
61
|
+
systemPermissions: zod_1.z.array(zod_1.z.string()).optional().describe('System level capabilities'),
|
|
62
|
+
});
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Filter Operator Enum
|
|
4
|
+
* Standard SQL/NoSQL operators supported by the engine.
|
|
5
|
+
*/
|
|
6
|
+
export declare const FilterOperator: z.ZodEnum<["=", "!=", "<>", ">", ">=", "<", "<=", "startswith", "contains", "notcontains", "between", "in", "notin", "is_null", "is_not_null"]>;
|
|
7
|
+
/**
|
|
8
|
+
* Filter Logic Operator
|
|
9
|
+
*/
|
|
10
|
+
export declare const LogicOperator: z.ZodEnum<["and", "or", "not"]>;
|
|
11
|
+
/**
|
|
12
|
+
* Recursive Filter Node
|
|
13
|
+
* Represents the "Where" clause.
|
|
14
|
+
*
|
|
15
|
+
* Structure: [Field, Operator, Value] OR [Logic, Filter, Filter...]
|
|
16
|
+
* Examples:
|
|
17
|
+
* - Simple: ["amount", ">", 1000]
|
|
18
|
+
* - Logic: [["status", "=", "closed"], "or", ["amount", ">", 1000]]
|
|
19
|
+
*/
|
|
20
|
+
export declare const FilterNodeSchema: z.ZodType<any>;
|
|
21
|
+
/**
|
|
22
|
+
* Sort Node
|
|
23
|
+
* Represents "Order By".
|
|
24
|
+
*/
|
|
25
|
+
export declare const SortNodeSchema: z.ZodObject<{
|
|
26
|
+
field: z.ZodString;
|
|
27
|
+
order: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
field: string;
|
|
30
|
+
order: "asc" | "desc";
|
|
31
|
+
}, {
|
|
32
|
+
field: string;
|
|
33
|
+
order?: "asc" | "desc" | undefined;
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Field Selection Node
|
|
37
|
+
* Represents "Select" attributes, including joins.
|
|
38
|
+
*/
|
|
39
|
+
export declare const FieldNodeSchema: z.ZodType<any>;
|
|
40
|
+
/**
|
|
41
|
+
* Query AST Schema
|
|
42
|
+
* The universal data retrieval contract defined in `ast-structure.mdx`.
|
|
43
|
+
*/
|
|
44
|
+
export declare const QuerySchema: z.ZodObject<{
|
|
45
|
+
/** Target Entity */
|
|
46
|
+
object: z.ZodString;
|
|
47
|
+
/** Select Clause */
|
|
48
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">>;
|
|
49
|
+
/** Where Clause */
|
|
50
|
+
filters: z.ZodOptional<z.ZodType<any, z.ZodTypeDef, any>>;
|
|
51
|
+
/** Order By Clause */
|
|
52
|
+
sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
53
|
+
field: z.ZodString;
|
|
54
|
+
order: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
|
|
55
|
+
}, "strip", z.ZodTypeAny, {
|
|
56
|
+
field: string;
|
|
57
|
+
order: "asc" | "desc";
|
|
58
|
+
}, {
|
|
59
|
+
field: string;
|
|
60
|
+
order?: "asc" | "desc" | undefined;
|
|
61
|
+
}>, "many">>;
|
|
62
|
+
/** Pagination */
|
|
63
|
+
top: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
skip: z.ZodOptional<z.ZodNumber>;
|
|
65
|
+
}, "strip", z.ZodTypeAny, {
|
|
66
|
+
object: string;
|
|
67
|
+
sort?: {
|
|
68
|
+
field: string;
|
|
69
|
+
order: "asc" | "desc";
|
|
70
|
+
}[] | undefined;
|
|
71
|
+
fields?: any[] | undefined;
|
|
72
|
+
filters?: any;
|
|
73
|
+
top?: number | undefined;
|
|
74
|
+
skip?: number | undefined;
|
|
75
|
+
}, {
|
|
76
|
+
object: string;
|
|
77
|
+
sort?: {
|
|
78
|
+
field: string;
|
|
79
|
+
order?: "asc" | "desc" | undefined;
|
|
80
|
+
}[] | undefined;
|
|
81
|
+
fields?: any[] | undefined;
|
|
82
|
+
filters?: any;
|
|
83
|
+
top?: number | undefined;
|
|
84
|
+
skip?: number | undefined;
|
|
85
|
+
}>;
|
|
86
|
+
export type QueryAST = z.infer<typeof QuerySchema>;
|
|
87
|
+
export type FilterNode = z.infer<typeof FilterNodeSchema>;
|
|
88
|
+
export type SortNode = z.infer<typeof SortNodeSchema>;
|
|
89
|
+
//# sourceMappingURL=query.zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.zod.d.ts","sourceRoot":"","sources":["../../src/data/query.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,cAAc,iJAMzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,iCAA+B,CAAC;AAE1D;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAQ3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;EAGzB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAS1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW;IACtB,oBAAoB;;IAGpB,oBAAoB;;IAGpB,mBAAmB;;IAGnB,sBAAsB;;;;;;;;;;;IAGtB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;EAGjB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QuerySchema = exports.FieldNodeSchema = exports.SortNodeSchema = exports.FilterNodeSchema = exports.LogicOperator = exports.FilterOperator = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Filter Operator Enum
|
|
7
|
+
* Standard SQL/NoSQL operators supported by the engine.
|
|
8
|
+
*/
|
|
9
|
+
exports.FilterOperator = zod_1.z.enum([
|
|
10
|
+
'=', '!=', '<>',
|
|
11
|
+
'>', '>=', '<', '<=',
|
|
12
|
+
'startswith', 'contains', 'notcontains',
|
|
13
|
+
'between', 'in', 'notin',
|
|
14
|
+
'is_null', 'is_not_null'
|
|
15
|
+
]);
|
|
16
|
+
/**
|
|
17
|
+
* Filter Logic Operator
|
|
18
|
+
*/
|
|
19
|
+
exports.LogicOperator = zod_1.z.enum(['and', 'or', 'not']);
|
|
20
|
+
/**
|
|
21
|
+
* Recursive Filter Node
|
|
22
|
+
* Represents the "Where" clause.
|
|
23
|
+
*
|
|
24
|
+
* Structure: [Field, Operator, Value] OR [Logic, Filter, Filter...]
|
|
25
|
+
* Examples:
|
|
26
|
+
* - Simple: ["amount", ">", 1000]
|
|
27
|
+
* - Logic: [["status", "=", "closed"], "or", ["amount", ">", 1000]]
|
|
28
|
+
*/
|
|
29
|
+
exports.FilterNodeSchema = zod_1.z.lazy(() => zod_1.z.union([
|
|
30
|
+
// Leaf Node: [Field, Operator, Value]
|
|
31
|
+
zod_1.z.tuple([zod_1.z.string(), exports.FilterOperator, zod_1.z.any()]),
|
|
32
|
+
// Logic Node: [Expression, "or", Expression]
|
|
33
|
+
zod_1.z.array(zod_1.z.union([zod_1.z.string(), exports.FilterNodeSchema]))
|
|
34
|
+
]));
|
|
35
|
+
/**
|
|
36
|
+
* Sort Node
|
|
37
|
+
* Represents "Order By".
|
|
38
|
+
*/
|
|
39
|
+
exports.SortNodeSchema = zod_1.z.object({
|
|
40
|
+
field: zod_1.z.string(),
|
|
41
|
+
order: zod_1.z.enum(['asc', 'desc']).default('asc')
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* Field Selection Node
|
|
45
|
+
* Represents "Select" attributes, including joins.
|
|
46
|
+
*/
|
|
47
|
+
exports.FieldNodeSchema = zod_1.z.lazy(() => zod_1.z.union([
|
|
48
|
+
zod_1.z.string(), // Primitive field: "name"
|
|
49
|
+
zod_1.z.object({
|
|
50
|
+
field: zod_1.z.string(), // Relationship field: "owner"
|
|
51
|
+
fields: zod_1.z.array(exports.FieldNodeSchema).optional(), // Nested select: ["name", "email"]
|
|
52
|
+
alias: zod_1.z.string().optional()
|
|
53
|
+
})
|
|
54
|
+
]));
|
|
55
|
+
/**
|
|
56
|
+
* Query AST Schema
|
|
57
|
+
* The universal data retrieval contract defined in `ast-structure.mdx`.
|
|
58
|
+
*/
|
|
59
|
+
exports.QuerySchema = zod_1.z.object({
|
|
60
|
+
/** Target Entity */
|
|
61
|
+
object: zod_1.z.string().describe('Object name (e.g. account)'),
|
|
62
|
+
/** Select Clause */
|
|
63
|
+
fields: zod_1.z.array(exports.FieldNodeSchema).optional().describe('Fields to retrieve'),
|
|
64
|
+
/** Where Clause */
|
|
65
|
+
filters: exports.FilterNodeSchema.optional().describe('Filtering criteria'),
|
|
66
|
+
/** Order By Clause */
|
|
67
|
+
sort: zod_1.z.array(exports.SortNodeSchema).optional().describe('Sorting instructions'),
|
|
68
|
+
/** Pagination */
|
|
69
|
+
top: zod_1.z.number().optional().describe('Limit results'),
|
|
70
|
+
skip: zod_1.z.number().optional().describe('Offset results'),
|
|
71
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Sharing Rule Type
|
|
4
|
+
* How is the data shared?
|
|
5
|
+
*/
|
|
6
|
+
export declare const SharingRuleType: z.ZodEnum<["owner", "criteria", "manual", "guest"]>;
|
|
7
|
+
/**
|
|
8
|
+
* Sharing Level
|
|
9
|
+
* What access is granted?
|
|
10
|
+
*/
|
|
11
|
+
export declare const SharingLevel: z.ZodEnum<["read", "edit"]>;
|
|
12
|
+
/**
|
|
13
|
+
* Sharing Rule Schema
|
|
14
|
+
* Defines AUTOMATIC access grants based on logic.
|
|
15
|
+
* The core engine of the governance layer.
|
|
16
|
+
*/
|
|
17
|
+
export declare const SharingRuleSchema: z.ZodObject<{
|
|
18
|
+
name: z.ZodString;
|
|
19
|
+
label: z.ZodOptional<z.ZodString>;
|
|
20
|
+
active: z.ZodDefault<z.ZodBoolean>;
|
|
21
|
+
/** Target Object */
|
|
22
|
+
object: z.ZodString;
|
|
23
|
+
/** Grant Logic */
|
|
24
|
+
type: z.ZodDefault<z.ZodEnum<["owner", "criteria", "manual", "guest"]>>;
|
|
25
|
+
/**
|
|
26
|
+
* Criteria (for type='criteria')
|
|
27
|
+
* SQL-like condition: "department = 'Sales' AND amount > 10000"
|
|
28
|
+
*/
|
|
29
|
+
criteria: z.ZodOptional<z.ZodString>;
|
|
30
|
+
/** Access Level */
|
|
31
|
+
accessLevel: z.ZodDefault<z.ZodEnum<["read", "edit"]>>;
|
|
32
|
+
/**
|
|
33
|
+
* Target Audience (Whom to share with)
|
|
34
|
+
* ID of a Group, Role, or User.
|
|
35
|
+
*/
|
|
36
|
+
sharedWith: z.ZodString;
|
|
37
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
|
+
object: string;
|
|
39
|
+
type: "owner" | "criteria" | "manual" | "guest";
|
|
40
|
+
name: string;
|
|
41
|
+
active: boolean;
|
|
42
|
+
accessLevel: "read" | "edit";
|
|
43
|
+
sharedWith: string;
|
|
44
|
+
label?: string | undefined;
|
|
45
|
+
criteria?: string | undefined;
|
|
46
|
+
}, {
|
|
47
|
+
object: string;
|
|
48
|
+
name: string;
|
|
49
|
+
sharedWith: string;
|
|
50
|
+
type?: "owner" | "criteria" | "manual" | "guest" | undefined;
|
|
51
|
+
label?: string | undefined;
|
|
52
|
+
active?: boolean | undefined;
|
|
53
|
+
criteria?: string | undefined;
|
|
54
|
+
accessLevel?: "read" | "edit" | undefined;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Organization-Wide Defaults (OWD)
|
|
58
|
+
* The baseline security posture for an object.
|
|
59
|
+
*/
|
|
60
|
+
export declare const OWDModel: z.ZodEnum<["private", "public_read", "public_read_write"]>;
|
|
61
|
+
export type SharingRule = z.infer<typeof SharingRuleSchema>;
|
|
62
|
+
export type SharingRuleType = z.infer<typeof SharingRuleType>;
|
|
63
|
+
//# sourceMappingURL=sharing.zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharing.zod.d.ts","sourceRoot":"","sources":["../../src/data/sharing.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,eAAe,qDAK1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,6BAGvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;IAK5B,oBAAoB;;IAGpB,kBAAkB;;IAGlB;;;OAGG;;IAGH,mBAAmB;;IAGnB;;;OAGG;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ,4DAInB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OWDModel = exports.SharingRuleSchema = exports.SharingLevel = exports.SharingRuleType = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Sharing Rule Type
|
|
7
|
+
* How is the data shared?
|
|
8
|
+
*/
|
|
9
|
+
exports.SharingRuleType = zod_1.z.enum([
|
|
10
|
+
'owner', // Based on record ownership (Role Hierarchy)
|
|
11
|
+
'criteria', // Based on field values (e.g. Status = 'Open')
|
|
12
|
+
'manual', // Ad-hoc sharing (User specific)
|
|
13
|
+
'guest' // Public access
|
|
14
|
+
]);
|
|
15
|
+
/**
|
|
16
|
+
* Sharing Level
|
|
17
|
+
* What access is granted?
|
|
18
|
+
*/
|
|
19
|
+
exports.SharingLevel = zod_1.z.enum([
|
|
20
|
+
'read', // Read Only
|
|
21
|
+
'edit' // Read / Write
|
|
22
|
+
]);
|
|
23
|
+
/**
|
|
24
|
+
* Sharing Rule Schema
|
|
25
|
+
* Defines AUTOMATIC access grants based on logic.
|
|
26
|
+
* The core engine of the governance layer.
|
|
27
|
+
*/
|
|
28
|
+
exports.SharingRuleSchema = zod_1.z.object({
|
|
29
|
+
name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique rule name'),
|
|
30
|
+
label: zod_1.z.string().optional(),
|
|
31
|
+
active: zod_1.z.boolean().default(true),
|
|
32
|
+
/** Target Object */
|
|
33
|
+
object: zod_1.z.string().describe('Object to share'),
|
|
34
|
+
/** Grant Logic */
|
|
35
|
+
type: exports.SharingRuleType.default('criteria'),
|
|
36
|
+
/**
|
|
37
|
+
* Criteria (for type='criteria')
|
|
38
|
+
* SQL-like condition: "department = 'Sales' AND amount > 10000"
|
|
39
|
+
*/
|
|
40
|
+
criteria: zod_1.z.string().optional(),
|
|
41
|
+
/** Access Level */
|
|
42
|
+
accessLevel: exports.SharingLevel.default('read'),
|
|
43
|
+
/**
|
|
44
|
+
* Target Audience (Whom to share with)
|
|
45
|
+
* ID of a Group, Role, or User.
|
|
46
|
+
*/
|
|
47
|
+
sharedWith: zod_1.z.string().describe('Group/Role ID to share records with'),
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Organization-Wide Defaults (OWD)
|
|
51
|
+
* The baseline security posture for an object.
|
|
52
|
+
*/
|
|
53
|
+
exports.OWDModel = zod_1.z.enum([
|
|
54
|
+
'private', // Only owner can see
|
|
55
|
+
'public_read', // Everyone can see, owner can edit
|
|
56
|
+
'public_read_write' // Everyone can see and edit
|
|
57
|
+
]);
|