@objectstack/spec 0.3.2 → 0.4.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 +32 -10
- package/dist/ai/agent.zod.d.ts +12 -12
- package/dist/ai/conversation.zod.d.ts +54 -54
- package/dist/ai/cost.zod.d.ts +135 -135
- package/dist/ai/index.d.ts +1 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +1 -1
- package/dist/ai/model-registry.zod.d.ts +91 -91
- package/dist/ai/nlq.zod.d.ts +72 -72
- package/dist/ai/{workflow-automation.zod.d.ts → orchestration.zod.d.ts} +51 -50
- package/dist/ai/orchestration.zod.d.ts.map +1 -0
- package/dist/ai/{workflow-automation.zod.js → orchestration.zod.js} +26 -25
- package/dist/ai/predictive.zod.d.ts +27 -27
- package/dist/ai/rag-pipeline.zod.d.ts +102 -102
- package/dist/api/contract.zod.d.ts +213 -197
- package/dist/api/contract.zod.d.ts.map +1 -1
- package/dist/{system → api}/discovery.zod.d.ts +26 -26
- package/dist/api/discovery.zod.d.ts.map +1 -0
- package/dist/{system → api}/discovery.zod.js +9 -9
- package/dist/{system/api.zod.d.ts → api/endpoint.zod.d.ts} +53 -57
- package/dist/api/endpoint.zod.d.ts.map +1 -0
- package/dist/{system/api.zod.js → api/endpoint.zod.js} +3 -6
- package/dist/api/index.d.ts +6 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +6 -0
- package/dist/api/odata.zod.d.ts +482 -0
- package/dist/api/odata.zod.d.ts.map +1 -0
- package/dist/api/odata.zod.js +401 -0
- package/dist/{system → api}/realtime.zod.d.ts +4 -4
- package/dist/api/realtime.zod.d.ts.map +1 -0
- package/dist/api/router.zod.d.ts +182 -0
- package/dist/api/router.zod.d.ts.map +1 -0
- package/dist/api/router.zod.js +103 -0
- package/dist/{system/auth.zod.d.ts → auth/config.zod.d.ts} +199 -199
- package/dist/auth/config.zod.d.ts.map +1 -0
- package/dist/{system → auth}/identity.zod.d.ts +8 -8
- package/dist/auth/identity.zod.d.ts.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +23 -0
- package/dist/{system → auth}/organization.zod.d.ts +7 -7
- package/dist/auth/organization.zod.d.ts.map +1 -0
- package/dist/{system → auth}/policy.zod.d.ts +3 -3
- package/dist/auth/policy.zod.d.ts.map +1 -0
- package/dist/{system/auth-protocol.d.ts → auth/protocol.d.ts} +1 -1
- package/dist/auth/protocol.d.ts.map +1 -0
- package/dist/{system → auth}/role.zod.d.ts +14 -0
- package/dist/auth/role.zod.d.ts.map +1 -0
- package/dist/{system → auth}/role.zod.js +16 -1
- package/dist/auth/scim.zod.d.ts +2732 -0
- package/dist/auth/scim.zod.d.ts.map +1 -0
- package/dist/auth/scim.zod.js +811 -0
- package/dist/automation/approval.zod.d.ts +643 -0
- package/dist/automation/approval.zod.d.ts.map +1 -0
- package/dist/automation/approval.zod.js +84 -0
- package/dist/automation/connector.zod.d.ts +1284 -0
- package/dist/automation/connector.zod.d.ts.map +1 -0
- package/dist/automation/connector.zod.js +500 -0
- package/dist/automation/etl.zod.d.ts +623 -0
- package/dist/automation/etl.zod.d.ts.map +1 -0
- package/dist/automation/etl.zod.js +359 -0
- package/dist/{data → automation}/flow.zod.d.ts +40 -22
- package/dist/automation/flow.zod.d.ts.map +1 -0
- package/dist/{data → automation}/flow.zod.js +6 -1
- package/dist/automation/index.d.ts +8 -0
- package/dist/automation/index.d.ts.map +1 -0
- package/dist/automation/index.js +23 -0
- package/dist/automation/sync.zod.d.ts +854 -0
- package/dist/automation/sync.zod.d.ts.map +1 -0
- package/dist/automation/sync.zod.js +444 -0
- package/dist/{system → automation}/webhook.zod.d.ts +26 -3
- package/dist/automation/webhook.zod.d.ts.map +1 -0
- package/dist/{system → automation}/webhook.zod.js +27 -3
- package/dist/automation/workflow.zod.d.ts +2059 -0
- package/dist/automation/workflow.zod.d.ts.map +1 -0
- package/dist/{data → automation}/workflow.zod.js +40 -2
- package/dist/data/dataset.zod.d.ts +2 -2
- package/dist/data/field.zod.d.ts +779 -219
- package/dist/data/field.zod.d.ts.map +1 -1
- package/dist/data/field.zod.js +128 -16
- package/dist/data/filter.zod.d.ts +167 -30
- package/dist/data/filter.zod.d.ts.map +1 -1
- package/dist/data/filter.zod.js +25 -13
- package/dist/data/hook.zod.d.ts +191 -0
- package/dist/data/hook.zod.d.ts.map +1 -0
- package/dist/data/hook.zod.js +144 -0
- package/dist/data/index.d.ts +4 -17
- package/dist/data/index.d.ts.map +1 -1
- package/dist/data/index.js +4 -17
- package/dist/data/mapping.zod.d.ts +117 -93
- package/dist/data/mapping.zod.d.ts.map +1 -1
- package/dist/data/mapping.zod.js +16 -3
- package/dist/data/object.zod.d.ts +485 -131
- package/dist/data/object.zod.d.ts.map +1 -1
- package/dist/data/object.zod.js +87 -42
- package/dist/data/query.zod.d.ts +98 -169
- package/dist/data/query.zod.d.ts.map +1 -1
- package/dist/data/query.zod.js +42 -130
- package/dist/data/validation.zod.d.ts +166 -26
- package/dist/data/validation.zod.d.ts.map +1 -1
- package/dist/data/validation.zod.js +38 -16
- package/dist/hub/composer.zod.d.ts +871 -0
- package/dist/hub/composer.zod.d.ts.map +1 -0
- package/dist/hub/composer.zod.js +111 -0
- package/dist/hub/index.d.ts +6 -0
- package/dist/hub/index.d.ts.map +1 -0
- package/dist/hub/index.js +22 -0
- package/dist/{system → hub}/license.zod.d.ts +13 -9
- package/dist/hub/license.zod.d.ts.map +1 -0
- package/dist/{system → hub}/license.zod.js +5 -3
- package/dist/hub/marketplace.zod.d.ts +191 -0
- package/dist/hub/marketplace.zod.d.ts.map +1 -0
- package/dist/hub/marketplace.zod.js +85 -0
- package/dist/hub/space.zod.d.ts +383 -0
- package/dist/hub/space.zod.d.ts.map +1 -0
- package/dist/hub/space.zod.js +103 -0
- package/dist/{system → hub}/tenant.zod.d.ts +73 -47
- package/dist/hub/tenant.zod.d.ts.map +1 -0
- package/dist/{system → hub}/tenant.zod.js +36 -10
- package/dist/index.d.ts +11 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -5
- package/dist/permission/index.d.ts +14 -0
- package/dist/permission/index.d.ts.map +1 -0
- package/dist/permission/index.js +29 -0
- package/dist/{data → permission}/permission.zod.d.ts +48 -3
- package/dist/permission/permission.zod.d.ts.map +1 -0
- package/dist/{data → permission}/permission.zod.js +26 -2
- package/dist/permission/rls.zod.d.ts +605 -0
- package/dist/permission/rls.zod.d.ts.map +1 -0
- package/dist/permission/rls.zod.js +615 -0
- package/dist/permission/sharing.zod.d.ts +146 -0
- package/dist/permission/sharing.zod.d.ts.map +1 -0
- package/dist/permission/sharing.zod.js +88 -0
- package/dist/{system → permission}/territory.zod.d.ts +13 -0
- package/dist/permission/territory.zod.d.ts.map +1 -0
- package/dist/{system → permission}/territory.zod.js +15 -1
- package/dist/shared/identifiers.zod.d.ts +87 -0
- package/dist/shared/identifiers.zod.d.ts.map +1 -0
- package/dist/shared/identifiers.zod.js +101 -0
- package/dist/shared/index.d.ts +6 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +21 -0
- package/dist/stack.zod.d.ts +19869 -0
- package/dist/stack.zod.d.ts.map +1 -0
- package/dist/stack.zod.js +248 -0
- package/dist/system/audit.zod.d.ts +58 -58
- package/dist/system/context.zod.d.ts +56 -0
- package/dist/system/context.zod.d.ts.map +1 -0
- package/dist/system/context.zod.js +43 -0
- package/dist/system/datasource.zod.d.ts +40 -6
- package/dist/system/datasource.zod.d.ts.map +1 -1
- package/dist/system/datasource.zod.js +17 -13
- package/dist/system/driver/mongo.zod.d.ts +107 -0
- package/dist/system/driver/mongo.zod.d.ts.map +1 -0
- package/dist/system/driver/mongo.zod.js +80 -0
- package/dist/system/driver/postgres.zod.d.ts +134 -0
- package/dist/system/driver/postgres.zod.d.ts.map +1 -0
- package/dist/system/driver/postgres.zod.js +88 -0
- package/dist/system/driver.zod.d.ts +2249 -488
- package/dist/system/driver.zod.d.ts.map +1 -1
- package/dist/system/driver.zod.js +99 -0
- package/dist/system/events.zod.d.ts +8 -5
- package/dist/system/events.zod.d.ts.map +1 -1
- package/dist/system/events.zod.js +5 -1
- package/dist/system/feature.zod.d.ts +131 -0
- package/dist/system/feature.zod.d.ts.map +1 -0
- package/dist/system/feature.zod.js +45 -0
- package/dist/system/index.d.ts +11 -20
- package/dist/system/index.d.ts.map +1 -1
- package/dist/system/index.js +15 -20
- package/dist/system/job.zod.d.ts +5 -5
- package/dist/system/logger.zod.d.ts +111 -0
- package/dist/system/logger.zod.d.ts.map +1 -0
- package/dist/system/logger.zod.js +75 -0
- package/dist/system/manifest.zod.d.ts +136 -18
- package/dist/system/manifest.zod.d.ts.map +1 -1
- package/dist/system/manifest.zod.js +28 -0
- package/dist/system/plugin.zod.d.ts +598 -318
- package/dist/system/plugin.zod.d.ts.map +1 -1
- package/dist/system/plugin.zod.js +13 -0
- package/dist/system/scoped-storage.zod.d.ts +81 -0
- package/dist/system/scoped-storage.zod.d.ts.map +1 -0
- package/dist/system/scoped-storage.zod.js +66 -0
- package/dist/ui/action.zod.d.ts +42 -17
- package/dist/ui/action.zod.d.ts.map +1 -1
- package/dist/ui/action.zod.js +30 -1
- package/dist/ui/app.zod.d.ts +26 -11
- package/dist/ui/app.zod.d.ts.map +1 -1
- package/dist/ui/app.zod.js +32 -4
- package/dist/ui/block.zod.d.ts +265 -0
- package/dist/ui/block.zod.d.ts.map +1 -0
- package/dist/ui/block.zod.js +90 -0
- package/dist/ui/component.zod.d.ts +265 -0
- package/dist/ui/component.zod.d.ts.map +1 -0
- package/dist/ui/component.zod.js +90 -0
- package/dist/ui/dashboard.zod.d.ts +15 -15
- package/dist/ui/dashboard.zod.d.ts.map +1 -1
- package/dist/ui/dashboard.zod.js +18 -8
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +1 -0
- package/dist/ui/page.zod.d.ts +23 -5
- package/dist/ui/page.zod.d.ts.map +1 -1
- package/dist/ui/page.zod.js +37 -4
- package/dist/ui/report.zod.d.ts +12 -12
- package/dist/ui/theme.zod.d.ts +42 -42
- package/dist/ui/view.zod.d.ts +302 -290
- package/dist/ui/view.zod.d.ts.map +1 -1
- package/dist/ui/view.zod.js +32 -3
- package/dist/ui/widget.zod.d.ts +730 -29
- package/dist/ui/widget.zod.d.ts.map +1 -1
- package/dist/ui/widget.zod.js +294 -1
- package/json-schema/ai/{AIWorkflowAutomation.json → AIOrchestration.json} +5 -5
- package/json-schema/ai/{AIWorkflowExecutionResult.json → AIOrchestrationExecutionResult.json} +2 -2
- package/json-schema/ai/{AIWorkflowTrigger.json → AIOrchestrationTrigger.json} +2 -2
- package/json-schema/ai/{BatchAIWorkflowExecution.json → BatchAIOrchestrationExecution.json} +3 -3
- package/json-schema/{system → api}/ApiEndpoint.json +3 -1
- package/json-schema/{system → api}/ApiRoutes.json +7 -7
- package/json-schema/{system → api}/Discovery.json +7 -7
- package/json-schema/api/ExportRequest.json +402 -438
- package/json-schema/{system → api}/HttpMethod.json +3 -1
- package/json-schema/api/ODataError.json +65 -0
- package/json-schema/api/ODataFilterFunction.json +39 -0
- package/json-schema/api/ODataFilterOperator.json +24 -0
- package/json-schema/api/ODataMetadata.json +115 -0
- package/json-schema/api/ODataQuery.json +89 -0
- package/json-schema/api/ODataResponse.json +37 -0
- package/json-schema/api/RouteCategory.json +17 -0
- package/json-schema/api/RouteDefinition.json +77 -0
- package/json-schema/api/RouterConfig.json +117 -0
- package/json-schema/{system → auth}/Role.json +3 -2
- package/json-schema/auth/SCIMAddress.json +50 -0
- package/json-schema/auth/SCIMEmail.json +38 -0
- package/json-schema/auth/SCIMEnterpriseUser.json +55 -0
- package/json-schema/auth/SCIMError.json +52 -0
- package/json-schema/auth/SCIMGroup.json +102 -0
- package/json-schema/auth/SCIMGroupReference.json +36 -0
- package/json-schema/auth/SCIMListResponse.json +606 -0
- package/json-schema/auth/SCIMMemberReference.json +36 -0
- package/json-schema/auth/SCIMMeta.json +35 -0
- package/json-schema/auth/SCIMName.json +36 -0
- package/json-schema/auth/SCIMPatchOperation.json +31 -0
- package/json-schema/auth/SCIMPatchRequest.json +56 -0
- package/json-schema/auth/SCIMPhoneNumber.json +40 -0
- package/json-schema/auth/SCIMUser.json +462 -0
- package/json-schema/automation/ApprovalAction.json +35 -0
- package/json-schema/automation/ApprovalActionType.json +15 -0
- package/json-schema/automation/ApprovalProcess.json +326 -0
- package/json-schema/automation/ApprovalStep.json +147 -0
- package/json-schema/automation/ApproverType.json +16 -0
- package/json-schema/automation/AuthField.json +73 -0
- package/json-schema/automation/Authentication.json +159 -0
- package/json-schema/automation/AuthenticationType.json +18 -0
- package/json-schema/automation/ConflictResolution.json +16 -0
- package/json-schema/automation/Connector.json +440 -0
- package/json-schema/automation/ConnectorCategory.json +26 -0
- package/json-schema/automation/ConnectorInstance.json +69 -0
- package/json-schema/automation/ConnectorOperation.json +117 -0
- package/json-schema/automation/ConnectorTrigger.json +54 -0
- package/json-schema/automation/DataDestinationConfig.json +89 -0
- package/json-schema/automation/DataSourceConfig.json +34 -0
- package/json-schema/automation/DataSyncConfig.json +355 -0
- package/json-schema/automation/ETLDestination.json +57 -0
- package/json-schema/automation/ETLEndpointType.json +19 -0
- package/json-schema/automation/ETLPipeline.json +252 -0
- package/json-schema/automation/ETLPipelineRun.json +107 -0
- package/json-schema/automation/ETLRunStatus.json +17 -0
- package/json-schema/automation/ETLSource.json +60 -0
- package/json-schema/{data/LogicOperator.json → automation/ETLSyncMode.json} +5 -5
- package/json-schema/automation/ETLTransformation.json +46 -0
- package/json-schema/automation/ETLTransformationType.json +21 -0
- package/json-schema/automation/FieldMapping.json +36 -0
- package/json-schema/{data → automation}/Flow.json +31 -1
- package/json-schema/{data → automation}/FlowEdge.json +9 -0
- package/json-schema/automation/OAuth2Config.json +43 -0
- package/json-schema/automation/OperationParameter.json +59 -0
- package/json-schema/automation/OperationType.json +17 -0
- package/json-schema/automation/SyncDirection.json +14 -0
- package/json-schema/automation/SyncExecutionResult.json +135 -0
- package/json-schema/automation/SyncExecutionStatus.json +17 -0
- package/json-schema/{data/TriggerTiming.json → automation/SyncMode.json} +5 -4
- package/json-schema/{data/WorkflowRule.json → automation/TimeTrigger.json} +35 -25
- package/json-schema/{system → automation}/Webhook.json +3 -1
- package/json-schema/{system → automation}/WebhookReceiver.json +3 -1
- package/json-schema/automation/WorkflowRule.json +1032 -0
- package/json-schema/data/AggregationNode.json +23 -0
- package/json-schema/data/AsyncValidation.json +49 -2
- package/json-schema/data/ComparisonOperator.json +52 -0
- package/json-schema/data/ConditionalValidation.json +693 -46
- package/json-schema/data/CrossFieldValidation.json +33 -2
- package/json-schema/data/CurrencyConfig.json +35 -0
- package/json-schema/data/CurrencyValue.json +26 -0
- package/json-schema/data/CustomValidator.json +37 -10
- package/json-schema/data/Field.json +92 -4
- package/json-schema/data/FieldOperators.json +78 -0
- package/json-schema/data/FieldReference.json +19 -0
- package/json-schema/data/FieldType.json +12 -2
- package/json-schema/data/FormatValidation.json +33 -2
- package/json-schema/data/Hook.json +95 -0
- package/json-schema/data/HookContext.json +88 -0
- package/json-schema/data/HookEvent.json +29 -0
- package/json-schema/data/Index.json +10 -0
- package/json-schema/data/JSONValidation.json +85 -0
- package/json-schema/data/JoinNode.json +197 -213
- package/json-schema/data/JoinStrategy.json +15 -0
- package/json-schema/data/NormalizedFilter.json +234 -0
- package/json-schema/data/Object.json +1642 -32
- package/json-schema/data/ObjectCapabilities.json +30 -12
- package/json-schema/data/Query.json +246 -262
- package/json-schema/data/RangeOperator.json +26 -0
- package/json-schema/data/ScriptValidation.json +33 -2
- package/json-schema/data/SearchConfig.json +36 -0
- package/json-schema/data/SelectOption.json +4 -2
- package/json-schema/data/StateMachineValidation.json +33 -2
- package/json-schema/data/UniquenessValidation.json +33 -2
- package/json-schema/data/ValidationRule.json +693 -46
- package/json-schema/data/VectorConfig.json +51 -0
- package/json-schema/hub/BillOfMaterials.json +70 -0
- package/json-schema/hub/ComposerRequest.json +86 -0
- package/json-schema/hub/ComposerResponse.json +483 -0
- package/json-schema/hub/ConflictReport.json +53 -0
- package/json-schema/hub/DependencyRequirement.json +36 -0
- package/json-schema/hub/DeploymentTarget.json +38 -0
- package/json-schema/hub/HubSpace.json +279 -0
- package/json-schema/{system → hub}/License.json +11 -3
- package/json-schema/hub/MarketplacePlugin.json +141 -0
- package/json-schema/hub/PluginAuthor.json +26 -0
- package/json-schema/hub/PluginPricing.json +43 -0
- package/json-schema/hub/SpaceSubscription.json +77 -0
- package/json-schema/hub/SubscriptionStatus.json +16 -0
- package/json-schema/{system → hub}/Tenant.json +3 -5
- package/json-schema/permission/CriteriaSharingRule.json +82 -0
- package/json-schema/{data → permission}/OWDModel.json +2 -1
- package/json-schema/{data → permission}/ObjectPermission.json +15 -0
- package/json-schema/permission/OwnerSharingRule.json +102 -0
- package/json-schema/{data → permission}/PermissionSet.json +18 -1
- package/json-schema/permission/RLSConfig.json +59 -0
- package/json-schema/permission/RLSEvaluationResult.json +40 -0
- package/json-schema/{data/TriggerAction.json → permission/RLSOperation.json} +5 -3
- package/json-schema/permission/RLSUserContext.json +51 -0
- package/json-schema/permission/RowLevelSecurityPolicy.json +77 -0
- package/json-schema/permission/ShareRecipientType.json +16 -0
- package/json-schema/{data → permission}/SharingLevel.json +2 -1
- package/json-schema/permission/SharingRule.json +182 -0
- package/json-schema/{data → permission}/SharingRuleType.json +1 -3
- package/json-schema/{system → permission}/Territory.json +3 -1
- package/json-schema/shared/EventName.json +12 -0
- package/json-schema/shared/SnakeCaseIdentifier.json +12 -0
- package/json-schema/shared/SystemIdentifier.json +12 -0
- package/json-schema/system/Datasource.json +35 -0
- package/json-schema/system/DriverCapabilities.json +10 -0
- package/json-schema/system/DriverInterface.json +10 -0
- package/json-schema/system/DriverOptions.json +11 -0
- package/json-schema/system/Event.json +3 -2
- package/json-schema/system/FeatureFlag.json +87 -0
- package/json-schema/system/FeatureStrategy.json +16 -0
- package/json-schema/system/FileMetadata.json +43 -0
- package/json-schema/system/KernelContext.json +62 -0
- package/json-schema/system/LogEntry.json +63 -0
- package/json-schema/system/LogFormat.json +15 -0
- package/json-schema/system/LogLevel.json +17 -0
- package/json-schema/system/LoggerConfig.json +70 -0
- package/json-schema/system/Manifest.json +80 -0
- package/json-schema/system/MongoConfig.json +82 -0
- package/json-schema/system/PluginContext.json +8 -1
- package/json-schema/system/PostgresConfig.json +98 -0
- package/json-schema/system/RuntimeMode.json +16 -0
- package/json-schema/system/ScopedStorageConfig.json +54 -0
- package/json-schema/system/StorageAdapterType.json +17 -0
- package/json-schema/system/StorageScope.json +18 -0
- package/json-schema/ui/Action.json +25 -4
- package/json-schema/ui/ActionParam.json +12 -2
- package/json-schema/ui/App.json +18 -7
- package/json-schema/ui/ChartType.json +9 -1
- package/json-schema/ui/Dashboard.json +9 -1
- package/json-schema/ui/DashboardNavItem.json +3 -1
- package/json-schema/ui/DashboardWidget.json +9 -1
- package/json-schema/ui/FieldWidgetProps.json +92 -4
- package/json-schema/ui/FormView.json +4 -1
- package/json-schema/ui/GroupNavItem.json +3 -1
- package/json-schema/ui/ListView.json +7 -1
- package/json-schema/ui/NavigationItem.json +15 -5
- package/json-schema/ui/ObjectNavItem.json +3 -1
- package/json-schema/ui/Page.json +36 -4
- package/json-schema/ui/PageCardProps.json +32 -0
- package/json-schema/ui/PageComponent.json +33 -3
- package/json-schema/ui/PageComponentType.json +32 -0
- package/json-schema/ui/PageHeaderProps.json +39 -0
- package/json-schema/ui/PageNavItem.json +3 -1
- package/json-schema/ui/PageRegion.json +33 -3
- package/json-schema/ui/PageTabsProps.json +55 -0
- package/json-schema/ui/RecordDetailsProps.json +37 -0
- package/json-schema/ui/RecordHighlightsProps.json +24 -0
- package/json-schema/ui/RecordRelatedListProps.json +39 -0
- package/json-schema/ui/UrlNavItem.json +3 -1
- package/json-schema/ui/View.json +22 -4
- package/json-schema/ui/WidgetEvent.json +42 -0
- package/json-schema/ui/WidgetLifecycle.json +40 -0
- package/json-schema/ui/WidgetManifest.json +262 -0
- package/json-schema/ui/WidgetProperty.json +58 -0
- package/llms.txt +182 -0
- package/package.json +38 -16
- package/prompts/README.md +18 -0
- package/prompts/architecture.md +81 -0
- package/prompts/create-new-project.md +85 -0
- package/prompts/implement-objectai.md +39 -0
- package/prompts/implement-objectos.md +48 -0
- package/prompts/implement-objectql.md +39 -0
- package/prompts/implement-objectui.md +46 -0
- package/prompts/instructions.md +91 -0
- package/dist/ai/workflow-automation.zod.d.ts.map +0 -1
- package/dist/data/flow.zod.d.ts.map +0 -1
- package/dist/data/permission.zod.d.ts.map +0 -1
- package/dist/data/sharing.zod.d.ts +0 -63
- package/dist/data/sharing.zod.d.ts.map +0 -1
- package/dist/data/sharing.zod.js +0 -57
- package/dist/data/trigger.zod.d.ts +0 -354
- package/dist/data/trigger.zod.d.ts.map +0 -1
- package/dist/data/trigger.zod.js +0 -195
- package/dist/data/workflow.zod.d.ts +0 -986
- package/dist/data/workflow.zod.d.ts.map +0 -1
- package/dist/system/api.zod.d.ts.map +0 -1
- package/dist/system/auth-protocol.d.ts.map +0 -1
- package/dist/system/auth.zod.d.ts.map +0 -1
- package/dist/system/discovery.zod.d.ts.map +0 -1
- package/dist/system/identity.zod.d.ts.map +0 -1
- package/dist/system/license.zod.d.ts.map +0 -1
- package/dist/system/organization.zod.d.ts.map +0 -1
- package/dist/system/policy.zod.d.ts.map +0 -1
- package/dist/system/realtime.zod.d.ts.map +0 -1
- package/dist/system/role.zod.d.ts.map +0 -1
- package/dist/system/tenant.zod.d.ts.map +0 -1
- package/dist/system/territory.zod.d.ts.map +0 -1
- package/dist/system/webhook.zod.d.ts.map +0 -1
- package/json-schema/README.md +0 -127
- package/json-schema/data/FieldMapping.json +0 -83
- package/json-schema/data/FilterNode.json +0 -52
- package/json-schema/data/FilterOperator.json +0 -26
- package/json-schema/data/Mapping.json +0 -598
- package/json-schema/data/SharingRule.json +0 -58
- package/json-schema/data/TransformType.json +0 -18
- package/json-schema/data/Trigger.json +0 -73
- package/json-schema/data/TriggerContext.json +0 -61
- /package/dist/{system → api}/realtime.zod.js +0 -0
- /package/dist/{system/auth.zod.js → auth/config.zod.js} +0 -0
- /package/dist/{system → auth}/identity.zod.js +0 -0
- /package/dist/{system → auth}/organization.zod.js +0 -0
- /package/dist/{system → auth}/policy.zod.js +0 -0
- /package/dist/{system/auth-protocol.js → auth/protocol.js} +0 -0
- /package/json-schema/{system → api}/ApiCapabilities.json +0 -0
- /package/json-schema/{system → api}/ApiMapping.json +0 -0
- /package/json-schema/{system → api}/Presence.json +0 -0
- /package/json-schema/{system → api}/PresenceStatus.json +0 -0
- /package/json-schema/{system → api}/RateLimit.json +0 -0
- /package/json-schema/{system → api}/RealtimeAction.json +0 -0
- /package/json-schema/{system → api}/RealtimeEvent.json +0 -0
- /package/json-schema/{system → api}/RealtimeEventType.json +0 -0
- /package/json-schema/{system → api}/Subscription.json +0 -0
- /package/json-schema/{system → api}/SubscriptionEvent.json +0 -0
- /package/json-schema/{system → api}/TransportProtocol.json +0 -0
- /package/json-schema/{system → auth}/Account.json +0 -0
- /package/json-schema/{system → auth}/AccountLinkingConfig.json +0 -0
- /package/json-schema/{system → auth}/AuditPolicy.json +0 -0
- /package/json-schema/{system → auth}/AuthConfig.json +0 -0
- /package/json-schema/{system → auth}/AuthPluginConfig.json +0 -0
- /package/json-schema/{system → auth}/AuthStrategy.json +0 -0
- /package/json-schema/{system → auth}/CSRFConfig.json +0 -0
- /package/json-schema/{system → auth}/DatabaseAdapter.json +0 -0
- /package/json-schema/{system → auth}/DatabaseMapping.json +0 -0
- /package/json-schema/{system → auth}/EmailPasswordConfig.json +0 -0
- /package/json-schema/{system → auth}/EnterpriseAuthConfig.json +0 -0
- /package/json-schema/{system → auth}/Invitation.json +0 -0
- /package/json-schema/{system → auth}/InvitationStatus.json +0 -0
- /package/json-schema/{system → auth}/LDAPConfig.json +0 -0
- /package/json-schema/{system → auth}/MagicLinkConfig.json +0 -0
- /package/json-schema/{system → auth}/Member.json +0 -0
- /package/json-schema/{system → auth}/NetworkPolicy.json +0 -0
- /package/json-schema/{system → auth}/OAuthProvider.json +0 -0
- /package/json-schema/{system → auth}/OIDCConfig.json +0 -0
- /package/json-schema/{system → auth}/Organization.json +0 -0
- /package/json-schema/{system → auth}/PasskeyConfig.json +0 -0
- /package/json-schema/{system → auth}/PasswordPolicy.json +0 -0
- /package/json-schema/{system → auth}/Policy.json +0 -0
- /package/json-schema/{system → auth}/RateLimitConfig.json +0 -0
- /package/json-schema/{system → auth}/SAMLConfig.json +0 -0
- /package/json-schema/{system → auth}/Session.json +0 -0
- /package/json-schema/{system → auth}/SessionConfig.json +0 -0
- /package/json-schema/{system → auth}/SessionPolicy.json +0 -0
- /package/json-schema/{system → auth}/StandardAuthProvider.json +0 -0
- /package/json-schema/{system → auth}/TwoFactorConfig.json +0 -0
- /package/json-schema/{system → auth}/User.json +0 -0
- /package/json-schema/{system → auth}/UserFieldMapping.json +0 -0
- /package/json-schema/{system → auth}/VerificationToken.json +0 -0
- /package/json-schema/{data → automation}/CustomScriptAction.json +0 -0
- /package/json-schema/{data → automation}/EmailAlertAction.json +0 -0
- /package/json-schema/{data → automation}/FieldUpdateAction.json +0 -0
- /package/json-schema/{data → automation}/FlowNode.json +0 -0
- /package/json-schema/{data → automation}/FlowNodeAction.json +0 -0
- /package/json-schema/{data → automation}/FlowVariable.json +0 -0
- /package/json-schema/{data → automation}/HttpCallAction.json +0 -0
- /package/json-schema/{data → automation}/PushNotificationAction.json +0 -0
- /package/json-schema/{data → automation}/SlackMessageAction.json +0 -0
- /package/json-schema/{data → automation}/SmsNotificationAction.json +0 -0
- /package/json-schema/{data → automation}/TaskCreationAction.json +0 -0
- /package/json-schema/{data → automation}/TeamsMessageAction.json +0 -0
- /package/json-schema/{data → automation}/WebhookTriggerAction.json +0 -0
- /package/json-schema/{system → automation}/WebhookTriggerType.json +0 -0
- /package/json-schema/{data → automation}/WorkflowAction.json +0 -0
- /package/json-schema/{data → automation}/WorkflowTriggerType.json +0 -0
- /package/json-schema/{system → hub}/DatabaseLevelIsolationStrategy.json +0 -0
- /package/json-schema/{system → hub}/Feature.json +0 -0
- /package/json-schema/{system → hub}/LevelIsolationStrategySchema.json +0 -0
- /package/json-schema/{system → hub}/MetricType.json +0 -0
- /package/json-schema/{system → hub}/Plan.json +0 -0
- /package/json-schema/{system → hub}/RowLevelIsolationStrategy.json +0 -0
- /package/json-schema/{system → hub}/TenantIsolationConfig.json +0 -0
- /package/json-schema/{system → hub}/TenantIsolationLevel.json +0 -0
- /package/json-schema/{system → hub}/TenantQuota.json +0 -0
- /package/json-schema/{system → hub}/TenantSecurityPolicy.json +0 -0
- /package/json-schema/{data → permission}/FieldPermission.json +0 -0
- /package/json-schema/{system → permission}/TerritoryModel.json +0 -0
- /package/json-schema/{system → permission}/TerritoryType.json +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.zod.d.ts","sourceRoot":"","sources":["../../src/automation/sync.zod.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Sync = exports.SyncExecutionResultSchema = exports.SyncExecutionStatusSchema = exports.DataSyncConfigSchema = exports.DataDestinationConfigSchema = exports.DataSourceConfigSchema = exports.FieldMappingSchema = exports.ConflictResolutionSchema = exports.SyncModeSchema = exports.SyncDirectionSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Data Sync Protocol
|
|
7
|
+
*
|
|
8
|
+
* Inspired by Salesforce Connect, Segment Sync, and Census Reverse ETL.
|
|
9
|
+
*
|
|
10
|
+
* Data sync provides bidirectional or unidirectional data synchronization
|
|
11
|
+
* between ObjectStack and external systems, maintaining data consistency
|
|
12
|
+
* across platforms.
|
|
13
|
+
*
|
|
14
|
+
* ## Use Cases
|
|
15
|
+
*
|
|
16
|
+
* 1. **CRM Integration**
|
|
17
|
+
* - Sync contacts between ObjectStack and Salesforce
|
|
18
|
+
* - Keep opportunity data synchronized
|
|
19
|
+
* - Bidirectional updates
|
|
20
|
+
*
|
|
21
|
+
* 2. **Customer Data Platform (CDP)**
|
|
22
|
+
* - Sync user profiles to Segment
|
|
23
|
+
* - Enrichment data from Clearbit
|
|
24
|
+
* - Marketing automation sync
|
|
25
|
+
*
|
|
26
|
+
* 3. **Operational Analytics**
|
|
27
|
+
* - Sync production data to analytics warehouse
|
|
28
|
+
* - Real-time dashboards
|
|
29
|
+
* - Business intelligence
|
|
30
|
+
*
|
|
31
|
+
* @see https://help.salesforce.com/s/articleView?id=sf.platform_connect_about.htm
|
|
32
|
+
* @see https://segment.com/docs/connections/sync/
|
|
33
|
+
* @see https://www.getcensus.com/
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const contactSync: DataSyncConfig = {
|
|
38
|
+
* name: 'salesforce_contact_sync',
|
|
39
|
+
* label: 'Salesforce Contact Sync',
|
|
40
|
+
* source: {
|
|
41
|
+
* object: 'contact',
|
|
42
|
+
* filters: { status: 'active' }
|
|
43
|
+
* },
|
|
44
|
+
* destination: {
|
|
45
|
+
* connector: 'salesforce',
|
|
46
|
+
* operation: 'upsert_contact',
|
|
47
|
+
* mapping: {
|
|
48
|
+
* first_name: 'FirstName',
|
|
49
|
+
* last_name: 'LastName',
|
|
50
|
+
* email: 'Email'
|
|
51
|
+
* }
|
|
52
|
+
* },
|
|
53
|
+
* syncMode: 'incremental',
|
|
54
|
+
* schedule: '0 * * * *' // Hourly
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
/**
|
|
59
|
+
* Sync Direction
|
|
60
|
+
*/
|
|
61
|
+
exports.SyncDirectionSchema = zod_1.z.enum([
|
|
62
|
+
'push', // ObjectStack -> External (one-way)
|
|
63
|
+
'pull', // External -> ObjectStack (one-way)
|
|
64
|
+
'bidirectional', // Both directions
|
|
65
|
+
]);
|
|
66
|
+
/**
|
|
67
|
+
* Sync Mode
|
|
68
|
+
*/
|
|
69
|
+
exports.SyncModeSchema = zod_1.z.enum([
|
|
70
|
+
'full', // Full refresh every time
|
|
71
|
+
'incremental', // Only sync changed records
|
|
72
|
+
'realtime', // Real-time streaming sync
|
|
73
|
+
]);
|
|
74
|
+
/**
|
|
75
|
+
* Conflict Resolution Strategy
|
|
76
|
+
*/
|
|
77
|
+
exports.ConflictResolutionSchema = zod_1.z.enum([
|
|
78
|
+
'source_wins', // Source system always wins
|
|
79
|
+
'destination_wins', // Destination system always wins
|
|
80
|
+
'latest_wins', // Most recently modified wins
|
|
81
|
+
'manual', // Flag for manual resolution
|
|
82
|
+
'merge', // Smart merge (custom logic)
|
|
83
|
+
]);
|
|
84
|
+
/**
|
|
85
|
+
* Field Mapping Schema
|
|
86
|
+
*
|
|
87
|
+
* Maps fields between source and destination systems.
|
|
88
|
+
*/
|
|
89
|
+
exports.FieldMappingSchema = zod_1.z.object({
|
|
90
|
+
/**
|
|
91
|
+
* Source field name
|
|
92
|
+
*/
|
|
93
|
+
sourceField: zod_1.z.string().describe('Source field name'),
|
|
94
|
+
/**
|
|
95
|
+
* Destination field name
|
|
96
|
+
*/
|
|
97
|
+
destinationField: zod_1.z.string().describe('Destination field name'),
|
|
98
|
+
/**
|
|
99
|
+
* Transformation formula
|
|
100
|
+
* JavaScript expression to transform the value
|
|
101
|
+
*
|
|
102
|
+
* @example "value.toUpperCase()"
|
|
103
|
+
* @example "new Date(value).toISOString()"
|
|
104
|
+
*/
|
|
105
|
+
transform: zod_1.z.string().optional().describe('Transformation formula'),
|
|
106
|
+
/**
|
|
107
|
+
* Default value if source is null/undefined
|
|
108
|
+
*/
|
|
109
|
+
default: zod_1.z.any().optional().describe('Default value'),
|
|
110
|
+
/**
|
|
111
|
+
* Whether to sync null values
|
|
112
|
+
*/
|
|
113
|
+
syncNull: zod_1.z.boolean().default(false).describe('Sync null values'),
|
|
114
|
+
});
|
|
115
|
+
/**
|
|
116
|
+
* Data Source Configuration
|
|
117
|
+
*/
|
|
118
|
+
exports.DataSourceConfigSchema = zod_1.z.object({
|
|
119
|
+
/**
|
|
120
|
+
* Source object name
|
|
121
|
+
* For ObjectStack objects
|
|
122
|
+
*/
|
|
123
|
+
object: zod_1.z.string().optional().describe('ObjectStack object name'),
|
|
124
|
+
/**
|
|
125
|
+
* Filter conditions
|
|
126
|
+
* Only sync records matching these filters
|
|
127
|
+
*/
|
|
128
|
+
filters: zod_1.z.any().optional().describe('Filter conditions'),
|
|
129
|
+
/**
|
|
130
|
+
* Fields to include
|
|
131
|
+
* If not specified, all fields are synced
|
|
132
|
+
*/
|
|
133
|
+
fields: zod_1.z.array(zod_1.z.string()).optional().describe('Fields to sync'),
|
|
134
|
+
/**
|
|
135
|
+
* External connector instance ID
|
|
136
|
+
* For external data sources
|
|
137
|
+
*/
|
|
138
|
+
connectorInstanceId: zod_1.z.string().optional().describe('Connector instance ID'),
|
|
139
|
+
/**
|
|
140
|
+
* External resource identifier
|
|
141
|
+
* e.g., Salesforce object name, database table, API endpoint
|
|
142
|
+
*/
|
|
143
|
+
externalResource: zod_1.z.string().optional().describe('External resource ID'),
|
|
144
|
+
});
|
|
145
|
+
/**
|
|
146
|
+
* Data Destination Configuration
|
|
147
|
+
*/
|
|
148
|
+
exports.DataDestinationConfigSchema = zod_1.z.object({
|
|
149
|
+
/**
|
|
150
|
+
* Destination object name
|
|
151
|
+
* For ObjectStack objects
|
|
152
|
+
*/
|
|
153
|
+
object: zod_1.z.string().optional().describe('ObjectStack object name'),
|
|
154
|
+
/**
|
|
155
|
+
* Connector instance ID
|
|
156
|
+
* For external destinations
|
|
157
|
+
*/
|
|
158
|
+
connectorInstanceId: zod_1.z.string().optional().describe('Connector instance ID'),
|
|
159
|
+
/**
|
|
160
|
+
* Operation to perform
|
|
161
|
+
*/
|
|
162
|
+
operation: zod_1.z.enum([
|
|
163
|
+
'insert', // Create new records only
|
|
164
|
+
'update', // Update existing records only
|
|
165
|
+
'upsert', // Insert or update based on key
|
|
166
|
+
'delete', // Delete records
|
|
167
|
+
'sync', // Full synchronization
|
|
168
|
+
]).describe('Sync operation'),
|
|
169
|
+
/**
|
|
170
|
+
* Field mappings
|
|
171
|
+
* Maps source fields to destination fields
|
|
172
|
+
*/
|
|
173
|
+
mapping: zod_1.z.union([
|
|
174
|
+
zod_1.z.record(zod_1.z.string()), // Simple mapping: { sourceField: 'destField' }
|
|
175
|
+
zod_1.z.array(exports.FieldMappingSchema), // Advanced mapping with transformations
|
|
176
|
+
]).optional().describe('Field mappings'),
|
|
177
|
+
/**
|
|
178
|
+
* External resource identifier
|
|
179
|
+
*/
|
|
180
|
+
externalResource: zod_1.z.string().optional().describe('External resource ID'),
|
|
181
|
+
/**
|
|
182
|
+
* Match key for upsert operations
|
|
183
|
+
* Fields to use for matching existing records
|
|
184
|
+
*/
|
|
185
|
+
matchKey: zod_1.z.array(zod_1.z.string()).optional().describe('Match key fields'),
|
|
186
|
+
});
|
|
187
|
+
/**
|
|
188
|
+
* Data Sync Configuration Schema
|
|
189
|
+
*
|
|
190
|
+
* Complete definition of a data synchronization between systems.
|
|
191
|
+
*/
|
|
192
|
+
exports.DataSyncConfigSchema = zod_1.z.object({
|
|
193
|
+
/**
|
|
194
|
+
* Sync configuration name (snake_case)
|
|
195
|
+
*/
|
|
196
|
+
name: zod_1.z.string()
|
|
197
|
+
.regex(/^[a-z_][a-z0-9_]*$/)
|
|
198
|
+
.describe('Sync configuration name (snake_case)'),
|
|
199
|
+
/**
|
|
200
|
+
* Human-readable label
|
|
201
|
+
*/
|
|
202
|
+
label: zod_1.z.string().optional().describe('Sync display name'),
|
|
203
|
+
/**
|
|
204
|
+
* Description
|
|
205
|
+
*/
|
|
206
|
+
description: zod_1.z.string().optional().describe('Sync description'),
|
|
207
|
+
/**
|
|
208
|
+
* Source configuration
|
|
209
|
+
*/
|
|
210
|
+
source: exports.DataSourceConfigSchema.describe('Data source'),
|
|
211
|
+
/**
|
|
212
|
+
* Destination configuration
|
|
213
|
+
*/
|
|
214
|
+
destination: exports.DataDestinationConfigSchema.describe('Data destination'),
|
|
215
|
+
/**
|
|
216
|
+
* Sync direction
|
|
217
|
+
*/
|
|
218
|
+
direction: exports.SyncDirectionSchema.default('push').describe('Sync direction'),
|
|
219
|
+
/**
|
|
220
|
+
* Sync mode
|
|
221
|
+
*/
|
|
222
|
+
syncMode: exports.SyncModeSchema.default('incremental').describe('Sync mode'),
|
|
223
|
+
/**
|
|
224
|
+
* Conflict resolution strategy
|
|
225
|
+
*/
|
|
226
|
+
conflictResolution: exports.ConflictResolutionSchema
|
|
227
|
+
.default('latest_wins')
|
|
228
|
+
.describe('Conflict resolution'),
|
|
229
|
+
/**
|
|
230
|
+
* Execution schedule (cron expression)
|
|
231
|
+
* For scheduled syncs
|
|
232
|
+
*
|
|
233
|
+
* @example "0 * * * *" - Hourly
|
|
234
|
+
* @example "*\/15 * * * *" - Every 15 minutes
|
|
235
|
+
*/
|
|
236
|
+
schedule: zod_1.z.string().optional().describe('Cron schedule'),
|
|
237
|
+
/**
|
|
238
|
+
* Whether sync is enabled
|
|
239
|
+
*/
|
|
240
|
+
enabled: zod_1.z.boolean().default(true).describe('Sync enabled'),
|
|
241
|
+
/**
|
|
242
|
+
* Change tracking field
|
|
243
|
+
* Field to track when records were last modified
|
|
244
|
+
* Used for incremental sync
|
|
245
|
+
*
|
|
246
|
+
* @example "updated_at", "modified_date"
|
|
247
|
+
*/
|
|
248
|
+
changeTrackingField: zod_1.z.string()
|
|
249
|
+
.optional()
|
|
250
|
+
.describe('Field for change tracking'),
|
|
251
|
+
/**
|
|
252
|
+
* Batch size
|
|
253
|
+
* Number of records to process per batch
|
|
254
|
+
*/
|
|
255
|
+
batchSize: zod_1.z.number().int().min(1).max(10000)
|
|
256
|
+
.default(100)
|
|
257
|
+
.describe('Batch size for processing'),
|
|
258
|
+
/**
|
|
259
|
+
* Retry configuration
|
|
260
|
+
*/
|
|
261
|
+
retry: zod_1.z.object({
|
|
262
|
+
maxAttempts: zod_1.z.number().int().min(0).default(3).describe('Max retries'),
|
|
263
|
+
backoffMs: zod_1.z.number().int().min(0).default(30000).describe('Backoff duration'),
|
|
264
|
+
}).optional().describe('Retry configuration'),
|
|
265
|
+
/**
|
|
266
|
+
* Pre-sync validation rules
|
|
267
|
+
*/
|
|
268
|
+
validation: zod_1.z.object({
|
|
269
|
+
required: zod_1.z.array(zod_1.z.string()).optional().describe('Required fields'),
|
|
270
|
+
unique: zod_1.z.array(zod_1.z.string()).optional().describe('Unique constraint fields'),
|
|
271
|
+
custom: zod_1.z.array(zod_1.z.object({
|
|
272
|
+
name: zod_1.z.string(),
|
|
273
|
+
condition: zod_1.z.string().describe('Validation condition'),
|
|
274
|
+
message: zod_1.z.string().describe('Error message'),
|
|
275
|
+
})).optional().describe('Custom validation rules'),
|
|
276
|
+
}).optional().describe('Validation rules'),
|
|
277
|
+
/**
|
|
278
|
+
* Error handling configuration
|
|
279
|
+
*/
|
|
280
|
+
errorHandling: zod_1.z.object({
|
|
281
|
+
onValidationError: zod_1.z.enum(['skip', 'fail', 'log']).default('skip'),
|
|
282
|
+
onSyncError: zod_1.z.enum(['skip', 'fail', 'retry']).default('retry'),
|
|
283
|
+
notifyOnError: zod_1.z.array(zod_1.z.string()).optional().describe('Email notifications'),
|
|
284
|
+
}).optional().describe('Error handling'),
|
|
285
|
+
/**
|
|
286
|
+
* Performance optimization
|
|
287
|
+
*/
|
|
288
|
+
optimization: zod_1.z.object({
|
|
289
|
+
parallelBatches: zod_1.z.boolean().default(false).describe('Process batches in parallel'),
|
|
290
|
+
cacheEnabled: zod_1.z.boolean().default(true).describe('Enable caching'),
|
|
291
|
+
compressionEnabled: zod_1.z.boolean().default(false).describe('Enable compression'),
|
|
292
|
+
}).optional().describe('Performance optimization'),
|
|
293
|
+
/**
|
|
294
|
+
* Audit and logging
|
|
295
|
+
*/
|
|
296
|
+
audit: zod_1.z.object({
|
|
297
|
+
logLevel: zod_1.z.enum(['none', 'error', 'warn', 'info', 'debug']).default('info'),
|
|
298
|
+
retainLogsForDays: zod_1.z.number().int().min(1).default(30),
|
|
299
|
+
trackChanges: zod_1.z.boolean().default(true).describe('Track all changes'),
|
|
300
|
+
}).optional().describe('Audit configuration'),
|
|
301
|
+
/**
|
|
302
|
+
* Tags for organization
|
|
303
|
+
*/
|
|
304
|
+
tags: zod_1.z.array(zod_1.z.string()).optional().describe('Sync tags'),
|
|
305
|
+
/**
|
|
306
|
+
* Custom metadata
|
|
307
|
+
*/
|
|
308
|
+
metadata: zod_1.z.record(zod_1.z.any()).optional().describe('Custom metadata'),
|
|
309
|
+
});
|
|
310
|
+
/**
|
|
311
|
+
* Sync Execution Status
|
|
312
|
+
*/
|
|
313
|
+
exports.SyncExecutionStatusSchema = zod_1.z.enum([
|
|
314
|
+
'pending', // Queued
|
|
315
|
+
'running', // Currently executing
|
|
316
|
+
'completed', // Successfully completed
|
|
317
|
+
'partial', // Completed with some errors
|
|
318
|
+
'failed', // Failed
|
|
319
|
+
'cancelled', // Manually cancelled
|
|
320
|
+
]);
|
|
321
|
+
/**
|
|
322
|
+
* Sync Execution Result Schema
|
|
323
|
+
*
|
|
324
|
+
* Result of a sync execution.
|
|
325
|
+
*/
|
|
326
|
+
exports.SyncExecutionResultSchema = zod_1.z.object({
|
|
327
|
+
/**
|
|
328
|
+
* Execution ID
|
|
329
|
+
*/
|
|
330
|
+
id: zod_1.z.string().describe('Execution ID'),
|
|
331
|
+
/**
|
|
332
|
+
* Sync configuration name
|
|
333
|
+
*/
|
|
334
|
+
syncName: zod_1.z.string().describe('Sync name'),
|
|
335
|
+
/**
|
|
336
|
+
* Execution status
|
|
337
|
+
*/
|
|
338
|
+
status: exports.SyncExecutionStatusSchema.describe('Execution status'),
|
|
339
|
+
/**
|
|
340
|
+
* Start timestamp
|
|
341
|
+
*/
|
|
342
|
+
startedAt: zod_1.z.string().datetime().describe('Start time'),
|
|
343
|
+
/**
|
|
344
|
+
* End timestamp
|
|
345
|
+
*/
|
|
346
|
+
completedAt: zod_1.z.string().datetime().optional().describe('Completion time'),
|
|
347
|
+
/**
|
|
348
|
+
* Duration in milliseconds
|
|
349
|
+
*/
|
|
350
|
+
durationMs: zod_1.z.number().optional().describe('Duration in ms'),
|
|
351
|
+
/**
|
|
352
|
+
* Statistics
|
|
353
|
+
*/
|
|
354
|
+
stats: zod_1.z.object({
|
|
355
|
+
recordsProcessed: zod_1.z.number().int().default(0).describe('Total records processed'),
|
|
356
|
+
recordsInserted: zod_1.z.number().int().default(0).describe('Records inserted'),
|
|
357
|
+
recordsUpdated: zod_1.z.number().int().default(0).describe('Records updated'),
|
|
358
|
+
recordsDeleted: zod_1.z.number().int().default(0).describe('Records deleted'),
|
|
359
|
+
recordsSkipped: zod_1.z.number().int().default(0).describe('Records skipped'),
|
|
360
|
+
recordsErrored: zod_1.z.number().int().default(0).describe('Records with errors'),
|
|
361
|
+
conflictsDetected: zod_1.z.number().int().default(0).describe('Conflicts detected'),
|
|
362
|
+
conflictsResolved: zod_1.z.number().int().default(0).describe('Conflicts resolved'),
|
|
363
|
+
}).optional().describe('Execution statistics'),
|
|
364
|
+
/**
|
|
365
|
+
* Errors encountered
|
|
366
|
+
*/
|
|
367
|
+
errors: zod_1.z.array(zod_1.z.object({
|
|
368
|
+
recordId: zod_1.z.string().optional().describe('Record ID'),
|
|
369
|
+
field: zod_1.z.string().optional().describe('Field name'),
|
|
370
|
+
message: zod_1.z.string().describe('Error message'),
|
|
371
|
+
code: zod_1.z.string().optional().describe('Error code'),
|
|
372
|
+
})).optional().describe('Errors'),
|
|
373
|
+
/**
|
|
374
|
+
* Execution logs
|
|
375
|
+
*/
|
|
376
|
+
logs: zod_1.z.array(zod_1.z.string()).optional().describe('Execution logs'),
|
|
377
|
+
});
|
|
378
|
+
/**
|
|
379
|
+
* Helper factory for creating sync configurations
|
|
380
|
+
*/
|
|
381
|
+
exports.Sync = {
|
|
382
|
+
/**
|
|
383
|
+
* Create a simple object-to-object sync
|
|
384
|
+
*/
|
|
385
|
+
objectSync: (params) => ({
|
|
386
|
+
name: params.name,
|
|
387
|
+
source: {
|
|
388
|
+
object: params.sourceObject,
|
|
389
|
+
},
|
|
390
|
+
destination: {
|
|
391
|
+
object: params.destObject,
|
|
392
|
+
operation: 'upsert',
|
|
393
|
+
mapping: params.mapping,
|
|
394
|
+
},
|
|
395
|
+
direction: 'push',
|
|
396
|
+
syncMode: 'incremental',
|
|
397
|
+
conflictResolution: 'latest_wins',
|
|
398
|
+
batchSize: 100,
|
|
399
|
+
schedule: params.schedule,
|
|
400
|
+
enabled: true,
|
|
401
|
+
}),
|
|
402
|
+
/**
|
|
403
|
+
* Create a connector sync
|
|
404
|
+
*/
|
|
405
|
+
connectorSync: (params) => ({
|
|
406
|
+
name: params.name,
|
|
407
|
+
source: {
|
|
408
|
+
object: params.sourceObject,
|
|
409
|
+
},
|
|
410
|
+
destination: {
|
|
411
|
+
connectorInstanceId: params.connectorInstanceId,
|
|
412
|
+
externalResource: params.externalResource,
|
|
413
|
+
operation: 'upsert',
|
|
414
|
+
mapping: params.mapping,
|
|
415
|
+
},
|
|
416
|
+
direction: 'push',
|
|
417
|
+
syncMode: 'incremental',
|
|
418
|
+
conflictResolution: 'latest_wins',
|
|
419
|
+
batchSize: 100,
|
|
420
|
+
schedule: params.schedule,
|
|
421
|
+
enabled: true,
|
|
422
|
+
}),
|
|
423
|
+
/**
|
|
424
|
+
* Create a bidirectional sync
|
|
425
|
+
*/
|
|
426
|
+
bidirectionalSync: (params) => ({
|
|
427
|
+
name: params.name,
|
|
428
|
+
source: {
|
|
429
|
+
object: params.object,
|
|
430
|
+
},
|
|
431
|
+
destination: {
|
|
432
|
+
connectorInstanceId: params.connectorInstanceId,
|
|
433
|
+
externalResource: params.externalResource,
|
|
434
|
+
operation: 'sync',
|
|
435
|
+
mapping: params.mapping,
|
|
436
|
+
},
|
|
437
|
+
direction: 'bidirectional',
|
|
438
|
+
syncMode: 'incremental',
|
|
439
|
+
conflictResolution: 'latest_wins',
|
|
440
|
+
batchSize: 100,
|
|
441
|
+
schedule: params.schedule,
|
|
442
|
+
enabled: true,
|
|
443
|
+
}),
|
|
444
|
+
};
|
|
@@ -6,7 +6,19 @@ import { z } from 'zod';
|
|
|
6
6
|
export declare const WebhookTriggerType: z.ZodEnum<["create", "update", "delete", "undelete", "api"]>;
|
|
7
7
|
/**
|
|
8
8
|
* Webhook Schema
|
|
9
|
-
*
|
|
9
|
+
* Outbound Integration: Push data to external URL when events happen.
|
|
10
|
+
*
|
|
11
|
+
* **NAMING CONVENTION:**
|
|
12
|
+
* Webhook names are machine identifiers and must be lowercase snake_case.
|
|
13
|
+
*
|
|
14
|
+
* @example Good webhook names
|
|
15
|
+
* - 'stripe_payment_sync'
|
|
16
|
+
* - 'slack_notification'
|
|
17
|
+
* - 'crm_lead_export'
|
|
18
|
+
*
|
|
19
|
+
* @example Bad webhook names (will be rejected)
|
|
20
|
+
* - 'StripePaymentSync' (PascalCase)
|
|
21
|
+
* - 'slackNotification' (camelCase)
|
|
10
22
|
*/
|
|
11
23
|
export declare const WebhookSchema: z.ZodObject<{
|
|
12
24
|
name: z.ZodString;
|
|
@@ -31,7 +43,7 @@ export declare const WebhookSchema: z.ZodObject<{
|
|
|
31
43
|
url: string;
|
|
32
44
|
name: string;
|
|
33
45
|
method: "GET" | "POST" | "PUT";
|
|
34
|
-
triggers: ("
|
|
46
|
+
triggers: ("update" | "delete" | "create" | "api" | "undelete")[];
|
|
35
47
|
includeSession: boolean;
|
|
36
48
|
retryCount: number;
|
|
37
49
|
isActive: boolean;
|
|
@@ -43,7 +55,7 @@ export declare const WebhookSchema: z.ZodObject<{
|
|
|
43
55
|
object: string;
|
|
44
56
|
url: string;
|
|
45
57
|
name: string;
|
|
46
|
-
triggers: ("
|
|
58
|
+
triggers: ("update" | "delete" | "create" | "api" | "undelete")[];
|
|
47
59
|
label?: string | undefined;
|
|
48
60
|
method?: "GET" | "POST" | "PUT" | undefined;
|
|
49
61
|
headers?: Record<string, string> | undefined;
|
|
@@ -56,6 +68,17 @@ export declare const WebhookSchema: z.ZodObject<{
|
|
|
56
68
|
/**
|
|
57
69
|
* Webhook Receiver Schema (Inbound)
|
|
58
70
|
* Handling incoming HTTP hooks from Stripe, Slack, etc.
|
|
71
|
+
*
|
|
72
|
+
* **NAMING CONVENTION:**
|
|
73
|
+
* Webhook receiver names are machine identifiers and must be lowercase snake_case.
|
|
74
|
+
*
|
|
75
|
+
* @example Good names
|
|
76
|
+
* - 'stripe_webhook_handler'
|
|
77
|
+
* - 'github_events'
|
|
78
|
+
* - 'twilio_status_callback'
|
|
79
|
+
*
|
|
80
|
+
* @example Bad names (will be rejected)
|
|
81
|
+
* - 'StripeWebhookHandler' (PascalCase)
|
|
59
82
|
*/
|
|
60
83
|
export declare const WebhookReceiverSchema: z.ZodObject<{
|
|
61
84
|
name: z.ZodString;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.zod.d.ts","sourceRoot":"","sources":["../../src/automation/webhook.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;GAGG;AACH,eAAO,MAAM,kBAAkB,8DAM7B,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa;;;IAIxB,YAAY;;;IAIZ,aAAa;;;IAIb,eAAe;;;IAIf,4BAA4B;;;IAI5B,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGlB,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB;;;IAIhC,mBAAmB;;;;;;;;;;;;;;;IAQnB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;EAGb,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WebhookReceiverSchema = exports.WebhookSchema = exports.WebhookTriggerType = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const identifiers_zod_1 = require("../shared/identifiers.zod");
|
|
5
6
|
/**
|
|
6
7
|
* Webhook Trigger Event
|
|
7
8
|
* When should this webhook fire?
|
|
@@ -15,10 +16,22 @@ exports.WebhookTriggerType = zod_1.z.enum([
|
|
|
15
16
|
]);
|
|
16
17
|
/**
|
|
17
18
|
* Webhook Schema
|
|
18
|
-
*
|
|
19
|
+
* Outbound Integration: Push data to external URL when events happen.
|
|
20
|
+
*
|
|
21
|
+
* **NAMING CONVENTION:**
|
|
22
|
+
* Webhook names are machine identifiers and must be lowercase snake_case.
|
|
23
|
+
*
|
|
24
|
+
* @example Good webhook names
|
|
25
|
+
* - 'stripe_payment_sync'
|
|
26
|
+
* - 'slack_notification'
|
|
27
|
+
* - 'crm_lead_export'
|
|
28
|
+
*
|
|
29
|
+
* @example Bad webhook names (will be rejected)
|
|
30
|
+
* - 'StripePaymentSync' (PascalCase)
|
|
31
|
+
* - 'slackNotification' (camelCase)
|
|
19
32
|
*/
|
|
20
33
|
exports.WebhookSchema = zod_1.z.object({
|
|
21
|
-
name:
|
|
34
|
+
name: identifiers_zod_1.SnakeCaseIdentifierSchema.describe('Webhook unique name (lowercase snake_case)'),
|
|
22
35
|
label: zod_1.z.string().optional(),
|
|
23
36
|
/** Scope */
|
|
24
37
|
object: zod_1.z.string().describe('Object to listen to'),
|
|
@@ -39,9 +52,20 @@ exports.WebhookSchema = zod_1.z.object({
|
|
|
39
52
|
/**
|
|
40
53
|
* Webhook Receiver Schema (Inbound)
|
|
41
54
|
* Handling incoming HTTP hooks from Stripe, Slack, etc.
|
|
55
|
+
*
|
|
56
|
+
* **NAMING CONVENTION:**
|
|
57
|
+
* Webhook receiver names are machine identifiers and must be lowercase snake_case.
|
|
58
|
+
*
|
|
59
|
+
* @example Good names
|
|
60
|
+
* - 'stripe_webhook_handler'
|
|
61
|
+
* - 'github_events'
|
|
62
|
+
* - 'twilio_status_callback'
|
|
63
|
+
*
|
|
64
|
+
* @example Bad names (will be rejected)
|
|
65
|
+
* - 'StripeWebhookHandler' (PascalCase)
|
|
42
66
|
*/
|
|
43
67
|
exports.WebhookReceiverSchema = zod_1.z.object({
|
|
44
|
-
name:
|
|
68
|
+
name: identifiers_zod_1.SnakeCaseIdentifierSchema.describe('Webhook receiver unique name (lowercase snake_case)'),
|
|
45
69
|
path: zod_1.z.string().describe('URL Path (e.g. /webhooks/stripe)'),
|
|
46
70
|
/** Verification */
|
|
47
71
|
verificationType: zod_1.z.enum(['none', 'header_token', 'hmac', 'ip_whitelist']).default('none'),
|