From 7386725769e7a53974d63411380476b127d103ae Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 1 Feb 2026 06:17:39 +0000 Subject: [PATCH 1/7] Initial plan From e17f0b5de1e530c06a2396f147f8470607581101 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 1 Feb 2026 06:26:38 +0000 Subject: [PATCH 2/7] Fix Zod v4 function schema API compatibility Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com> --- content/docs/references/ai/agent-action.mdx | 249 -- content/docs/references/ai/agent.mdx | 40 - content/docs/references/ai/conversation.mdx | 182 -- content/docs/references/ai/cost.mdx | 262 -- content/docs/references/ai/model-registry.mdx | 126 - content/docs/references/ai/nlq.mdx | 168 -- content/docs/references/ai/orchestration.mdx | 134 - content/docs/references/ai/predictive.mdx | 157 - content/docs/references/ai/rag-pipeline.mdx | 145 - content/docs/references/api/batch.mdx | 77 - content/docs/references/api/connector.mdx | 7 - content/docs/references/api/contract.mdx | 102 - content/docs/references/api/discovery.mdx | 31 - content/docs/references/api/endpoint.mdx | 34 - content/docs/references/api/errors.mdx | 103 - content/docs/references/api/graphql.mdx | 192 -- content/docs/references/api/http-cache.mdx | 70 - content/docs/references/api/odata.mdx | 93 - content/docs/references/api/protocol.mdx | 272 -- content/docs/references/api/realtime.mdx | 71 - content/docs/references/api/rest-server.mdx | 98 - content/docs/references/api/router.mdx | 33 - content/docs/references/api/view-storage.mdx | 133 - content/docs/references/api/view.mdx | 10 - content/docs/references/api/websocket.mdx | 289 -- content/docs/references/auth/config.mdx | 287 -- content/docs/references/auth/http.mdx | 10 - content/docs/references/auth/identity.mdx | 55 - content/docs/references/auth/organization.mdx | 44 - content/docs/references/auth/policy.mdx | 48 - content/docs/references/auth/role.mdx | 9 - content/docs/references/auth/scim.mdx | 157 - .../docs/references/automation/approval.mdx | 54 - .../docs/references/automation/connector.mdx | 64 - content/docs/references/automation/etl.mdx | 99 - content/docs/references/automation/flow.mdx | 63 - content/docs/references/automation/sync.mdx | 56 - .../automation/trigger-registry.mdx | 114 - .../docs/references/automation/webhook.mdx | 41 - .../docs/references/automation/workflow.mdx | 145 - content/docs/references/data/data-engine.mdx | 161 - content/docs/references/data/dataset.mdx | 18 - content/docs/references/data/document.mdx | 50 - content/docs/references/data/driver-nosql.mdx | 161 - content/docs/references/data/driver-sql.mdx | 45 - content/docs/references/data/driver.mdx | 74 - .../docs/references/data/external-lookup.mdx | 33 - content/docs/references/data/field.mdx | 208 -- content/docs/references/data/filter.mdx | 83 - content/docs/references/data/hook.mdx | 48 - content/docs/references/data/mapping.mdx | 34 - content/docs/references/data/object.mdx | 113 - content/docs/references/data/query.mdx | 118 - content/docs/references/data/validation.mdx | 152 - content/docs/references/hub/composer.mdx | 49 - content/docs/references/hub/license.mdx | 38 - content/docs/references/hub/marketplace.mdx | 40 - content/docs/references/hub/metrics.mdx | 6 - .../docs/references/hub/plugin-registry.mdx | 85 - content/docs/references/hub/space.mdx | 45 - content/docs/references/hub/tenant.mdx | 59 - .../docs/references/integration/connector.mdx | 157 - content/docs/references/integration/http.mdx | 11 - .../docs/references/integration/mapping.mdx | 12 - .../references/integration/message-queue.mdx | 32 - content/docs/references/integration/misc.mdx | 603 ---- .../references/integration/object-storage.mdx | 9 - .../docs/references/permission/permission.mdx | 34 - content/docs/references/permission/rls.mdx | 59 - .../docs/references/permission/sharing.mdx | 54 - .../docs/references/permission/territory.mdx | 31 - content/docs/references/shared/http.mdx | 26 - .../docs/references/shared/identifiers.mdx | 6 - content/docs/references/shared/mapping.mdx | 9 - content/docs/references/shared/view.mdx | 10 - content/docs/references/system/audit.mdx | 173 -- content/docs/references/system/cache.mdx | 39 - .../references/system/change-management.mdx | 63 - .../docs/references/system/collaboration.mdx | 270 -- content/docs/references/system/compliance.mdx | 49 - content/docs/references/system/context.mdx | 22 - content/docs/references/system/datasource.mdx | 43 - content/docs/references/system/encryption.mdx | 42 - content/docs/references/system/events.mdx | 176 -- content/docs/references/system/feature.mdx | 21 - .../docs/references/system/http-server.mdx | 86 - content/docs/references/system/job.mdx | 59 - content/docs/references/system/logging.mdx | 194 -- content/docs/references/system/manifest.mdx | 19 - content/docs/references/system/masking.mdx | 30 - .../docs/references/system/message-queue.mdx | 47 - .../references/system/metadata-loader.mdx | 132 - content/docs/references/system/metrics.mdx | 191 -- .../docs/references/system/notification.mdx | 65 - .../docs/references/system/object-storage.mdx | 198 -- .../references/system/plugin-capability.mdx | 94 - .../system/plugin-lifecycle-events.mdx | 120 - .../references/system/plugin-validator.mdx | 35 - content/docs/references/system/plugin.mdx | 29 - .../docs/references/system/search-engine.mdx | 47 - .../references/system/service-registry.mdx | 55 - .../system/startup-orchestrator.mdx | 38 - content/docs/references/system/tracing.mdx | 187 -- .../docs/references/system/translation.mdx | 10 - content/docs/references/ui/action.mdx | 29 - content/docs/references/ui/app.mdx | 84 - content/docs/references/ui/chart.mdx | 43 - content/docs/references/ui/component.mdx | 51 - content/docs/references/ui/dashboard.mdx | 24 - content/docs/references/ui/page.mdx | 56 - content/docs/references/ui/report.mdx | 52 - content/docs/references/ui/theme.mdx | 133 - content/docs/references/ui/view.mdx | 137 - content/docs/references/ui/widget.mdx | 70 - packages/spec/json-schema/ai/AIKnowledge.json | 25 +- .../spec/json-schema/ai/AIModelConfig.json | 36 +- .../spec/json-schema/ai/AIOperationCost.json | 74 +- .../spec/json-schema/ai/AIOrchestration.json | 374 +-- .../ai/AIOrchestrationExecutionResult.json | 132 +- .../ai/AIOrchestrationTrigger.json | 13 +- packages/spec/json-schema/ai/AITask.json | 118 +- packages/spec/json-schema/ai/AITaskType.json | 16 +- packages/spec/json-schema/ai/AITool.json | 28 +- packages/spec/json-schema/ai/Agent.json | 135 +- packages/spec/json-schema/ai/AgentAction.json | 431 +-- .../json-schema/ai/AgentActionResult.json | 64 +- .../json-schema/ai/AgentActionSequence.json | 487 +-- .../ai/AgentActionSequenceResult.json | 138 +- .../ai/BatchAIOrchestrationExecution.json | 43 +- .../spec/json-schema/ai/BillingPeriod.json | 13 +- packages/spec/json-schema/ai/BudgetLimit.json | 106 +- .../spec/json-schema/ai/BudgetStatus.json | 86 +- packages/spec/json-schema/ai/BudgetType.json | 12 +- .../json-schema/ai/CICDPipelineConfig.json | 131 +- .../spec/json-schema/ai/ChunkingStrategy.json | 128 +- .../json-schema/ai/CodeGenerationConfig.json | 60 +- .../json-schema/ai/CodeGenerationTarget.json | 14 +- .../json-schema/ai/ComponentActionParams.json | 72 +- .../json-schema/ai/ComponentActionType.json | 15 +- .../json-schema/ai/ConversationAnalytics.json | 81 +- .../json-schema/ai/ConversationContext.json | 43 +- .../json-schema/ai/ConversationMessage.json | 214 +- .../json-schema/ai/ConversationSession.json | 495 +-- .../json-schema/ai/ConversationSummary.json | 68 +- packages/spec/json-schema/ai/CostAlert.json | 102 +- .../spec/json-schema/ai/CostAlertType.json | 11 +- .../spec/json-schema/ai/CostAnalytics.json | 584 +--- .../ai/CostBreakdownDimension.json | 15 +- .../json-schema/ai/CostBreakdownEntry.json | 55 +- packages/spec/json-schema/ai/CostEntry.json | 101 +- .../spec/json-schema/ai/CostMetricType.json | 12 +- .../ai/CostOptimizationRecommendation.json | 95 +- .../spec/json-schema/ai/CostQueryFilters.json | 107 +- packages/spec/json-schema/ai/CostReport.json | 959 +----- .../spec/json-schema/ai/DataActionParams.json | 33 +- .../spec/json-schema/ai/DataActionType.json | 13 +- .../json-schema/ai/DeploymentStrategy.json | 47 +- packages/spec/json-schema/ai/DevOpsAgent.json | 797 +---- packages/spec/json-schema/ai/DevOpsTool.json | 33 +- .../json-schema/ai/DevelopmentConfig.json | 165 +- .../spec/json-schema/ai/DocumentChunk.json | 92 +- .../json-schema/ai/DocumentLoaderConfig.json | 64 +- .../spec/json-schema/ai/DocumentMetadata.json | 56 +- .../spec/json-schema/ai/EmbeddingModel.json | 52 +- packages/spec/json-schema/ai/Entity.json | 50 +- .../json-schema/ai/EvaluationMetrics.json | 59 +- .../json-schema/ai/FieldSynonymConfig.json | 34 +- .../spec/json-schema/ai/FormActionParams.json | 31 +- .../spec/json-schema/ai/FormActionType.json | 15 +- .../spec/json-schema/ai/FunctionCall.json | 23 +- .../json-schema/ai/GitHubIntegration.json | 66 +- .../spec/json-schema/ai/Hyperparameters.json | 75 +- .../json-schema/ai/IntegrationConfig.json | 146 +- .../json-schema/ai/IntentActionMapping.json | 486 +-- .../spec/json-schema/ai/MessageContent.json | 41 +- .../json-schema/ai/MessageContentType.json | 11 +- .../json-schema/ai/MessagePruningEvent.json | 87 +- packages/spec/json-schema/ai/MessageRole.json | 11 +- .../spec/json-schema/ai/ModelCapability.json | 42 +- packages/spec/json-schema/ai/ModelConfig.json | 176 +- packages/spec/json-schema/ai/ModelDrift.json | 68 +- .../spec/json-schema/ai/ModelFeature.json | 66 +- packages/spec/json-schema/ai/ModelLimits.json | 40 +- .../spec/json-schema/ai/ModelPricing.json | 23 +- .../spec/json-schema/ai/ModelProvider.json | 14 +- .../spec/json-schema/ai/ModelRegistry.json | 422 +-- .../json-schema/ai/ModelRegistryEntry.json | 234 +- .../ai/ModelSelectionCriteria.json | 45 +- .../spec/json-schema/ai/MonitoringConfig.json | 75 +- .../spec/json-schema/ai/NLQAnalytics.json | 101 +- .../spec/json-schema/ai/NLQFieldMapping.json | 35 +- .../spec/json-schema/ai/NLQModelConfig.json | 73 +- .../spec/json-schema/ai/NLQParseResult.json | 247 +- packages/spec/json-schema/ai/NLQRequest.json | 105 +- packages/spec/json-schema/ai/NLQResponse.json | 315 +- .../json-schema/ai/NLQTrainingExample.json | 115 +- .../ai/NavigationActionParams.json | 51 +- .../json-schema/ai/NavigationActionType.json | 16 +- .../spec/json-schema/ai/PipelineStage.json | 72 +- .../json-schema/ai/PostProcessingAction.json | 36 +- .../json-schema/ai/PredictionRequest.json | 34 +- .../spec/json-schema/ai/PredictionResult.json | 109 +- .../spec/json-schema/ai/PredictiveModel.json | 440 +-- .../json-schema/ai/PredictiveModelType.json | 13 +- .../spec/json-schema/ai/PromptTemplate.json | 158 +- .../spec/json-schema/ai/PromptVariable.json | 51 +- .../spec/json-schema/ai/QueryContext.json | 67 +- packages/spec/json-schema/ai/QueryIntent.json | 16 +- .../spec/json-schema/ai/QueryTemplate.json | 76 +- .../json-schema/ai/RAGPipelineConfig.json | 547 +--- .../json-schema/ai/RAGPipelineStatus.json | 61 +- .../spec/json-schema/ai/RAGQueryRequest.json | 59 +- .../spec/json-schema/ai/RAGQueryResponse.json | 136 +- .../spec/json-schema/ai/RerankingConfig.json | 29 +- .../json-schema/ai/RetrievalStrategy.json | 116 +- .../spec/json-schema/ai/TestingConfig.json | 52 +- packages/spec/json-schema/ai/Timeframe.json | 63 +- .../json-schema/ai/TokenBudgetConfig.json | 87 +- .../json-schema/ai/TokenBudgetStrategy.json | 11 +- packages/spec/json-schema/ai/TokenUsage.json | 27 +- .../spec/json-schema/ai/TokenUsageStats.json | 61 +- packages/spec/json-schema/ai/ToolCall.json | 44 +- .../spec/json-schema/ai/TrainingConfig.json | 83 +- .../spec/json-schema/ai/UIActionType.json | 58 +- .../json-schema/ai/VectorStoreConfig.json | 77 +- .../json-schema/ai/VectorStoreProvider.json | 16 +- .../json-schema/ai/VercelIntegration.json | 64 +- .../json-schema/ai/VersionManagement.json | 53 +- .../spec/json-schema/ai/ViewActionParams.json | 69 +- .../spec/json-schema/ai/ViewActionType.json | 16 +- .../json-schema/ai/WorkflowActionParams.json | 56 +- .../json-schema/ai/WorkflowActionType.json | 13 +- .../ai/WorkflowFieldCondition.json | 28 +- .../spec/json-schema/ai/WorkflowSchedule.json | 46 +- packages/spec/json-schema/api/AckMessage.json | 41 +- .../spec/json-schema/api/ApiCapabilities.json | 23 +- .../spec/json-schema/api/ApiEndpoint.json | 160 +- packages/spec/json-schema/api/ApiError.json | 22 +- packages/spec/json-schema/api/ApiMapping.json | 23 +- packages/spec/json-schema/api/ApiRoutes.json | 36 +- .../spec/json-schema/api/BaseResponse.json | 58 +- .../spec/json-schema/api/BatchConfig.json | 46 +- .../json-schema/api/BatchDataRequest.json | 88 +- .../json-schema/api/BatchDataResponse.json | 139 +- .../json-schema/api/BatchEndpointsConfig.json | 51 +- .../json-schema/api/BatchOperationResult.json | 52 +- .../json-schema/api/BatchOperationType.json | 10 +- .../spec/json-schema/api/BatchOptions.json | 27 +- .../spec/json-schema/api/BatchRecord.json | 20 +- .../json-schema/api/BatchUpdateRequest.json | 73 +- .../json-schema/api/BatchUpdateResponse.json | 139 +- .../spec/json-schema/api/BulkRequest.json | 24 +- .../spec/json-schema/api/BulkResponse.json | 103 +- .../spec/json-schema/api/CacheControl.json | 37 +- .../spec/json-schema/api/CacheDirective.json | 12 +- .../api/CacheInvalidationRequest.json | 38 +- .../api/CacheInvalidationResponse.json | 26 +- .../api/CacheInvalidationTarget.json | 12 +- .../json-schema/api/CreateDataRequest.json | 20 +- .../json-schema/api/CreateDataResponse.json | 25 +- .../api/CreateManyDataRequest.json | 23 +- .../api/CreateManyDataResponse.json | 28 +- .../spec/json-schema/api/CreateRequest.json | 15 +- .../json-schema/api/CreateViewRequest.json | 1037 +------ .../json-schema/api/CrudEndpointPattern.json | 36 +- .../json-schema/api/CrudEndpointsConfig.json | 101 +- .../spec/json-schema/api/CrudOperation.json | 11 +- .../spec/json-schema/api/CursorMessage.json | 134 +- .../spec/json-schema/api/CursorPosition.json | 107 +- .../json-schema/api/DeleteDataRequest.json | 19 +- .../json-schema/api/DeleteDataResponse.json | 24 +- .../api/DeleteManyDataRequest.json | 49 +- .../api/DeleteManyDataResponse.json | 139 +- .../json-schema/api/DeleteManyRequest.json | 46 +- .../spec/json-schema/api/DeleteResponse.json | 63 +- .../json-schema/api/DeleteViewRequest.json | 14 +- .../json-schema/api/DeleteViewResponse.json | 14 +- packages/spec/json-schema/api/Discovery.json | 109 +- .../spec/json-schema/api/DocumentState.json | 44 +- packages/spec/json-schema/api/ETag.json | 19 +- .../spec/json-schema/api/EditMessage.json | 130 +- .../spec/json-schema/api/EditOperation.json | 103 +- .../json-schema/api/EditOperationType.json | 9 +- .../json-schema/api/EndpointRegistry.json | 279 +- .../json-schema/api/EnhancedApiError.json | 221 +- .../spec/json-schema/api/ErrorCategory.json | 15 +- .../spec/json-schema/api/ErrorMessage.json | 39 +- .../spec/json-schema/api/ErrorResponse.json | 254 +- .../spec/json-schema/api/EventFilter.json | 60 +- .../json-schema/api/EventFilterCondition.json | 37 +- .../spec/json-schema/api/EventMessage.json | 50 +- .../spec/json-schema/api/EventPattern.json | 7 +- .../json-schema/api/EventSubscription.json | 100 +- .../spec/json-schema/api/ExportRequest.json | 855 +----- packages/spec/json-schema/api/FieldError.json | 83 +- .../spec/json-schema/api/FilterOperator.json | 19 +- .../spec/json-schema/api/FindDataRequest.json | 504 +--- .../json-schema/api/FindDataResponse.json | 31 +- .../json-schema/api/GeneratedEndpoint.json | 83 +- .../spec/json-schema/api/GetDataRequest.json | 19 +- .../spec/json-schema/api/GetDataResponse.json | 25 +- .../json-schema/api/GetDiscoveryRequest.json | 6 +- .../json-schema/api/GetDiscoveryResponse.json | 33 +- .../api/GetMetaItemCachedRequest.json | 72 +- .../api/GetMetaItemCachedResponse.json | 80 +- .../json-schema/api/GetMetaItemRequest.json | 19 +- .../json-schema/api/GetMetaItemResponse.json | 22 +- .../json-schema/api/GetMetaItemsRequest.json | 14 +- .../json-schema/api/GetMetaItemsResponse.json | 19 +- .../json-schema/api/GetMetaTypesRequest.json | 6 +- .../json-schema/api/GetMetaTypesResponse.json | 17 +- .../json-schema/api/GetUiViewRequest.json | 23 +- .../json-schema/api/GetUiViewResponse.json | 26 +- .../spec/json-schema/api/GetViewRequest.json | 14 +- .../spec/json-schema/api/GetViewResponse.json | 1098 +------ .../spec/json-schema/api/GraphQLConfig.json | 1384 +-------- .../api/GraphQLDataLoaderConfig.json | 96 +- .../api/GraphQLDirectiveConfig.json | 103 +- .../api/GraphQLDirectiveLocation.json | 25 +- .../api/GraphQLMutationConfig.json | 175 +- .../api/GraphQLPersistedQuery.json | 146 +- .../api/GraphQLQueryComplexity.json | 78 +- .../json-schema/api/GraphQLQueryConfig.json | 226 +- .../api/GraphQLQueryDepthLimit.json | 39 +- .../json-schema/api/GraphQLRateLimit.json | 133 +- .../api/GraphQLResolverConfig.json | 93 +- .../json-schema/api/GraphQLScalarType.json | 27 +- .../api/GraphQLSubscriptionConfig.json | 113 +- .../json-schema/api/GraphQLTypeConfig.json | 108 +- packages/spec/json-schema/api/HttpMethod.json | 13 +- .../json-schema/api/ListRecordResponse.json | 98 +- .../json-schema/api/ListViewsRequest.json | 53 +- .../json-schema/api/ListViewsResponse.json | 1127 +------ .../json-schema/api/MetadataCacheRequest.json | 53 +- .../api/MetadataCacheResponse.json | 80 +- .../api/MetadataEndpointsConfig.json | 49 +- .../json-schema/api/ModificationResult.json | 41 +- .../spec/json-schema/api/ODataConfig.json | 127 +- packages/spec/json-schema/api/ODataError.json | 60 +- .../json-schema/api/ODataFilterFunction.json | 34 +- .../json-schema/api/ODataFilterOperator.json | 19 +- .../spec/json-schema/api/ODataMetadata.json | 110 +- packages/spec/json-schema/api/ODataQuery.json | 84 +- .../spec/json-schema/api/ODataResponse.json | 32 +- .../json-schema/api/ObjectStackProtocol.json | 6 +- .../spec/json-schema/api/PingMessage.json | 26 +- .../spec/json-schema/api/PongMessage.json | 31 +- packages/spec/json-schema/api/Presence.json | 35 +- .../spec/json-schema/api/PresenceMessage.json | 87 +- .../spec/json-schema/api/PresenceState.json | 60 +- .../spec/json-schema/api/PresenceStatus.json | 9 +- .../spec/json-schema/api/PresenceUpdate.json | 30 +- packages/spec/json-schema/api/RateLimit.json | 22 +- .../spec/json-schema/api/RealtimeAction.json | 9 +- .../spec/json-schema/api/RealtimeConfig.json | 85 +- .../spec/json-schema/api/RealtimeEvent.json | 46 +- .../json-schema/api/RealtimeEventType.json | 10 +- packages/spec/json-schema/api/RecordData.json | 6 +- .../spec/json-schema/api/RestApiConfig.json | 122 +- .../json-schema/api/RestServerConfig.json | 396 +-- .../spec/json-schema/api/RetryStrategy.json | 10 +- .../spec/json-schema/api/RouteCategory.json | 12 +- .../spec/json-schema/api/RouteDefinition.json | 72 +- .../api/RouteGenerationConfig.json | 66 +- .../spec/json-schema/api/RouterConfig.json | 125 +- packages/spec/json-schema/api/SavedView.json | 1069 +------ .../json-schema/api/SimpleCursorPosition.json | 48 +- .../json-schema/api/SimplePresenceState.json | 39 +- .../json-schema/api/SingleRecordResponse.json | 64 +- .../json-schema/api/StandardErrorCode.json | 57 +- .../json-schema/api/SubscribeMessage.json | 127 +- .../spec/json-schema/api/Subscription.json | 60 +- .../json-schema/api/SubscriptionEvent.json | 27 +- .../json-schema/api/TransportProtocol.json | 9 +- .../json-schema/api/UnsubscribeMessage.json | 42 +- .../json-schema/api/UnsubscribeRequest.json | 15 +- .../json-schema/api/UpdateDataRequest.json | 25 +- .../json-schema/api/UpdateDataResponse.json | 25 +- .../api/UpdateManyDataRequest.json | 65 +- .../api/UpdateManyDataResponse.json | 139 +- .../json-schema/api/UpdateManyRequest.json | 62 +- .../spec/json-schema/api/UpdateRequest.json | 15 +- .../json-schema/api/UpdateViewRequest.json | 1036 +------ packages/spec/json-schema/api/ViewColumn.json | 53 +- packages/spec/json-schema/api/ViewLayout.json | 120 +- .../spec/json-schema/api/ViewResponse.json | 1098 +------ packages/spec/json-schema/api/ViewType.json | 14 +- .../spec/json-schema/api/ViewVisibility.json | 10 +- .../spec/json-schema/api/WebSocketConfig.json | 58 +- .../spec/json-schema/api/WebSocketEvent.json | 35 +- .../json-schema/api/WebSocketMessage.json | 702 +---- .../json-schema/api/WebSocketMessageType.json | 16 +- .../api/WebSocketPresenceStatus.json | 10 +- .../api/WebSocketServerConfig.json | 37 +- packages/spec/json-schema/auth/APIKey.json | 29 +- packages/spec/json-schema/auth/Account.json | 82 +- .../auth/AccountLinkingConfig.json | 22 +- .../auth/ApplicationAuthConfig.json | 836 +---- .../spec/json-schema/auth/AuditPolicy.json | 26 +- .../spec/json-schema/auth/AuthConfig.json | 264 +- .../json-schema/auth/AuthPluginConfig.json | 23 +- .../spec/json-schema/auth/AuthStrategy.json | 12 +- packages/spec/json-schema/auth/BasicAuth.json | 25 +- .../spec/json-schema/auth/BearerAuth.json | 20 +- .../spec/json-schema/auth/CSRFConfig.json | 26 +- .../json-schema/auth/DatabaseAdapter.json | 33 +- .../json-schema/auth/DatabaseMapping.json | 43 +- .../json-schema/auth/EmailPasswordConfig.json | 38 +- .../auth/EnterpriseAuthConfig.json | 167 +- .../spec/json-schema/auth/Invitation.json | 64 +- .../json-schema/auth/InvitationStatus.json | 10 +- packages/spec/json-schema/auth/JWTAuth.json | 61 +- .../spec/json-schema/auth/LDAPConfig.json | 51 +- .../json-schema/auth/MagicLinkConfig.json | 16 +- packages/spec/json-schema/auth/Member.json | 41 +- .../spec/json-schema/auth/NetworkPolicy.json | 26 +- packages/spec/json-schema/auth/NoAuth.json | 15 +- packages/spec/json-schema/auth/OAuth2.json | 57 +- .../spec/json-schema/auth/OAuthProvider.json | 61 +- .../spec/json-schema/auth/OIDCConfig.json | 56 +- .../spec/json-schema/auth/Organization.json | 47 +- .../spec/json-schema/auth/PasskeyConfig.json | 49 +- .../spec/json-schema/auth/PasswordPolicy.json | 36 +- packages/spec/json-schema/auth/Policy.json | 133 +- .../json-schema/auth/RateLimitConfig.json | 31 +- packages/spec/json-schema/auth/Role.json | 28 +- packages/spec/json-schema/auth/SAMLAuth.json | 59 +- .../spec/json-schema/auth/SAMLConfig.json | 53 +- .../spec/json-schema/auth/SCIMAddress.json | 45 +- packages/spec/json-schema/auth/SCIMEmail.json | 33 +- .../json-schema/auth/SCIMEnterpriseUser.json | 50 +- packages/spec/json-schema/auth/SCIMError.json | 47 +- packages/spec/json-schema/auth/SCIMGroup.json | 97 +- .../json-schema/auth/SCIMGroupReference.json | 31 +- .../json-schema/auth/SCIMListResponse.json | 601 +--- .../json-schema/auth/SCIMMemberReference.json | 31 +- packages/spec/json-schema/auth/SCIMMeta.json | 30 +- packages/spec/json-schema/auth/SCIMName.json | 31 +- .../json-schema/auth/SCIMPatchOperation.json | 26 +- .../json-schema/auth/SCIMPatchRequest.json | 51 +- .../json-schema/auth/SCIMPhoneNumber.json | 35 +- packages/spec/json-schema/auth/SCIMUser.json | 457 +-- packages/spec/json-schema/auth/Session.json | 58 +- .../spec/json-schema/auth/SessionConfig.json | 51 +- .../spec/json-schema/auth/SessionPolicy.json | 22 +- .../auth/StandardAuthProvider.json | 852 +----- .../json-schema/auth/TwoFactorConfig.json | 35 +- packages/spec/json-schema/auth/User.json | 46 +- .../json-schema/auth/UserFieldMapping.json | 42 +- .../json-schema/auth/VerificationToken.json | 31 +- .../automation/ApprovalAction.json | 30 +- .../automation/ApprovalActionType.json | 10 +- .../automation/ApprovalProcess.json | 321 +- .../json-schema/automation/ApprovalStep.json | 142 +- .../json-schema/automation/ApproverType.json | 11 +- .../json-schema/automation/AuthField.json | 68 +- .../automation/Authentication.json | 154 +- .../automation/AuthenticationType.json | 13 +- .../automation/ConflictResolution.json | 11 +- .../json-schema/automation/Connector.json | 435 +-- .../automation/ConnectorCategory.json | 21 +- .../automation/ConnectorInstance.json | 64 +- .../automation/ConnectorOperation.json | 112 +- .../automation/ConnectorTrigger.json | 49 +- .../automation/CustomScriptAction.json | 44 +- .../automation/DataDestinationConfig.json | 190 +- .../automation/DataSourceConfig.json | 29 +- .../automation/DataSyncConfig.json | 456 +-- .../automation/ETLDestination.json | 52 +- .../automation/ETLEndpointType.json | 14 +- .../json-schema/automation/ETLPipeline.json | 247 +- .../automation/ETLPipelineRun.json | 102 +- .../json-schema/automation/ETLRunStatus.json | 12 +- .../json-schema/automation/ETLSource.json | 55 +- .../json-schema/automation/ETLSyncMode.json | 9 +- .../automation/ETLTransformation.json | 41 +- .../automation/ETLTransformationType.json | 16 +- .../automation/EmailAlertAction.json | 32 +- .../automation/FieldUpdateAction.json | 27 +- .../spec/json-schema/automation/Flow.json | 211 +- .../spec/json-schema/automation/FlowEdge.json | 41 +- .../spec/json-schema/automation/FlowNode.json | 60 +- .../automation/FlowNodeAction.json | 19 +- .../json-schema/automation/FlowVariable.json | 29 +- .../automation/HttpCallAction.json | 76 +- .../json-schema/automation/OAuth2Config.json | 38 +- .../automation/OperationParameter.json | 54 +- .../json-schema/automation/OperationType.json | 12 +- .../automation/PushNotificationAction.json | 54 +- .../automation/SlackMessageAction.json | 40 +- .../automation/SmsNotificationAction.json | 45 +- .../json-schema/automation/SyncDirection.json | 9 +- .../automation/SyncExecutionResult.json | 130 +- .../automation/SyncExecutionStatus.json | 12 +- .../spec/json-schema/automation/SyncMode.json | 9 +- .../automation/TaskCreationAction.json | 54 +- .../automation/TeamsMessageAction.json | 40 +- .../json-schema/automation/TimeTrigger.json | 649 +--- .../spec/json-schema/automation/Webhook.json | 168 +- .../automation/WebhookReceiver.json | 63 +- .../automation/WebhookTriggerAction.json | 188 +- .../automation/WebhookTriggerType.json | 11 +- .../automation/WorkflowAction.json | 595 +--- .../json-schema/automation/WorkflowRule.json | 1297 +------- .../automation/WorkflowTriggerType.json | 11 +- packages/spec/json-schema/data/Address.json | 35 +- .../json-schema/data/AggregationFunction.json | 14 +- .../json-schema/data/AggregationNode.json | 60 +- .../json-schema/data/AggregationPipeline.json | 94 +- .../json-schema/data/AggregationStage.json | 20 +- packages/spec/json-schema/data/ApiMethod.json | 20 +- .../json-schema/data/AsyncValidation.json | 112 +- packages/spec/json-schema/data/CDCConfig.json | 32 +- .../json-schema/data/ComparisonOperator.json | 103 +- .../json-schema/data/ComputedFieldCache.json | 28 +- .../data/ConditionalValidation.json | 1435 +-------- .../json-schema/data/ConsistencyLevel.json | 12 +- .../data/CrossFieldValidation.json | 82 +- .../spec/json-schema/data/CurrencyConfig.json | 30 +- .../spec/json-schema/data/CurrencyValue.json | 21 +- .../json-schema/data/CustomValidator.json | 79 +- .../data/DataEngineAggregateOptions.json | 75 +- .../data/DataEngineAggregateRequest.json | 93 +- .../data/DataEngineBatchRequest.json | 694 +---- .../json-schema/data/DataEngineContract.json | 7 +- .../data/DataEngineCountOptions.json | 39 +- .../data/DataEngineCountRequest.json | 56 +- .../data/DataEngineDeleteOptions.json | 43 +- .../data/DataEngineDeleteRequest.json | 63 +- .../data/DataEngineExecuteRequest.json | 19 +- .../json-schema/data/DataEngineFilter.json | 32 +- .../data/DataEngineFindOneRequest.json | 128 +- .../data/DataEngineFindRequest.json | 128 +- .../data/DataEngineInsertOptions.json | 12 +- .../data/DataEngineInsertRequest.json | 45 +- .../data/DataEngineQueryOptions.json | 111 +- .../json-schema/data/DataEngineRequest.json | 1367 +-------- .../spec/json-schema/data/DataEngineSort.json | 49 +- .../data/DataEngineUpdateOptions.json | 51 +- .../data/DataEngineUpdateRequest.json | 76 +- .../data/DataEngineVectorFindRequest.json | 69 +- .../json-schema/data/DataQualityRules.json | 40 +- .../json-schema/data/DataTypeMapping.json | 46 +- packages/spec/json-schema/data/Dataset.json | 58 +- .../spec/json-schema/data/DatasetMode.json | 11 +- packages/spec/json-schema/data/Document.json | 287 +- .../json-schema/data/DocumentTemplate.json | 73 +- .../data/DocumentValidationSchema.json | 34 +- .../json-schema/data/DocumentVersion.json | 45 +- .../json-schema/data/DriverCapabilities.json | 175 +- .../spec/json-schema/data/DriverConfig.json | 238 +- .../json-schema/data/DriverInterface.json | 194 +- .../spec/json-schema/data/DriverOptions.json | 29 +- .../json-schema/data/ESignatureConfig.json | 69 +- .../json-schema/data/EqualityOperator.json | 9 +- .../json-schema/data/ExternalDataSource.json | 63 +- .../data/ExternalFieldMapping.json | 146 +- .../spec/json-schema/data/ExternalLookup.json | 322 +- packages/spec/json-schema/data/Field.json | 856 +----- .../spec/json-schema/data/FieldMapping.json | 78 +- packages/spec/json-schema/data/FieldNode.json | 27 +- .../spec/json-schema/data/FieldOperators.json | 181 +- .../spec/json-schema/data/FieldReference.json | 14 +- packages/spec/json-schema/data/FieldType.json | 50 +- .../data/FileAttachmentConfig.json | 214 +- .../json-schema/data/FilterCondition.json | 23 +- .../json-schema/data/FormatValidation.json | 85 +- .../spec/json-schema/data/FullTextSearch.json | 55 +- packages/spec/json-schema/data/Hook.json | 90 +- .../spec/json-schema/data/HookContext.json | 83 +- packages/spec/json-schema/data/HookEvent.json | 24 +- packages/spec/json-schema/data/Index.json | 42 +- .../spec/json-schema/data/JSONValidation.json | 80 +- packages/spec/json-schema/data/JoinNode.json | 489 +-- .../spec/json-schema/data/JoinStrategy.json | 10 +- packages/spec/json-schema/data/JoinType.json | 10 +- .../json-schema/data/LocationCoordinates.json | 31 +- packages/spec/json-schema/data/Mapping.json | 634 +--- .../data/NoSQLDataTypeMapping.json | 58 +- .../json-schema/data/NoSQLDatabaseType.json | 14 +- .../json-schema/data/NoSQLDriverConfig.json | 447 +-- .../spec/json-schema/data/NoSQLIndex.json | 82 +- .../spec/json-schema/data/NoSQLIndexType.json | 14 +- .../json-schema/data/NoSQLOperationType.json | 17 +- .../json-schema/data/NoSQLQueryOptions.json | 56 +- .../data/NoSQLTransactionOptions.json | 42 +- .../json-schema/data/NormalizedFilter.json | 577 +--- packages/spec/json-schema/data/Object.json | 2683 +---------------- .../json-schema/data/ObjectCapabilities.json | 75 +- .../json-schema/data/PartitioningConfig.json | 33 +- .../spec/json-schema/data/PoolConfig.json | 31 +- packages/spec/json-schema/data/Query.json | 490 +-- .../spec/json-schema/data/QueryFilter.json | 29 +- .../spec/json-schema/data/RangeOperator.json | 62 +- .../json-schema/data/ReplicationConfig.json | 41 +- .../spec/json-schema/data/SQLDialect.json | 12 +- .../json-schema/data/SQLDriverConfig.json | 320 +- packages/spec/json-schema/data/SSLConfig.json | 24 +- .../json-schema/data/ScriptValidation.json | 74 +- .../spec/json-schema/data/SearchConfig.json | 31 +- .../spec/json-schema/data/SelectOption.json | 29 +- .../spec/json-schema/data/SetOperator.json | 13 +- .../spec/json-schema/data/ShardingConfig.json | 30 +- .../json-schema/data/SoftDeleteConfig.json | 24 +- packages/spec/json-schema/data/SortNode.json | 21 +- .../json-schema/data/SpecialOperator.json | 13 +- .../data/StateMachineValidation.json | 85 +- .../spec/json-schema/data/StringOperator.json | 16 +- .../spec/json-schema/data/TenancyConfig.json | 34 +- .../spec/json-schema/data/TransformType.json | 13 +- .../data/UniquenessValidation.json | 85 +- .../spec/json-schema/data/ValidationRule.json | 1436 +-------- .../spec/json-schema/data/VectorConfig.json | 46 +- .../json-schema/data/VersioningConfig.json | 34 +- .../spec/json-schema/data/WindowFunction.json | 19 +- .../json-schema/data/WindowFunctionNode.json | 99 +- .../spec/json-schema/data/WindowSpec.json | 60 +- .../spec/json-schema/hub/BillOfMaterials.json | 65 +- .../spec/json-schema/hub/ComposerRequest.json | 81 +- .../json-schema/hub/ComposerResponse.json | 886 +----- .../spec/json-schema/hub/ConflictReport.json | 48 +- .../hub/DatabaseLevelIsolationStrategy.json | 134 +- .../hub/DependencyRequirement.json | 31 +- .../json-schema/hub/DeploymentTarget.json | 33 +- packages/spec/json-schema/hub/Feature.json | 46 +- packages/spec/json-schema/hub/HubSpace.json | 274 +- .../hub/LevelIsolationStrategySchema.json | 88 +- packages/spec/json-schema/hub/License.json | 60 +- .../json-schema/hub/MarketplacePlugin.json | 136 +- packages/spec/json-schema/hub/MetricType.json | 9 +- packages/spec/json-schema/hub/Plan.json | 48 +- .../spec/json-schema/hub/PluginAuthor.json | 21 +- .../json-schema/hub/PluginInstallConfig.json | 48 +- .../spec/json-schema/hub/PluginPricing.json | 38 +- .../json-schema/hub/PluginQualityMetrics.json | 96 +- .../json-schema/hub/PluginRegistryEntry.json | 828 +---- .../json-schema/hub/PluginSearchFilters.json | 86 +- .../json-schema/hub/PluginStatistics.json | 79 +- .../spec/json-schema/hub/PluginVendor.json | 42 +- .../hub/RowLevelIsolationStrategy.json | 69 +- .../json-schema/hub/SpaceSubscription.json | 72 +- .../json-schema/hub/SubscriptionStatus.json | 11 +- packages/spec/json-schema/hub/Tenant.json | 54 +- .../hub/TenantIsolationConfig.json | 293 +- .../json-schema/hub/TenantIsolationLevel.json | 9 +- .../spec/json-schema/hub/TenantQuota.json | 22 +- .../json-schema/hub/TenantSecurityPolicy.json | 110 +- .../spec/json-schema/integration/AckMode.json | 10 +- .../integration/ApiVersionConfig.json | 27 +- .../integration/Authentication.json | 264 +- .../json-schema/integration/BuildConfig.json | 34 +- .../json-schema/integration/CdcConfig.json | 50 +- .../integration/ConflictResolution.json | 11 +- .../json-schema/integration/Connector.json | 914 +----- .../integration/ConnectorStatus.json | 11 +- .../integration/ConnectorType.json | 13 +- .../integration/ConsumerConfig.json | 62 +- .../integration/DataSyncConfig.json | 74 +- .../integration/DatabaseConnector.json | 1367 +-------- .../integration/DatabasePoolConfig.json | 48 +- .../integration/DatabaseProvider.json | 19 +- .../integration/DatabaseTable.json | 211 +- .../integration/DeliveryGuarantee.json | 10 +- .../integration/DeploymentConfig.json | 72 +- .../json-schema/integration/DlqConfig.json | 32 +- .../json-schema/integration/DomainConfig.json | 46 +- .../integration/EdgeFunctionConfig.json | 40 +- .../integration/EnvironmentVariables.json | 41 +- .../json-schema/integration/FieldMapping.json | 165 +- .../integration/FieldTransform.json | 31 +- .../integration/FileAccessPattern.json | 12 +- .../integration/FileFilterConfig.json | 45 +- .../integration/FileMetadataConfig.json | 36 +- .../integration/FileStorageConnector.json | 1235 +------- .../integration/FileStorageProvider.json | 18 +- .../integration/FileVersioningConfig.json | 23 +- .../integration/GitHubActionsWorkflow.json | 53 +- .../integration/GitHubCommitConfig.json | 30 +- .../integration/GitHubConnector.json | 1242 +------- .../integration/GitHubIssueTracking.json | 56 +- .../integration/GitHubProvider.json | 9 +- .../integration/GitHubPullRequestConfig.json | 46 +- .../integration/GitHubReleaseConfig.json | 35 +- .../integration/GitHubRepository.json | 69 +- .../integration/GitRepositoryConfig.json | 39 +- .../integration/MessageFormat.json | 13 +- .../integration/MessageQueueConnector.json | 1320 +------- .../integration/MessageQueueProvider.json | 20 +- .../integration/MultipartUploadConfig.json | 31 +- .../integration/ProducerConfig.json | 67 +- .../integration/RateLimitConfig.json | 64 +- .../integration/RateLimitStrategy.json | 11 +- .../json-schema/integration/RetryConfig.json | 68 +- .../integration/RetryStrategy.json | 11 +- .../integration/SaasConnector.json | 1262 +------- .../integration/SaasObjectType.json | 213 +- .../json-schema/integration/SaasProvider.json | 19 +- .../json-schema/integration/SslConfig.json | 29 +- .../integration/StorageBucket.json | 94 +- .../json-schema/integration/SyncStrategy.json | 11 +- .../json-schema/integration/TopicQueue.json | 247 +- .../integration/VercelConnector.json | 1339 +------- .../integration/VercelFramework.json | 19 +- .../integration/VercelMonitoring.json | 59 +- .../integration/VercelProject.json | 317 +- .../integration/VercelProvider.json | 8 +- .../json-schema/integration/VercelTeam.json | 15 +- .../integration/WebhookConfig.json | 196 +- .../json-schema/integration/WebhookEvent.json | 15 +- .../WebhookSignatureAlgorithm.json | 10 +- .../permission/CriteriaSharingRule.json | 77 +- .../permission/FieldPermission.json | 17 +- .../spec/json-schema/permission/OWDModel.json | 10 +- .../permission/ObjectPermission.json | 52 +- .../permission/OwnerSharingRule.json | 97 +- .../json-schema/permission/PermissionSet.json | 188 +- .../json-schema/permission/RLSConfig.json | 54 +- .../permission/RLSEvaluationResult.json | 35 +- .../json-schema/permission/RLSOperation.json | 11 +- .../permission/RLSUserContext.json | 46 +- .../permission/RowLevelSecurityPolicy.json | 72 +- .../permission/ShareRecipientType.json | 11 +- .../json-schema/permission/SharingLevel.json | 9 +- .../json-schema/permission/SharingRule.json | 177 +- .../permission/SharingRuleType.json | 8 +- .../json-schema/permission/Territory.json | 74 +- .../permission/TerritoryModel.json | 29 +- .../json-schema/permission/TerritoryType.json | 10 +- .../spec/json-schema/shared/CorsConfig.json | 52 +- .../spec/json-schema/shared/EventName.json | 7 +- .../spec/json-schema/shared/FieldMapping.json | 137 +- .../spec/json-schema/shared/HttpMethod.json | 13 +- .../json-schema/shared/RateLimitConfig.json | 22 +- .../shared/SnakeCaseIdentifier.json | 7 +- .../spec/json-schema/shared/StaticMount.json | 23 +- .../json-schema/shared/SystemIdentifier.json | 7 +- .../json-schema/shared/TransformType.json | 115 +- .../system/AccessControlConfig.json | 101 +- .../json-schema/system/AnalyzerConfig.json | 36 +- .../spec/json-schema/system/AuditConfig.json | 582 +--- .../spec/json-schema/system/AuditEvent.json | 227 +- .../json-schema/system/AuditEventActor.json | 43 +- .../json-schema/system/AuditEventChange.json | 20 +- .../json-schema/system/AuditEventFilter.json | 122 +- .../system/AuditEventSeverity.json | 14 +- .../json-schema/system/AuditEventTarget.json | 28 +- .../json-schema/system/AuditEventType.json | 48 +- .../json-schema/system/AuditLogConfig.json | 43 +- .../system/AuditRetentionPolicy.json | 68 +- .../system/AuditStorageConfig.json | 55 +- .../json-schema/system/AwarenessEvent.json | 46 +- .../json-schema/system/AwarenessSession.json | 112 +- .../json-schema/system/AwarenessUpdate.json | 30 +- .../system/AwarenessUserState.json | 72 +- .../json-schema/system/BatchProgress.json | 67 +- .../spec/json-schema/system/BatchTask.json | 58 +- .../spec/json-schema/system/BucketConfig.json | 327 +- .../json-schema/system/CRDTMergeResult.json | 290 +- .../spec/json-schema/system/CRDTState.json | 253 +- .../spec/json-schema/system/CRDTType.json | 15 +- .../spec/json-schema/system/CacheConfig.json | 116 +- .../json-schema/system/CacheInvalidation.json | 38 +- .../json-schema/system/CacheStrategy.json | 11 +- .../spec/json-schema/system/CacheTier.json | 47 +- .../system/CapabilityConformanceLevel.json | 11 +- .../spec/json-schema/system/ChangeImpact.json | 50 +- .../json-schema/system/ChangePriority.json | 10 +- .../json-schema/system/ChangeRequest.json | 308 +- .../spec/json-schema/system/ChangeStatus.json | 16 +- .../spec/json-schema/system/ChangeType.json | 10 +- .../json-schema/system/CollaborationMode.json | 10 +- .../system/CollaborationSession.json | 570 +--- .../system/CollaborationSessionConfig.json | 81 +- .../system/CollaborativeCursor.json | 184 +- .../json-schema/system/ComplianceConfig.json | 197 +- .../system/ConsoleDestinationConfig.json | 24 +- .../json-schema/system/ConsumerConfig.json | 29 +- .../json-schema/system/CounterOperation.json | 25 +- .../spec/json-schema/system/CronSchedule.json | 24 +- .../json-schema/system/CursorColorPreset.json | 16 +- .../json-schema/system/CursorSelection.json | 61 +- .../spec/json-schema/system/CursorStyle.json | 54 +- .../spec/json-schema/system/CursorUpdate.json | 96 +- .../spec/json-schema/system/Datasource.json | 125 +- .../system/DatasourceCapabilities.json | 51 +- .../json-schema/system/DeadLetterQueue.json | 21 +- .../system/DeadLetterQueueEntry.json | 132 +- .../json-schema/system/DriverDefinition.json | 81 +- .../spec/json-schema/system/DriverType.json | 5 +- .../json-schema/system/EmailTemplate.json | 64 +- .../system/EncryptionAlgorithm.json | 9 +- .../json-schema/system/EncryptionConfig.json | 88 +- packages/spec/json-schema/system/Event.json | 72 +- .../json-schema/system/EventBusConfig.json | 547 +--- .../spec/json-schema/system/EventHandler.json | 58 +- .../json-schema/system/EventLogEntry.json | 148 +- .../system/EventMessageQueueConfig.json | 74 +- .../json-schema/system/EventMetadata.json | 48 +- .../json-schema/system/EventPersistence.json | 31 +- .../spec/json-schema/system/EventPhase.json | 10 +- .../json-schema/system/EventPriority.json | 11 +- .../json-schema/system/EventQueueConfig.json | 62 +- .../json-schema/system/EventReplayConfig.json | 45 +- .../spec/json-schema/system/EventRoute.json | 22 +- .../system/EventSourcingConfig.json | 60 +- .../system/EventTypeDefinition.json | 40 +- .../system/EventWebhookConfig.json | 114 +- .../json-schema/system/ExtendedLogLevel.json | 13 +- .../json-schema/system/ExtensionPoint.json | 62 +- .../ExternalServiceDestinationConfig.json | 46 +- .../spec/json-schema/system/FacetConfig.json | 25 +- .../spec/json-schema/system/FeatureFlag.json | 82 +- .../json-schema/system/FeatureStrategy.json | 11 +- .../json-schema/system/FieldEncryption.json | 105 +- .../system/FileDestinationConfig.json | 51 +- .../spec/json-schema/system/FileMetadata.json | 45 +- .../spec/json-schema/system/GCounter.json | 23 +- .../spec/json-schema/system/GDPRConfig.json | 66 +- .../spec/json-schema/system/HIPAAConfig.json | 40 +- .../spec/json-schema/system/HealthStatus.json | 28 +- .../system/HistogramBucketConfig.json | 87 +- .../system/HookRegisteredEvent.json | 25 +- .../system/HookTriggeredEvent.json | 29 +- .../system/HttpDestinationConfig.json | 106 +- .../json-schema/system/HttpServerConfig.json | 151 +- .../json-schema/system/InAppNotification.json | 43 +- .../json-schema/system/IntervalSchedule.json | 20 +- packages/spec/json-schema/system/Job.json | 122 +- .../spec/json-schema/system/JobExecution.json | 44 +- .../system/JobExecutionStatus.json | 10 +- .../json-schema/system/KernelContext.json | 57 +- .../json-schema/system/KernelEventBase.json | 14 +- .../json-schema/system/KernelReadyEvent.json | 24 +- .../system/KernelShutdownEvent.json | 18 +- .../system/KeyManagementProvider.json | 11 +- .../json-schema/system/KeyRotationPolicy.json | 24 +- .../spec/json-schema/system/LWWRegister.json | 46 +- .../json-schema/system/LifecycleAction.json | 10 +- .../system/LifecyclePolicyConfig.json | 79 +- .../system/LifecyclePolicyRule.json | 63 +- packages/spec/json-schema/system/Locale.json | 5 +- .../json-schema/system/LogDestination.json | 290 +- .../system/LogDestinationType.json | 21 +- .../system/LogEnrichmentConfig.json | 54 +- .../spec/json-schema/system/LogEntry.json | 58 +- .../spec/json-schema/system/LogFormat.json | 10 +- .../spec/json-schema/system/LogLevel.json | 12 +- .../spec/json-schema/system/LoggerConfig.json | 69 +- .../json-schema/system/LoggingConfig.json | 608 +--- .../spec/json-schema/system/Manifest.json | 798 +---- .../json-schema/system/MaskingConfig.json | 72 +- .../spec/json-schema/system/MaskingRule.json | 52 +- .../json-schema/system/MaskingStrategy.json | 13 +- .../system/MessageQueueConfig.json | 138 +- .../system/MessageQueueProvider.json | 12 +- .../system/MetadataCollectionInfo.json | 48 +- .../system/MetadataExportOptions.json | 44 +- .../json-schema/system/MetadataFormat.json | 10 +- .../system/MetadataImportOptions.json | 37 +- .../system/MetadataLoadOptions.json | 47 +- .../system/MetadataLoadResult.json | 81 +- .../system/MetadataLoaderContract.json | 43 +- .../system/MetadataManagerConfig.json | 103 +- .../system/MetadataSaveOptions.json | 59 +- .../system/MetadataSaveResult.json | 37 +- .../json-schema/system/MetadataStats.json | 46 +- .../system/MetadataWatchEvent.json | 43 +- .../system/MetricAggregationConfig.json | 64 +- .../system/MetricAggregationType.json | 20 +- .../json-schema/system/MetricDataPoint.json | 130 +- .../json-schema/system/MetricDefinition.json | 188 +- .../system/MetricExportConfig.json | 88 +- .../spec/json-schema/system/MetricLabels.json | 8 +- .../spec/json-schema/system/MetricType.json | 11 +- .../spec/json-schema/system/MetricUnit.json | 27 +- .../json-schema/system/MetricsConfig.json | 713 +---- .../json-schema/system/MiddlewareConfig.json | 65 +- .../json-schema/system/MiddlewareType.json | 13 +- .../system/MultipartUploadConfig.json | 44 +- .../system/NotificationChannel.json | 13 +- .../system/NotificationConfig.json | 338 +-- packages/spec/json-schema/system/ORSet.json | 52 +- .../spec/json-schema/system/ORSetElement.json | 34 +- .../spec/json-schema/system/OTComponent.json | 71 +- .../spec/json-schema/system/OTOperation.json | 123 +- .../json-schema/system/OTOperationType.json | 9 +- .../json-schema/system/OTTransformResult.json | 145 +- .../json-schema/system/ObjectMetadata.json | 85 +- .../system/ObjectStorageConfig.json | 470 +-- .../spec/json-schema/system/OnceSchedule.json | 20 +- .../system/OpenTelemetryCompatibility.json | 191 +- .../json-schema/system/OtelExporterType.json | 17 +- .../spec/json-schema/system/PCIDSSConfig.json | 42 +- .../spec/json-schema/system/PNCounter.json | 32 +- packages/spec/json-schema/system/Plugin.json | 27 +- .../json-schema/system/PluginCapability.json | 122 +- .../system/PluginCapabilityManifest.json | 405 +-- .../json-schema/system/PluginContext.json | 77 +- .../json-schema/system/PluginDependency.json | 34 +- .../json-schema/system/PluginErrorEvent.json | 41 +- .../json-schema/system/PluginEventBase.json | 19 +- .../json-schema/system/PluginInterface.json | 136 +- .../json-schema/system/PluginLifecycle.json | 6 +- .../system/PluginLifecycleEventType.json | 26 +- .../system/PluginLifecyclePhaseEvent.json | 33 +- .../json-schema/system/PluginMetadata.json | 32 +- .../system/PluginRegisteredEvent.json | 23 +- .../system/PluginStartupResult.json | 68 +- .../system/PresignedUrlConfig.json | 44 +- .../json-schema/system/ProtocolFeature.json | 29 +- .../json-schema/system/ProtocolReference.json | 51 +- .../json-schema/system/ProtocolVersion.json | 25 +- .../json-schema/system/PushNotification.json | 55 +- .../spec/json-schema/system/QueueConfig.json | 128 +- .../system/RealTimeNotificationConfig.json | 80 +- .../spec/json-schema/system/RetryPolicy.json | 25 +- .../spec/json-schema/system/RollbackPlan.json | 46 +- .../system/RouteHandlerMetadata.json | 80 +- .../spec/json-schema/system/RuntimeMode.json | 11 +- .../spec/json-schema/system/SMSTemplate.json | 31 +- .../json-schema/system/SamplingDecision.json | 10 +- .../system/SamplingStrategyType.json | 15 +- .../spec/json-schema/system/Schedule.json | 66 +- .../spec/json-schema/system/ScopeConfig.json | 23 +- .../spec/json-schema/system/ScopeInfo.json | 34 +- .../spec/json-schema/system/SearchConfig.json | 190 +- .../json-schema/system/SearchIndexConfig.json | 73 +- .../json-schema/system/SearchProvider.json | 11 +- .../system/ServerCapabilities.json | 58 +- .../spec/json-schema/system/ServerEvent.json | 34 +- .../json-schema/system/ServerEventType.json | 13 +- .../spec/json-schema/system/ServerStatus.json | 88 +- .../system/ServiceFactoryRegistration.json | 39 +- .../system/ServiceLevelIndicator.json | 100 +- .../system/ServiceLevelObjective.json | 165 +- .../json-schema/system/ServiceMetadata.json | 38 +- .../system/ServiceRegisteredEvent.json | 23 +- .../system/ServiceRegistryConfig.json | 34 +- .../json-schema/system/ServiceScopeType.json | 10 +- .../system/ServiceUnregisteredEvent.json | 19 +- packages/spec/json-schema/system/Span.json | 382 +-- .../system/SpanAttributeValue.json | 33 +- .../json-schema/system/SpanAttributes.json | 37 +- .../spec/json-schema/system/SpanEvent.json | 57 +- .../spec/json-schema/system/SpanKind.json | 12 +- .../spec/json-schema/system/SpanLink.json | 105 +- .../spec/json-schema/system/SpanStatus.json | 10 +- .../json-schema/system/StartupOptions.json | 31 +- .../system/StartupOrchestrationResult.json | 99 +- .../spec/json-schema/system/StorageAcl.json | 13 +- .../spec/json-schema/system/StorageClass.json | 12 +- .../json-schema/system/StorageConnection.json | 57 +- .../json-schema/system/StorageProvider.json | 16 +- .../spec/json-schema/system/StorageScope.json | 17 +- .../system/StructuredLogEntry.json | 186 +- .../system/SuspiciousActivityRule.json | 170 +- packages/spec/json-schema/system/Task.json | 140 +- .../system/TaskExecutionResult.json | 80 +- .../spec/json-schema/system/TaskPriority.json | 11 +- .../json-schema/system/TaskRetryPolicy.json | 41 +- .../spec/json-schema/system/TaskStatus.json | 14 +- .../json-schema/system/TextCRDTOperation.json | 47 +- .../json-schema/system/TextCRDTState.json | 100 +- .../spec/json-schema/system/TimeSeries.json | 64 +- .../system/TimeSeriesDataPoint.json | 28 +- .../spec/json-schema/system/TopicConfig.json | 34 +- .../spec/json-schema/system/TraceContext.json | 59 +- .../system/TraceContextPropagation.json | 74 +- .../spec/json-schema/system/TraceFlags.json | 7 +- .../system/TracePropagationFormat.json | 14 +- .../system/TraceSamplingConfig.json | 181 +- .../spec/json-schema/system/TraceState.json | 18 +- .../json-schema/system/TracingConfig.json | 531 +--- .../json-schema/system/TranslationBundle.json | 73 +- .../json-schema/system/TranslationData.json | 70 +- .../system/UserActivityStatus.json | 10 +- .../json-schema/system/ValidationError.json | 23 +- .../json-schema/system/ValidationResult.json | 66 +- .../json-schema/system/ValidationWarning.json | 23 +- .../spec/json-schema/system/VectorClock.json | 18 +- .../spec/json-schema/system/WorkerConfig.json | 183 +- .../spec/json-schema/system/WorkerStats.json | 85 +- packages/spec/json-schema/ui/Action.json | 181 +- packages/spec/json-schema/ui/ActionParam.json | 90 +- packages/spec/json-schema/ui/Animation.json | 51 +- packages/spec/json-schema/ui/App.json | 303 +- packages/spec/json-schema/ui/AppBranding.json | 19 +- .../spec/json-schema/ui/BorderRadius.json | 39 +- packages/spec/json-schema/ui/Breakpoints.json | 31 +- .../spec/json-schema/ui/CalendarConfig.json | 23 +- packages/spec/json-schema/ui/ChartConfig.json | 69 +- packages/spec/json-schema/ui/ChartType.json | 35 +- .../spec/json-schema/ui/ColorPalette.json | 78 +- packages/spec/json-schema/ui/Dashboard.json | 222 +- .../spec/json-schema/ui/DashboardNavItem.json | 39 +- .../spec/json-schema/ui/DashboardWidget.json | 194 +- .../spec/json-schema/ui/FieldWidgetProps.json | 893 +----- packages/spec/json-schema/ui/FormField.json | 56 +- packages/spec/json-schema/ui/FormSection.json | 96 +- packages/spec/json-schema/ui/FormView.json | 352 +-- packages/spec/json-schema/ui/GanttConfig.json | 27 +- .../spec/json-schema/ui/GroupNavItem.json | 39 +- packages/spec/json-schema/ui/HttpMethod.json | 11 +- packages/spec/json-schema/ui/HttpRequest.json | 41 +- .../spec/json-schema/ui/KanbanConfig.json | 26 +- packages/spec/json-schema/ui/ListColumn.json | 52 +- packages/spec/json-schema/ui/ListView.json | 399 +-- .../spec/json-schema/ui/NavigationItem.json | 219 +- .../spec/json-schema/ui/ObjectNavItem.json | 43 +- packages/spec/json-schema/ui/Page.json | 144 +- .../spec/json-schema/ui/PageCardProps.json | 27 +- .../spec/json-schema/ui/PageComponent.json | 61 +- .../json-schema/ui/PageComponentType.json | 27 +- .../spec/json-schema/ui/PageHeaderProps.json | 34 +- packages/spec/json-schema/ui/PageNavItem.json | 44 +- packages/spec/json-schema/ui/PageRegion.json | 88 +- .../spec/json-schema/ui/PageTabsProps.json | 50 +- .../spec/json-schema/ui/PaginationConfig.json | 21 +- .../json-schema/ui/RecordDetailsProps.json | 32 +- .../json-schema/ui/RecordHighlightsProps.json | 19 +- .../ui/RecordRelatedListProps.json | 34 +- packages/spec/json-schema/ui/Report.json | 251 +- packages/spec/json-schema/ui/ReportChart.json | 83 +- .../spec/json-schema/ui/ReportColumn.json | 30 +- .../spec/json-schema/ui/ReportGrouping.json | 33 +- packages/spec/json-schema/ui/ReportType.json | 10 +- .../spec/json-schema/ui/SelectionConfig.json | 17 +- packages/spec/json-schema/ui/Shadow.json | 39 +- packages/spec/json-schema/ui/Spacing.json | 59 +- packages/spec/json-schema/ui/Theme.json | 538 +--- packages/spec/json-schema/ui/ThemeMode.json | 9 +- packages/spec/json-schema/ui/Typography.json | 137 +- packages/spec/json-schema/ui/UrlNavItem.json | 48 +- packages/spec/json-schema/ui/View.json | 1513 +--------- packages/spec/json-schema/ui/ViewData.json | 137 +- packages/spec/json-schema/ui/WidgetEvent.json | 37 +- .../spec/json-schema/ui/WidgetLifecycle.json | 35 +- .../spec/json-schema/ui/WidgetManifest.json | 257 +- .../spec/json-schema/ui/WidgetProperty.json | 53 +- packages/spec/json-schema/ui/ZIndex.json | 39 +- packages/spec/src/api/protocol.zod.ts | 192 +- packages/spec/src/auth/config.zod.ts | 58 +- packages/spec/src/data/data-engine.zod.ts | 49 +- packages/spec/src/data/driver.zod.ts | 188 +- packages/spec/src/system/events.zod.ts | 8 +- packages/spec/src/system/job.zod.ts | 2 +- packages/spec/src/system/plugin.zod.ts | 74 +- packages/spec/src/system/worker.zod.ts | 10 +- packages/spec/src/ui/widget.zod.ts | 8 +- 1049 files changed, 1228 insertions(+), 115740 deletions(-) diff --git a/content/docs/references/ai/agent-action.mdx b/content/docs/references/ai/agent-action.mdx index 05a2eb0e6..4977ded2a 100644 --- a/content/docs/references/ai/agent-action.mdx +++ b/content/docs/references/ai/agent-action.mdx @@ -23,320 +23,71 @@ const result = AgentActionSchema.parse(data); ## AgentAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Unique action ID | -| **type** | `Enum<'navigate_to_object_list' \| 'navigate_to_object_form' \| 'navigate_to_record_detail' \| 'navigate_to_dashboard' \| 'navigate_to_report' \| 'navigate_to_app' \| 'navigate_back' \| 'navigate_home' \| 'open_tab' \| 'close_tab' \| 'change_view_mode' \| 'apply_filter' \| 'clear_filter' \| 'apply_sort' \| 'change_grouping' \| 'show_columns' \| 'expand_record' \| 'collapse_record' \| 'refresh_view' \| 'export_data' \| 'create_record' \| 'update_record' \| 'delete_record' \| 'fill_field' \| 'clear_field' \| 'submit_form' \| 'cancel_form' \| 'validate_form' \| 'save_draft' \| 'select_record' \| 'deselect_record' \| 'select_all' \| 'deselect_all' \| 'bulk_update' \| 'bulk_delete' \| 'bulk_export' \| 'trigger_flow' \| 'trigger_approval' \| 'trigger_webhook' \| 'run_report' \| 'send_email' \| 'send_notification' \| 'schedule_task' \| 'open_modal' \| 'close_modal' \| 'open_sidebar' \| 'close_sidebar' \| 'show_notification' \| 'hide_notification' \| 'open_dropdown' \| 'close_dropdown' \| 'toggle_section'>` | ✅ | Type of UI action to perform | -| **params** | `object \| object \| object \| object \| object \| object` | ✅ | Action-specific parameters | -| **requireConfirmation** | `boolean` | optional | Require user confirmation before executing | -| **confirmationMessage** | `string` | optional | Message to show in confirmation dialog | -| **successMessage** | `string` | optional | Message to show on success | -| **onError** | `Enum<'retry' \| 'skip' \| 'abort'>` | optional | Error handling strategy | -| **metadata** | `object` | optional | | - --- ## AgentActionResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **actionId** | `string` | ✅ | ID of the executed action | -| **status** | `Enum<'success' \| 'error' \| 'cancelled' \| 'pending'>` | ✅ | Execution status | -| **data** | `any` | optional | Action result data | -| **error** | `object` | optional | Error details if status is "error" | -| **metadata** | `object` | optional | | - --- ## AgentActionSequence -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Unique sequence ID | -| **actions** | `object[]` | ✅ | Ordered list of actions | -| **mode** | `Enum<'sequential' \| 'parallel'>` | optional | Execution mode | -| **stopOnError** | `boolean` | optional | Stop sequence on first error | -| **atomic** | `boolean` | optional | Rollback all changes if any action fails | -| **metadata** | `object` | optional | | - --- ## AgentActionSequenceResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **sequenceId** | `string` | ✅ | ID of the executed sequence | -| **status** | `Enum<'success' \| 'partial_success' \| 'error' \| 'cancelled'>` | ✅ | Overall execution status | -| **results** | `object[]` | ✅ | Results for each action | -| **summary** | `object` | ✅ | | -| **metadata** | `object` | optional | | - --- ## ComponentActionParams -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **componentId** | `string` | optional | Component ID | -| **modalConfig** | `object` | optional | | -| **notificationConfig** | `object` | optional | | -| **sidebarConfig** | `object` | optional | | - --- ## ComponentActionType -### Allowed Values - -* `open_modal` -* `close_modal` -* `open_sidebar` -* `close_sidebar` -* `show_notification` -* `hide_notification` -* `open_dropdown` -* `close_dropdown` -* `toggle_section` - --- ## DataActionParams -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **recordIds** | `string[]` | optional | Record IDs to select/operate on | -| **filters** | `Record` | optional | Filter for bulk operations | -| **updateData** | `Record` | optional | Data for bulk update | -| **exportFormat** | `Enum<'csv' \| 'xlsx' \| 'pdf' \| 'json'>` | optional | | - --- ## DataActionType -### Allowed Values - -* `select_record` -* `deselect_record` -* `select_all` -* `deselect_all` -* `bulk_update` -* `bulk_delete` -* `bulk_export` - --- ## FormActionParams -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | optional | Object name | -| **recordId** | `string` | optional | Record ID (for edit/delete) | -| **fieldValues** | `Record` | optional | Field name-value pairs | -| **fieldName** | `string` | optional | Specific field to fill/clear | -| **fieldValue** | `any` | optional | Value to set | -| **validateOnly** | `boolean` | optional | Validate without saving | - --- ## FormActionType -### Allowed Values - -* `create_record` -* `update_record` -* `delete_record` -* `fill_field` -* `clear_field` -* `submit_form` -* `cancel_form` -* `validate_form` -* `save_draft` - --- ## IntentActionMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **intent** | `string` | ✅ | Intent pattern (e.g., "open_new_record_form") | -| **examples** | `string[]` | optional | Example user queries | -| **actionTemplate** | `object` | ✅ | Action to execute | -| **paramExtraction** | `Record` | optional | Rules for extracting parameters from user input | -| **minConfidence** | `number` | optional | Minimum confidence to execute | - --- ## NavigationActionParams -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | optional | Object name (for object-specific navigation) | -| **recordId** | `string` | optional | Record ID (for detail page) | -| **viewType** | `Enum<'list' \| 'form' \| 'detail' \| 'kanban' \| 'calendar' \| 'gantt'>` | optional | | -| **dashboardId** | `string` | optional | Dashboard ID | -| **reportId** | `string` | optional | Report ID | -| **appName** | `string` | optional | App name | -| **mode** | `Enum<'new' \| 'edit' \| 'view'>` | optional | Form mode | -| **openInNewTab** | `boolean` | optional | Open in new tab | - --- ## NavigationActionType -### Allowed Values - -* `navigate_to_object_list` -* `navigate_to_object_form` -* `navigate_to_record_detail` -* `navigate_to_dashboard` -* `navigate_to_report` -* `navigate_to_app` -* `navigate_back` -* `navigate_home` -* `open_tab` -* `close_tab` - --- ## UIActionType -### Allowed Values - -* `navigate_to_object_list` -* `navigate_to_object_form` -* `navigate_to_record_detail` -* `navigate_to_dashboard` -* `navigate_to_report` -* `navigate_to_app` -* `navigate_back` -* `navigate_home` -* `open_tab` -* `close_tab` -* `change_view_mode` -* `apply_filter` -* `clear_filter` -* `apply_sort` -* `change_grouping` -* `show_columns` -* `expand_record` -* `collapse_record` -* `refresh_view` -* `export_data` -* `create_record` -* `update_record` -* `delete_record` -* `fill_field` -* `clear_field` -* `submit_form` -* `cancel_form` -* `validate_form` -* `save_draft` -* `select_record` -* `deselect_record` -* `select_all` -* `deselect_all` -* `bulk_update` -* `bulk_delete` -* `bulk_export` -* `trigger_flow` -* `trigger_approval` -* `trigger_webhook` -* `run_report` -* `send_email` -* `send_notification` -* `schedule_task` -* `open_modal` -* `close_modal` -* `open_sidebar` -* `close_sidebar` -* `show_notification` -* `hide_notification` -* `open_dropdown` -* `close_dropdown` -* `toggle_section` - --- ## ViewActionParams -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **viewMode** | `Enum<'list' \| 'kanban' \| 'calendar' \| 'gantt' \| 'pivot'>` | optional | | -| **filters** | `Record` | optional | Filter conditions | -| **sort** | `object[]` | optional | | -| **groupBy** | `string` | optional | Field to group by | -| **columns** | `string[]` | optional | Columns to show/hide | -| **recordId** | `string` | optional | Record to expand/collapse | -| **exportFormat** | `Enum<'csv' \| 'xlsx' \| 'pdf' \| 'json'>` | optional | | - --- ## ViewActionType -### Allowed Values - -* `change_view_mode` -* `apply_filter` -* `clear_filter` -* `apply_sort` -* `change_grouping` -* `show_columns` -* `expand_record` -* `collapse_record` -* `refresh_view` -* `export_data` - --- ## WorkflowActionParams -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **flowName** | `string` | optional | Flow/workflow name | -| **approvalProcessName** | `string` | optional | Approval process name | -| **webhookUrl** | `string` | optional | Webhook URL | -| **reportName** | `string` | optional | Report name | -| **emailTemplate** | `string` | optional | Email template | -| **recipients** | `string[]` | optional | Email recipients | -| **subject** | `string` | optional | Email subject | -| **message** | `string` | optional | Notification/email message | -| **taskData** | `Record` | optional | Task creation data | -| **scheduleTime** | `string` | optional | Schedule time (ISO 8601) | -| **contextData** | `Record` | optional | Additional context data | - --- ## WorkflowActionType -### Allowed Values - -* `trigger_flow` -* `trigger_approval` -* `trigger_webhook` -* `run_report` -* `send_email` -* `send_notification` -* `schedule_task` - diff --git a/content/docs/references/ai/agent.mdx b/content/docs/references/ai/agent.mdx index 619aa6aa2..24ed8867e 100644 --- a/content/docs/references/ai/agent.mdx +++ b/content/docs/references/ai/agent.mdx @@ -23,55 +23,15 @@ const result = AIKnowledgeSchema.parse(data); ## AIKnowledge -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **topics** | `string[]` | ✅ | Topics/Tags to recruit knowledge from | -| **indexes** | `string[]` | ✅ | Vector Store Indexes | - --- ## AIModelConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **provider** | `Enum<'openai' \| 'azure_openai' \| 'anthropic' \| 'local'>` | optional | | -| **model** | `string` | ✅ | Model name (e.g. gpt-4, claude-3-opus) | -| **temperature** | `number` | optional | | -| **maxTokens** | `number` | optional | | -| **topP** | `number` | optional | | - --- ## AITool -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'action' \| 'flow' \| 'query' \| 'vector_search'>` | ✅ | | -| **name** | `string` | ✅ | Reference name (Action Name, Flow Name) | -| **description** | `string` | optional | Override description for the LLM | - --- ## Agent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Agent unique identifier | -| **label** | `string` | ✅ | Agent display name | -| **avatar** | `string` | optional | | -| **role** | `string` | ✅ | The persona/role (e.g. "Senior Support Engineer") | -| **instructions** | `string` | ✅ | System Prompt / Prime Directives | -| **model** | `object` | optional | | -| **tools** | `object[]` | optional | Available tools | -| **knowledge** | `object` | optional | RAG access | -| **active** | `boolean` | optional | | -| **access** | `string[]` | optional | Who can chat with this agent | - diff --git a/content/docs/references/ai/conversation.mdx b/content/docs/references/ai/conversation.mdx index 6b0437987..93df902ee 100644 --- a/content/docs/references/ai/conversation.mdx +++ b/content/docs/references/ai/conversation.mdx @@ -23,237 +23,55 @@ const result = ConversationAnalyticsSchema.parse(data); ## ConversationAnalytics -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **sessionId** | `string` | ✅ | | -| **totalMessages** | `integer` | ✅ | | -| **userMessages** | `integer` | ✅ | | -| **assistantMessages** | `integer` | ✅ | | -| **systemMessages** | `integer` | ✅ | | -| **totalTokens** | `integer` | ✅ | | -| **averageTokensPerMessage** | `number` | ✅ | | -| **peakTokenUsage** | `integer` | ✅ | | -| **pruningEvents** | `integer` | optional | | -| **summarizationEvents** | `integer` | optional | | -| **tokensSavedByPruning** | `integer` | optional | | -| **tokensSavedBySummarization** | `integer` | optional | | -| **duration** | `number` | optional | Session duration in seconds | -| **firstMessageAt** | `string` | optional | ISO 8601 timestamp | -| **lastMessageAt** | `string` | optional | ISO 8601 timestamp | - --- ## ConversationContext -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **sessionId** | `string` | ✅ | Conversation session ID | -| **userId** | `string` | optional | User identifier | -| **agentId** | `string` | optional | AI agent identifier | -| **object** | `string` | optional | Related object (e.g., "case", "project") | -| **recordId** | `string` | optional | Related record ID | -| **scope** | `Record` | optional | Additional context scope | -| **systemMessage** | `string` | optional | System prompt/instructions | -| **metadata** | `Record` | optional | | - --- ## ConversationMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique message ID | -| **timestamp** | `string` | ✅ | ISO 8601 timestamp | -| **role** | `Enum<'system' \| 'user' \| 'assistant' \| 'function' \| 'tool'>` | ✅ | | -| **content** | `string \| object[]` | ✅ | Message content (text or multimodal) | -| **functionCall** | `object` | optional | Legacy function call | -| **toolCalls** | `object[]` | optional | Tool calls | -| **toolCallId** | `string` | optional | Tool call ID this message responds to | -| **name** | `string` | optional | Name of the function/user | -| **tokens** | `object` | optional | Token usage for this message | -| **cost** | `number` | optional | Cost for this message in USD | -| **pinned** | `boolean` | optional | Prevent removal during pruning | -| **importance** | `number` | optional | Importance score for pruning | -| **embedding** | `number[]` | optional | Vector embedding for semantic search | -| **metadata** | `Record` | optional | | - --- ## ConversationSession -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique session ID | -| **name** | `string` | optional | Session name/title | -| **context** | `object` | ✅ | | -| **modelId** | `string` | optional | AI model ID | -| **tokenBudget** | `object` | ✅ | | -| **messages** | `object[]` | optional | | -| **tokens** | `object` | optional | | -| **totalTokens** | `object` | optional | Total tokens across all messages | -| **totalCost** | `number` | optional | Total cost for this session in USD | -| **status** | `Enum<'active' \| 'paused' \| 'completed' \| 'archived'>` | optional | | -| **createdAt** | `string` | ✅ | ISO 8601 timestamp | -| **updatedAt** | `string` | ✅ | ISO 8601 timestamp | -| **expiresAt** | `string` | optional | ISO 8601 timestamp | -| **tags** | `string[]` | optional | | -| **metadata** | `Record` | optional | | - --- ## ConversationSummary -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **summary** | `string` | ✅ | Conversation summary | -| **keyPoints** | `string[]` | optional | Key discussion points | -| **originalTokens** | `integer` | ✅ | Original token count | -| **summaryTokens** | `integer` | ✅ | Summary token count | -| **tokensSaved** | `integer` | ✅ | Tokens saved | -| **messageRange** | `object` | ✅ | Range of messages summarized | -| **generatedAt** | `string` | ✅ | ISO 8601 timestamp | -| **modelId** | `string` | optional | Model used for summarization | - --- ## FunctionCall -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Function name | -| **arguments** | `string` | ✅ | JSON string of function arguments | -| **result** | `string` | optional | Function execution result | - --- ## MessageContent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'text' \| 'image' \| 'file' \| 'code' \| 'structured'>` | optional | | -| **text** | `string` | optional | Text content | -| **imageUrl** | `string` | optional | Image URL for vision models | -| **fileUrl** | `string` | optional | File attachment URL | -| **mimeType** | `string` | optional | MIME type for files | -| **metadata** | `Record` | optional | Additional metadata | - --- ## MessageContentType -### Allowed Values - -* `text` -* `image` -* `file` -* `code` -* `structured` - --- ## MessagePruningEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **timestamp** | `string` | ✅ | ISO 8601 timestamp | -| **strategy** | `Enum<'fifo' \| 'importance' \| 'semantic' \| 'sliding_window' \| 'summary'>` | ✅ | | -| **reason** | `string` | ✅ | Reason for pruning | -| **prunedMessages** | `object[]` | ✅ | | -| **tokensFreed** | `integer` | ✅ | | -| **messagesRemoved** | `integer` | ✅ | | -| **remainingTokens** | `integer` | ✅ | | -| **remainingMessages** | `integer` | ✅ | | - --- ## MessageRole -### Allowed Values - -* `system` -* `user` -* `assistant` -* `function` -* `tool` - --- ## TokenBudgetConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **maxTokens** | `integer` | ✅ | Maximum total tokens | -| **maxPromptTokens** | `integer` | optional | Max tokens for prompt | -| **maxCompletionTokens** | `integer` | optional | Max tokens for completion | -| **reserveTokens** | `integer` | optional | Reserve tokens for system messages | -| **bufferPercentage** | `number` | optional | Buffer percentage (0.1 = 10%) | -| **strategy** | `Enum<'fifo' \| 'importance' \| 'semantic' \| 'sliding_window' \| 'summary'>` | optional | | -| **slidingWindowSize** | `integer` | optional | Number of recent messages to keep | -| **minImportanceScore** | `number` | optional | Minimum importance to keep | -| **semanticThreshold** | `number` | optional | Semantic similarity threshold | -| **enableSummarization** | `boolean` | optional | Enable context summarization | -| **summarizationThreshold** | `integer` | optional | Trigger summarization at N tokens | -| **summaryModel** | `string` | optional | Model ID for summarization | -| **warnThreshold** | `number` | optional | Warn at % of budget (0.8 = 80%) | - --- ## TokenBudgetStrategy -### Allowed Values - -* `fifo` -* `importance` -* `semantic` -* `sliding_window` -* `summary` - --- ## TokenUsageStats -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **promptTokens** | `integer` | optional | | -| **completionTokens** | `integer` | optional | | -| **totalTokens** | `integer` | optional | | -| **budgetLimit** | `integer` | ✅ | | -| **budgetUsed** | `integer` | optional | | -| **budgetRemaining** | `integer` | ✅ | | -| **budgetPercentage** | `number` | ✅ | Usage as percentage of budget | -| **messageCount** | `integer` | optional | | -| **prunedMessageCount** | `integer` | optional | | -| **summarizedMessageCount** | `integer` | optional | | - --- ## ToolCall -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Tool call ID | -| **type** | `Enum<'function'>` | optional | | -| **function** | `object` | ✅ | | - diff --git a/content/docs/references/ai/cost.mdx b/content/docs/references/ai/cost.mdx index 6e8f3d5a6..499909538 100644 --- a/content/docs/references/ai/cost.mdx +++ b/content/docs/references/ai/cost.mdx @@ -23,325 +23,63 @@ const result = AIOperationCostSchema.parse(data); ## AIOperationCost -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **operationId** | `string` | ✅ | | -| **operationType** | `Enum<'conversation' \| 'orchestration' \| 'prediction' \| 'rag' \| 'nlq'>` | ✅ | | -| **agentName** | `string` | optional | Agent that performed the operation | -| **modelId** | `string` | ✅ | | -| **tokens** | `object` | ✅ | | -| **cost** | `number` | ✅ | Cost in USD | -| **timestamp** | `string` | ✅ | | -| **metadata** | `Record` | optional | | - --- ## BillingPeriod -### Allowed Values - -* `hourly` -* `daily` -* `weekly` -* `monthly` -* `quarterly` -* `yearly` -* `custom` - --- ## BudgetLimit -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'global' \| 'user' \| 'agent' \| 'object' \| 'project' \| 'department'>` | ✅ | | -| **scope** | `string` | optional | Scope identifier (userId, agentId, etc.) | -| **maxCost** | `number` | ✅ | Maximum cost limit | -| **currency** | `string` | optional | | -| **period** | `Enum<'hourly' \| 'daily' \| 'weekly' \| 'monthly' \| 'quarterly' \| 'yearly' \| 'custom'>` | ✅ | | -| **customPeriodDays** | `integer` | optional | Custom period in days | -| **softLimit** | `number` | optional | Soft limit for warnings | -| **warnThresholds** | `number[]` | optional | Warning thresholds (e.g., [0.5, 0.8, 0.95]) | -| **enforced** | `boolean` | optional | Block requests when exceeded | -| **gracePeriodSeconds** | `integer` | optional | Grace period after limit exceeded | -| **allowRollover** | `boolean` | optional | Allow unused budget to rollover | -| **maxRolloverPercentage** | `number` | optional | Max rollover as % of limit | -| **name** | `string` | optional | Budget name | -| **description** | `string` | optional | | -| **active** | `boolean` | optional | | -| **tags** | `string[]` | optional | | - --- ## BudgetStatus -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **budgetId** | `string` | ✅ | | -| **type** | `Enum<'global' \| 'user' \| 'agent' \| 'object' \| 'project' \| 'department'>` | ✅ | | -| **scope** | `string` | optional | | -| **periodStart** | `string` | ✅ | ISO 8601 timestamp | -| **periodEnd** | `string` | ✅ | ISO 8601 timestamp | -| **currentCost** | `number` | optional | | -| **maxCost** | `number` | ✅ | | -| **currency** | `string` | optional | | -| **percentageUsed** | `number` | ✅ | Usage as percentage (can exceed 1.0 if over budget) | -| **remainingCost** | `number` | ✅ | Remaining budget (can be negative if exceeded) | -| **isExceeded** | `boolean` | optional | | -| **isWarning** | `boolean` | optional | | -| **projectedCost** | `number` | optional | Projected cost for period | -| **projectedOverage** | `number` | optional | Projected overage | -| **lastUpdated** | `string` | ✅ | ISO 8601 timestamp | - --- ## BudgetType -### Allowed Values - -* `global` -* `user` -* `agent` -* `object` -* `project` -* `department` - --- ## CostAlert -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 timestamp | -| **type** | `Enum<'threshold_warning' \| 'threshold_critical' \| 'limit_exceeded' \| 'anomaly_detected' \| 'projection_exceeded'>` | ✅ | | -| **severity** | `Enum<'info' \| 'warning' \| 'critical'>` | ✅ | | -| **budgetId** | `string` | optional | | -| **budgetType** | `Enum<'global' \| 'user' \| 'agent' \| 'object' \| 'project' \| 'department'>` | optional | | -| **scope** | `string` | optional | | -| **message** | `string` | ✅ | Alert message | -| **currentCost** | `number` | ✅ | | -| **maxCost** | `number` | optional | | -| **threshold** | `number` | optional | | -| **currency** | `string` | optional | | -| **recommendations** | `string[]` | optional | | -| **acknowledged** | `boolean` | optional | | -| **acknowledgedBy** | `string` | optional | | -| **acknowledgedAt** | `string` | optional | | -| **resolved** | `boolean` | optional | | -| **metadata** | `Record` | optional | | - --- ## CostAlertType -### Allowed Values - -* `threshold_warning` -* `threshold_critical` -* `limit_exceeded` -* `anomaly_detected` -* `projection_exceeded` - --- ## CostAnalytics -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **periodStart** | `string` | ✅ | ISO 8601 timestamp | -| **periodEnd** | `string` | ✅ | ISO 8601 timestamp | -| **totalCost** | `number` | ✅ | | -| **totalRequests** | `integer` | ✅ | | -| **totalTokens** | `integer` | optional | | -| **currency** | `string` | optional | | -| **averageCostPerRequest** | `number` | ✅ | | -| **averageCostPerToken** | `number` | optional | | -| **averageRequestsPerDay** | `number` | ✅ | | -| **costTrend** | `Enum<'increasing' \| 'decreasing' \| 'stable'>` | optional | | -| **trendPercentage** | `number` | optional | % change vs previous period | -| **byModel** | `object[]` | optional | | -| **byProvider** | `object[]` | optional | | -| **byUser** | `object[]` | optional | | -| **byAgent** | `object[]` | optional | | -| **byOperation** | `object[]` | optional | | -| **byDate** | `object[]` | optional | | -| **topModels** | `object[]` | optional | | -| **topUsers** | `object[]` | optional | | -| **topAgents** | `object[]` | optional | | -| **tokensPerDollar** | `number` | optional | | -| **requestsPerDollar** | `number` | optional | | - --- ## CostBreakdownDimension -### Allowed Values - -* `model` -* `provider` -* `user` -* `agent` -* `object` -* `operation` -* `date` -* `hour` -* `tag` - --- ## CostBreakdownEntry -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **dimension** | `Enum<'model' \| 'provider' \| 'user' \| 'agent' \| 'object' \| 'operation' \| 'date' \| 'hour' \| 'tag'>` | ✅ | | -| **value** | `string` | ✅ | Dimension value (e.g., model ID, user ID) | -| **totalCost** | `number` | ✅ | | -| **requestCount** | `integer` | ✅ | | -| **totalTokens** | `integer` | optional | | -| **percentageOfTotal** | `number` | ✅ | | -| **periodStart** | `string` | optional | | -| **periodEnd** | `string` | optional | | - --- ## CostEntry -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique cost entry ID | -| **timestamp** | `string` | ✅ | ISO 8601 timestamp | -| **modelId** | `string` | ✅ | AI model used | -| **provider** | `string` | ✅ | AI provider (e.g., "openai", "anthropic") | -| **operation** | `string` | ✅ | Operation type (e.g., "chat_completion", "embedding") | -| **promptTokens** | `integer` | optional | | -| **completionTokens** | `integer` | optional | | -| **totalTokens** | `integer` | optional | | -| **requestCount** | `integer` | optional | | -| **promptCost** | `number` | optional | Cost of prompt tokens | -| **completionCost** | `number` | optional | Cost of completion tokens | -| **totalCost** | `number` | ✅ | Total cost in base currency | -| **currency** | `string` | optional | | -| **sessionId** | `string` | optional | Conversation session ID | -| **userId** | `string` | optional | User who triggered the request | -| **agentId** | `string` | optional | AI agent ID | -| **object** | `string` | optional | Related object (e.g., "case", "project") | -| **recordId** | `string` | optional | Related record ID | -| **tags** | `string[]` | optional | | -| **metadata** | `Record` | optional | | - --- ## CostMetricType -### Allowed Values - -* `token` -* `request` -* `character` -* `second` -* `image` -* `embedding` - --- ## CostOptimizationRecommendation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | | -| **type** | `Enum<'switch_model' \| 'reduce_tokens' \| 'batch_requests' \| 'cache_results' \| 'adjust_parameters' \| 'limit_usage'>` | ✅ | | -| **title** | `string` | ✅ | | -| **description** | `string` | ✅ | | -| **estimatedSavings** | `number` | optional | | -| **savingsPercentage** | `number` | optional | | -| **priority** | `Enum<'low' \| 'medium' \| 'high'>` | ✅ | | -| **effort** | `Enum<'low' \| 'medium' \| 'high'>` | ✅ | | -| **actionable** | `boolean` | optional | | -| **actionSteps** | `string[]` | optional | | -| **targetModel** | `string` | optional | | -| **alternativeModel** | `string` | optional | | -| **affectedUsers** | `string[]` | optional | | -| **status** | `Enum<'pending' \| 'accepted' \| 'rejected' \| 'implemented'>` | optional | | -| **implementedAt** | `string` | optional | | - --- ## CostQueryFilters -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **startDate** | `string` | optional | ISO 8601 timestamp | -| **endDate** | `string` | optional | ISO 8601 timestamp | -| **modelIds** | `string[]` | optional | | -| **providers** | `string[]` | optional | | -| **userIds** | `string[]` | optional | | -| **agentIds** | `string[]` | optional | | -| **operations** | `string[]` | optional | | -| **sessionIds** | `string[]` | optional | | -| **minCost** | `number` | optional | | -| **maxCost** | `number` | optional | | -| **tags** | `string[]` | optional | | -| **groupBy** | `Enum<'model' \| 'provider' \| 'user' \| 'agent' \| 'object' \| 'operation' \| 'date' \| 'hour' \| 'tag'>[]` | optional | | -| **orderBy** | `Enum<'timestamp' \| 'cost' \| 'tokens'>` | optional | | -| **orderDirection** | `Enum<'asc' \| 'desc'>` | optional | | -| **limit** | `integer` | optional | | -| **offset** | `integer` | optional | | - --- ## CostReport -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | | -| **name** | `string` | ✅ | | -| **generatedAt** | `string` | ✅ | ISO 8601 timestamp | -| **periodStart** | `string` | ✅ | ISO 8601 timestamp | -| **periodEnd** | `string` | ✅ | ISO 8601 timestamp | -| **period** | `Enum<'hourly' \| 'daily' \| 'weekly' \| 'monthly' \| 'quarterly' \| 'yearly' \| 'custom'>` | ✅ | | -| **analytics** | `object` | ✅ | | -| **budgets** | `object[]` | optional | | -| **alerts** | `object[]` | optional | | -| **activeAlertCount** | `integer` | optional | | -| **recommendations** | `object[]` | optional | | -| **previousPeriodCost** | `number` | optional | | -| **costChange** | `number` | optional | Change vs previous period | -| **costChangePercentage** | `number` | optional | | -| **forecastedCost** | `number` | optional | | -| **forecastedBudgetStatus** | `Enum<'under' \| 'at' \| 'over'>` | optional | | -| **format** | `Enum<'summary' \| 'detailed' \| 'executive'>` | optional | | -| **currency** | `string` | optional | | - --- ## TokenUsage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **prompt** | `integer` | ✅ | Input tokens | -| **completion** | `integer` | ✅ | Output tokens | -| **total** | `integer` | ✅ | Total tokens | - diff --git a/content/docs/references/ai/model-registry.mdx b/content/docs/references/ai/model-registry.mdx index 4b7d2d2c8..93f843c7c 100644 --- a/content/docs/references/ai/model-registry.mdx +++ b/content/docs/references/ai/model-registry.mdx @@ -23,165 +23,39 @@ const result = ModelCapabilitySchema.parse(data); ## ModelCapability -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **textGeneration** | `boolean` | optional | Supports text generation | -| **textEmbedding** | `boolean` | optional | Supports text embedding | -| **imageGeneration** | `boolean` | optional | Supports image generation | -| **imageUnderstanding** | `boolean` | optional | Supports image understanding | -| **functionCalling** | `boolean` | optional | Supports function calling | -| **codeGeneration** | `boolean` | optional | Supports code generation | -| **reasoning** | `boolean` | optional | Supports advanced reasoning | - --- ## ModelConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique model identifier | -| **name** | `string` | ✅ | Model display name | -| **version** | `string` | ✅ | Model version (e.g., "gpt-4-turbo-2024-04-09") | -| **provider** | `Enum<'openai' \| 'azure_openai' \| 'anthropic' \| 'google' \| 'cohere' \| 'huggingface' \| 'local' \| 'custom'>` | ✅ | | -| **capabilities** | `object` | ✅ | | -| **limits** | `object` | ✅ | | -| **pricing** | `object` | optional | | -| **endpoint** | `string` | optional | Custom API endpoint | -| **apiKey** | `string` | optional | API key or reference to secret | -| **region** | `string` | optional | Deployment region (e.g., "us-east-1") | -| **description** | `string` | optional | | -| **tags** | `string[]` | optional | Tags for categorization | -| **deprecated** | `boolean` | optional | | -| **recommendedFor** | `string[]` | optional | Use case recommendations | - --- ## ModelLimits -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **maxTokens** | `integer` | ✅ | Maximum tokens per request | -| **contextWindow** | `integer` | ✅ | Context window size | -| **maxOutputTokens** | `integer` | optional | Maximum output tokens | -| **rateLimit** | `object` | optional | | - --- ## ModelPricing -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **currency** | `string` | optional | | -| **inputCostPer1kTokens** | `number` | optional | Cost per 1K input tokens | -| **outputCostPer1kTokens** | `number` | optional | Cost per 1K output tokens | -| **embeddingCostPer1kTokens** | `number` | optional | Cost per 1K embedding tokens | - --- ## ModelProvider -### Allowed Values - -* `openai` -* `azure_openai` -* `anthropic` -* `google` -* `cohere` -* `huggingface` -* `local` -* `custom` - --- ## ModelRegistry -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Registry name | -| **models** | `Record` | ✅ | Model entries by ID | -| **promptTemplates** | `Record` | optional | Prompt templates by name | -| **defaultModel** | `string` | optional | Default model ID | -| **enableAutoFallback** | `boolean` | optional | Auto-fallback on errors | - --- ## ModelRegistryEntry -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **model** | `object` | ✅ | | -| **status** | `Enum<'active' \| 'deprecated' \| 'experimental' \| 'disabled'>` | optional | | -| **priority** | `integer` | optional | Priority for model selection | -| **fallbackModels** | `string[]` | optional | Fallback model IDs | -| **healthCheck** | `object` | optional | | - --- ## ModelSelectionCriteria -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **capabilities** | `string[]` | optional | Required capabilities | -| **maxCostPer1kTokens** | `number` | optional | Maximum acceptable cost | -| **minContextWindow** | `number` | optional | Minimum context window size | -| **provider** | `Enum<'openai' \| 'azure_openai' \| 'anthropic' \| 'google' \| 'cohere' \| 'huggingface' \| 'local' \| 'custom'>` | optional | | -| **tags** | `string[]` | optional | | -| **excludeDeprecated** | `boolean` | optional | | - --- ## PromptTemplate -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique template identifier | -| **name** | `string` | ✅ | Template name (snake_case) | -| **label** | `string` | ✅ | Display name | -| **system** | `string` | optional | System prompt | -| **user** | `string` | ✅ | User prompt template with variables | -| **assistant** | `string` | optional | Assistant message prefix | -| **variables** | `object[]` | optional | Template variables | -| **modelId** | `string` | optional | Recommended model ID | -| **temperature** | `number` | optional | | -| **maxTokens** | `number` | optional | | -| **topP** | `number` | optional | | -| **frequencyPenalty** | `number` | optional | | -| **presencePenalty** | `number` | optional | | -| **stopSequences** | `string[]` | optional | | -| **version** | `string` | optional | | -| **description** | `string` | optional | | -| **category** | `string` | optional | Template category (e.g., "code_generation", "support") | -| **tags** | `string[]` | optional | | -| **examples** | `object[]` | optional | | - --- ## PromptVariable -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Variable name (e.g., "user_name", "context") | -| **type** | `Enum<'string' \| 'number' \| 'boolean' \| 'object' \| 'array'>` | optional | | -| **required** | `boolean` | optional | | -| **defaultValue** | `any` | optional | | -| **description** | `string` | optional | | -| **validation** | `object` | optional | | - diff --git a/content/docs/references/ai/nlq.mdx b/content/docs/references/ai/nlq.mdx index c6f360996..c0902d920 100644 --- a/content/docs/references/ai/nlq.mdx +++ b/content/docs/references/ai/nlq.mdx @@ -23,219 +23,51 @@ const result = EntitySchema.parse(data); ## Entity -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'object' \| 'field' \| 'value' \| 'operator' \| 'function' \| 'timeframe'>` | ✅ | | -| **text** | `string` | ✅ | Original text from query | -| **value** | `any` | optional | Normalized value | -| **confidence** | `number` | ✅ | Confidence score | -| **span** | `any[]` | optional | Character span in query | - --- ## FieldSynonymConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **field** | `string` | ✅ | Field name | -| **synonyms** | `string[]` | ✅ | Natural language synonyms | -| **examples** | `string[]` | optional | Example queries using synonyms | - --- ## NLQAnalytics -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **totalQueries** | `integer` | ✅ | | -| **successfulQueries** | `integer` | ✅ | | -| **failedQueries** | `integer` | ✅ | | -| **averageConfidence** | `number` | ✅ | | -| **intentDistribution** | `Record` | ✅ | Count by intent type | -| **topQueries** | `object[]` | ✅ | | -| **averageParseTime** | `number` | ✅ | Average parse time in milliseconds | -| **averageExecutionTime** | `number` | optional | | -| **lowConfidenceQueries** | `object[]` | ✅ | | -| **startDate** | `string` | ✅ | ISO timestamp | -| **endDate** | `string` | ✅ | ISO timestamp | - --- ## NLQFieldMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **naturalLanguage** | `string` | ✅ | NL field name (e.g., "customer name") | -| **objectField** | `string` | ✅ | Actual field name (e.g., "account.name") | -| **object** | `string` | ✅ | Object name | -| **field** | `string` | ✅ | Field name | -| **confidence** | `number` | ✅ | | - --- ## NLQModelConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **modelId** | `string` | ✅ | Model from registry | -| **systemPrompt** | `string` | optional | System prompt override | -| **includeSchema** | `boolean` | optional | Include object schema in prompt | -| **includeExamples** | `boolean` | optional | Include examples in prompt | -| **enableIntentDetection** | `boolean` | optional | | -| **intentThreshold** | `number` | optional | | -| **enableEntityRecognition** | `boolean` | optional | | -| **entityRecognitionModel** | `string` | optional | | -| **enableFuzzyMatching** | `boolean` | optional | Fuzzy match field names | -| **fuzzyMatchThreshold** | `number` | optional | | -| **enableTimeframeDetection** | `boolean` | optional | | -| **defaultTimeframe** | `string` | optional | Default timeframe if not specified | -| **enableCaching** | `boolean` | optional | | -| **cacheTTL** | `integer` | optional | Cache TTL in seconds | - --- ## NLQParseResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **originalQuery** | `string` | ✅ | | -| **intent** | `Enum<'select' \| 'aggregate' \| 'filter' \| 'sort' \| 'compare' \| 'trend' \| 'insight' \| 'create' \| 'update' \| 'delete'>` | ✅ | | -| **intentConfidence** | `number` | ✅ | | -| **entities** | `object[]` | ✅ | | -| **targetObject** | `string` | optional | Primary object to query | -| **fields** | `object[]` | optional | | -| **timeframe** | `object` | optional | | -| **ast** | `any` | optional | Generated ObjectQL AST | -| **confidence** | `number` | ✅ | Overall confidence | -| **ambiguities** | `object[]` | optional | Detected ambiguities requiring clarification | -| **alternatives** | `object[]` | optional | | - --- ## NLQRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **query** | `string` | ✅ | Natural language query | -| **context** | `object` | optional | | -| **includeAlternatives** | `boolean` | optional | Include alternative interpretations | -| **maxAlternatives** | `integer` | optional | | -| **minConfidence** | `number` | optional | Minimum confidence threshold | -| **executeQuery** | `boolean` | optional | Execute query and return results | -| **maxResults** | `integer` | optional | Maximum results to return | - --- ## NLQResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **parseResult** | `object` | ✅ | | -| **results** | `Record[]` | optional | Query results | -| **totalCount** | `integer` | optional | | -| **executionTime** | `number` | optional | Execution time in milliseconds | -| **needsClarification** | `boolean` | ✅ | Whether query needs clarification | -| **tokens** | `object` | optional | Token usage for this query | -| **cost** | `number` | optional | Cost for this query in USD | -| **suggestions** | `string[]` | optional | Query refinement suggestions | - --- ## NLQTrainingExample -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **query** | `string` | ✅ | Natural language query | -| **context** | `object` | optional | | -| **expectedIntent** | `Enum<'select' \| 'aggregate' \| 'filter' \| 'sort' \| 'compare' \| 'trend' \| 'insight' \| 'create' \| 'update' \| 'delete'>` | ✅ | | -| **expectedObject** | `string` | optional | | -| **expectedAST** | `any` | optional | Expected ObjectQL AST | -| **category** | `string` | optional | Example category | -| **tags** | `string[]` | optional | | -| **notes** | `string` | optional | | - --- ## QueryContext -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **userId** | `string` | optional | | -| **userRole** | `string` | optional | | -| **currentObject** | `string` | optional | Current object being viewed | -| **currentRecordId** | `string` | optional | Current record ID | -| **conversationHistory** | `object[]` | optional | | -| **defaultLimit** | `integer` | optional | | -| **timezone** | `string` | optional | | -| **locale** | `string` | optional | | - --- ## QueryIntent -### Allowed Values - -* `select` -* `aggregate` -* `filter` -* `sort` -* `compare` -* `trend` -* `insight` -* `create` -* `update` -* `delete` - --- ## QueryTemplate -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | | -| **name** | `string` | ✅ | Template name (snake_case) | -| **label** | `string` | ✅ | | -| **pattern** | `string` | ✅ | Query pattern with placeholders | -| **variables** | `object[]` | ✅ | | -| **astTemplate** | `any` | optional | AST template with variable placeholders | -| **category** | `string` | optional | | -| **examples** | `string[]` | optional | | -| **tags** | `string[]` | optional | | - --- ## Timeframe -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'absolute' \| 'relative'>` | ✅ | | -| **start** | `string` | optional | Start date (ISO format) | -| **end** | `string` | optional | End date (ISO format) | -| **relative** | `object` | optional | | -| **text** | `string` | ✅ | Original timeframe text | - diff --git a/content/docs/references/ai/orchestration.mdx b/content/docs/references/ai/orchestration.mdx index 6befb6970..9e10c0c9d 100644 --- a/content/docs/references/ai/orchestration.mdx +++ b/content/docs/references/ai/orchestration.mdx @@ -23,169 +23,35 @@ const result = AIOrchestrationSchema.parse(data); ## AIOrchestration -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Orchestration unique identifier (snake_case) | -| **label** | `string` | ✅ | Display name | -| **description** | `string` | optional | | -| **objectName** | `string` | ✅ | Target object for this orchestration | -| **trigger** | `Enum<'record_created' \| 'record_updated' \| 'field_changed' \| 'scheduled' \| 'manual' \| 'webhook' \| 'batch'>` | ✅ | | -| **fieldConditions** | `object[]` | optional | Fields to monitor (for field_changed trigger) | -| **schedule** | `object` | optional | Schedule configuration (for scheduled trigger) | -| **webhookConfig** | `object` | optional | Webhook configuration (for webhook trigger) | -| **entryCriteria** | `string` | optional | Formula condition - workflow only runs if TRUE | -| **aiTasks** | `object[]` | ✅ | AI tasks to execute in sequence | -| **postActions** | `object[]` | optional | Actions after AI tasks complete | -| **executionMode** | `Enum<'sequential' \| 'parallel'>` | optional | How to execute multiple AI tasks | -| **stopOnError** | `boolean` | optional | Stop workflow if any task fails | -| **timeout** | `number` | optional | Maximum execution time in seconds | -| **priority** | `Enum<'low' \| 'normal' \| 'high' \| 'critical'>` | optional | | -| **enableLogging** | `boolean` | optional | | -| **enableMetrics** | `boolean` | optional | | -| **notifyOnFailure** | `string[]` | optional | User IDs to notify on failure | -| **active** | `boolean` | optional | | -| **version** | `string` | optional | | -| **tags** | `string[]` | optional | | -| **category** | `string` | optional | Workflow category (e.g., "support", "sales", "hr") | -| **owner** | `string` | optional | User ID of workflow owner | -| **createdAt** | `string` | optional | ISO timestamp | -| **updatedAt** | `string` | optional | ISO timestamp | - --- ## AIOrchestrationExecutionResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **workflowName** | `string` | ✅ | | -| **recordId** | `string` | ✅ | | -| **status** | `Enum<'success' \| 'partial_success' \| 'failed' \| 'skipped'>` | ✅ | | -| **executionTime** | `number` | ✅ | Execution time in milliseconds | -| **tasksExecuted** | `integer` | ✅ | Number of tasks executed | -| **tasksSucceeded** | `integer` | ✅ | Number of tasks succeeded | -| **tasksFailed** | `integer` | ✅ | Number of tasks failed | -| **taskResults** | `object[]` | optional | | -| **tokens** | `object` | optional | Total token usage for this execution | -| **cost** | `number` | optional | Total cost for this execution in USD | -| **error** | `string` | optional | | -| **startedAt** | `string` | ✅ | ISO timestamp | -| **completedAt** | `string` | optional | ISO timestamp | - --- ## AIOrchestrationTrigger -### Allowed Values - -* `record_created` -* `record_updated` -* `field_changed` -* `scheduled` -* `manual` -* `webhook` -* `batch` - --- ## AITask -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Optional task ID for referencing | -| **name** | `string` | ✅ | Human-readable task name | -| **type** | `Enum<'classify' \| 'extract' \| 'summarize' \| 'generate' \| 'predict' \| 'translate' \| 'sentiment' \| 'entity_recognition' \| 'anomaly_detection' \| 'recommendation'>` | ✅ | | -| **model** | `string` | optional | Model ID from registry (uses default if not specified) | -| **promptTemplate** | `string` | optional | Prompt template ID for this task | -| **inputFields** | `string[]` | ✅ | Source fields to process (e.g., ["description", "comments"]) | -| **inputContext** | `Record` | optional | Additional context for the AI model | -| **outputField** | `string` | ✅ | Target field to store the result | -| **outputFormat** | `Enum<'text' \| 'json' \| 'number' \| 'boolean' \| 'array'>` | optional | | -| **classes** | `string[]` | optional | Valid classes for classification tasks | -| **multiClass** | `boolean` | optional | Allow multiple classes to be selected | -| **extractionSchema** | `Record` | optional | JSON schema for structured extraction | -| **maxLength** | `number` | optional | Maximum length for generated content | -| **temperature** | `number` | optional | Model temperature override | -| **fallbackValue** | `any` | optional | Fallback value if AI task fails | -| **retryAttempts** | `integer` | optional | | -| **condition** | `string` | optional | Formula condition - task only runs if TRUE | -| **description** | `string` | optional | | -| **active** | `boolean` | optional | | - --- ## AITaskType -### Allowed Values - -* `classify` -* `extract` -* `summarize` -* `generate` -* `predict` -* `translate` -* `sentiment` -* `entity_recognition` -* `anomaly_detection` -* `recommendation` - --- ## BatchAIOrchestrationExecution -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **workflowName** | `string` | ✅ | Orchestration to execute | -| **recordIds** | `string[]` | ✅ | Records to process | -| **batchSize** | `integer` | optional | | -| **parallelism** | `integer` | optional | | -| **priority** | `Enum<'low' \| 'normal' \| 'high'>` | optional | | - --- ## PostProcessingAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'field_update' \| 'send_email' \| 'create_record' \| 'update_related' \| 'trigger_flow' \| 'webhook'>` | ✅ | | -| **name** | `string` | ✅ | Action name | -| **config** | `Record` | ✅ | Action-specific configuration | -| **condition** | `string` | optional | Execute only if condition is TRUE | - --- ## WorkflowFieldCondition -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Field name to monitor | -| **operator** | `Enum<'changed' \| 'changed_to' \| 'changed_from' \| 'is' \| 'is_not'>` | optional | | -| **value** | `any` | optional | Value to compare against (for changed_to/changed_from/is/is_not) | - --- ## WorkflowSchedule -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'cron' \| 'interval' \| 'daily' \| 'weekly' \| 'monthly'>` | optional | | -| **cron** | `string` | optional | Cron expression (required if type is "cron") | -| **interval** | `number` | optional | Interval in minutes (required if type is "interval") | -| **time** | `string` | optional | Time of day for daily schedules (HH:MM format) | -| **dayOfWeek** | `integer` | optional | Day of week for weekly (0=Sunday) | -| **dayOfMonth** | `integer` | optional | Day of month for monthly | -| **timezone** | `string` | optional | | - diff --git a/content/docs/references/ai/predictive.mdx b/content/docs/references/ai/predictive.mdx index 15237a32c..d3f0365cd 100644 --- a/content/docs/references/ai/predictive.mdx +++ b/content/docs/references/ai/predictive.mdx @@ -23,192 +23,35 @@ const result = EvaluationMetricsSchema.parse(data); ## EvaluationMetrics -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **accuracy** | `number` | optional | | -| **precision** | `number` | optional | | -| **recall** | `number` | optional | | -| **f1Score** | `number` | optional | | -| **auc** | `number` | optional | Area Under ROC Curve | -| **mse** | `number` | optional | Mean Squared Error | -| **rmse** | `number` | optional | Root Mean Squared Error | -| **mae** | `number` | optional | Mean Absolute Error | -| **r2Score** | `number` | optional | R-squared score | -| **silhouetteScore** | `number` | optional | | -| **daviesBouldinIndex** | `number` | optional | | -| **mape** | `number` | optional | Mean Absolute Percentage Error | -| **smape** | `number` | optional | Symmetric MAPE | -| **custom** | `Record` | optional | | - --- ## Hyperparameters -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **learningRate** | `number` | optional | Learning rate for training | -| **epochs** | `integer` | optional | Number of training epochs | -| **batchSize** | `integer` | optional | Training batch size | -| **maxDepth** | `integer` | optional | Maximum tree depth | -| **numTrees** | `integer` | optional | Number of trees in ensemble | -| **minSamplesSplit** | `integer` | optional | Minimum samples to split node | -| **minSamplesLeaf** | `integer` | optional | Minimum samples in leaf node | -| **hiddenLayers** | `integer[]` | optional | Hidden layer sizes | -| **activation** | `string` | optional | Activation function | -| **dropout** | `number` | optional | Dropout rate | -| **l1Regularization** | `number` | optional | L1 regularization strength | -| **l2Regularization** | `number` | optional | L2 regularization strength | -| **numClusters** | `integer` | optional | Number of clusters (k-means, etc.) | -| **seasonalPeriod** | `integer` | optional | Seasonal period for time series | -| **forecastHorizon** | `integer` | optional | Number of periods to forecast | -| **custom** | `Record` | optional | Algorithm-specific parameters | - --- ## ModelDrift -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **modelName** | `string` | ✅ | | -| **driftType** | `Enum<'feature_drift' \| 'prediction_drift' \| 'performance_drift'>` | ✅ | | -| **severity** | `Enum<'low' \| 'medium' \| 'high' \| 'critical'>` | ✅ | | -| **detectedAt** | `string` | ✅ | ISO timestamp | -| **metrics** | `object` | ✅ | | -| **recommendation** | `string` | optional | | -| **autoRetrainTriggered** | `boolean` | optional | | - --- ## ModelFeature -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Feature name (snake_case) | -| **label** | `string` | optional | Human-readable label | -| **field** | `string` | ✅ | Source field name | -| **object** | `string` | optional | Source object (if different from target) | -| **dataType** | `Enum<'numeric' \| 'categorical' \| 'text' \| 'datetime' \| 'boolean'>` | ✅ | Feature data type | -| **transformation** | `Enum<'none' \| 'normalize' \| 'standardize' \| 'one_hot_encode' \| 'label_encode' \| 'log_transform' \| 'binning' \| 'embedding'>` | optional | | -| **required** | `boolean` | optional | | -| **defaultValue** | `any` | optional | | -| **description** | `string` | optional | | -| **importance** | `number` | optional | Feature importance score (0-1) | - --- ## PredictionRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **modelName** | `string` | ✅ | Model to use for prediction | -| **recordIds** | `string[]` | optional | Specific records to predict (if not provided, uses all) | -| **inputData** | `Record` | optional | Direct input data (alternative to recordIds) | -| **returnConfidence** | `boolean` | optional | | -| **returnExplanation** | `boolean` | optional | | - --- ## PredictionResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **modelName** | `string` | ✅ | | -| **modelVersion** | `string` | ✅ | | -| **recordId** | `string` | optional | | -| **prediction** | `any` | optional | The predicted value | -| **confidence** | `number` | optional | Confidence score (0-1) | -| **probabilities** | `Record` | optional | Class probabilities (for classification) | -| **explanation** | `object` | optional | | -| **tokens** | `object` | optional | Token usage for this prediction (if AI-powered) | -| **cost** | `number` | optional | Cost for this prediction in USD | -| **metadata** | `object` | optional | | - --- ## PredictiveModel -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Model unique identifier (snake_case) | -| **label** | `string` | ✅ | Model display name | -| **description** | `string` | optional | | -| **type** | `Enum<'classification' \| 'regression' \| 'clustering' \| 'forecasting' \| 'anomaly_detection' \| 'recommendation' \| 'ranking'>` | ✅ | | -| **algorithm** | `string` | optional | Specific algorithm (e.g., "random_forest", "xgboost", "lstm") | -| **objectName** | `string` | ✅ | Target object for predictions | -| **target** | `string` | ✅ | Target field to predict | -| **targetType** | `Enum<'numeric' \| 'categorical' \| 'binary'>` | optional | Target field type | -| **features** | `object[]` | ✅ | Input features for the model | -| **hyperparameters** | `object` | optional | | -| **training** | `object` | optional | | -| **metrics** | `object` | optional | Evaluation metrics from last training | -| **deploymentStatus** | `Enum<'draft' \| 'training' \| 'trained' \| 'deployed' \| 'deprecated'>` | optional | | -| **version** | `string` | optional | | -| **predictionField** | `string` | optional | Field to store predictions | -| **confidenceField** | `string` | optional | Field to store confidence scores | -| **updateTrigger** | `Enum<'on_create' \| 'on_update' \| 'manual' \| 'scheduled'>` | optional | | -| **autoRetrain** | `boolean` | optional | | -| **retrainSchedule** | `string` | optional | Cron expression for auto-retraining | -| **retrainThreshold** | `number` | optional | Performance threshold to trigger retraining | -| **enableExplainability** | `boolean` | optional | Generate feature importance & explanations | -| **enableMonitoring** | `boolean` | optional | | -| **alertOnDrift** | `boolean` | optional | Alert when model drift is detected | -| **active** | `boolean` | optional | | -| **owner** | `string` | optional | User ID of model owner | -| **permissions** | `string[]` | optional | User/group IDs with access | -| **tags** | `string[]` | optional | | -| **category** | `string` | optional | Model category (e.g., "sales", "marketing", "operations") | -| **lastTrainedAt** | `string` | optional | ISO timestamp | -| **createdAt** | `string` | optional | ISO timestamp | -| **updatedAt** | `string` | optional | ISO timestamp | - --- ## PredictiveModelType -### Allowed Values - -* `classification` -* `regression` -* `clustering` -* `forecasting` -* `anomaly_detection` -* `recommendation` -* `ranking` - --- ## TrainingConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **trainingDataRatio** | `number` | optional | Proportion of data for training | -| **validationDataRatio** | `number` | optional | Proportion for validation | -| **testDataRatio** | `number` | optional | Proportion for testing | -| **dataFilter** | `string` | optional | Formula to filter training data | -| **minRecords** | `integer` | optional | Minimum records required | -| **maxRecords** | `integer` | optional | Maximum records to use | -| **strategy** | `Enum<'full' \| 'incremental' \| 'online' \| 'transfer_learning'>` | optional | | -| **crossValidation** | `boolean` | optional | | -| **folds** | `integer` | optional | Cross-validation folds | -| **earlyStoppingEnabled** | `boolean` | optional | | -| **earlyStoppingPatience** | `integer` | optional | Epochs without improvement before stopping | -| **maxTrainingTime** | `number` | optional | Maximum training time in seconds | -| **gpuEnabled** | `boolean` | optional | | -| **randomSeed** | `integer` | optional | Random seed for reproducibility | - diff --git a/content/docs/references/ai/rag-pipeline.mdx b/content/docs/references/ai/rag-pipeline.mdx index 9cf0d1a03..e8eeb646b 100644 --- a/content/docs/references/ai/rag-pipeline.mdx +++ b/content/docs/references/ai/rag-pipeline.mdx @@ -27,154 +27,38 @@ const result = ChunkingStrategySchema.parse(data); ## DocumentChunk -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique chunk identifier | -| **content** | `string` | ✅ | Chunk text content | -| **embedding** | `number[]` | optional | Embedding vector | -| **metadata** | `object` | ✅ | | -| **chunkIndex** | `integer` | ✅ | Chunk position in document | -| **tokens** | `integer` | optional | Token count | - --- ## DocumentLoaderConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'file' \| 'directory' \| 'url' \| 'api' \| 'database' \| 'custom'>` | ✅ | | -| **source** | `string` | ✅ | Source path, URL, or identifier | -| **fileTypes** | `string[]` | optional | Accepted file extensions (e.g., [".pdf", ".md"]) | -| **recursive** | `boolean` | optional | Process directories recursively | -| **maxFileSize** | `integer` | optional | Maximum file size in bytes | -| **excludePatterns** | `string[]` | optional | Patterns to exclude | -| **extractImages** | `boolean` | optional | Extract text from images (OCR) | -| **extractTables** | `boolean` | optional | Extract and format tables | -| **loaderConfig** | `Record` | optional | Custom loader-specific config | - --- ## DocumentMetadata -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **source** | `string` | ✅ | Document source (file path, URL, etc.) | -| **sourceType** | `Enum<'file' \| 'url' \| 'api' \| 'database' \| 'custom'>` | optional | | -| **title** | `string` | optional | | -| **author** | `string` | optional | | -| **createdAt** | `string` | optional | ISO timestamp | -| **updatedAt** | `string` | optional | ISO timestamp | -| **tags** | `string[]` | optional | | -| **category** | `string` | optional | | -| **language** | `string` | optional | Document language (ISO 639-1 code) | -| **custom** | `Record` | optional | Custom metadata fields | - --- ## EmbeddingModel -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **provider** | `Enum<'openai' \| 'cohere' \| 'huggingface' \| 'azure_openai' \| 'local' \| 'custom'>` | ✅ | | -| **model** | `string` | ✅ | Model name (e.g., "text-embedding-3-large") | -| **dimensions** | `integer` | ✅ | Embedding vector dimensions | -| **maxTokens** | `integer` | optional | Maximum tokens per embedding | -| **batchSize** | `integer` | optional | Batch size for embedding | -| **endpoint** | `string` | optional | Custom endpoint URL | -| **apiKey** | `string` | optional | API key or reference to secret | - --- ## RAGPipelineConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Pipeline name (snake_case) | -| **label** | `string` | ✅ | Display name | -| **description** | `string` | optional | | -| **embedding** | `object` | ✅ | | -| **vectorStore** | `object` | ✅ | | -| **chunking** | `object \| object \| object \| object` | ✅ | | -| **retrieval** | `object \| object \| object \| object` | ✅ | | -| **reranking** | `object` | optional | | -| **loaders** | `object[]` | optional | Document loaders | -| **maxContextTokens** | `integer` | optional | Maximum tokens in context | -| **contextWindow** | `integer` | optional | LLM context window size | -| **metadataFilters** | `Record` | optional | Filters for retrieval (e.g., `{category: "docs", status: "published"}`) | -| **enableCache** | `boolean` | optional | | -| **cacheTTL** | `integer` | optional | Cache TTL in seconds | -| **cacheInvalidationStrategy** | `Enum<'time_based' \| 'manual' \| 'on_update'>` | optional | | - --- ## RAGPipelineStatus -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | | -| **status** | `Enum<'active' \| 'indexing' \| 'error' \| 'disabled'>` | ✅ | | -| **documentsIndexed** | `integer` | ✅ | | -| **lastIndexed** | `string` | optional | ISO timestamp | -| **errorMessage** | `string` | optional | | -| **health** | `object` | optional | | - --- ## RAGQueryRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **query** | `string` | ✅ | User query | -| **pipelineName** | `string` | ✅ | Pipeline to use | -| **topK** | `integer` | optional | | -| **metadataFilters** | `Record` | optional | | -| **conversationHistory** | `object[]` | optional | | -| **includeMetadata** | `boolean` | optional | | -| **includeSources** | `boolean` | optional | | - --- ## RAGQueryResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **query** | `string` | ✅ | | -| **results** | `object[]` | ✅ | | -| **context** | `string` | ✅ | Assembled context for LLM | -| **tokens** | `object` | optional | Token usage for this query | -| **cost** | `number` | optional | Cost for this query in USD | -| **tokensUsed** | `integer` | optional | Deprecated: use tokens.total instead | -| **retrievalTime** | `number` | optional | Retrieval time in milliseconds | - --- ## RerankingConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **model** | `string` | optional | Reranking model name | -| **provider** | `Enum<'cohere' \| 'huggingface' \| 'custom'>` | optional | | -| **topK** | `integer` | optional | Final number of results after reranking | - --- ## RetrievalStrategy @@ -183,36 +67,7 @@ const result = ChunkingStrategySchema.parse(data); ## VectorStoreConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **provider** | `Enum<'pinecone' \| 'weaviate' \| 'qdrant' \| 'milvus' \| 'chroma' \| 'pgvector' \| 'redis' \| 'opensearch' \| 'elasticsearch' \| 'custom'>` | ✅ | | -| **indexName** | `string` | ✅ | Index/collection name | -| **namespace** | `string` | optional | Namespace for multi-tenancy | -| **host** | `string` | optional | Vector store host | -| **port** | `integer` | optional | Vector store port | -| **apiKey** | `string` | optional | API key or reference to secret | -| **dimensions** | `integer` | ✅ | Vector dimensions | -| **metric** | `Enum<'cosine' \| 'euclidean' \| 'dotproduct'>` | optional | | -| **batchSize** | `integer` | optional | | -| **connectionPoolSize** | `integer` | optional | | -| **timeout** | `integer` | optional | Timeout in milliseconds | - --- ## VectorStoreProvider -### Allowed Values - -* `pinecone` -* `weaviate` -* `qdrant` -* `milvus` -* `chroma` -* `pgvector` -* `redis` -* `opensearch` -* `elasticsearch` -* `custom` - diff --git a/content/docs/references/api/batch.mdx b/content/docs/references/api/batch.mdx index 0dc5ab8a1..f23a607d9 100644 --- a/content/docs/references/api/batch.mdx +++ b/content/docs/references/api/batch.mdx @@ -23,112 +23,35 @@ const result = BatchConfigSchema.parse(data); ## BatchConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable batch operations | -| **maxRecordsPerBatch** | `integer` | optional | Maximum records per batch | -| **defaultOptions** | `object` | optional | Default batch options | - --- ## BatchOperationResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Record ID if operation succeeded | -| **success** | `boolean` | ✅ | Whether this record was processed successfully | -| **errors** | `object[]` | optional | Array of errors if operation failed | -| **data** | `Record` | optional | Full record data (if returnRecords=true) | -| **index** | `number` | optional | Index of the record in the request array | - --- ## BatchOperationType -### Allowed Values - -* `create` -* `update` -* `upsert` -* `delete` - --- ## BatchOptions -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **atomic** | `boolean` | optional | If true, rollback entire batch on any failure (transaction mode) | -| **returnRecords** | `boolean` | optional | If true, return full record data in response | -| **continueOnError** | `boolean` | optional | If true (and atomic=false), continue processing remaining records after errors | -| **validateOnly** | `boolean` | optional | If true, validate records without persisting changes (dry-run mode) | - --- ## BatchRecord -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Record ID (required for update/delete) | -| **data** | `Record` | optional | Record data (required for create/update/upsert) | -| **externalId** | `string` | optional | External ID for upsert matching | - --- ## BatchUpdateRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **operation** | `Enum<'create' \| 'update' \| 'upsert' \| 'delete'>` | ✅ | Type of batch operation | -| **records** | `object[]` | ✅ | Array of records to process (max 200 per batch) | -| **options** | `object` | optional | Batch operation options | - --- ## BatchUpdateResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Operation success status | -| **error** | `object` | optional | Error details if success is false | -| **meta** | `object` | optional | Response metadata | -| **operation** | `Enum<'create' \| 'update' \| 'upsert' \| 'delete'>` | optional | Operation type that was performed | -| **total** | `number` | ✅ | Total number of records in the batch | -| **succeeded** | `number` | ✅ | Number of records that succeeded | -| **failed** | `number` | ✅ | Number of records that failed | -| **results** | `object[]` | ✅ | Detailed results for each record | - --- ## DeleteManyRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **ids** | `string[]` | ✅ | Array of record IDs to delete (max 200) | -| **options** | `object` | optional | Delete options | - --- ## UpdateManyRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **records** | `object[]` | ✅ | Array of records to update (max 200 per batch) | -| **options** | `object` | optional | Update options | - diff --git a/content/docs/references/api/connector.mdx b/content/docs/references/api/connector.mdx index b0f324fc8..7a17ab24d 100644 --- a/content/docs/references/api/connector.mdx +++ b/content/docs/references/api/connector.mdx @@ -23,10 +23,3 @@ const result = RetryStrategySchema.parse(data); ## RetryStrategy -### Allowed Values - -* `no_retry` -* `retry_immediate` -* `retry_backoff` -* `retry_after` - diff --git a/content/docs/references/api/contract.mdx b/content/docs/references/api/contract.mdx index 031076ee4..d392d8608 100644 --- a/content/docs/references/api/contract.mdx +++ b/content/docs/references/api/contract.mdx @@ -23,149 +23,47 @@ const result = ApiErrorSchema.parse(data); ## ApiError -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **code** | `string` | ✅ | Error code (e.g. validation_error) | -| **message** | `string` | ✅ | Readable error message | -| **details** | `any` | optional | Additional error context (e.g. field validation errors) | - --- ## BaseResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Operation success status | -| **error** | `object` | optional | Error details if success is false | -| **meta** | `object` | optional | Response metadata | - --- ## BulkRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **records** | `Record[]` | ✅ | Array of records to process | -| **allOrNone** | `boolean` | optional | If true, rollback entire transaction on any failure | - --- ## BulkResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Operation success status | -| **error** | `object` | optional | Error details if success is false | -| **meta** | `object` | optional | Response metadata | -| **data** | `object[]` | ✅ | Results for each item in the batch | - --- ## CreateRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **data** | `Record` | ✅ | Record data to insert | - --- ## DeleteResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Operation success status | -| **error** | `object` | optional | Error details if success is false | -| **meta** | `object` | optional | Response metadata | -| **id** | `string` | ✅ | ID of the deleted record | - --- ## ExportRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name (e.g. account) | -| **fields** | `string \| object[]` | optional | Fields to retrieve | -| **where** | `any` | optional | Filtering criteria (WHERE) | -| **search** | `object` | optional | Full-text search configuration ($search parameter) | -| **orderBy** | `object[]` | optional | Sorting instructions (ORDER BY) | -| **limit** | `number` | optional | Max records to return (LIMIT) | -| **offset** | `number` | optional | Records to skip (OFFSET) | -| **cursor** | `Record` | optional | Cursor for keyset pagination | -| **joins** | `object[]` | optional | Explicit Table Joins | -| **aggregations** | `object[]` | optional | Aggregation functions | -| **groupBy** | `string[]` | optional | GROUP BY fields | -| **having** | `any` | optional | HAVING clause for aggregation filtering | -| **windowFunctions** | `object[]` | optional | Window functions with OVER clause | -| **distinct** | `boolean` | optional | SELECT DISTINCT flag | -| **format** | `Enum<'csv' \| 'json' \| 'xlsx'>` | optional | | - --- ## ListRecordResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Operation success status | -| **error** | `object` | optional | Error details if success is false | -| **meta** | `object` | optional | Response metadata | -| **data** | `Record[]` | ✅ | Array of matching records | -| **pagination** | `object` | ✅ | Pagination info | - --- ## ModificationResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Record ID if processed | -| **success** | `boolean` | ✅ | | -| **errors** | `object[]` | optional | | - --- ## RecordData -Key-value map of record data - --- ## SingleRecordResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Operation success status | -| **error** | `object` | optional | Error details if success is false | -| **meta** | `object` | optional | Response metadata | -| **data** | `Record` | ✅ | The requested or modified record | - --- ## UpdateRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **data** | `Record` | ✅ | Partial record data to update | - diff --git a/content/docs/references/api/discovery.mdx b/content/docs/references/api/discovery.mdx index 317f32033..3c031a94c 100644 --- a/content/docs/references/api/discovery.mdx +++ b/content/docs/references/api/discovery.mdx @@ -23,42 +23,11 @@ const result = ApiCapabilitiesSchema.parse(data); ## ApiCapabilities -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **graphql** | `boolean` | optional | | -| **search** | `boolean` | optional | | -| **websockets** | `boolean` | optional | | -| **files** | `boolean` | optional | | - --- ## ApiRoutes -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **data** | `string` | ✅ | e.g. /api/data | -| **metadata** | `string` | ✅ | e.g. /api/meta | -| **auth** | `string` | ✅ | e.g. /api/auth | -| **automation** | `string` | optional | e.g. /api/automation | -| **storage** | `string` | optional | e.g. /api/storage | -| **graphql** | `string` | optional | e.g. /graphql | - --- ## Discovery -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | | -| **version** | `string` | ✅ | | -| **environment** | `Enum<'production' \| 'sandbox' \| 'development'>` | ✅ | | -| **routes** | `object` | ✅ | | -| **features** | `object` | ✅ | | -| **locale** | `object` | ✅ | | - diff --git a/content/docs/references/api/endpoint.mdx b/content/docs/references/api/endpoint.mdx index 367740eb5..65a3f83aa 100644 --- a/content/docs/references/api/endpoint.mdx +++ b/content/docs/references/api/endpoint.mdx @@ -23,45 +23,11 @@ const result = ApiEndpointSchema.parse(data); ## ApiEndpoint -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique endpoint ID | -| **path** | `string` | ✅ | URL Path (e.g. /api/v1/customers) | -| **method** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'DELETE' \| 'PATCH' \| 'HEAD' \| 'OPTIONS'>` | ✅ | HTTP Method | -| **summary** | `string` | optional | | -| **description** | `string` | optional | | -| **type** | `Enum<'flow' \| 'script' \| 'object_operation' \| 'proxy'>` | ✅ | Implementation type | -| **target** | `string` | ✅ | Target Flow ID, Script Name, or Proxy URL | -| **objectParams** | `object` | optional | For object_operation type | -| **inputMapping** | `object[]` | optional | Map Request Body to Internal Params | -| **outputMapping** | `object[]` | optional | Map Internal Result to Response Body | -| **authRequired** | `boolean` | optional | Require authentication | -| **rateLimit** | `object` | optional | Rate limiting policy | -| **cacheTtl** | `number` | optional | Response cache TTL in seconds | - --- ## ApiMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **source** | `string` | ✅ | Source field/path | -| **target** | `string` | ✅ | Target field/path | -| **transform** | `string` | optional | Transformation function name | - --- ## RateLimit -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable rate limiting | -| **windowMs** | `integer` | optional | Time window in milliseconds | -| **maxRequests** | `integer` | optional | Max requests per window | - diff --git a/content/docs/references/api/errors.mdx b/content/docs/references/api/errors.mdx index 0d75dca58..8dc477c0e 100644 --- a/content/docs/references/api/errors.mdx +++ b/content/docs/references/api/errors.mdx @@ -23,122 +23,19 @@ const result = EnhancedApiErrorSchema.parse(data); ## EnhancedApiError -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **code** | `Enum<'validation_error' \| 'invalid_field' \| 'missing_required_field' \| 'invalid_format' \| 'value_too_long' \| 'value_too_short' \| 'value_out_of_range' \| 'invalid_reference' \| 'duplicate_value' \| 'invalid_query' \| 'invalid_filter' \| 'invalid_sort' \| 'max_records_exceeded' \| 'unauthenticated' \| 'invalid_credentials' \| 'expired_token' \| 'invalid_token' \| 'session_expired' \| 'mfa_required' \| 'email_not_verified' \| 'permission_denied' \| 'insufficient_privileges' \| 'field_not_accessible' \| 'record_not_accessible' \| 'license_required' \| 'ip_restricted' \| 'time_restricted' \| 'resource_not_found' \| 'object_not_found' \| 'record_not_found' \| 'field_not_found' \| 'endpoint_not_found' \| 'resource_conflict' \| 'concurrent_modification' \| 'delete_restricted' \| 'duplicate_record' \| 'lock_conflict' \| 'rate_limit_exceeded' \| 'quota_exceeded' \| 'concurrent_limit_exceeded' \| 'internal_error' \| 'database_error' \| 'timeout' \| 'service_unavailable' \| 'not_implemented' \| 'external_service_error' \| 'integration_error' \| 'webhook_delivery_failed' \| 'batch_partial_failure' \| 'batch_complete_failure' \| 'transaction_failed'>` | ✅ | Machine-readable error code | -| **message** | `string` | ✅ | Human-readable error message | -| **category** | `Enum<'validation' \| 'authentication' \| 'authorization' \| 'not_found' \| 'conflict' \| 'rate_limit' \| 'server' \| 'external' \| 'maintenance'>` | optional | Error category | -| **httpStatus** | `number` | optional | HTTP status code | -| **retryable** | `boolean` | optional | Whether the request can be retried | -| **retryStrategy** | `Enum<'no_retry' \| 'retry_immediate' \| 'retry_backoff' \| 'retry_after'>` | optional | Recommended retry strategy | -| **retryAfter** | `number` | optional | Seconds to wait before retrying | -| **details** | `any` | optional | Additional error context | -| **fieldErrors** | `object[]` | optional | Field-specific validation errors | -| **timestamp** | `string` | optional | When the error occurred | -| **requestId** | `string` | optional | Request ID for tracking | -| **traceId** | `string` | optional | Distributed trace ID | -| **documentation** | `string` | optional | URL to error documentation | -| **helpText** | `string` | optional | Suggested actions to resolve the error | - --- ## ErrorCategory -### Allowed Values - -* `validation` -* `authentication` -* `authorization` -* `not_found` -* `conflict` -* `rate_limit` -* `server` -* `external` -* `maintenance` - --- ## ErrorResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Always false for error responses | -| **error** | `object` | ✅ | Error details | -| **meta** | `object` | optional | Response metadata | - --- ## FieldError -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Field path (supports dot notation) | -| **code** | `Enum<'validation_error' \| 'invalid_field' \| 'missing_required_field' \| 'invalid_format' \| 'value_too_long' \| 'value_too_short' \| 'value_out_of_range' \| 'invalid_reference' \| 'duplicate_value' \| 'invalid_query' \| 'invalid_filter' \| 'invalid_sort' \| 'max_records_exceeded' \| 'unauthenticated' \| 'invalid_credentials' \| 'expired_token' \| 'invalid_token' \| 'session_expired' \| 'mfa_required' \| 'email_not_verified' \| 'permission_denied' \| 'insufficient_privileges' \| 'field_not_accessible' \| 'record_not_accessible' \| 'license_required' \| 'ip_restricted' \| 'time_restricted' \| 'resource_not_found' \| 'object_not_found' \| 'record_not_found' \| 'field_not_found' \| 'endpoint_not_found' \| 'resource_conflict' \| 'concurrent_modification' \| 'delete_restricted' \| 'duplicate_record' \| 'lock_conflict' \| 'rate_limit_exceeded' \| 'quota_exceeded' \| 'concurrent_limit_exceeded' \| 'internal_error' \| 'database_error' \| 'timeout' \| 'service_unavailable' \| 'not_implemented' \| 'external_service_error' \| 'integration_error' \| 'webhook_delivery_failed' \| 'batch_partial_failure' \| 'batch_complete_failure' \| 'transaction_failed'>` | ✅ | Error code for this field | -| **message** | `string` | ✅ | Human-readable error message | -| **value** | `any` | optional | The invalid value that was provided | -| **constraint** | `any` | optional | The constraint that was violated (e.g., max length) | - --- ## StandardErrorCode -### Allowed Values - -* `validation_error` -* `invalid_field` -* `missing_required_field` -* `invalid_format` -* `value_too_long` -* `value_too_short` -* `value_out_of_range` -* `invalid_reference` -* `duplicate_value` -* `invalid_query` -* `invalid_filter` -* `invalid_sort` -* `max_records_exceeded` -* `unauthenticated` -* `invalid_credentials` -* `expired_token` -* `invalid_token` -* `session_expired` -* `mfa_required` -* `email_not_verified` -* `permission_denied` -* `insufficient_privileges` -* `field_not_accessible` -* `record_not_accessible` -* `license_required` -* `ip_restricted` -* `time_restricted` -* `resource_not_found` -* `object_not_found` -* `record_not_found` -* `field_not_found` -* `endpoint_not_found` -* `resource_conflict` -* `concurrent_modification` -* `delete_restricted` -* `duplicate_record` -* `lock_conflict` -* `rate_limit_exceeded` -* `quota_exceeded` -* `concurrent_limit_exceeded` -* `internal_error` -* `database_error` -* `timeout` -* `service_unavailable` -* `not_implemented` -* `external_service_error` -* `integration_error` -* `webhook_delivery_failed` -* `batch_partial_failure` -* `batch_complete_failure` -* `transaction_failed` - diff --git a/content/docs/references/api/graphql.mdx b/content/docs/references/api/graphql.mdx index 9b0bd77a5..81944b89c 100644 --- a/content/docs/references/api/graphql.mdx +++ b/content/docs/references/api/graphql.mdx @@ -23,247 +23,55 @@ const result = GraphQLConfigSchema.parse(data); ## GraphQLConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable GraphQL API | -| **path** | `string` | optional | GraphQL endpoint path | -| **playground** | `object` | optional | GraphQL Playground configuration | -| **schema** | `object` | optional | Schema generation configuration | -| **dataLoaders** | `object[]` | optional | DataLoader configurations | -| **security** | `object` | optional | Security configuration | - --- ## GraphQLDataLoaderConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | DataLoader name | -| **source** | `string` | ✅ | Source object or datasource | -| **batchFunction** | `object` | ✅ | Batch function configuration | -| **cache** | `object` | optional | DataLoader caching | -| **options** | `object` | optional | DataLoader options | - --- ## GraphQLDirectiveConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Directive name (camelCase) | -| **description** | `string` | optional | Directive description | -| **locations** | `Enum<'QUERY' \| 'MUTATION' \| 'SUBSCRIPTION' \| 'FIELD' \| 'FRAGMENT_DEFINITION' \| 'FRAGMENT_SPREAD' \| 'INLINE_FRAGMENT' \| 'VARIABLE_DEFINITION' \| 'SCHEMA' \| 'SCALAR' \| 'OBJECT' \| 'FIELD_DEFINITION' \| 'ARGUMENT_DEFINITION' \| 'INTERFACE' \| 'UNION' \| 'ENUM' \| 'ENUM_VALUE' \| 'INPUT_OBJECT' \| 'INPUT_FIELD_DEFINITION'>[]` | ✅ | Directive locations | -| **args** | `Record` | optional | Directive arguments | -| **repeatable** | `boolean` | optional | Can be applied multiple times | -| **implementation** | `object` | optional | Directive implementation | - --- ## GraphQLDirectiveLocation -### Allowed Values - -* `QUERY` -* `MUTATION` -* `SUBSCRIPTION` -* `FIELD` -* `FRAGMENT_DEFINITION` -* `FRAGMENT_SPREAD` -* `INLINE_FRAGMENT` -* `VARIABLE_DEFINITION` -* `SCHEMA` -* `SCALAR` -* `OBJECT` -* `FIELD_DEFINITION` -* `ARGUMENT_DEFINITION` -* `INTERFACE` -* `UNION` -* `ENUM` -* `ENUM_VALUE` -* `INPUT_OBJECT` -* `INPUT_FIELD_DEFINITION` - --- ## GraphQLMutationConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Mutation field name (camelCase recommended) | -| **object** | `string` | ✅ | Source ObjectQL object name | -| **type** | `Enum<'create' \| 'update' \| 'delete' \| 'upsert' \| 'custom'>` | ✅ | Mutation type | -| **description** | `string` | optional | Mutation description | -| **input** | `object` | optional | Input configuration | -| **output** | `object` | optional | Output configuration | -| **transaction** | `object` | optional | Transaction configuration | -| **authRequired** | `boolean` | optional | Require authentication | -| **permissions** | `string[]` | optional | Required permissions | -| **hooks** | `object` | optional | Lifecycle hooks | - --- ## GraphQLPersistedQuery -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable persisted queries | -| **mode** | `Enum<'optional' \| 'required'>` | optional | Persisted query mode (optional: allow both, required: only persisted) | -| **store** | `object` | optional | Query store configuration | -| **apq** | `object` | optional | Automatic Persisted Queries configuration | -| **allowlist** | `object` | optional | Query allow list configuration | -| **security** | `object` | optional | Security configuration | - --- ## GraphQLQueryComplexity -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable query complexity limiting | -| **maxComplexity** | `integer` | optional | Maximum query complexity | -| **defaultFieldComplexity** | `integer` | optional | Default complexity per field | -| **fieldComplexity** | `Record` | optional | Per-field complexity configuration | -| **listMultiplier** | `number` | optional | Multiplier for list fields | -| **onComplexityExceeded** | `Enum<'reject' \| 'log' \| 'warn'>` | optional | Action when complexity exceeded | -| **errorMessage** | `string` | optional | Custom error message for complexity violations | - --- ## GraphQLQueryConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Query field name (camelCase recommended) | -| **object** | `string` | ✅ | Source ObjectQL object name | -| **type** | `Enum<'get' \| 'list' \| 'search'>` | ✅ | Query type | -| **description** | `string` | optional | Query description | -| **args** | `Record` | optional | Query arguments | -| **filtering** | `object` | optional | Filtering capabilities | -| **sorting** | `object` | optional | Sorting capabilities | -| **pagination** | `object` | optional | Pagination configuration | -| **fields** | `object` | optional | Field selection configuration | -| **authRequired** | `boolean` | optional | Require authentication | -| **permissions** | `string[]` | optional | Required permissions | -| **cache** | `object` | optional | Query caching | - --- ## GraphQLQueryDepthLimit -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable query depth limiting | -| **maxDepth** | `integer` | optional | Maximum query depth | -| **ignoreFields** | `string[]` | optional | Fields excluded from depth calculation | -| **onDepthExceeded** | `Enum<'reject' \| 'log' \| 'warn'>` | optional | Action when depth exceeded | -| **errorMessage** | `string` | optional | Custom error message for depth violations | - --- ## GraphQLRateLimit -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable rate limiting | -| **strategy** | `Enum<'token_bucket' \| 'fixed_window' \| 'sliding_window' \| 'cost_based'>` | optional | Rate limiting strategy | -| **global** | `object` | optional | Global rate limits | -| **perUser** | `object` | optional | Per-user rate limits | -| **costBased** | `object` | optional | Cost-based rate limiting | -| **operations** | `Record` | optional | Per-operation rate limits | -| **onLimitExceeded** | `Enum<'reject' \| 'queue' \| 'log'>` | optional | Action when rate limit exceeded | -| **errorMessage** | `string` | optional | Custom error message for rate limit violations | -| **includeHeaders** | `boolean` | optional | Include rate limit headers in response | - --- ## GraphQLResolverConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **path** | `string` | ✅ | Resolver path (Type.field) | -| **type** | `Enum<'datasource' \| 'computed' \| 'script' \| 'proxy'>` | ✅ | Resolver implementation type | -| **implementation** | `object` | optional | Implementation configuration | -| **cache** | `object` | optional | Resolver caching | - --- ## GraphQLScalarType -### Allowed Values - -* `ID` -* `String` -* `Int` -* `Float` -* `Boolean` -* `DateTime` -* `Date` -* `Time` -* `JSON` -* `JSONObject` -* `Upload` -* `URL` -* `Email` -* `PhoneNumber` -* `Currency` -* `Decimal` -* `BigInt` -* `Long` -* `UUID` -* `Base64` -* `Void` - --- ## GraphQLSubscriptionConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Subscription field name (camelCase recommended) | -| **object** | `string` | ✅ | Source ObjectQL object name | -| **events** | `Enum<'created' \| 'updated' \| 'deleted' \| 'custom'>[]` | ✅ | Events to subscribe to | -| **description** | `string` | optional | Subscription description | -| **filter** | `object` | optional | Subscription filtering | -| **payload** | `object` | optional | Payload configuration | -| **authRequired** | `boolean` | optional | Require authentication | -| **permissions** | `string[]` | optional | Required permissions | -| **rateLimit** | `object` | optional | Subscription rate limiting | - --- ## GraphQLTypeConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | GraphQL type name (PascalCase recommended) | -| **object** | `string` | ✅ | Source ObjectQL object name | -| **description** | `string` | optional | Type description | -| **fields** | `object` | optional | Field configuration | -| **interfaces** | `string[]` | optional | GraphQL interface names | -| **isInterface** | `boolean` | optional | Define as GraphQL interface | -| **directives** | `object[]` | optional | GraphQL directives | - diff --git a/content/docs/references/api/http-cache.mdx b/content/docs/references/api/http-cache.mdx index 7186cb9a2..c45bb4352 100644 --- a/content/docs/references/api/http-cache.mdx +++ b/content/docs/references/api/http-cache.mdx @@ -23,101 +23,31 @@ const result = CacheControlSchema.parse(data); ## CacheControl -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **directives** | `Enum<'public' \| 'private' \| 'no-cache' \| 'no-store' \| 'must-revalidate' \| 'max-age'>[]` | ✅ | Cache control directives | -| **maxAge** | `number` | optional | Maximum cache age in seconds | -| **staleWhileRevalidate** | `number` | optional | Allow serving stale content while revalidating (seconds) | -| **staleIfError** | `number` | optional | Allow serving stale content on error (seconds) | - --- ## CacheDirective -### Allowed Values - -* `public` -* `private` -* `no-cache` -* `no-store` -* `must-revalidate` -* `max-age` - --- ## CacheInvalidationRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **target** | `Enum<'all' \| 'object' \| 'field' \| 'permission' \| 'layout' \| 'custom'>` | ✅ | What to invalidate | -| **identifiers** | `string[]` | optional | Specific resources to invalidate (e.g., object names) | -| **cascade** | `boolean` | optional | If true, invalidate dependent resources | -| **pattern** | `string` | optional | Pattern for custom invalidation (supports wildcards) | - --- ## CacheInvalidationResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Whether invalidation succeeded | -| **invalidated** | `number` | ✅ | Number of cache entries invalidated | -| **targets** | `string[]` | optional | List of invalidated resources | - --- ## CacheInvalidationTarget -### Allowed Values - -* `all` -* `object` -* `field` -* `permission` -* `layout` -* `custom` - --- ## ETag -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **value** | `string` | ✅ | ETag value (hash or version identifier) | -| **weak** | `boolean` | optional | Whether this is a weak ETag | - --- ## MetadataCacheRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **ifNoneMatch** | `string` | optional | ETag value for conditional request (If-None-Match header) | -| **ifModifiedSince** | `string` | optional | Timestamp for conditional request (If-Modified-Since header) | -| **cacheControl** | `object` | optional | Client cache control preferences | - --- ## MetadataCacheResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **data** | `any` | optional | Metadata payload (omitted for 304 Not Modified) | -| **etag** | `object` | optional | ETag for this resource version | -| **lastModified** | `string` | optional | Last modification timestamp | -| **cacheControl** | `object` | optional | Cache control directives | -| **notModified** | `boolean` | optional | True if resource has not been modified (304 response) | -| **version** | `string` | optional | Metadata version identifier | - diff --git a/content/docs/references/api/odata.mdx b/content/docs/references/api/odata.mdx index 034dedb3f..ee814f96e 100644 --- a/content/docs/references/api/odata.mdx +++ b/content/docs/references/api/odata.mdx @@ -23,120 +23,27 @@ const result = ODataConfigSchema.parse(data); ## ODataConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable OData API | -| **path** | `string` | optional | OData endpoint path | -| **metadata** | `object` | optional | OData metadata configuration | - --- ## ODataError -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **error** | `object` | ✅ | | - --- ## ODataFilterFunction -### Allowed Values - -* `contains` -* `startswith` -* `endswith` -* `length` -* `indexof` -* `substring` -* `tolower` -* `toupper` -* `trim` -* `concat` -* `year` -* `month` -* `day` -* `hour` -* `minute` -* `second` -* `date` -* `time` -* `now` -* `maxdatetime` -* `mindatetime` -* `round` -* `floor` -* `ceiling` -* `cast` -* `isof` -* `any` -* `all` - --- ## ODataFilterOperator -### Allowed Values - -* `eq` -* `ne` -* `lt` -* `le` -* `gt` -* `ge` -* `and` -* `or` -* `not` -* `(` -* `)` -* `in` -* `has` - --- ## ODataMetadata -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **namespace** | `string` | ✅ | Service namespace | -| **entityTypes** | `object[]` | ✅ | Entity types | -| **entitySets** | `object[]` | ✅ | Entity sets | - --- ## ODataQuery -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **$select** | `string \| string[]` | optional | Fields to select | -| **$filter** | `string` | optional | Filter expression (OData filter syntax) | -| **$orderby** | `string \| string[]` | optional | Sort order | -| **$top** | `integer` | optional | Max results to return | -| **$skip** | `integer` | optional | Results to skip | -| **$expand** | `string \| string[]` | optional | Navigation properties to expand | -| **$count** | `boolean` | optional | Include total count | -| **$search** | `string` | optional | Search expression | -| **$format** | `Enum<'json' \| 'xml' \| 'atom'>` | optional | Response format | -| **$apply** | `string` | optional | Aggregation expression | - --- ## ODataResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **@odata.context** | `string` | optional | Metadata context URL | -| **@odata.count** | `integer` | optional | Total results count | -| **@odata.nextLink** | `string` | optional | Next page URL | -| **value** | `Record[]` | ✅ | Results array | - diff --git a/content/docs/references/api/protocol.mdx b/content/docs/references/api/protocol.mdx index c4ae2ec36..2aaedebe6 100644 --- a/content/docs/references/api/protocol.mdx +++ b/content/docs/references/api/protocol.mdx @@ -23,411 +23,139 @@ const result = BatchDataRequestSchema.parse(data); ## BatchDataRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **request** | `object` | ✅ | Batch operation request | - --- ## BatchDataResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Operation success status | -| **error** | `object` | optional | Error details if success is false | -| **meta** | `object` | optional | Response metadata | -| **operation** | `Enum<'create' \| 'update' \| 'upsert' \| 'delete'>` | optional | Operation type that was performed | -| **total** | `number` | ✅ | Total number of records in the batch | -| **succeeded** | `number` | ✅ | Number of records that succeeded | -| **failed** | `number` | ✅ | Number of records that failed | -| **results** | `object[]` | ✅ | Detailed results for each record | - --- ## CreateDataRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **data** | `Record` | ✅ | Record data to create | - --- ## CreateDataResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **id** | `string` | ✅ | Created record ID | -| **record** | `Record` | ✅ | Created record (with server-generated fields) | - --- ## CreateManyDataRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **records** | `Record[]` | ✅ | Array of records to create | - --- ## CreateManyDataResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **records** | `Record[]` | ✅ | Created records | -| **count** | `number` | ✅ | Number of records created | - --- ## DeleteDataRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **id** | `string` | ✅ | Record ID to delete | - --- ## DeleteDataResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **id** | `string` | ✅ | Deleted record ID | -| **success** | `boolean` | ✅ | Whether deletion succeeded | - --- ## DeleteManyDataRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **ids** | `string[]` | ✅ | Array of record IDs to delete | -| **options** | `object` | optional | Delete options | - --- ## DeleteManyDataResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Operation success status | -| **error** | `object` | optional | Error details if success is false | -| **meta** | `object` | optional | Response metadata | -| **operation** | `Enum<'create' \| 'update' \| 'upsert' \| 'delete'>` | optional | Operation type that was performed | -| **total** | `number` | ✅ | Total number of records in the batch | -| **succeeded** | `number` | ✅ | Number of records that succeeded | -| **failed** | `number` | ✅ | Number of records that failed | -| **results** | `object[]` | ✅ | Detailed results for each record | - --- ## DeleteViewRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | View ID to delete | - --- ## DeleteViewResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Whether deletion succeeded | - --- ## FindDataRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name (snake_case) | -| **query** | `object` | optional | Query parameters (filter, sort, select, pagination) | - --- ## FindDataResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **records** | `Record[]` | ✅ | Array of records | -| **total** | `number` | optional | Total count (if requested) | -| **hasMore** | `boolean` | optional | Whether more records exist | - --- ## GetDataRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **id** | `string` | ✅ | Record ID | - --- ## GetDataResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **id** | `string` | ✅ | Record ID | -| **record** | `Record` | ✅ | Record data | - --- ## GetDiscoveryRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | - --- ## GetDiscoveryResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **version** | `string` | ✅ | API version (e.g., "v1", "2024-01") | -| **apiName** | `string` | ✅ | API name | -| **capabilities** | `string[]` | optional | Supported features/capabilities | -| **endpoints** | `Record` | optional | Available endpoint paths | - --- ## GetMetaItemCachedRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Metadata type name | -| **name** | `string` | ✅ | Item name | -| **cacheRequest** | `object` | optional | Cache validation parameters | - --- ## GetMetaItemCachedResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **data** | `any` | optional | Metadata payload (omitted for 304 Not Modified) | -| **etag** | `object` | optional | ETag for this resource version | -| **lastModified** | `string` | optional | Last modification timestamp | -| **cacheControl** | `object` | optional | Cache control directives | -| **notModified** | `boolean` | optional | True if resource has not been modified (304 response) | -| **version** | `string` | optional | Metadata version identifier | - --- ## GetMetaItemRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Metadata type name | -| **name** | `string` | ✅ | Item name (snake_case identifier) | - --- ## GetMetaItemResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Metadata type name | -| **name** | `string` | ✅ | Item name | -| **item** | `any` | optional | Metadata item definition | - --- ## GetMetaItemsRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Metadata type name (e.g., "object", "plugin") | - --- ## GetMetaItemsResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Metadata type name | -| **items** | `any[]` | ✅ | Array of metadata items | - --- ## GetMetaTypesRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | - --- ## GetMetaTypesResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **types** | `string[]` | ✅ | Available metadata type names (e.g., "object", "plugin", "view") | - --- ## GetUiViewRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name (snake_case) | -| **type** | `Enum<'list' \| 'form'>` | ✅ | View type | - --- ## GetUiViewResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **type** | `Enum<'list' \| 'form'>` | ✅ | View type | -| **view** | `any` | optional | View definition | - --- ## GetViewRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | View ID | - --- ## GetViewResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | | -| **data** | `object` | optional | The saved view | -| **error** | `object` | optional | | - --- ## ObjectStackProtocol -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | - --- ## UpdateDataRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **id** | `string` | ✅ | Record ID to update | -| **data** | `Record` | ✅ | Fields to update | - --- ## UpdateDataResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **id** | `string` | ✅ | Updated record ID | -| **record** | `Record` | ✅ | Updated record | - --- ## UpdateManyDataRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name | -| **records** | `object[]` | ✅ | Array of updates | -| **options** | `object` | optional | Update options | - --- ## UpdateManyDataResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Operation success status | -| **error** | `object` | optional | Error details if success is false | -| **meta** | `object` | optional | Response metadata | -| **operation** | `Enum<'create' \| 'update' \| 'upsert' \| 'delete'>` | optional | Operation type that was performed | -| **total** | `number` | ✅ | Total number of records in the batch | -| **succeeded** | `number` | ✅ | Number of records that succeeded | -| **failed** | `number` | ✅ | Number of records that failed | -| **results** | `object[]` | ✅ | Detailed results for each record | - diff --git a/content/docs/references/api/realtime.mdx b/content/docs/references/api/realtime.mdx index 672a6a37a..0f5ed4081 100644 --- a/content/docs/references/api/realtime.mdx +++ b/content/docs/references/api/realtime.mdx @@ -23,106 +23,35 @@ const result = PresenceSchema.parse(data); ## Presence -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **userId** | `string` | ✅ | User identifier | -| **status** | `Enum<'online' \| 'away' \| 'offline'>` | ✅ | Current presence status | -| **lastSeen** | `string` | ✅ | ISO 8601 datetime of last activity | -| **metadata** | `Record` | optional | Custom presence data (e.g., current page, custom status) | - --- ## PresenceStatus -### Allowed Values - -* `online` -* `away` -* `offline` - --- ## RealtimeAction -### Allowed Values - -* `created` -* `updated` -* `deleted` - --- ## RealtimeConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable realtime synchronization | -| **transport** | `Enum<'websocket' \| 'sse' \| 'polling'>` | optional | Transport protocol | -| **subscriptions** | `object[]` | optional | Default subscriptions | - --- ## RealtimeEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique event identifier | -| **type** | `string` | ✅ | Event type (e.g., record.created, record.updated) | -| **object** | `string` | optional | Object name the event relates to | -| **action** | `Enum<'created' \| 'updated' \| 'deleted'>` | optional | Action performed | -| **payload** | `any` | optional | Event payload data | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when event occurred | -| **userId** | `string` | optional | User who triggered the event | - --- ## RealtimeEventType -### Allowed Values - -* `record.created` -* `record.updated` -* `record.deleted` -* `field.changed` - --- ## Subscription -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique subscription identifier | -| **events** | `object[]` | ✅ | Array of events to subscribe to | -| **transport** | `Enum<'websocket' \| 'sse' \| 'polling'>` | ✅ | Transport protocol to use | -| **channel** | `string` | optional | Optional channel name for grouping subscriptions | - --- ## SubscriptionEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'record.created' \| 'record.updated' \| 'record.deleted' \| 'field.changed'>` | ✅ | Type of event to subscribe to | -| **object** | `string` | optional | Object name to subscribe to | -| **filters** | `any` | optional | Filter conditions | - --- ## TransportProtocol -### Allowed Values - -* `websocket` -* `sse` -* `polling` - diff --git a/content/docs/references/api/rest-server.mdx b/content/docs/references/api/rest-server.mdx index d3a7d2b27..985b18849 100644 --- a/content/docs/references/api/rest-server.mdx +++ b/content/docs/references/api/rest-server.mdx @@ -23,137 +23,39 @@ const result = BatchEndpointsConfigSchema.parse(data); ## BatchEndpointsConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **maxBatchSize** | `integer` | optional | Maximum records per batch operation | -| **enableBatchEndpoint** | `boolean` | optional | Enable POST /data/:object/batch endpoint | -| **operations** | `object` | optional | Enable/disable specific batch operations | -| **defaultAtomic** | `boolean` | optional | Default atomic/transaction mode for batch operations | - --- ## CrudEndpointPattern -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'DELETE' \| 'PATCH' \| 'HEAD' \| 'OPTIONS'>` | ✅ | HTTP method | -| **path** | `string` | ✅ | URL path pattern | -| **summary** | `string` | optional | Operation summary | -| **description** | `string` | optional | Operation description | - --- ## CrudEndpointsConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **operations** | `object` | optional | Enable/disable operations | -| **patterns** | `Record` | optional | Custom URL patterns for operations | -| **dataPrefix** | `string` | optional | URL prefix for data endpoints | -| **objectParamStyle** | `Enum<'path' \| 'query'>` | optional | How object name is passed (path param or query param) | - --- ## CrudOperation -### Allowed Values - -* `create` -* `read` -* `update` -* `delete` -* `list` - --- ## EndpointRegistry -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **endpoints** | `object[]` | ✅ | All generated endpoints | -| **total** | `integer` | ✅ | Total number of endpoints | -| **byObject** | `Record` | optional | Endpoints grouped by object | -| **byOperation** | `Record` | optional | Endpoints grouped by operation | - --- ## GeneratedEndpoint -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique endpoint identifier | -| **method** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'DELETE' \| 'PATCH' \| 'HEAD' \| 'OPTIONS'>` | ✅ | HTTP method | -| **path** | `string` | ✅ | Full URL path | -| **object** | `string` | ✅ | Object name (snake_case) | -| **operation** | `Enum<'create' \| 'read' \| 'update' \| 'delete' \| 'list'> \| string` | ✅ | Operation type | -| **handler** | `string` | ✅ | Handler function identifier | -| **metadata** | `object` | optional | | - --- ## MetadataEndpointsConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **prefix** | `string` | optional | URL prefix for metadata endpoints | -| **enableCache** | `boolean` | optional | Enable HTTP cache headers (ETag, Last-Modified) | -| **cacheTtl** | `integer` | optional | Cache TTL in seconds | -| **endpoints** | `object` | optional | Enable/disable specific endpoints | - --- ## RestApiConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **version** | `string` | optional | API version (e.g., v1, v2, 2024-01) | -| **basePath** | `string` | optional | Base URL path for API | -| **apiPath** | `string` | optional | Full API path (defaults to `{basePath}`/`{version}`) | -| **enableCrud** | `boolean` | optional | Enable automatic CRUD endpoint generation | -| **enableMetadata** | `boolean` | optional | Enable metadata API endpoints | -| **enableBatch** | `boolean` | optional | Enable batch operation endpoints | -| **enableDiscovery** | `boolean` | optional | Enable API discovery endpoint | -| **documentation** | `object` | optional | OpenAPI/Swagger documentation config | -| **responseFormat** | `object` | optional | Response format options | - --- ## RestServerConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **api** | `object` | optional | REST API configuration | -| **crud** | `object` | optional | CRUD endpoints configuration | -| **metadata** | `object` | optional | Metadata endpoints configuration | -| **batch** | `object` | optional | Batch endpoints configuration | -| **routes** | `object` | optional | Route generation configuration | - --- ## RouteGenerationConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **includeObjects** | `string[]` | optional | Specific objects to generate routes for (empty = all) | -| **excludeObjects** | `string[]` | optional | Objects to exclude from route generation | -| **nameTransform** | `Enum<'none' \| 'plural' \| 'kebab-case' \| 'camelCase'>` | optional | Transform object names in URLs | -| **overrides** | `Record` | optional | Per-object route customization | - diff --git a/content/docs/references/api/router.mdx b/content/docs/references/api/router.mdx index bfed2ea45..dfa8108f6 100644 --- a/content/docs/references/api/router.mdx +++ b/content/docs/references/api/router.mdx @@ -23,44 +23,11 @@ const result = RouteCategorySchema.parse(data); ## RouteCategory -### Allowed Values - -* `system` -* `api` -* `auth` -* `static` -* `webhook` -* `plugin` - --- ## RouteDefinition -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'DELETE' \| 'PATCH' \| 'HEAD' \| 'OPTIONS'>` | ✅ | | -| **path** | `string` | ✅ | URL Path pattern | -| **category** | `Enum<'system' \| 'api' \| 'auth' \| 'static' \| 'webhook' \| 'plugin'>` | optional | | -| **handler** | `string` | ✅ | Unique handler identifier | -| **summary** | `string` | optional | OpenAPI summary | -| **description** | `string` | optional | OpenAPI description | -| **public** | `boolean` | optional | Is publicly accessible | -| **permissions** | `string[]` | optional | Required permissions | -| **timeout** | `integer` | optional | Execution timeout in ms | -| **rateLimit** | `string` | optional | Rate limit policy name | - --- ## RouterConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **basePath** | `string` | optional | Global API prefix | -| **mounts** | `object` | optional | | -| **cors** | `object` | optional | | -| **staticMounts** | `object[]` | optional | | - diff --git a/content/docs/references/api/view-storage.mdx b/content/docs/references/api/view-storage.mdx index cefc8c0ae..cde84b365 100644 --- a/content/docs/references/api/view-storage.mdx +++ b/content/docs/references/api/view-storage.mdx @@ -23,172 +23,39 @@ const result = CreateViewRequestSchema.parse(data); ## CreateViewRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | View machine name | -| **label** | `string` | ✅ | Display label | -| **description** | `string` | optional | | -| **object** | `string` | ✅ | Object name | -| **type** | `Enum<'list' \| 'kanban' \| 'calendar' \| 'gantt' \| 'timeline' \| 'chart' \| 'pivot' \| 'custom'>` | ✅ | View type | -| **visibility** | `Enum<'private' \| 'shared' \| 'public' \| 'organization'>` | ✅ | View visibility | -| **query** | `object` | ✅ | Query configuration | -| **layout** | `object` | optional | Layout configuration | -| **sharedWith** | `string[]` | optional | Users/teams to share with | -| **isDefault** | `boolean` | optional | Set as default view | -| **settings** | `Record` | optional | | - --- ## ListViewsRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | optional | Filter by object name | -| **type** | `Enum<'list' \| 'kanban' \| 'calendar' \| 'gantt' \| 'timeline' \| 'chart' \| 'pivot' \| 'custom'>` | optional | Filter by view type | -| **visibility** | `Enum<'private' \| 'shared' \| 'public' \| 'organization'>` | optional | Filter by visibility | -| **createdBy** | `string` | optional | Filter by creator user ID | -| **isDefault** | `boolean` | optional | Filter for default views | -| **limit** | `number` | optional | Max results | -| **offset** | `number` | optional | Offset for pagination | - --- ## ListViewsResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | | -| **data** | `object[]` | ✅ | Array of saved views | -| **pagination** | `object` | ✅ | | -| **error** | `object` | optional | | - --- ## SavedView -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique view identifier | -| **name** | `string` | ✅ | View machine name (snake_case) | -| **label** | `string` | ✅ | Display label | -| **description** | `string` | optional | View description | -| **object** | `string` | ✅ | Object/table this view is for | -| **type** | `Enum<'list' \| 'kanban' \| 'calendar' \| 'gantt' \| 'timeline' \| 'chart' \| 'pivot' \| 'custom'>` | ✅ | View type | -| **visibility** | `Enum<'private' \| 'shared' \| 'public' \| 'organization'>` | ✅ | Who can access this view | -| **query** | `object` | ✅ | Query configuration (filters, sorting, etc.) | -| **layout** | `object` | optional | Layout configuration | -| **sharedWith** | `string[]` | optional | User/team IDs this view is shared with | -| **isDefault** | `boolean` | optional | Is this the default view for this object? | -| **isSystem** | `boolean` | optional | Is this a system-defined view? | -| **createdBy** | `string` | ✅ | User ID who created this view | -| **createdAt** | `string` | ✅ | When the view was created | -| **updatedBy** | `string` | optional | User ID who last updated this view | -| **updatedAt** | `string` | optional | When the view was last updated | -| **settings** | `Record` | optional | Additional view-specific settings | - --- ## UpdateViewRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | optional | View machine name | -| **label** | `string` | optional | Display label | -| **description** | `string` | optional | | -| **object** | `string` | optional | Object name | -| **type** | `Enum<'list' \| 'kanban' \| 'calendar' \| 'gantt' \| 'timeline' \| 'chart' \| 'pivot' \| 'custom'>` | optional | View type | -| **visibility** | `Enum<'private' \| 'shared' \| 'public' \| 'organization'>` | optional | View visibility | -| **query** | `object` | optional | Query configuration | -| **layout** | `object` | optional | Layout configuration | -| **sharedWith** | `string[]` | optional | Users/teams to share with | -| **isDefault** | `boolean` | optional | Set as default view | -| **settings** | `Record` | optional | | -| **id** | `string` | ✅ | View ID to update | - --- ## ViewColumn -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Field name | -| **label** | `string` | optional | Custom column label | -| **width** | `number` | optional | Column width in pixels | -| **sortable** | `boolean` | optional | Whether column is sortable | -| **filterable** | `boolean` | optional | Whether column is filterable | -| **visible** | `boolean` | optional | Whether column is visible | -| **pinned** | `Enum<'left' \| 'right'>` | optional | Pin column to left or right | -| **formatter** | `string` | optional | Custom formatter name | -| **aggregation** | `string` | optional | Aggregation function for column (sum, avg, etc.) | - --- ## ViewLayout -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **columns** | `object[]` | optional | Column configuration for list views | -| **rowHeight** | `number` | optional | Row height in pixels | -| **groupByField** | `string` | optional | Field to group by (for kanban) | -| **cardFields** | `string[]` | optional | Fields to display on cards | -| **dateField** | `string` | optional | Date field for calendar view | -| **startDateField** | `string` | optional | Start date field for event ranges | -| **endDateField** | `string` | optional | End date field for event ranges | -| **titleField** | `string` | optional | Field to use as event title | -| **chartType** | `Enum<'bar' \| 'line' \| 'pie' \| 'scatter' \| 'area'>` | optional | Chart type | -| **xAxis** | `string` | optional | X-axis field | -| **yAxis** | `string` | optional | Y-axis field | -| **series** | `string[]` | optional | Series fields for multi-series charts | - --- ## ViewResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | | -| **data** | `object` | optional | The saved view | -| **error** | `object` | optional | | - --- ## ViewType -### Allowed Values - -* `list` -* `kanban` -* `calendar` -* `gantt` -* `timeline` -* `chart` -* `pivot` -* `custom` - --- ## ViewVisibility -### Allowed Values - -* `private` -* `shared` -* `public` -* `organization` - diff --git a/content/docs/references/api/view.mdx b/content/docs/references/api/view.mdx index 1ce01caf7..e5078e96b 100644 --- a/content/docs/references/api/view.mdx +++ b/content/docs/references/api/view.mdx @@ -23,13 +23,3 @@ const result = HttpMethodSchema.parse(data); ## HttpMethod -### Allowed Values - -* `GET` -* `POST` -* `PUT` -* `DELETE` -* `PATCH` -* `HEAD` -* `OPTIONS` - diff --git a/content/docs/references/api/websocket.mdx b/content/docs/references/api/websocket.mdx index c3ff861d5..08ac14b68 100644 --- a/content/docs/references/api/websocket.mdx +++ b/content/docs/references/api/websocket.mdx @@ -23,364 +23,106 @@ const result = AckMessageSchema.parse(data); ## AckMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **messageId** | `string` | ✅ | Unique message identifier | -| **type** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when message was sent | -| **ackMessageId** | `string` | ✅ | ID of the message being acknowledged | -| **success** | `boolean` | ✅ | Whether the operation was successful | -| **error** | `string` | optional | Error message if operation failed | - --- ## CursorMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **messageId** | `string` | ✅ | Unique message identifier | -| **type** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when message was sent | -| **cursor** | `object` | ✅ | Cursor position | - --- ## CursorPosition -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **userId** | `string` | ✅ | User identifier | -| **sessionId** | `string` | ✅ | Session identifier | -| **documentId** | `string` | ✅ | Document identifier being edited | -| **position** | `object` | optional | Cursor position in document | -| **selection** | `object` | optional | Selection range (if text is selected) | -| **color** | `string` | optional | Cursor color for visual representation | -| **userName** | `string` | optional | Display name of user | -| **lastUpdate** | `string` | ✅ | ISO 8601 datetime of last cursor update | - --- ## DocumentState -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **documentId** | `string` | ✅ | Document identifier | -| **version** | `integer` | ✅ | Current document version | -| **content** | `string` | ✅ | Current document content | -| **lastModified** | `string` | ✅ | ISO 8601 datetime of last modification | -| **activeSessions** | `string[]` | ✅ | Active editing session IDs | -| **checksum** | `string` | optional | Content checksum for integrity verification | - --- ## EditMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **messageId** | `string` | ✅ | Unique message identifier | -| **type** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when message was sent | -| **operation** | `object` | ✅ | Edit operation | - --- ## EditOperation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **operationId** | `string` | ✅ | Unique operation identifier | -| **documentId** | `string` | ✅ | Document identifier | -| **userId** | `string` | ✅ | User who performed the edit | -| **sessionId** | `string` | ✅ | Session identifier | -| **type** | `Enum<'insert' \| 'delete' \| 'replace'>` | ✅ | Type of edit operation | -| **position** | `object` | ✅ | Starting position of the operation | -| **endPosition** | `object` | optional | Ending position (for delete/replace operations) | -| **content** | `string` | optional | Content to insert/replace | -| **version** | `integer` | ✅ | Document version before this operation | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when operation was created | -| **baseOperationId** | `string` | optional | Previous operation ID this builds upon (for OT) | - --- ## EditOperationType -### Allowed Values - -* `insert` -* `delete` -* `replace` - --- ## ErrorMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **messageId** | `string` | ✅ | Unique message identifier | -| **type** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when message was sent | -| **code** | `string` | ✅ | Error code | -| **message** | `string` | ✅ | Error message | -| **details** | `any` | optional | Additional error details | - --- ## EventFilter -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **conditions** | `object[]` | optional | Array of filter conditions | -| **and** | `any[]` | optional | AND logical combination of filters | -| **or** | `any[]` | optional | OR logical combination of filters | -| **not** | `any` | optional | NOT logical negation of filter | - --- ## EventFilterCondition -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Field path to filter on (supports dot notation, e.g., "user.email") | -| **operator** | `Enum<'eq' \| 'ne' \| 'gt' \| 'gte' \| 'lt' \| 'lte' \| 'in' \| 'nin' \| 'contains' \| 'startsWith' \| 'endsWith' \| 'exists' \| 'regex'>` | ✅ | Comparison operator | -| **value** | `any` | optional | Value to compare against (not needed for "exists" operator) | - --- ## EventMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **messageId** | `string` | ✅ | Unique message identifier | -| **type** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when message was sent | -| **subscriptionId** | `string` | ✅ | Subscription ID this event belongs to | -| **eventName** | `string` | ✅ | Event name | -| **object** | `string` | optional | Object name the event relates to | -| **payload** | `any` | optional | Event payload data | -| **userId** | `string` | optional | User who triggered the event | - --- ## EventPattern -Event pattern (supports wildcards like "record.*" or "*.created") - --- ## EventSubscription -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **subscriptionId** | `string` | ✅ | Unique subscription identifier | -| **events** | `string[]` | ✅ | Event patterns to subscribe to (supports wildcards, e.g., "record.*", "user.created") | -| **objects** | `string[]` | optional | Object names to filter events by (e.g., ["account", "contact"]) | -| **filters** | `object` | optional | Advanced filter conditions for event payloads | -| **channels** | `string[]` | optional | Channel names for scoped subscriptions | - --- ## FilterOperator -### Allowed Values - -* `eq` -* `ne` -* `gt` -* `gte` -* `lt` -* `lte` -* `in` -* `nin` -* `contains` -* `startsWith` -* `endsWith` -* `exists` -* `regex` - --- ## PingMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **messageId** | `string` | ✅ | Unique message identifier | -| **type** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when message was sent | - --- ## PongMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **messageId** | `string` | ✅ | Unique message identifier | -| **type** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when message was sent | -| **pingMessageId** | `string` | optional | ID of ping message being responded to | - --- ## PresenceMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **messageId** | `string` | ✅ | Unique message identifier | -| **type** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when message was sent | -| **presence** | `object` | ✅ | Presence state | - --- ## PresenceState -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **userId** | `string` | ✅ | User identifier | -| **sessionId** | `string` | ✅ | Unique session identifier | -| **status** | `Enum<'online' \| 'away' \| 'busy' \| 'offline'>` | ✅ | Current presence status | -| **lastSeen** | `string` | ✅ | ISO 8601 datetime of last activity | -| **currentLocation** | `string` | optional | Current page/route user is viewing | -| **device** | `Enum<'desktop' \| 'mobile' \| 'tablet' \| 'other'>` | optional | Device type | -| **customStatus** | `string` | optional | Custom user status message | -| **metadata** | `Record` | optional | Additional custom presence data | - --- ## PresenceUpdate -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **status** | `Enum<'online' \| 'away' \| 'busy' \| 'offline'>` | optional | Updated presence status | -| **currentLocation** | `string` | optional | Updated current location | -| **customStatus** | `string` | optional | Updated custom status message | -| **metadata** | `Record` | optional | Updated metadata | - --- ## SimpleCursorPosition -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **userId** | `string` | ✅ | User identifier | -| **recordId** | `string` | ✅ | Record identifier being edited | -| **fieldName** | `string` | ✅ | Field name being edited | -| **position** | `number` | ✅ | Cursor position (character offset from start) | -| **selection** | `object` | optional | Text selection range (if text is selected) | - --- ## SimplePresenceState -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **userId** | `string` | ✅ | User identifier | -| **userName** | `string` | ✅ | User display name | -| **status** | `Enum<'online' \| 'away' \| 'offline'>` | ✅ | User presence status | -| **lastSeen** | `number` | ✅ | Unix timestamp of last activity in milliseconds | -| **metadata** | `Record` | optional | Additional presence metadata (e.g., current page, custom status) | - --- ## SubscribeMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **messageId** | `string` | ✅ | Unique message identifier | -| **type** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when message was sent | -| **subscription** | `object` | ✅ | Subscription configuration | - --- ## UnsubscribeMessage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **messageId** | `string` | ✅ | Unique message identifier | -| **type** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when message was sent | -| **request** | `object` | ✅ | Unsubscribe request | - --- ## UnsubscribeRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **subscriptionId** | `string` | ✅ | Subscription ID to unsubscribe from | - --- ## WebSocketConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **url** | `string` | ✅ | WebSocket server URL | -| **protocols** | `string[]` | optional | WebSocket sub-protocols | -| **reconnect** | `boolean` | optional | Enable automatic reconnection | -| **reconnectInterval** | `integer` | optional | Reconnection interval in milliseconds | -| **maxReconnectAttempts** | `integer` | optional | Maximum reconnection attempts | -| **pingInterval** | `integer` | optional | Ping interval in milliseconds | -| **timeout** | `integer` | optional | Message timeout in milliseconds | -| **headers** | `Record` | optional | Custom headers for WebSocket handshake | - --- ## WebSocketEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'subscribe' \| 'unsubscribe' \| 'data-change' \| 'presence-update' \| 'cursor-update' \| 'error'>` | ✅ | Event type | -| **channel** | `string` | ✅ | Channel identifier (e.g., "record.account.123", "user.456") | -| **payload** | `any` | optional | Event payload data | -| **timestamp** | `number` | ✅ | Unix timestamp in milliseconds | - --- ## WebSocketMessage @@ -389,42 +131,11 @@ Event pattern (supports wildcards like "record.*" or "*.created") ## WebSocketMessageType -### Allowed Values - -* `subscribe` -* `unsubscribe` -* `event` -* `ping` -* `pong` -* `ack` -* `error` -* `presence` -* `cursor` -* `edit` - --- ## WebSocketPresenceStatus -### Allowed Values - -* `online` -* `away` -* `busy` -* `offline` - --- ## WebSocketServerConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable WebSocket server | -| **path** | `string` | optional | WebSocket endpoint path | -| **heartbeatInterval** | `number` | optional | Heartbeat interval in milliseconds | -| **reconnectAttempts** | `number` | optional | Maximum reconnection attempts for clients | -| **presence** | `boolean` | optional | Enable presence tracking | -| **cursorSharing** | `boolean` | optional | Enable collaborative cursor sharing | - diff --git a/content/docs/references/auth/config.mdx b/content/docs/references/auth/config.mdx index 04e194185..69b33ce5e 100644 --- a/content/docs/references/auth/config.mdx +++ b/content/docs/references/auth/config.mdx @@ -23,63 +23,14 @@ const result = APIKeySchema.parse(data); ## APIKey -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Authentication type | -| **key** | `string` | ✅ | API key value | -| **headerName** | `string` | optional | HTTP header name for API key | -| **paramName** | `string` | optional | Query parameter name (alternative to header) | - --- ## AccountLinkingConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Allow account linking | -| **autoLink** | `boolean` | optional | Automatically link accounts with same email | -| **requireVerification** | `boolean` | optional | Require email verification before linking | - --- ## ApplicationAuthConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Configuration name (snake_case) | -| **label** | `string` | ✅ | Display label | -| **driver** | `string` | optional | The underlying authentication implementation driver | -| **strategies** | `Enum<'email_password' \| 'magic_link' \| 'oauth' \| 'passkey' \| 'otp' \| 'anonymous'>[]` | ✅ | Enabled authentication strategies | -| **baseUrl** | `string` | ✅ | Application base URL | -| **secret** | `string` | ✅ | Secret key for signing (min 32 chars) | -| **emailPassword** | `object` | optional | | -| **magicLink** | `object` | optional | | -| **passkey** | `object` | optional | | -| **oauth** | `object` | optional | | -| **session** | `object` | optional | | -| **rateLimit** | `object` | optional | | -| **csrf** | `object` | optional | | -| **accountLinking** | `object` | optional | | -| **twoFactor** | `object` | optional | | -| **organization** | `object` | optional | Organization/multi-tenant configuration | -| **enterprise** | `object` | optional | | -| **userFieldMapping** | `object` | optional | | -| **database** | `object` | optional | | -| **mapping** | `object` | optional | | -| **plugins** | `object[]` | optional | | -| **hooks** | `object` | optional | Authentication lifecycle hooks | -| **security** | `object` | optional | Advanced security settings | -| **email** | `object` | optional | Email configuration | -| **ui** | `object` | optional | UI customization | -| **active** | `boolean` | optional | Whether this provider is active | -| **allowRegistration** | `boolean` | optional | Allow new user registration | - --- ## AuthConfig @@ -88,329 +39,91 @@ const result = APIKeySchema.parse(data); ## AuthPluginConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Plugin name | -| **enabled** | `boolean` | optional | | -| **options** | `Record` | optional | Plugin-specific options | - --- ## AuthStrategy -### Allowed Values - -* `email_password` -* `magic_link` -* `oauth` -* `passkey` -* `otp` -* `anonymous` - --- ## BasicAuth -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Authentication type | -| **username** | `string` | ✅ | Username | -| **password** | `string` | ✅ | Password (typically from ENV) | - --- ## BearerAuth -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Authentication type | -| **token** | `string` | ✅ | Bearer token | - --- ## CSRFConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **tokenLength** | `number` | optional | CSRF token length | -| **cookieName** | `string` | optional | CSRF cookie name | -| **headerName** | `string` | optional | CSRF header name | - --- ## DatabaseAdapter -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'prisma' \| 'drizzle' \| 'kysely' \| 'custom'>` | ✅ | Database adapter type | -| **connectionString** | `string` | optional | Database connection string | -| **tablePrefix** | `string` | optional | Prefix for auth tables | -| **schema** | `string` | optional | Database schema name | - --- ## DatabaseMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **user** | `Record` | optional | User field mapping (e.g., `{ "emailVerified": "email_verified" }`) | -| **session** | `Record` | optional | Session field mapping | -| **account** | `Record` | optional | Account field mapping | -| **verificationToken** | `Record` | optional | VerificationToken field mapping | - --- ## EmailPasswordConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **requireEmailVerification** | `boolean` | optional | Require email verification before login | -| **minPasswordLength** | `number` | optional | Minimum password length | -| **requirePasswordComplexity** | `boolean` | optional | Require uppercase, lowercase, numbers, symbols | -| **allowPasswordReset** | `boolean` | optional | Enable password reset functionality | -| **passwordResetExpiry** | `number` | optional | Password reset token expiry in seconds | - --- ## EnterpriseAuthConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **oidc** | `object` | optional | OpenID Connect configuration | -| **saml** | `object` | optional | SAML 2.0 configuration | -| **ldap** | `object` | optional | LDAP/Active Directory configuration | - --- ## JWTAuth -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Authentication type | -| **token** | `string` | optional | Pre-generated JWT token | -| **secretKey** | `string` | optional | Secret key for JWT signing | -| **algorithm** | `Enum<'HS256' \| 'HS384' \| 'HS512' \| 'RS256' \| 'RS384' \| 'RS512' \| 'ES256' \| 'ES384' \| 'ES512'>` | optional | JWT signing algorithm | -| **issuer** | `string` | optional | JWT issuer claim | -| **audience** | `string` | optional | JWT audience claim | -| **subject** | `string` | optional | JWT subject claim | -| **expiresIn** | `number` | optional | Token expiry in seconds | -| **claims** | `Record` | optional | Additional JWT claims | - --- ## LDAPConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **url** | `string` | ✅ | LDAP Server URL (ldap:// or ldaps://) | -| **bindDn** | `string` | ✅ | Bind DN for LDAP authentication | -| **bindCredentials** | `string` | ✅ | Bind credentials | -| **searchBase** | `string` | ✅ | Search base DN | -| **searchFilter** | `string` | ✅ | Search filter | -| **groupSearchBase** | `string` | optional | Group search base DN | -| **displayName** | `string` | optional | Display name for the provider button | -| **icon** | `string` | optional | Icon URL or identifier | - --- ## MagicLinkConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **expiryTime** | `number` | optional | Magic link expiry time in seconds (default 15 min) | - --- ## NoAuth -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | No authentication required | - --- ## OAuth2 -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Authentication type | -| **authorizationUrl** | `string` | ✅ | OAuth2 authorization endpoint | -| **tokenUrl** | `string` | ✅ | OAuth2 token endpoint | -| **clientId** | `string` | ✅ | OAuth2 client ID | -| **clientSecret** | `string` | ✅ | OAuth2 client secret (typically from ENV) | -| **scopes** | `string[]` | optional | Requested OAuth2 scopes | -| **redirectUri** | `string` | optional | OAuth2 redirect URI | -| **refreshToken** | `string` | optional | Refresh token for token renewal | -| **tokenExpiry** | `number` | optional | Token expiry timestamp | - --- ## OAuthProvider -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **provider** | `Enum<'google' \| 'github' \| 'facebook' \| 'twitter' \| 'linkedin' \| 'microsoft' \| 'apple' \| 'discord' \| 'gitlab' \| 'custom'>` | ✅ | OAuth provider type | -| **clientId** | `string` | ✅ | OAuth client ID | -| **clientSecret** | `string` | ✅ | OAuth client secret (typically from ENV) | -| **scopes** | `string[]` | optional | Requested OAuth scopes | -| **redirectUri** | `string` | optional | OAuth callback URL | -| **enabled** | `boolean` | optional | Whether this provider is enabled | -| **displayName** | `string` | optional | Display name for the provider button | -| **icon** | `string` | optional | Icon URL or identifier | - --- ## OIDCConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **issuer** | `string` | ✅ | OIDC Issuer URL (.well-known/openid-configuration) | -| **clientId** | `string` | ✅ | OIDC client ID | -| **clientSecret** | `string` | ✅ | OIDC client secret | -| **scopes** | `string[]` | optional | OIDC scopes | -| **attributeMapping** | `Record` | optional | Map IdP claims to User fields | -| **displayName** | `string` | optional | Display name for the provider button | -| **icon** | `string` | optional | Icon URL or identifier | - --- ## PasskeyConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **rpName** | `string` | ✅ | Relying Party name | -| **rpId** | `string` | optional | Relying Party ID (defaults to domain) | -| **allowedOrigins** | `string[]` | optional | Allowed origins for WebAuthn | -| **userVerification** | `Enum<'required' \| 'preferred' \| 'discouraged'>` | optional | | -| **attestation** | `Enum<'none' \| 'indirect' \| 'direct' \| 'enterprise'>` | optional | | - --- ## SAMLAuth -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Authentication type | -| **entryPoint** | `string` | ✅ | SAML IdP entry point URL | -| **issuer** | `string` | ✅ | SAML service provider issuer | -| **certificate** | `string` | ✅ | SAML IdP certificate (X.509) | -| **privateKey** | `string` | optional | SAML service provider private key | -| **callbackUrl** | `string` | optional | SAML assertion consumer service URL | -| **signatureAlgorithm** | `Enum<'sha1' \| 'sha256' \| 'sha512'>` | optional | SAML signature algorithm | -| **wantAssertionsSigned** | `boolean` | optional | Require signed SAML assertions | -| **identifierFormat** | `string` | optional | SAML NameID format | - --- ## SAMLConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **entryPoint** | `string` | ✅ | IdP SSO URL | -| **cert** | `string` | ✅ | IdP Public Certificate (PEM format) | -| **issuer** | `string` | ✅ | Entity ID of the IdP | -| **signatureAlgorithm** | `Enum<'sha256' \| 'sha512'>` | optional | Signature algorithm | -| **attributeMapping** | `Record` | optional | Map SAML attributes to User fields | -| **displayName** | `string` | optional | Display name for the provider button | -| **icon** | `string` | optional | Icon URL or identifier | - --- ## SessionConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **expiresIn** | `number` | optional | Session expiry in seconds (default 7 days) | -| **updateAge** | `number` | optional | Session update interval in seconds (default 1 day) | -| **cookieName** | `string` | optional | Session cookie name | -| **cookieSecure** | `boolean` | optional | Use secure cookies (HTTPS only) | -| **cookieSameSite** | `Enum<'strict' \| 'lax' \| 'none'>` | optional | SameSite cookie attribute | -| **cookieDomain** | `string` | optional | Cookie domain | -| **cookiePath** | `string` | optional | Cookie path | -| **cookieHttpOnly** | `boolean` | optional | HttpOnly cookie attribute | - --- ## StandardAuthProvider -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Provider type identifier | -| **config** | `object` | ✅ | Standard authentication configuration | - --- ## TwoFactorConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **issuer** | `string` | optional | TOTP issuer name | -| **qrCodeSize** | `number` | optional | QR code size in pixels | -| **backupCodes** | `object` | optional | | - --- ## UserFieldMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | User ID field | -| **email** | `string` | optional | Email field | -| **name** | `string` | optional | Name field | -| **image** | `string` | optional | Profile image field | -| **emailVerified** | `string` | optional | Email verification status field | -| **createdAt** | `string` | optional | Created timestamp field | -| **updatedAt** | `string` | optional | Updated timestamp field | - diff --git a/content/docs/references/auth/http.mdx b/content/docs/references/auth/http.mdx index cf9fdd226..95b91b6b9 100644 --- a/content/docs/references/auth/http.mdx +++ b/content/docs/references/auth/http.mdx @@ -23,13 +23,3 @@ const result = RateLimitConfigSchema.parse(data); ## RateLimitConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **maxAttempts** | `number` | optional | Maximum login attempts | -| **windowMs** | `number` | optional | Time window in milliseconds (default 15 min) | -| **blockDuration** | `number` | optional | Block duration after max attempts in ms | -| **skipSuccessfulRequests** | `boolean` | optional | Only count failed requests | - diff --git a/content/docs/references/auth/identity.mdx b/content/docs/references/auth/identity.mdx index 40b134427..9040dfb30 100644 --- a/content/docs/references/auth/identity.mdx +++ b/content/docs/references/auth/identity.mdx @@ -23,70 +23,15 @@ const result = AccountSchema.parse(data); ## Account -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique account identifier | -| **userId** | `string` | ✅ | Associated user ID | -| **type** | `Enum<'oauth' \| 'oidc' \| 'email' \| 'credentials' \| 'saml' \| 'ldap'>` | ✅ | Account type | -| **provider** | `string` | ✅ | Provider name | -| **providerAccountId** | `string` | ✅ | Provider account ID | -| **refreshToken** | `string` | optional | OAuth refresh token | -| **accessToken** | `string` | optional | OAuth access token | -| **expiresAt** | `number` | optional | Token expiry timestamp (Unix) | -| **tokenType** | `string` | optional | OAuth token type | -| **scope** | `string` | optional | OAuth scope | -| **idToken** | `string` | optional | OAuth ID token | -| **sessionState** | `string` | optional | Session state | -| **createdAt** | `string` | ✅ | Account creation timestamp | -| **updatedAt** | `string` | ✅ | Last update timestamp | - --- ## Session -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique session identifier | -| **sessionToken** | `string` | ✅ | Session token | -| **userId** | `string` | ✅ | Associated user ID | -| **activeOrganizationId** | `string` | optional | Active organization ID for context switching | -| **expires** | `string` | ✅ | Session expiry timestamp | -| **createdAt** | `string` | ✅ | Session creation timestamp | -| **updatedAt** | `string` | ✅ | Last update timestamp | -| **ipAddress** | `string` | optional | IP address | -| **userAgent** | `string` | optional | User agent string | -| **fingerprint** | `string` | optional | Device fingerprint | - --- ## User -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique user identifier | -| **email** | `string` | ✅ | User email address | -| **emailVerified** | `boolean` | optional | Whether email is verified | -| **name** | `string` | optional | User display name | -| **image** | `string` | optional | Profile image URL | -| **createdAt** | `string` | ✅ | Account creation timestamp | -| **updatedAt** | `string` | ✅ | Last update timestamp | - --- ## VerificationToken -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **identifier** | `string` | ✅ | Token identifier (email or phone) | -| **token** | `string` | ✅ | Verification token | -| **expires** | `string` | ✅ | Token expiry timestamp | -| **createdAt** | `string` | ✅ | Token creation timestamp | - diff --git a/content/docs/references/auth/organization.mdx b/content/docs/references/auth/organization.mdx index 31d58abc0..0a4f86ba4 100644 --- a/content/docs/references/auth/organization.mdx +++ b/content/docs/references/auth/organization.mdx @@ -23,59 +23,15 @@ const result = InvitationSchema.parse(data); ## Invitation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique invitation identifier | -| **organizationId** | `string` | ✅ | Organization ID | -| **email** | `string` | ✅ | Invitee email address | -| **role** | `string` | ✅ | Role to assign upon acceptance | -| **status** | `Enum<'pending' \| 'accepted' \| 'rejected' \| 'expired'>` | optional | Invitation status | -| **expiresAt** | `string` | ✅ | Invitation expiry timestamp | -| **inviterId** | `string` | ✅ | User ID of the inviter | -| **createdAt** | `string` | ✅ | Invitation creation timestamp | -| **updatedAt** | `string` | ✅ | Last update timestamp | - --- ## InvitationStatus -### Allowed Values - -* `pending` -* `accepted` -* `rejected` -* `expired` - --- ## Member -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique member identifier | -| **organizationId** | `string` | ✅ | Organization ID | -| **userId** | `string` | ✅ | User ID | -| **role** | `string` | ✅ | Member role (e.g., owner, admin, member, guest) | -| **createdAt** | `string` | ✅ | Member creation timestamp | -| **updatedAt** | `string` | ✅ | Last update timestamp | - --- ## Organization -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique organization identifier | -| **name** | `string` | ✅ | Organization display name | -| **slug** | `string` | ✅ | Unique URL-friendly slug (lowercase alphanumeric, hyphens, underscores) | -| **logo** | `string` | optional | Organization logo URL | -| **metadata** | `Record` | optional | Custom metadata | -| **createdAt** | `string` | ✅ | Organization creation timestamp | -| **updatedAt** | `string` | ✅ | Last update timestamp | - diff --git a/content/docs/references/auth/policy.mdx b/content/docs/references/auth/policy.mdx index aa2edc0c8..d20209453 100644 --- a/content/docs/references/auth/policy.mdx +++ b/content/docs/references/auth/policy.mdx @@ -23,67 +23,19 @@ const result = AuditPolicySchema.parse(data); ## AuditPolicy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **logRetentionDays** | `number` | optional | | -| **sensitiveFields** | `string[]` | ✅ | Fields to redact in logs (e.g. password, ssn) | -| **captureRead** | `boolean` | optional | Log read access (High volume!) | - --- ## NetworkPolicy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **trustedRanges** | `string[]` | ✅ | CIDR ranges allowed to access (e.g. 10.0.0.0/8) | -| **blockUnknown** | `boolean` | optional | Block all IPs not in trusted ranges | -| **vpnRequired** | `boolean` | optional | | - --- ## PasswordPolicy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **minLength** | `number` | optional | | -| **requireUppercase** | `boolean` | optional | | -| **requireLowercase** | `boolean` | optional | | -| **requireNumbers** | `boolean` | optional | | -| **requireSymbols** | `boolean` | optional | | -| **expirationDays** | `number` | optional | Force password change every X days | -| **historyCount** | `number` | optional | Prevent reusing last X passwords | - --- ## Policy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Policy Name | -| **password** | `object` | optional | | -| **network** | `object` | optional | | -| **session** | `object` | optional | | -| **audit** | `object` | optional | | -| **isDefault** | `boolean` | optional | Apply to all users by default | -| **assignedProfiles** | `string[]` | optional | Apply to specific profiles | - --- ## SessionPolicy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **idleTimeout** | `number` | optional | Minutes before idle session logout | -| **absoluteTimeout** | `number` | optional | Max session duration (minutes) | -| **forceMfa** | `boolean` | optional | Require 2FA for all users | - diff --git a/content/docs/references/auth/role.mdx b/content/docs/references/auth/role.mdx index f03d545c7..40373362d 100644 --- a/content/docs/references/auth/role.mdx +++ b/content/docs/references/auth/role.mdx @@ -23,12 +23,3 @@ const result = RoleSchema.parse(data); ## Role -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique role name (lowercase snake_case) | -| **label** | `string` | ✅ | Display label (e.g. VP of Sales) | -| **parent** | `string` | optional | Parent Role ID (Reports To) | -| **description** | `string` | optional | | - diff --git a/content/docs/references/auth/scim.mdx b/content/docs/references/auth/scim.mdx index 4295cf9be..410064a24 100644 --- a/content/docs/references/auth/scim.mdx +++ b/content/docs/references/auth/scim.mdx @@ -23,212 +23,55 @@ const result = SCIMAddressSchema.parse(data); ## SCIMAddress -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **formatted** | `string` | optional | Formatted address | -| **streetAddress** | `string` | optional | Street address | -| **locality** | `string` | optional | City/Locality | -| **region** | `string` | optional | State/Region | -| **postalCode** | `string` | optional | Postal code | -| **country** | `string` | optional | Country | -| **type** | `Enum<'work' \| 'home' \| 'other'>` | optional | Address type | -| **primary** | `boolean` | optional | Primary address indicator | - --- ## SCIMEmail -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **value** | `string` | ✅ | Email address | -| **type** | `Enum<'work' \| 'home' \| 'other'>` | optional | Email type | -| **display** | `string` | optional | Display label | -| **primary** | `boolean` | optional | Primary email indicator | - --- ## SCIMEnterpriseUser -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **employeeNumber** | `string` | optional | Employee number | -| **costCenter** | `string` | optional | Cost center | -| **organization** | `string` | optional | Organization | -| **division** | `string` | optional | Division | -| **department** | `string` | optional | Department | -| **manager** | `object` | optional | Manager reference | - --- ## SCIMError -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **schemas** | `string[]` | optional | SCIM schema URIs | -| **status** | `integer` | ✅ | HTTP status code | -| **scimType** | `Enum<'invalidFilter' \| 'tooMany' \| 'uniqueness' \| 'mutability' \| 'invalidSyntax' \| 'invalidPath' \| 'noTarget' \| 'invalidValue' \| 'invalidVers' \| 'sensitive'>` | optional | SCIM error type | -| **detail** | `string` | optional | Error detail message | - --- ## SCIMGroup -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **schemas** | `string[]` | optional | SCIM schema URIs (must include Group schema) | -| **id** | `string` | optional | Unique resource identifier | -| **externalId** | `string` | optional | External identifier from client system | -| **displayName** | `string` | ✅ | Group display name (REQUIRED) | -| **members** | `object[]` | optional | Group members | -| **meta** | `object` | optional | Resource metadata | - --- ## SCIMGroupReference -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **value** | `string` | ✅ | Group ID | -| **$ref** | `string` | optional | URI reference to the group | -| **display** | `string` | optional | Group display name | -| **type** | `Enum<'direct' \| 'indirect'>` | optional | Membership type | - --- ## SCIMListResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **schemas** | `string[]` | optional | SCIM schema URIs | -| **totalResults** | `integer` | ✅ | Total results count | -| **Resources** | `object \| object \| Record[]` | ✅ | Resources array (Users, Groups, or custom resources) | -| **startIndex** | `integer` | optional | Start index (1-based) | -| **itemsPerPage** | `integer` | optional | Items per page | - --- ## SCIMMemberReference -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **value** | `string` | ✅ | Member ID | -| **$ref** | `string` | optional | URI reference to the member | -| **type** | `Enum<'User' \| 'Group'>` | optional | Member type | -| **display** | `string` | optional | Member display name | - --- ## SCIMMeta -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **resourceType** | `string` | optional | Resource type | -| **created** | `string` | optional | Creation timestamp | -| **lastModified** | `string` | optional | Last modification timestamp | -| **location** | `string` | optional | Resource location URI | -| **version** | `string` | optional | Entity tag (ETag) for concurrency control | - --- ## SCIMName -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **formatted** | `string` | optional | Formatted full name | -| **familyName** | `string` | optional | Family name (last name) | -| **givenName** | `string` | optional | Given name (first name) | -| **middleName** | `string` | optional | Middle name | -| **honorificPrefix** | `string` | optional | Honorific prefix (Mr., Ms., Dr.) | -| **honorificSuffix** | `string` | optional | Honorific suffix (Jr., Sr.) | - --- ## SCIMPatchOperation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **op** | `Enum<'add' \| 'remove' \| 'replace'>` | ✅ | Operation type | -| **path** | `string` | optional | Attribute path (optional for add) | -| **value** | `any` | optional | Value to set | - --- ## SCIMPatchRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **schemas** | `string[]` | optional | SCIM schema URIs | -| **Operations** | `object[]` | ✅ | Patch operations | - --- ## SCIMPhoneNumber -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **value** | `string` | ✅ | Phone number | -| **type** | `Enum<'work' \| 'home' \| 'mobile' \| 'fax' \| 'pager' \| 'other'>` | optional | Phone number type | -| **display** | `string` | optional | Display label | -| **primary** | `boolean` | optional | Primary phone indicator | - --- ## SCIMUser -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **schemas** | `string[]` | optional | SCIM schema URIs (must include User schema) | -| **id** | `string` | optional | Unique resource identifier | -| **externalId** | `string` | optional | External identifier from client system | -| **userName** | `string` | ✅ | Unique username (REQUIRED) | -| **name** | `object` | optional | Structured name components | -| **displayName** | `string` | optional | Display name for UI | -| **nickName** | `string` | optional | Nickname | -| **profileUrl** | `string` | optional | Profile page URL | -| **title** | `string` | optional | Job title | -| **userType** | `string` | optional | User type (employee, contractor) | -| **preferredLanguage** | `string` | optional | Preferred language (ISO 639-1) | -| **locale** | `string` | optional | Locale (e.g., en-US) | -| **timezone** | `string` | optional | Timezone | -| **active** | `boolean` | optional | Account active status | -| **password** | `string` | optional | Password (write-only) | -| **emails** | `object[]` | optional | Email addresses | -| **phoneNumbers** | `object[]` | optional | Phone numbers | -| **ims** | `object[]` | optional | IM addresses | -| **photos** | `object[]` | optional | Photo URLs | -| **addresses** | `object[]` | optional | Physical addresses | -| **groups** | `object[]` | optional | Group memberships | -| **entitlements** | `object[]` | optional | Entitlements | -| **roles** | `object[]` | optional | Roles | -| **x509Certificates** | `object[]` | optional | X509 certificates | -| **meta** | `object` | optional | Resource metadata | -| **urn:ietf:params:scim:schemas:extension:enterprise:2.0:User** | `object` | optional | Enterprise user attributes | - diff --git a/content/docs/references/automation/approval.mdx b/content/docs/references/automation/approval.mdx index 1fda95f88..60e8b69b7 100644 --- a/content/docs/references/automation/approval.mdx +++ b/content/docs/references/automation/approval.mdx @@ -23,73 +23,19 @@ const result = ApprovalActionSchema.parse(data); ## ApprovalAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'field_update' \| 'email_alert' \| 'webhook' \| 'script'>` | ✅ | | -| **name** | `string` | ✅ | Action name | -| **config** | `Record` | ✅ | Action configuration | - --- ## ApprovalActionType -### Allowed Values - -* `field_update` -* `email_alert` -* `webhook` -* `script` - --- ## ApprovalProcess -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique process name | -| **label** | `string` | ✅ | Human readable label | -| **object** | `string` | ✅ | Target Object Name | -| **active** | `boolean` | optional | | -| **description** | `string` | optional | | -| **entryCriteria** | `string` | optional | Formula to allow submission | -| **lockRecord** | `boolean` | optional | Lock record from editing during approval | -| **steps** | `object[]` | ✅ | Sequence of approval steps | -| **onSubmit** | `object[]` | optional | Actions on initial submission | -| **onFinalApprove** | `object[]` | optional | Actions on final approval | -| **onFinalReject** | `object[]` | optional | Actions on final rejection | -| **onRecall** | `object[]` | optional | Actions on recall | - --- ## ApprovalStep -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Step machine name | -| **label** | `string` | ✅ | Step display label | -| **description** | `string` | optional | | -| **entryCriteria** | `string` | optional | Formula expression to enter this step | -| **approvers** | `object[]` | ✅ | List of allowed approvers | -| **behavior** | `Enum<'first_response' \| 'unanimous'>` | optional | How to handle multiple approvers | -| **rejectionBehavior** | `Enum<'reject_process' \| 'back_to_previous'>` | optional | What happens if rejected | -| **onApprove** | `object[]` | optional | Actions on step approval | -| **onReject** | `object[]` | optional | Actions on step rejection | - --- ## ApproverType -### Allowed Values - -* `user` -* `role` -* `manager` -* `field` -* `queue` - diff --git a/content/docs/references/automation/connector.mdx b/content/docs/references/automation/connector.mdx index ad2b8c0ce..7bda3b83a 100644 --- a/content/docs/references/automation/connector.mdx +++ b/content/docs/references/automation/connector.mdx @@ -23,79 +23,15 @@ const result = AuthenticationSchema.parse(data); ## Authentication -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'none' \| 'apiKey' \| 'basic' \| 'bearer' \| 'oauth1' \| 'oauth2' \| 'custom'>` | ✅ | Authentication type | -| **fields** | `object[]` | optional | Authentication fields | -| **oauth2** | `object` | optional | OAuth 2.0 configuration | -| **test** | `object` | optional | Authentication test configuration | - --- ## ConflictResolution -### Allowed Values - -* `source_wins` -* `destination_wins` -* `latest_wins` -* `manual` -* `merge` - --- ## Connector -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Connector ID (snake_case) | -| **name** | `string` | ✅ | Connector name | -| **description** | `string` | optional | Connector description | -| **version** | `string` | optional | Connector version | -| **icon** | `string` | optional | Connector icon | -| **category** | `Enum<'crm' \| 'payment' \| 'communication' \| 'storage' \| 'analytics' \| 'database' \| 'marketing' \| 'accounting' \| 'hr' \| 'productivity' \| 'ecommerce' \| 'support' \| 'devtools' \| 'social' \| 'other'>` | ✅ | Connector category | -| **baseUrl** | `string` | optional | API base URL | -| **authentication** | `object` | ✅ | Authentication config | -| **operations** | `object[]` | optional | Connector operations | -| **triggers** | `object[]` | optional | Connector triggers | -| **rateLimit** | `object` | optional | Rate limiting | -| **author** | `string` | optional | Connector author | -| **documentation** | `string` | optional | Documentation URL | -| **homepage** | `string` | optional | Homepage URL | -| **license** | `string` | optional | License (SPDX identifier) | -| **tags** | `string[]` | optional | Connector tags | -| **verified** | `boolean` | optional | Verified connector | -| **metadata** | `Record` | optional | Custom metadata | - --- ## DataSyncConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Sync configuration name (snake_case) | -| **label** | `string` | optional | Sync display name | -| **description** | `string` | optional | Sync description | -| **source** | `object` | ✅ | Data source | -| **destination** | `object` | ✅ | Data destination | -| **direction** | `Enum<'push' \| 'pull' \| 'bidirectional'>` | optional | Sync direction | -| **syncMode** | `Enum<'full' \| 'incremental' \| 'realtime'>` | optional | Sync mode | -| **conflictResolution** | `Enum<'source_wins' \| 'destination_wins' \| 'latest_wins' \| 'manual' \| 'merge'>` | optional | Conflict resolution | -| **schedule** | `string` | optional | Cron schedule | -| **enabled** | `boolean` | optional | Sync enabled | -| **changeTrackingField** | `string` | optional | Field for change tracking | -| **batchSize** | `integer` | optional | Batch size for processing | -| **retry** | `object` | optional | Retry configuration | -| **validation** | `object` | optional | Validation rules | -| **errorHandling** | `object` | optional | Error handling | -| **optimization** | `object` | optional | Performance optimization | -| **audit** | `object` | optional | Audit configuration | -| **tags** | `string[]` | optional | Sync tags | -| **metadata** | `Record` | optional | Custom metadata | - diff --git a/content/docs/references/automation/etl.mdx b/content/docs/references/automation/etl.mdx index f5bb7c6aa..6f8e0cb4e 100644 --- a/content/docs/references/automation/etl.mdx +++ b/content/docs/references/automation/etl.mdx @@ -23,134 +23,35 @@ const result = ETLDestinationSchema.parse(data); ## ETLDestination -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'database' \| 'api' \| 'file' \| 'stream' \| 'object' \| 'warehouse' \| 'storage' \| 'spreadsheet'>` | ✅ | Destination type | -| **connector** | `string` | optional | Connector ID | -| **config** | `Record` | ✅ | Destination configuration | -| **writeMode** | `Enum<'append' \| 'overwrite' \| 'upsert' \| 'merge'>` | optional | How to write data | -| **primaryKey** | `string[]` | optional | Primary key fields | - --- ## ETLEndpointType -### Allowed Values - -* `database` -* `api` -* `file` -* `stream` -* `object` -* `warehouse` -* `storage` -* `spreadsheet` - --- ## ETLPipeline -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Pipeline identifier (snake_case) | -| **label** | `string` | optional | Pipeline display name | -| **description** | `string` | optional | Pipeline description | -| **source** | `object` | ✅ | Data source | -| **destination** | `object` | ✅ | Data destination | -| **transformations** | `object[]` | optional | Transformation pipeline | -| **syncMode** | `Enum<'full' \| 'incremental' \| 'cdc'>` | optional | Sync mode | -| **schedule** | `string` | optional | Cron schedule expression | -| **enabled** | `boolean` | optional | Pipeline enabled status | -| **retry** | `object` | optional | Retry configuration | -| **notifications** | `object` | optional | Notification settings | -| **tags** | `string[]` | optional | Pipeline tags | -| **metadata** | `Record` | optional | Custom metadata | - --- ## ETLPipelineRun -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Run identifier | -| **pipelineName** | `string` | ✅ | Pipeline name | -| **status** | `Enum<'pending' \| 'running' \| 'succeeded' \| 'failed' \| 'cancelled' \| 'timeout'>` | ✅ | Run status | -| **startedAt** | `string` | ✅ | Start time | -| **completedAt** | `string` | optional | Completion time | -| **durationMs** | `number` | optional | Duration in ms | -| **stats** | `object` | optional | Run statistics | -| **error** | `object` | optional | Error information | -| **logs** | `string[]` | optional | Execution logs | - --- ## ETLRunStatus -### Allowed Values - -* `pending` -* `running` -* `succeeded` -* `failed` -* `cancelled` -* `timeout` - --- ## ETLSource -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'database' \| 'api' \| 'file' \| 'stream' \| 'object' \| 'warehouse' \| 'storage' \| 'spreadsheet'>` | ✅ | Source type | -| **connector** | `string` | optional | Connector ID | -| **config** | `Record` | ✅ | Source configuration | -| **incremental** | `object` | optional | Incremental extraction config | - --- ## ETLSyncMode -### Allowed Values - -* `full` -* `incremental` -* `cdc` - --- ## ETLTransformation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | optional | Transformation name | -| **type** | `Enum<'map' \| 'filter' \| 'aggregate' \| 'join' \| 'script' \| 'lookup' \| 'split' \| 'merge' \| 'normalize' \| 'deduplicate'>` | ✅ | Transformation type | -| **config** | `Record` | ✅ | Transformation config | -| **continueOnError** | `boolean` | optional | Continue on error | - --- ## ETLTransformationType -### Allowed Values - -* `map` -* `filter` -* `aggregate` -* `join` -* `script` -* `lookup` -* `split` -* `merge` -* `normalize` -* `deduplicate` - diff --git a/content/docs/references/automation/flow.mdx b/content/docs/references/automation/flow.mdx index 8adab3d5f..959e60af5 100644 --- a/content/docs/references/automation/flow.mdx +++ b/content/docs/references/automation/flow.mdx @@ -23,82 +23,19 @@ const result = FlowSchema.parse(data); ## Flow -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Machine name | -| **label** | `string` | ✅ | Flow label | -| **description** | `string` | optional | | -| **version** | `integer` | optional | Version number | -| **status** | `Enum<'draft' \| 'active' \| 'obsolete' \| 'invalid'>` | optional | Deployment status | -| **template** | `boolean` | optional | Is logic template (Subflow) | -| **type** | `Enum<'autolaunched' \| 'record_change' \| 'schedule' \| 'screen' \| 'api'>` | ✅ | Flow type | -| **variables** | `object[]` | optional | Flow variables | -| **nodes** | `object[]` | ✅ | Flow nodes | -| **edges** | `object[]` | ✅ | Flow connections | -| **active** | `boolean` | optional | Is active (Deprecated: use status) | -| **runAs** | `Enum<'system' \| 'user'>` | optional | Execution context | - --- ## FlowEdge -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Edge unique ID | -| **source** | `string` | ✅ | Source Node ID | -| **target** | `string` | ✅ | Target Node ID | -| **condition** | `string` | optional | Expression returning boolean used for branching | -| **type** | `Enum<'default' \| 'fault'>` | optional | Connection type: Standard (Success) or Fault (Error) path | -| **label** | `string` | optional | Label on the connector | - --- ## FlowNode -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Node unique ID | -| **type** | `Enum<'start' \| 'end' \| 'decision' \| 'assignment' \| 'loop' \| 'create_record' \| 'update_record' \| 'delete_record' \| 'get_record' \| 'http_request' \| 'script' \| 'wait' \| 'subflow'>` | ✅ | Action type | -| **label** | `string` | ✅ | Node label | -| **config** | `Record` | optional | Node configuration | -| **position** | `object` | optional | | - --- ## FlowNodeAction -### Allowed Values - -* `start` -* `end` -* `decision` -* `assignment` -* `loop` -* `create_record` -* `update_record` -* `delete_record` -* `get_record` -* `http_request` -* `script` -* `wait` -* `subflow` - --- ## FlowVariable -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Variable name | -| **type** | `string` | ✅ | Data type (text, number, boolean, object, list) | -| **isInput** | `boolean` | optional | Is input parameter | -| **isOutput** | `boolean` | optional | Is output parameter | - diff --git a/content/docs/references/automation/sync.mdx b/content/docs/references/automation/sync.mdx index 6169fc73c..73138668c 100644 --- a/content/docs/references/automation/sync.mdx +++ b/content/docs/references/automation/sync.mdx @@ -23,79 +23,23 @@ const result = DataDestinationConfigSchema.parse(data); ## DataDestinationConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | optional | ObjectStack object name | -| **connectorInstanceId** | `string` | optional | Connector instance ID | -| **operation** | `Enum<'insert' \| 'update' \| 'upsert' \| 'delete' \| 'sync'>` | ✅ | Sync operation | -| **mapping** | `Record \| object[]` | optional | Field mappings | -| **externalResource** | `string` | optional | External resource ID | -| **matchKey** | `string[]` | optional | Match key fields | - --- ## DataSourceConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | optional | ObjectStack object name | -| **filters** | `any` | optional | Filter conditions | -| **fields** | `string[]` | optional | Fields to sync | -| **connectorInstanceId** | `string` | optional | Connector instance ID | -| **externalResource** | `string` | optional | External resource ID | - --- ## SyncDirection -### Allowed Values - -* `push` -* `pull` -* `bidirectional` - --- ## SyncExecutionResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Execution ID | -| **syncName** | `string` | ✅ | Sync name | -| **status** | `Enum<'pending' \| 'running' \| 'completed' \| 'partial' \| 'failed' \| 'cancelled'>` | ✅ | Execution status | -| **startedAt** | `string` | ✅ | Start time | -| **completedAt** | `string` | optional | Completion time | -| **durationMs** | `number` | optional | Duration in ms | -| **stats** | `object` | optional | Execution statistics | -| **errors** | `object[]` | optional | Errors | -| **logs** | `string[]` | optional | Execution logs | - --- ## SyncExecutionStatus -### Allowed Values - -* `pending` -* `running` -* `completed` -* `partial` -* `failed` -* `cancelled` - --- ## SyncMode -### Allowed Values - -* `full` -* `incremental` -* `realtime` - diff --git a/content/docs/references/automation/trigger-registry.mdx b/content/docs/references/automation/trigger-registry.mdx index 01748fa81..75d4fc9f0 100644 --- a/content/docs/references/automation/trigger-registry.mdx +++ b/content/docs/references/automation/trigger-registry.mdx @@ -23,149 +23,35 @@ const result = AuthFieldSchema.parse(data); ## AuthField -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Field name (snake_case) | -| **label** | `string` | ✅ | Field label | -| **type** | `Enum<'text' \| 'password' \| 'url' \| 'select'>` | optional | Field type | -| **description** | `string` | optional | Field description | -| **required** | `boolean` | optional | Required field | -| **default** | `string` | optional | Default value | -| **options** | `object[]` | optional | Select field options | -| **placeholder** | `string` | optional | Placeholder text | - --- ## AuthenticationType -### Allowed Values - -* `none` -* `apiKey` -* `basic` -* `bearer` -* `oauth1` -* `oauth2` -* `custom` - --- ## ConnectorCategory -### Allowed Values - -* `crm` -* `payment` -* `communication` -* `storage` -* `analytics` -* `database` -* `marketing` -* `accounting` -* `hr` -* `productivity` -* `ecommerce` -* `support` -* `devtools` -* `social` -* `other` - --- ## ConnectorInstance -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Instance ID | -| **connectorId** | `string` | ✅ | Connector ID | -| **name** | `string` | ✅ | Instance name | -| **description** | `string` | optional | Instance description | -| **credentials** | `Record` | ✅ | Encrypted credentials | -| **config** | `Record` | optional | Additional config | -| **active** | `boolean` | optional | Instance active status | -| **createdAt** | `string` | optional | Creation time | -| **lastTestedAt** | `string` | optional | Last test time | -| **testStatus** | `Enum<'unknown' \| 'success' \| 'failed'>` | optional | Connection test status | - --- ## ConnectorOperation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Operation ID (snake_case) | -| **name** | `string` | ✅ | Operation name | -| **description** | `string` | optional | Operation description | -| **type** | `Enum<'read' \| 'write' \| 'delete' \| 'search' \| 'trigger' \| 'action'>` | ✅ | Operation type | -| **inputSchema** | `object[]` | optional | Input parameters | -| **outputSchema** | `Record` | optional | Output schema | -| **sampleOutput** | `any` | optional | Sample output | -| **supportsPagination** | `boolean` | optional | Supports pagination | -| **supportsFiltering** | `boolean` | optional | Supports filtering | - --- ## ConnectorTrigger -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Trigger ID (snake_case) | -| **name** | `string` | ✅ | Trigger name | -| **description** | `string` | optional | Trigger description | -| **type** | `Enum<'webhook' \| 'polling' \| 'stream'>` | ✅ | Trigger mechanism | -| **config** | `Record` | optional | Trigger configuration | -| **outputSchema** | `Record` | optional | Event payload schema | -| **pollingIntervalMs** | `integer` | optional | Polling interval in ms | - --- ## OAuth2Config -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **authorizationUrl** | `string` | ✅ | Authorization endpoint URL | -| **tokenUrl** | `string` | ✅ | Token endpoint URL | -| **scopes** | `string[]` | optional | OAuth scopes | -| **clientIdField** | `string` | optional | Client ID field name | -| **clientSecretField** | `string` | optional | Client secret field name | - --- ## OperationParameter -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Parameter name | -| **label** | `string` | ✅ | Parameter label | -| **description** | `string` | optional | Parameter description | -| **type** | `Enum<'string' \| 'number' \| 'boolean' \| 'array' \| 'object' \| 'date' \| 'file'>` | ✅ | Parameter type | -| **required** | `boolean` | optional | Required parameter | -| **default** | `any` | optional | Default value | -| **validation** | `Record` | optional | Validation rules | -| **dynamicOptions** | `string` | optional | Function to load dynamic options | - --- ## OperationType -### Allowed Values - -* `read` -* `write` -* `delete` -* `search` -* `trigger` -* `action` - diff --git a/content/docs/references/automation/webhook.mdx b/content/docs/references/automation/webhook.mdx index 0d5dc5088..0656d3dd0 100644 --- a/content/docs/references/automation/webhook.mdx +++ b/content/docs/references/automation/webhook.mdx @@ -23,52 +23,11 @@ const result = WebhookSchema.parse(data); ## Webhook -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Webhook unique name (lowercase snake_case) | -| **label** | `string` | optional | Human-readable webhook label | -| **object** | `string` | optional | Object to listen to (optional for manual webhooks) | -| **triggers** | `Enum<'create' \| 'update' \| 'delete' \| 'undelete' \| 'api'>[]` | optional | Events that trigger execution | -| **url** | `string` | ✅ | External webhook endpoint URL | -| **method** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'PATCH' \| 'DELETE'>` | optional | HTTP method | -| **headers** | `Record` | optional | Custom HTTP headers | -| **body** | `any` | optional | Request body payload (if not using default record data) | -| **payloadFields** | `string[]` | optional | Fields to include. Empty = All | -| **includeSession** | `boolean` | optional | Include user session info | -| **authentication** | `object` | optional | Authentication configuration | -| **retryPolicy** | `object` | optional | Retry policy configuration | -| **timeoutMs** | `integer` | optional | Request timeout in milliseconds | -| **secret** | `string` | optional | Signing secret for HMAC signature verification | -| **isActive** | `boolean` | optional | Whether webhook is active | -| **description** | `string` | optional | Webhook description | -| **tags** | `string[]` | optional | Tags for organization | - --- ## WebhookReceiver -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Webhook receiver unique name (lowercase snake_case) | -| **path** | `string` | ✅ | URL Path (e.g. /webhooks/stripe) | -| **verificationType** | `Enum<'none' \| 'header_token' \| 'hmac' \| 'ip_whitelist'>` | optional | | -| **verificationParams** | `object` | optional | | -| **action** | `Enum<'trigger_flow' \| 'script' \| 'upsert_record'>` | optional | | -| **target** | `string` | ✅ | Flow ID or Script name | - --- ## WebhookTriggerType -### Allowed Values - -* `create` -* `update` -* `delete` -* `undelete` -* `api` - diff --git a/content/docs/references/automation/workflow.mdx b/content/docs/references/automation/workflow.mdx index a87f12d29..0a1c81581 100644 --- a/content/docs/references/automation/workflow.mdx +++ b/content/docs/references/automation/workflow.mdx @@ -23,170 +23,46 @@ const result = CustomScriptActionSchema.parse(data); ## CustomScriptAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Action name | -| **type** | `string` | ✅ | | -| **language** | `Enum<'javascript' \| 'typescript' \| 'python'>` | optional | Script language | -| **code** | `string` | ✅ | Script code to execute | -| **timeout** | `number` | optional | Execution timeout in milliseconds | -| **context** | `Record` | optional | Additional context variables | - --- ## EmailAlertAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Action name | -| **type** | `string` | ✅ | | -| **template** | `string` | ✅ | Email template ID/DevName | -| **recipients** | `string[]` | ✅ | List of recipient emails or user IDs | - --- ## FieldUpdateAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Action name | -| **type** | `string` | ✅ | | -| **field** | `string` | ✅ | Field to update | -| **value** | `any` | optional | Value or Formula to set | - --- ## HttpCallAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Action name | -| **type** | `string` | ✅ | | -| **url** | `string` | ✅ | Target URL | -| **method** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'PATCH' \| 'DELETE'>` | ✅ | HTTP method | -| **headers** | `Record` | optional | Request headers | -| **body** | `any` | optional | Request body (object/string) | -| **authentication** | `object` | optional | Authentication configuration | -| **timeout** | `number` | optional | Request timeout in milliseconds | - --- ## PushNotificationAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Action name | -| **type** | `string` | ✅ | | -| **title** | `string` | ✅ | Notification title | -| **body** | `string` | ✅ | Notification body text | -| **recipients** | `string[]` | ✅ | User IDs or device tokens | -| **data** | `Record` | optional | Additional data payload | -| **badge** | `number` | optional | Badge count (iOS) | -| **sound** | `string` | optional | Notification sound | -| **clickAction** | `string` | optional | Action/URL when notification is clicked | - --- ## SlackMessageAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Action name | -| **type** | `string` | ✅ | | -| **channel** | `string` | ✅ | Slack channel ID or name (#channel) | -| **message** | `string` | ✅ | Message text with optional markdown | -| **mentions** | `string[]` | optional | User IDs or @username to mention | -| **threadId** | `string` | optional | Thread ID for replies | - --- ## SmsNotificationAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Action name | -| **type** | `string` | ✅ | | -| **provider** | `Enum<'twilio' \| 'vonage'>` | ✅ | SMS provider | -| **recipients** | `string[]` | ✅ | List of phone numbers or user field references | -| **message** | `string` | ✅ | SMS message text or template | -| **fromNumber** | `string` | optional | Sender phone number (provider-specific) | - --- ## TaskCreationAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Action name | -| **type** | `string` | ✅ | | -| **taskObject** | `string` | ✅ | Task object name (e.g., "task", "project_task") | -| **subject** | `string` | ✅ | Task subject/title | -| **description** | `string` | optional | Task description | -| **assignedTo** | `string` | optional | User ID or field reference for assignee | -| **dueDate** | `string` | optional | Due date (ISO string or formula) | -| **priority** | `string` | optional | Task priority | -| **relatedTo** | `string` | optional | Related record ID or field reference | -| **additionalFields** | `Record` | optional | Additional custom fields | - --- ## TeamsMessageAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Action name | -| **type** | `string` | ✅ | | -| **channel** | `string` | ✅ | Teams channel ID | -| **message** | `string` | ✅ | Message text with optional markdown | -| **mentions** | `string[]` | optional | User IDs to mention | -| **teamId** | `string` | optional | Team ID (if not in default team) | - --- ## TimeTrigger -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Unique identifier | -| **timeLength** | `integer` | ✅ | Duration amount (e.g. 1, 30) | -| **timeUnit** | `Enum<'minutes' \| 'hours' \| 'days'>` | ✅ | Unit of time | -| **offsetDirection** | `Enum<'before' \| 'after'>` | ✅ | Before or After the reference date | -| **offsetFrom** | `Enum<'trigger_date' \| 'date_field'>` | ✅ | Basis for calculation | -| **dateField** | `string` | optional | Date field to calculate from (required if offsetFrom is date_field) | -| **actions** | `object \| object \| object \| object \| object \| object \| object \| object \| object \| object[]` | ✅ | Actions to execute at the scheduled time | - --- ## WebhookTriggerAction -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Action name | -| **type** | `string` | ✅ | | -| **config** | `object` | ✅ | Webhook configuration (references canonical schema) | - --- ## WorkflowAction @@ -195,28 +71,7 @@ const result = CustomScriptActionSchema.parse(data); ## WorkflowRule -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique workflow name (lowercase snake_case) | -| **objectName** | `string` | ✅ | Target Object | -| **triggerType** | `Enum<'on_create' \| 'on_update' \| 'on_create_or_update' \| 'on_delete' \| 'schedule'>` | ✅ | When to evaluate | -| **criteria** | `string` | optional | Formula condition. If TRUE, actions execute. | -| **actions** | `object \| object \| object \| object \| object \| object \| object \| object \| object \| object[]` | optional | Immediate actions | -| **timeTriggers** | `object[]` | optional | Scheduled actions relative to trigger or date field | -| **active** | `boolean` | optional | Whether this workflow is active | -| **reevaluateOnChange** | `boolean` | optional | Re-evaluate rule if field updates change the record validity | - --- ## WorkflowTriggerType -### Allowed Values - -* `on_create` -* `on_update` -* `on_create_or_update` -* `on_delete` -* `schedule` - diff --git a/content/docs/references/data/data-engine.mdx b/content/docs/references/data/data-engine.mdx index 518d30c1e..18d712f35 100644 --- a/content/docs/references/data/data-engine.mdx +++ b/content/docs/references/data/data-engine.mdx @@ -23,240 +23,79 @@ const result = DataEngineAggregateOptionsSchema.parse(data); ## DataEngineAggregateOptions -Options for DataEngine.aggregate operations - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **filter** | `Record \| any` | optional | Data Engine query filter conditions | -| **groupBy** | `string[]` | optional | | -| **aggregations** | `object[]` | optional | | - --- ## DataEngineAggregateRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `string` | ✅ | | -| **object** | `string` | ✅ | | -| **query** | `object` | ✅ | Options for DataEngine.aggregate operations | - --- ## DataEngineBatchRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `string` | ✅ | | -| **requests** | `object \| object \| object \| object \| object \| object \| object \| object \| object[]` | ✅ | | -| **transaction** | `boolean` | optional | | - --- ## DataEngineContract -Standard Data Engine Contract - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | - --- ## DataEngineCountOptions -Options for DataEngine.count operations - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **filter** | `Record \| any` | optional | Data Engine query filter conditions | - --- ## DataEngineCountRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `string` | ✅ | | -| **object** | `string` | ✅ | | -| **query** | `object` | optional | Options for DataEngine.count operations | - --- ## DataEngineDeleteOptions -Options for DataEngine.delete operations - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **filter** | `Record \| any` | optional | Data Engine query filter conditions | -| **multi** | `boolean` | optional | | - --- ## DataEngineDeleteRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `string` | ✅ | | -| **object** | `string` | ✅ | | -| **id** | `any` | optional | ID for single delete, or use filter in options | -| **options** | `object` | optional | Options for DataEngine.delete operations | - --- ## DataEngineExecuteRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `string` | ✅ | | -| **command** | `any` | optional | | -| **options** | `Record` | optional | | - --- ## DataEngineFilter -Data Engine query filter conditions - --- ## DataEngineFindOneRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `string` | ✅ | | -| **object** | `string` | ✅ | | -| **query** | `object` | optional | Query options for IDataEngine.find() operations | - --- ## DataEngineFindRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `string` | ✅ | | -| **object** | `string` | ✅ | | -| **query** | `object` | optional | Query options for IDataEngine.find() operations | - --- ## DataEngineInsertOptions -Options for DataEngine.insert operations - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **returning** | `boolean` | optional | | - --- ## DataEngineInsertRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `string` | ✅ | | -| **object** | `string` | ✅ | | -| **data** | `Record \| Record[]` | ✅ | | -| **options** | `object` | optional | Options for DataEngine.insert operations | - --- ## DataEngineQueryOptions -Query options for IDataEngine.find() operations - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **filter** | `Record \| any` | optional | Data Engine query filter conditions | -| **select** | `string[]` | optional | | -| **sort** | `Record> \| Record> \| object[]` | optional | Sort order definition | -| **limit** | `integer` | optional | | -| **skip** | `integer` | optional | | -| **top** | `integer` | optional | | -| **populate** | `string[]` | optional | | - --- ## DataEngineRequest -Virtual ObjectQL Request Protocol - --- ## DataEngineSort -Sort order definition - --- ## DataEngineUpdateOptions -Options for DataEngine.update operations - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **filter** | `Record \| any` | optional | Data Engine query filter conditions | -| **upsert** | `boolean` | optional | | -| **multi** | `boolean` | optional | | -| **returning** | `boolean` | optional | | - --- ## DataEngineUpdateRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `string` | ✅ | | -| **object** | `string` | ✅ | | -| **data** | `Record` | ✅ | | -| **id** | `any` | optional | ID for single update, or use filter in options | -| **options** | `object` | optional | Options for DataEngine.update operations | - --- ## DataEngineVectorFindRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `string` | ✅ | | -| **object** | `string` | ✅ | | -| **vector** | `number[]` | ✅ | | -| **filter** | `Record \| any` | optional | Data Engine query filter conditions | -| **select** | `string[]` | optional | | -| **limit** | `integer` | optional | | -| **threshold** | `number` | optional | | - diff --git a/content/docs/references/data/dataset.mdx b/content/docs/references/data/dataset.mdx index 0cf6ae1da..8f7cd31da 100644 --- a/content/docs/references/data/dataset.mdx +++ b/content/docs/references/data/dataset.mdx @@ -23,25 +23,7 @@ const result = DatasetSchema.parse(data); ## Dataset -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Target Object Name | -| **externalId** | `string` | optional | Field match for uniqueness check | -| **mode** | `Enum<'insert' \| 'update' \| 'upsert' \| 'replace' \| 'ignore'>` | optional | Conflict resolution strategy | -| **env** | `Enum<'prod' \| 'dev' \| 'test'>[]` | optional | Applicable environments | -| **records** | `Record[]` | ✅ | Data records | - --- ## DatasetMode -### Allowed Values - -* `insert` -* `update` -* `upsert` -* `replace` -* `ignore` - diff --git a/content/docs/references/data/document.mdx b/content/docs/references/data/document.mdx index 75dba04f4..f9073fe07 100644 --- a/content/docs/references/data/document.mdx +++ b/content/docs/references/data/document.mdx @@ -23,65 +23,15 @@ const result = DocumentSchema.parse(data); ## Document -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Document ID | -| **name** | `string` | ✅ | Document name | -| **description** | `string` | optional | Document description | -| **fileType** | `string` | ✅ | File MIME type | -| **fileSize** | `number` | ✅ | File size in bytes | -| **category** | `string` | optional | Document category | -| **tags** | `string[]` | optional | Document tags | -| **versioning** | `object` | optional | Version control | -| **template** | `object` | optional | Document template | -| **eSignature** | `object` | optional | E-signature config | -| **access** | `object` | optional | Access control | -| **metadata** | `Record` | optional | Custom metadata | - --- ## DocumentTemplate -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Template ID | -| **name** | `string` | ✅ | Template name | -| **description** | `string` | optional | Template description | -| **fileUrl** | `string` | ✅ | Template file URL | -| **fileType** | `string` | ✅ | File MIME type | -| **placeholders** | `object[]` | ✅ | Template placeholders | - --- ## DocumentVersion -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **versionNumber** | `number` | ✅ | Version number | -| **createdAt** | `number` | ✅ | Creation timestamp | -| **createdBy** | `string` | ✅ | Creator user ID | -| **size** | `number` | ✅ | File size in bytes | -| **checksum** | `string` | ✅ | File checksum | -| **downloadUrl** | `string` | ✅ | Download URL | -| **isLatest** | `boolean` | optional | Is latest version | - --- ## ESignatureConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **provider** | `Enum<'docusign' \| 'adobe-sign' \| 'hellosign' \| 'custom'>` | ✅ | E-signature provider | -| **enabled** | `boolean` | optional | E-signature enabled | -| **signers** | `object[]` | ✅ | Document signers | -| **expirationDays** | `number` | optional | Expiration days | -| **reminderDays** | `number` | optional | Reminder interval days | - diff --git a/content/docs/references/data/driver-nosql.mdx b/content/docs/references/data/driver-nosql.mdx index 2fb1eef0c..3d751e7ef 100644 --- a/content/docs/references/data/driver-nosql.mdx +++ b/content/docs/references/data/driver-nosql.mdx @@ -23,216 +23,55 @@ const result = AggregationPipelineSchema.parse(data); ## AggregationPipeline -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **collection** | `string` | ✅ | Collection/table name | -| **stages** | `object[]` | ✅ | Aggregation pipeline stages | -| **options** | `object` | optional | Query options | - --- ## AggregationStage -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **operator** | `string` | ✅ | Aggregation operator (e.g., $match, $group, $sort) | -| **options** | `Record` | ✅ | Stage-specific options | - --- ## ConsistencyLevel -### Allowed Values - -* `all` -* `quorum` -* `one` -* `local_quorum` -* `each_quorum` -* `eventual` - --- ## DocumentValidationSchema -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable schema validation | -| **validationLevel** | `Enum<'strict' \| 'moderate' \| 'off'>` | optional | Validation strictness | -| **validationAction** | `Enum<'error' \| 'warn'>` | optional | Action on validation failure | -| **jsonSchema** | `Record` | optional | JSON Schema for validation | - --- ## NoSQLDataTypeMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **text** | `string` | ✅ | NoSQL type for text fields | -| **number** | `string` | ✅ | NoSQL type for number fields | -| **boolean** | `string` | ✅ | NoSQL type for boolean fields | -| **date** | `string` | ✅ | NoSQL type for date fields | -| **datetime** | `string` | ✅ | NoSQL type for datetime fields | -| **json** | `string` | optional | NoSQL type for JSON/object fields | -| **uuid** | `string` | optional | NoSQL type for UUID fields | -| **binary** | `string` | optional | NoSQL type for binary fields | -| **array** | `string` | optional | NoSQL type for array fields | -| **objectId** | `string` | optional | NoSQL type for ObjectID fields (MongoDB) | -| **geopoint** | `string` | optional | NoSQL type for geospatial point fields | - --- ## NoSQLDatabaseType -### Allowed Values - -* `mongodb` -* `couchdb` -* `dynamodb` -* `cassandra` -* `redis` -* `elasticsearch` -* `neo4j` -* `orientdb` - --- ## NoSQLDriverConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Driver instance name | -| **type** | `string` | ✅ | Driver type must be "nosql" | -| **capabilities** | `object` | ✅ | Driver capability flags | -| **connectionString** | `string` | optional | Database connection string (driver-specific format) | -| **poolConfig** | `object` | optional | Connection pool configuration | -| **databaseType** | `Enum<'mongodb' \| 'couchdb' \| 'dynamodb' \| 'cassandra' \| 'redis' \| 'elasticsearch' \| 'neo4j' \| 'orientdb'>` | ✅ | Specific NoSQL database type | -| **dataTypeMapping** | `object` | ✅ | NoSQL data type mapping configuration | -| **consistency** | `Enum<'all' \| 'quorum' \| 'one' \| 'local_quorum' \| 'each_quorum' \| 'eventual'>` | optional | Consistency level for operations | -| **replication** | `object` | optional | Replication configuration | -| **sharding** | `object` | optional | Sharding configuration | -| **schemaValidation** | `object` | optional | Document schema validation | -| **region** | `string` | optional | AWS region (for managed NoSQL services) | -| **accessKeyId** | `string` | optional | AWS access key ID | -| **secretAccessKey** | `string` | optional | AWS secret access key | -| **ttlField** | `string` | optional | Field name for TTL (auto-deletion) | -| **maxDocumentSize** | `integer` | optional | Maximum document size in bytes | -| **collectionPrefix** | `string` | optional | Prefix for collection/table names | - --- ## NoSQLIndex -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Index name | -| **type** | `Enum<'single' \| 'compound' \| 'unique' \| 'text' \| 'geospatial' \| 'hashed' \| 'ttl' \| 'sparse'>` | ✅ | Index type | -| **fields** | `object[]` | ✅ | Fields to index | -| **unique** | `boolean` | optional | Enforce uniqueness | -| **sparse** | `boolean` | optional | Sparse index | -| **expireAfterSeconds** | `integer` | optional | TTL in seconds | -| **partialFilterExpression** | `Record` | optional | Partial index filter | -| **background** | `boolean` | optional | Create index in background | - --- ## NoSQLIndexType -### Allowed Values - -* `single` -* `compound` -* `unique` -* `text` -* `geospatial` -* `hashed` -* `ttl` -* `sparse` - --- ## NoSQLOperationType -### Allowed Values - -* `find` -* `findOne` -* `insert` -* `update` -* `delete` -* `aggregate` -* `mapReduce` -* `count` -* `distinct` -* `createIndex` -* `dropIndex` - --- ## NoSQLQueryOptions -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **consistency** | `Enum<'all' \| 'quorum' \| 'one' \| 'local_quorum' \| 'each_quorum' \| 'eventual'>` | optional | Consistency level override | -| **readFromSecondary** | `boolean` | optional | Allow reading from secondary replicas | -| **projection** | `Record>` | optional | Field projection | -| **timeout** | `integer` | optional | Query timeout (ms) | -| **useCursor** | `boolean` | optional | Use cursor instead of loading all results | -| **batchSize** | `integer` | optional | Cursor batch size | -| **profile** | `boolean` | optional | Enable query profiling | -| **hint** | `string` | optional | Index hint for query optimization | - --- ## NoSQLTransactionOptions -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **readConcern** | `Enum<'local' \| 'majority' \| 'linearizable' \| 'snapshot'>` | optional | Read concern level | -| **writeConcern** | `Enum<'majority' \| 'acknowledged' \| 'unacknowledged'>` | optional | Write concern level | -| **readPreference** | `Enum<'primary' \| 'primaryPreferred' \| 'secondary' \| 'secondaryPreferred' \| 'nearest'>` | optional | Read preference | -| **maxCommitTimeMS** | `integer` | optional | Transaction commit timeout (ms) | - --- ## ReplicationConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable replication | -| **replicaSetName** | `string` | optional | Replica set name | -| **replicas** | `integer` | optional | Number of replicas | -| **readPreference** | `Enum<'primary' \| 'primaryPreferred' \| 'secondary' \| 'secondaryPreferred' \| 'nearest'>` | optional | Read preference for replica set | -| **writeConcern** | `Enum<'majority' \| 'acknowledged' \| 'unacknowledged'>` | optional | Write concern level | - --- ## ShardingConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable sharding | -| **shardKey** | `string` | optional | Field to use as shard key | -| **shardingStrategy** | `Enum<'hash' \| 'range' \| 'zone'>` | optional | Sharding strategy | -| **numShards** | `integer` | optional | Number of shards | - diff --git a/content/docs/references/data/driver-sql.mdx b/content/docs/references/data/driver-sql.mdx index c11683fac..4db1800c6 100644 --- a/content/docs/references/data/driver-sql.mdx +++ b/content/docs/references/data/driver-sql.mdx @@ -23,60 +23,15 @@ const result = DataTypeMappingSchema.parse(data); ## DataTypeMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **text** | `string` | ✅ | SQL type for text fields (e.g., VARCHAR, TEXT) | -| **number** | `string` | ✅ | SQL type for number fields (e.g., NUMERIC, DECIMAL, INT) | -| **boolean** | `string` | ✅ | SQL type for boolean fields (e.g., BOOLEAN, BIT) | -| **date** | `string` | ✅ | SQL type for date fields (e.g., DATE) | -| **datetime** | `string` | ✅ | SQL type for datetime fields (e.g., TIMESTAMP, DATETIME) | -| **json** | `string` | optional | SQL type for JSON fields (e.g., JSON, JSONB) | -| **uuid** | `string` | optional | SQL type for UUID fields (e.g., UUID, CHAR(36)) | -| **binary** | `string` | optional | SQL type for binary fields (e.g., BLOB, BYTEA) | - --- ## SQLDialect -### Allowed Values - -* `postgresql` -* `mysql` -* `sqlite` -* `mssql` -* `oracle` -* `mariadb` - --- ## SQLDriverConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Driver instance name | -| **type** | `string` | ✅ | Driver type must be "sql" | -| **capabilities** | `object` | ✅ | Driver capability flags | -| **connectionString** | `string` | optional | Database connection string (driver-specific format) | -| **poolConfig** | `object` | optional | Connection pool configuration | -| **dialect** | `Enum<'postgresql' \| 'mysql' \| 'sqlite' \| 'mssql' \| 'oracle' \| 'mariadb'>` | ✅ | SQL database dialect | -| **dataTypeMapping** | `object` | ✅ | SQL data type mapping configuration | -| **ssl** | `boolean` | optional | Enable SSL/TLS connection | -| **sslConfig** | `object` | optional | SSL/TLS configuration (required when ssl is true) | - --- ## SSLConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **rejectUnauthorized** | `boolean` | optional | Reject connections with invalid certificates | -| **ca** | `string` | optional | CA certificate file path or content | -| **cert** | `string` | optional | Client certificate file path or content | -| **key** | `string` | optional | Client private key file path or content | - diff --git a/content/docs/references/data/driver.mdx b/content/docs/references/data/driver.mdx index 9bde7dbb2..3d584d278 100644 --- a/content/docs/references/data/driver.mdx +++ b/content/docs/references/data/driver.mdx @@ -23,93 +23,19 @@ const result = DriverCapabilitiesSchema.parse(data); ## DriverCapabilities -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **create** | `boolean` | optional | Supports CREATE operations | -| **read** | `boolean` | optional | Supports READ operations | -| **update** | `boolean` | optional | Supports UPDATE operations | -| **delete** | `boolean` | optional | Supports DELETE operations | -| **bulkCreate** | `boolean` | optional | Supports bulk CREATE operations | -| **bulkUpdate** | `boolean` | optional | Supports bulk UPDATE operations | -| **bulkDelete** | `boolean` | optional | Supports bulk DELETE operations | -| **transactions** | `boolean` | optional | Supports ACID transactions | -| **savepoints** | `boolean` | optional | Supports transaction savepoints | -| **isolationLevels** | `Enum<'read-uncommitted' \| 'read-committed' \| 'repeatable-read' \| 'serializable'>[]` | optional | Supported transaction isolation levels | -| **queryFilters** | `boolean` | optional | Supports WHERE clause filtering | -| **queryAggregations** | `boolean` | optional | Supports GROUP BY and aggregation functions | -| **querySorting** | `boolean` | optional | Supports ORDER BY sorting | -| **queryPagination** | `boolean` | optional | Supports LIMIT/OFFSET pagination | -| **queryWindowFunctions** | `boolean` | optional | Supports window functions with OVER clause | -| **querySubqueries** | `boolean` | optional | Supports subqueries | -| **queryCTE** | `boolean` | optional | Supports Common Table Expressions (WITH clause) | -| **joins** | `boolean` | optional | Supports SQL joins | -| **fullTextSearch** | `boolean` | optional | Supports full-text search | -| **jsonQuery** | `boolean` | optional | Supports JSON field querying | -| **geospatialQuery** | `boolean` | optional | Supports geospatial queries | -| **streaming** | `boolean` | optional | Supports result streaming (cursors/iterators) | -| **jsonFields** | `boolean` | optional | Supports JSON field types | -| **arrayFields** | `boolean` | optional | Supports array field types | -| **vectorSearch** | `boolean` | optional | Supports vector embeddings and similarity search | -| **geoSpatial** | `boolean` | optional | Supports geospatial queries (deprecated: use geospatialQuery) | -| **schemaSync** | `boolean` | optional | Supports automatic schema synchronization | -| **migrations** | `boolean` | optional | Supports database migrations | -| **indexes** | `boolean` | optional | Supports index creation and management | -| **connectionPooling** | `boolean` | optional | Supports connection pooling | -| **preparedStatements** | `boolean` | optional | Supports prepared statements (SQL injection prevention) | -| **queryCache** | `boolean` | optional | Supports query result caching | - --- ## DriverConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Driver instance name | -| **type** | `Enum<'sql' \| 'nosql' \| 'cache' \| 'search' \| 'graph' \| 'timeseries'>` | ✅ | Driver type category | -| **capabilities** | `object` | ✅ | Driver capability flags | -| **connectionString** | `string` | optional | Database connection string (driver-specific format) | -| **poolConfig** | `object` | optional | Connection pool configuration | - --- ## DriverInterface -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Driver unique name | -| **version** | `string` | ✅ | Driver version | -| **supports** | `object` | ✅ | | - --- ## DriverOptions -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **transaction** | `any` | optional | Transaction handle | -| **timeout** | `number` | optional | Timeout in ms | -| **skipCache** | `boolean` | optional | Bypass cache | -| **traceContext** | `Record` | optional | OpenTelemetry context or request ID | -| **tenantId** | `string` | optional | Tenant Isolation identifier | - --- ## PoolConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **min** | `number` | optional | Minimum number of connections in pool | -| **max** | `number` | optional | Maximum number of connections in pool | -| **idleTimeoutMillis** | `number` | optional | Time in ms before idle connection is closed | -| **connectionTimeoutMillis** | `number` | optional | Time in ms to wait for available connection | - diff --git a/content/docs/references/data/external-lookup.mdx b/content/docs/references/data/external-lookup.mdx index 906be27fc..dfcb712a0 100644 --- a/content/docs/references/data/external-lookup.mdx +++ b/content/docs/references/data/external-lookup.mdx @@ -23,44 +23,11 @@ const result = ExternalDataSourceSchema.parse(data); ## ExternalDataSource -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Data source ID | -| **name** | `string` | ✅ | Data source name | -| **type** | `Enum<'odata' \| 'rest-api' \| 'graphql' \| 'custom'>` | ✅ | Protocol type | -| **endpoint** | `string` | ✅ | API endpoint URL | -| **authentication** | `object` | ✅ | Authentication | - --- ## ExternalFieldMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **source** | `string` | ✅ | Source field name | -| **target** | `string` | ✅ | Target field name | -| **transform** | `object \| object \| object \| object \| object` | optional | Transformation to apply | -| **defaultValue** | `any` | optional | Default if source is null/undefined | -| **type** | `string` | optional | Field type | -| **readonly** | `boolean` | optional | Read-only field | - --- ## ExternalLookup -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **fieldName** | `string` | ✅ | Field name | -| **dataSource** | `object` | ✅ | External data source | -| **query** | `object` | ✅ | Query configuration | -| **fieldMappings** | `object[]` | ✅ | Field mappings | -| **caching** | `object` | optional | Caching configuration | -| **fallback** | `object` | optional | Fallback configuration | -| **rateLimit** | `object` | optional | Rate limiting | - diff --git a/content/docs/references/data/field.mdx b/content/docs/references/data/field.mdx index f59b1a883..438436e3c 100644 --- a/content/docs/references/data/field.mdx +++ b/content/docs/references/data/field.mdx @@ -23,251 +23,43 @@ const result = AddressSchema.parse(data); ## Address -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **street** | `string` | optional | Street address | -| **city** | `string` | optional | City name | -| **state** | `string` | optional | State/Province | -| **postalCode** | `string` | optional | Postal/ZIP code | -| **country** | `string` | optional | Country name or code | -| **countryCode** | `string` | optional | ISO country code (e.g., US, GB) | -| **formatted** | `string` | optional | Formatted address string | - --- ## ComputedFieldCache -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | ✅ | Enable caching for computed field results | -| **ttl** | `number` | ✅ | Cache TTL in seconds (0 = no expiration) | -| **invalidateOn** | `string[]` | ✅ | Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"]) | - --- ## CurrencyConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **precision** | `integer` | optional | Decimal precision (default: 2) | -| **currencyMode** | `Enum<'dynamic' \| 'fixed'>` | optional | Currency mode: dynamic (user selectable) or fixed (single currency) | -| **defaultCurrency** | `string` | optional | Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR) | - --- ## CurrencyValue -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **value** | `number` | ✅ | Monetary amount | -| **currency** | `string` | ✅ | Currency code (ISO 4217) | - --- ## DataQualityRules -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **uniqueness** | `boolean` | optional | Enforce unique values across all records | -| **completeness** | `number` | optional | Minimum ratio of non-null values (0-1, default: 0 = no requirement) | -| **accuracy** | `object` | optional | Accuracy validation configuration | - --- ## Field -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | optional | Machine name (snake_case) | -| **label** | `string` | optional | Human readable label | -| **type** | `Enum<'text' \| 'textarea' \| 'email' \| 'url' \| 'phone' \| 'password' \| 'markdown' \| 'html' \| 'richtext' \| 'number' \| 'currency' \| 'percent' \| 'date' \| 'datetime' \| 'time' \| 'boolean' \| 'toggle' \| 'select' \| 'multiselect' \| 'radio' \| 'checkboxes' \| 'lookup' \| 'master_detail' \| 'tree' \| 'image' \| 'file' \| 'avatar' \| 'video' \| 'audio' \| 'formula' \| 'summary' \| 'autonumber' \| 'location' \| 'address' \| 'code' \| 'json' \| 'color' \| 'rating' \| 'slider' \| 'signature' \| 'qrcode' \| 'progress' \| 'tags' \| 'vector'>` | ✅ | Field Data Type | -| **description** | `string` | optional | Tooltip/Help text | -| **format** | `string` | optional | Format string (e.g. email, phone) | -| **required** | `boolean` | optional | Is required | -| **searchable** | `boolean` | optional | Is searchable | -| **multiple** | `boolean` | optional | Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image. | -| **unique** | `boolean` | optional | Is unique constraint | -| **defaultValue** | `any` | optional | Default value | -| **maxLength** | `number` | optional | Max character length | -| **minLength** | `number` | optional | Min character length | -| **precision** | `number` | optional | Total digits | -| **scale** | `number` | optional | Decimal places | -| **min** | `number` | optional | Minimum value | -| **max** | `number` | optional | Maximum value | -| **options** | `object[]` | optional | Static options for select/multiselect | -| **reference** | `string` | optional | Target Object Name | -| **referenceFilters** | `string[]` | optional | Filters applied to lookup dialogs (e.g. "active = true") | -| **writeRequiresMasterRead** | `boolean` | optional | If true, user needs read access to master record to edit this field | -| **deleteBehavior** | `Enum<'set_null' \| 'cascade' \| 'restrict'>` | optional | What happens if referenced record is deleted | -| **expression** | `string` | optional | Formula expression | -| **formula** | `string` | optional | Deprecated: Use expression | -| **summaryOperations** | `object` | optional | Roll-up summary definition | -| **language** | `string` | optional | Programming language for syntax highlighting (e.g., javascript, python, sql) | -| **theme** | `string` | optional | Code editor theme (e.g., dark, light, monokai) | -| **lineNumbers** | `boolean` | optional | Show line numbers in code editor | -| **maxRating** | `number` | optional | Maximum rating value (default: 5) | -| **allowHalf** | `boolean` | optional | Allow half-star ratings | -| **displayMap** | `boolean` | optional | Display map widget for location field | -| **allowGeocoding** | `boolean` | optional | Allow address-to-coordinate conversion | -| **addressFormat** | `Enum<'us' \| 'uk' \| 'international'>` | optional | Address format template | -| **colorFormat** | `Enum<'hex' \| 'rgb' \| 'rgba' \| 'hsl'>` | optional | Color value format | -| **allowAlpha** | `boolean` | optional | Allow transparency/alpha channel | -| **presetColors** | `string[]` | optional | Preset color options | -| **step** | `number` | optional | Step increment for slider (default: 1) | -| **showValue** | `boolean` | optional | Display current value on slider | -| **marks** | `Record` | optional | Custom marks/labels at specific values (e.g., `{0: "Low", 50: "Medium", 100: "High"}`) | -| **barcodeFormat** | `Enum<'qr' \| 'ean13' \| 'ean8' \| 'code128' \| 'code39' \| 'upca' \| 'upce'>` | optional | Barcode format type | -| **qrErrorCorrection** | `Enum<'L' \| 'M' \| 'Q' \| 'H'>` | optional | QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is "qr" | -| **displayValue** | `boolean` | optional | Display human-readable value below barcode/QR code | -| **allowScanning** | `boolean` | optional | Enable camera scanning for barcode/QR code input | -| **currencyConfig** | `object` | optional | Configuration for currency field type | -| **vectorConfig** | `object` | optional | Configuration for vector field type (AI/ML embeddings) | -| **fileAttachmentConfig** | `object` | optional | Configuration for file and attachment field types | -| **encryptionConfig** | `object` | optional | Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS) | -| **maskingRule** | `object` | optional | Data masking rules for PII protection | -| **auditTrail** | `boolean` | optional | Enable detailed audit trail for this field (tracks all changes with user and timestamp) | -| **dependencies** | `string[]` | optional | Array of field names that this field depends on (for formulas, visibility rules, etc.) | -| **cached** | `object` | optional | Caching configuration for computed/formula fields | -| **dataQuality** | `object` | optional | Data quality validation and monitoring rules | -| **hidden** | `boolean` | optional | Hidden from default UI | -| **readonly** | `boolean` | optional | Read-only in UI | -| **encryption** | `boolean` | optional | Deprecated: Use encryptionConfig for enhanced encryption features. Simple flag for backward compatibility. | -| **index** | `boolean` | optional | Create standard database index | -| **externalId** | `boolean` | optional | Is external ID for upsert operations | - --- ## FieldType -### Allowed Values - -* `text` -* `textarea` -* `email` -* `url` -* `phone` -* `password` -* `markdown` -* `html` -* `richtext` -* `number` -* `currency` -* `percent` -* `date` -* `datetime` -* `time` -* `boolean` -* `toggle` -* `select` -* `multiselect` -* `radio` -* `checkboxes` -* `lookup` -* `master_detail` -* `tree` -* `image` -* `file` -* `avatar` -* `video` -* `audio` -* `formula` -* `summary` -* `autonumber` -* `location` -* `address` -* `code` -* `json` -* `color` -* `rating` -* `slider` -* `signature` -* `qrcode` -* `progress` -* `tags` -* `vector` - --- ## FileAttachmentConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **minSize** | `number` | optional | Minimum file size in bytes | -| **maxSize** | `number` | optional | Maximum file size in bytes (e.g., 10485760 = 10MB) | -| **allowedTypes** | `string[]` | optional | Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"]) | -| **blockedTypes** | `string[]` | optional | Blocked file extensions (e.g., [".exe", ".bat", ".sh"]) | -| **allowedMimeTypes** | `string[]` | optional | Allowed MIME types (e.g., ["image/jpeg", "application/pdf"]) | -| **blockedMimeTypes** | `string[]` | optional | Blocked MIME types | -| **virusScan** | `boolean` | optional | Enable virus scanning for uploaded files | -| **virusScanProvider** | `Enum<'clamav' \| 'virustotal' \| 'metadefender' \| 'custom'>` | optional | Virus scanning service provider | -| **virusScanOnUpload** | `boolean` | optional | Scan files immediately on upload | -| **quarantineOnThreat** | `boolean` | optional | Quarantine files if threat detected | -| **storageProvider** | `string` | optional | Object storage provider name (references ObjectStorageConfig) | -| **storageBucket** | `string` | optional | Target bucket name | -| **storagePrefix** | `string` | optional | Storage path prefix (e.g., "uploads/documents/") | -| **imageValidation** | `object` | optional | Image-specific validation rules | -| **allowMultiple** | `boolean` | optional | Allow multiple file uploads (overrides field.multiple) | -| **allowReplace** | `boolean` | optional | Allow replacing existing files | -| **allowDelete** | `boolean` | optional | Allow deleting uploaded files | -| **requireUpload** | `boolean` | optional | Require at least one file when field is required | -| **extractMetadata** | `boolean` | optional | Extract file metadata (name, size, type, etc.) | -| **extractText** | `boolean` | optional | Extract text content from documents (OCR/parsing) | -| **versioningEnabled** | `boolean` | optional | Keep previous versions of replaced files | -| **maxVersions** | `number` | optional | Maximum number of versions to retain | -| **publicRead** | `boolean` | optional | Allow public read access to uploaded files | -| **presignedUrlExpiry** | `number` | optional | Presigned URL expiration in seconds (default: 1 hour) | - --- ## LocationCoordinates -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **latitude** | `number` | ✅ | Latitude coordinate | -| **longitude** | `number` | ✅ | Longitude coordinate | -| **altitude** | `number` | optional | Altitude in meters | -| **accuracy** | `number` | optional | Accuracy in meters | - --- ## SelectOption -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **label** | `string` | ✅ | Display label (human-readable, any case allowed) | -| **value** | `string` | ✅ | Stored value (lowercase machine identifier) | -| **color** | `string` | optional | Color code for badges/charts | -| **default** | `boolean` | optional | Is default option | - --- ## VectorConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **dimensions** | `integer` | ✅ | Vector dimensionality (e.g., 1536 for OpenAI embeddings) | -| **distanceMetric** | `Enum<'cosine' \| 'euclidean' \| 'dotProduct' \| 'manhattan'>` | optional | Distance/similarity metric for vector search | -| **normalized** | `boolean` | optional | Whether vectors are normalized (unit length) | -| **indexed** | `boolean` | optional | Whether to create a vector index for fast similarity search | -| **indexType** | `Enum<'hnsw' \| 'ivfflat' \| 'flat'>` | optional | Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets) | - diff --git a/content/docs/references/data/filter.mdx b/content/docs/references/data/filter.mdx index 3a8afbc3c..9ce55a230 100644 --- a/content/docs/references/data/filter.mdx +++ b/content/docs/references/data/filter.mdx @@ -23,59 +23,18 @@ const result = ComparisonOperatorSchema.parse(data); ## ComparisonOperator -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **$gt** | `number \| string \| object` | optional | | -| **$gte** | `number \| string \| object` | optional | | -| **$lt** | `number \| string \| object` | optional | | -| **$lte** | `number \| string \| object` | optional | | - --- ## EqualityOperator -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **$eq** | `any` | optional | | -| **$ne** | `any` | optional | | - --- ## FieldOperators -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **$eq** | `any` | optional | | -| **$ne** | `any` | optional | | -| **$gt** | `number \| string \| object` | optional | | -| **$gte** | `number \| string \| object` | optional | | -| **$lt** | `number \| string \| object` | optional | | -| **$lte** | `number \| string \| object` | optional | | -| **$in** | `any[]` | optional | | -| **$nin** | `any[]` | optional | | -| **$between** | `any[]` | optional | | -| **$contains** | `string` | optional | | -| **$startsWith** | `string` | optional | | -| **$endsWith** | `string` | optional | | -| **$null** | `boolean` | optional | | -| **$exist** | `boolean` | optional | | - --- ## FieldReference -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **$field** | `string` | ✅ | Field Reference/Column Name | - --- ## FilterCondition @@ -84,65 +43,23 @@ const result = ComparisonOperatorSchema.parse(data); ## NormalizedFilter -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **$and** | `Record \| any[]` | optional | | -| **$or** | `Record \| any[]` | optional | | -| **$not** | `Record \| any` | optional | | - --- ## QueryFilter -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **where** | `any` | optional | | - --- ## RangeOperator -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **$between** | `any[]` | optional | | - --- ## SetOperator -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **$in** | `any[]` | optional | | -| **$nin** | `any[]` | optional | | - --- ## SpecialOperator -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **$null** | `boolean` | optional | | -| **$exist** | `boolean` | optional | | - --- ## StringOperator -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **$contains** | `string` | optional | | -| **$startsWith** | `string` | optional | | -| **$endsWith** | `string` | optional | | - diff --git a/content/docs/references/data/hook.mdx b/content/docs/references/data/hook.mdx index 3a4e856a9..52a1cb9fb 100644 --- a/content/docs/references/data/hook.mdx +++ b/content/docs/references/data/hook.mdx @@ -23,59 +23,11 @@ const result = HookSchema.parse(data); ## Hook -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Hook unique name (snake_case) | -| **label** | `string` | optional | Description of what this hook does | -| **object** | `string \| string[]` | ✅ | Target object(s) | -| **events** | `Enum<'beforeFind' \| 'afterFind' \| 'beforeFindOne' \| 'afterFindOne' \| 'beforeCount' \| 'afterCount' \| 'beforeAggregate' \| 'afterAggregate' \| 'beforeInsert' \| 'afterInsert' \| 'beforeUpdate' \| 'afterUpdate' \| 'beforeDelete' \| 'afterDelete' \| 'beforeUpdateMany' \| 'afterUpdateMany' \| 'beforeDeleteMany' \| 'afterDeleteMany'>[]` | ✅ | Lifecycle events | -| **handler** | `string \| any` | optional | Function handler name or direct function | -| **priority** | `number` | optional | Execution priority | -| **async** | `boolean` | optional | Run specifically as fire-and-forget | -| **onError** | `Enum<'abort' \| 'log'>` | optional | Error handling strategy | - --- ## HookContext -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Unique execution ID for tracing | -| **object** | `string` | ✅ | | -| **event** | `Enum<'beforeFind' \| 'afterFind' \| 'beforeFindOne' \| 'afterFindOne' \| 'beforeCount' \| 'afterCount' \| 'beforeAggregate' \| 'afterAggregate' \| 'beforeInsert' \| 'afterInsert' \| 'beforeUpdate' \| 'afterUpdate' \| 'beforeDelete' \| 'afterDelete' \| 'beforeUpdateMany' \| 'afterUpdateMany' \| 'beforeDeleteMany' \| 'afterDeleteMany'>` | ✅ | | -| **input** | `Record` | ✅ | Mutable input parameters | -| **result** | `any` | optional | Operation result (After hooks only) | -| **previous** | `Record` | optional | Record state before operation | -| **session** | `object` | optional | Current session context | -| **transaction** | `any` | optional | Database transaction handle | -| **ql** | `any` | optional | ObjectQL Engine Reference | - --- ## HookEvent -### Allowed Values - -* `beforeFind` -* `afterFind` -* `beforeFindOne` -* `afterFindOne` -* `beforeCount` -* `afterCount` -* `beforeAggregate` -* `afterAggregate` -* `beforeInsert` -* `afterInsert` -* `beforeUpdate` -* `afterUpdate` -* `beforeDelete` -* `afterDelete` -* `beforeUpdateMany` -* `afterUpdateMany` -* `beforeDeleteMany` -* `afterDeleteMany` - diff --git a/content/docs/references/data/mapping.mdx b/content/docs/references/data/mapping.mdx index ecd16379e..03dc5fe00 100644 --- a/content/docs/references/data/mapping.mdx +++ b/content/docs/references/data/mapping.mdx @@ -23,45 +23,11 @@ const result = FieldMappingSchema.parse(data); ## FieldMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **source** | `string \| string[]` | ✅ | Source column header(s) | -| **target** | `string \| string[]` | ✅ | Target object field(s) | -| **transform** | `Enum<'none' \| 'constant' \| 'lookup' \| 'split' \| 'join' \| 'javascript' \| 'map'>` | optional | | -| **params** | `object` | optional | | - --- ## Mapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Mapping unique name (lowercase snake_case) | -| **label** | `string` | optional | | -| **sourceFormat** | `Enum<'csv' \| 'json' \| 'xml' \| 'sql'>` | optional | | -| **targetObject** | `string` | ✅ | Target Object Name | -| **fieldMapping** | `object[]` | ✅ | | -| **mode** | `Enum<'insert' \| 'update' \| 'upsert'>` | optional | | -| **upsertKey** | `string[]` | optional | Fields to match for upsert (e.g. email) | -| **extractQuery** | `object` | optional | Query to run for export only | -| **errorPolicy** | `Enum<'skip' \| 'abort' \| 'retry'>` | optional | | -| **batchSize** | `number` | optional | | - --- ## TransformType -### Allowed Values - -* `none` -* `constant` -* `lookup` -* `split` -* `join` -* `javascript` -* `map` - diff --git a/content/docs/references/data/object.mdx b/content/docs/references/data/object.mdx index 174338899..610901303 100644 --- a/content/docs/references/data/object.mdx +++ b/content/docs/references/data/object.mdx @@ -23,148 +23,35 @@ const result = ApiMethodSchema.parse(data); ## ApiMethod -### Allowed Values - -* `get` -* `list` -* `create` -* `update` -* `delete` -* `upsert` -* `bulk` -* `aggregate` -* `history` -* `search` -* `restore` -* `purge` -* `import` -* `export` - --- ## CDCConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | ✅ | Enable Change Data Capture | -| **events** | `Enum<'insert' \| 'update' \| 'delete'>[]` | ✅ | Event types to capture | -| **destination** | `string` | ✅ | Destination endpoint (e.g., "kafka://topic", "webhook://url") | - --- ## Index -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | optional | Index name (auto-generated if not provided) | -| **fields** | `string[]` | ✅ | Fields included in the index | -| **type** | `Enum<'btree' \| 'hash' \| 'gin' \| 'gist' \| 'fulltext'>` | optional | Index algorithm type | -| **unique** | `boolean` | optional | Whether the index enforces uniqueness | -| **partial** | `string` | optional | Partial index condition (SQL WHERE clause for conditional indexes) | - --- ## Object -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Machine unique key (snake_case). Immutable. | -| **label** | `string` | optional | Human readable singular label (e.g. "Account") | -| **pluralLabel** | `string` | optional | Human readable plural label (e.g. "Accounts") | -| **description** | `string` | optional | Developer documentation / description | -| **icon** | `string` | optional | Icon name (Lucide/Material) for UI representation | -| **tags** | `string[]` | optional | Categorization tags (e.g. "sales", "system", "reference") | -| **active** | `boolean` | optional | Is the object active and usable | -| **isSystem** | `boolean` | optional | Is system object (protected from deletion) | -| **abstract** | `boolean` | optional | Is abstract base object (cannot be instantiated) | -| **datasource** | `string` | optional | Target Datasource ID. "default" is the primary DB. | -| **tableName** | `string` | optional | Physical table/collection name in the target datasource | -| **fields** | `Record` | ✅ | Field definitions map. Keys must be snake_case identifiers. | -| **indexes** | `object[]` | optional | Database performance indexes | -| **tenancy** | `object` | optional | Multi-tenancy configuration for SaaS applications | -| **softDelete** | `object` | optional | Soft delete (trash/recycle bin) configuration | -| **versioning** | `object` | optional | Record versioning and history tracking configuration | -| **partitioning** | `object` | optional | Table partitioning configuration for performance | -| **cdc** | `object` | optional | Change Data Capture (CDC) configuration for real-time data streaming | -| **validations** | `object \| object \| object \| object \| object \| object \| object \| object \| object[]` | optional | Object-level validation rules | -| **titleFormat** | `string` | optional | Title expression (e.g. "`{name}` - `{code}`"). Overrides nameField. | -| **compactLayout** | `string[]` | optional | Primary fields for hover/cards/lookups | -| **search** | `object` | optional | Search engine configuration | -| **enable** | `object` | optional | Enabled system features modules | - --- ## ObjectCapabilities -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **trackHistory** | `boolean` | optional | Enable field history tracking for audit compliance | -| **searchable** | `boolean` | optional | Index records for global search | -| **apiEnabled** | `boolean` | optional | Expose object via automatic APIs | -| **apiMethods** | `Enum<'get' \| 'list' \| 'create' \| 'update' \| 'delete' \| 'upsert' \| 'bulk' \| 'aggregate' \| 'history' \| 'search' \| 'restore' \| 'purge' \| 'import' \| 'export'>[]` | optional | Whitelist of allowed API operations | -| **files** | `boolean` | optional | Enable file attachments and document management | -| **feeds** | `boolean` | optional | Enable social feed, comments, and mentions (Chatter-like) | -| **activities** | `boolean` | optional | Enable standard tasks and events tracking | -| **trash** | `boolean` | optional | Enable soft-delete with restore capability | -| **mru** | `boolean` | optional | Track Most Recently Used (MRU) list for users | -| **clone** | `boolean` | optional | Allow record deep cloning | - --- ## PartitioningConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | ✅ | Enable table partitioning | -| **strategy** | `Enum<'range' \| 'hash' \| 'list'>` | ✅ | Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values) | -| **key** | `string` | ✅ | Field name to partition by | -| **interval** | `string` | optional | Partition interval for range strategy (e.g., "1 month", "1 year") | - --- ## SoftDeleteConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | ✅ | Enable soft delete (trash/recycle bin) | -| **field** | `string` | optional | Field name for soft delete timestamp | -| **cascadeDelete** | `boolean` | optional | Cascade soft delete to related records | - --- ## TenancyConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | ✅ | Enable multi-tenancy for this object | -| **strategy** | `Enum<'shared' \| 'isolated' \| 'hybrid'>` | ✅ | Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix) | -| **tenantField** | `string` | optional | Field name for tenant identifier | -| **crossTenantAccess** | `boolean` | optional | Allow cross-tenant data access (with explicit permission) | - --- ## VersioningConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | ✅ | Enable record versioning | -| **strategy** | `Enum<'snapshot' \| 'delta' \| 'event-sourcing'>` | ✅ | Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log) | -| **retentionDays** | `number` | optional | Number of days to retain old versions (undefined = infinite) | -| **versionField** | `string` | optional | Field name for version number/timestamp | - diff --git a/content/docs/references/data/query.mdx b/content/docs/references/data/query.mdx index 3b085f3d7..47388880f 100644 --- a/content/docs/references/data/query.mdx +++ b/content/docs/references/data/query.mdx @@ -23,31 +23,10 @@ const result = AggregationFunctionSchema.parse(data); ## AggregationFunction -### Allowed Values - -* `count` -* `sum` -* `avg` -* `min` -* `max` -* `count_distinct` -* `array_agg` -* `string_agg` - --- ## AggregationNode -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **function** | `Enum<'count' \| 'sum' \| 'avg' \| 'min' \| 'max' \| 'count_distinct' \| 'array_agg' \| 'string_agg'>` | ✅ | Aggregation function | -| **field** | `string` | optional | Field to aggregate (optional for COUNT(*)) | -| **alias** | `string` | ✅ | Result column alias | -| **distinct** | `boolean` | optional | Apply DISTINCT before aggregation | -| **filter** | `any` | optional | Filter/Condition to apply to the aggregation (FILTER WHERE clause) | - --- ## FieldNode @@ -56,132 +35,35 @@ const result = AggregationFunctionSchema.parse(data); ## FullTextSearch -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **query** | `string` | ✅ | Search query text | -| **fields** | `string[]` | optional | Fields to search in (if not specified, searches all text fields) | -| **fuzzy** | `boolean` | optional | Enable fuzzy matching (tolerates typos) | -| **operator** | `Enum<'and' \| 'or'>` | optional | Logical operator between terms | -| **boost** | `Record` | optional | Field-specific relevance boosting (field name -> boost factor) | -| **minScore** | `number` | optional | Minimum relevance score threshold | -| **language** | `string` | optional | Language for text analysis (e.g., "en", "zh", "es") | -| **highlight** | `boolean` | optional | Enable search result highlighting | - --- ## JoinNode -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'inner' \| 'left' \| 'right' \| 'full'>` | ✅ | Join type | -| **strategy** | `Enum<'auto' \| 'database' \| 'hash' \| 'loop'>` | optional | Execution strategy hint | -| **object** | `string` | ✅ | Object/table to join | -| **alias** | `string` | optional | Table alias | -| **on** | `any` | ✅ | Join condition | -| **subquery** | `object` | optional | Subquery instead of object | - --- ## JoinStrategy -### Allowed Values - -* `auto` -* `database` -* `hash` -* `loop` - --- ## JoinType -### Allowed Values - -* `inner` -* `left` -* `right` -* `full` - --- ## Query -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **object** | `string` | ✅ | Object name (e.g. account) | -| **fields** | `string \| object[]` | optional | Fields to retrieve | -| **where** | `any` | optional | Filtering criteria (WHERE) | -| **search** | `object` | optional | Full-text search configuration ($search parameter) | -| **orderBy** | `object[]` | optional | Sorting instructions (ORDER BY) | -| **limit** | `number` | optional | Max records to return (LIMIT) | -| **offset** | `number` | optional | Records to skip (OFFSET) | -| **cursor** | `Record` | optional | Cursor for keyset pagination | -| **joins** | `object[]` | optional | Explicit Table Joins | -| **aggregations** | `object[]` | optional | Aggregation functions | -| **groupBy** | `string[]` | optional | GROUP BY fields | -| **having** | `any` | optional | HAVING clause for aggregation filtering | -| **windowFunctions** | `object[]` | optional | Window functions with OVER clause | -| **distinct** | `boolean` | optional | SELECT DISTINCT flag | - --- ## SortNode -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | | -| **order** | `Enum<'asc' \| 'desc'>` | optional | | - --- ## WindowFunction -### Allowed Values - -* `row_number` -* `rank` -* `dense_rank` -* `percent_rank` -* `lag` -* `lead` -* `first_value` -* `last_value` -* `sum` -* `avg` -* `count` -* `min` -* `max` - --- ## WindowFunctionNode -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **function** | `Enum<'row_number' \| 'rank' \| 'dense_rank' \| 'percent_rank' \| 'lag' \| 'lead' \| 'first_value' \| 'last_value' \| 'sum' \| 'avg' \| 'count' \| 'min' \| 'max'>` | ✅ | Window function name | -| **field** | `string` | optional | Field to operate on (for aggregate window functions) | -| **alias** | `string` | ✅ | Result column alias | -| **over** | `object` | ✅ | Window specification (OVER clause) | - --- ## WindowSpec -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **partitionBy** | `string[]` | optional | PARTITION BY fields | -| **orderBy** | `object[]` | optional | ORDER BY specification | -| **frame** | `object` | optional | Window frame specification | - diff --git a/content/docs/references/data/validation.mdx b/content/docs/references/data/validation.mdx index ebcf1cdb8..5cda97921 100644 --- a/content/docs/references/data/validation.mdx +++ b/content/docs/references/data/validation.mdx @@ -23,190 +23,38 @@ const result = AsyncValidationSchema.parse(data); ## AsyncValidation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label for the rule listing | -| **description** | `string` | optional | Administrative notes explaining the business reason | -| **active** | `boolean` | optional | | -| **events** | `Enum<'insert' \| 'update' \| 'delete'>[]` | optional | Validation contexts | -| **tags** | `string[]` | optional | Categorization tags (e.g., "compliance", "billing") | -| **severity** | `Enum<'error' \| 'warning' \| 'info'>` | optional | | -| **message** | `string` | ✅ | Error message to display to the user | -| **type** | `string` | ✅ | | -| **field** | `string` | ✅ | Field to validate | -| **validatorUrl** | `string` | optional | External API endpoint for validation | -| **method** | `Enum<'GET' \| 'POST'>` | optional | HTTP method for external call | -| **headers** | `Record` | optional | Custom headers for the request | -| **validatorFunction** | `string` | optional | Reference to custom validator function | -| **timeout** | `number` | optional | Timeout in milliseconds | -| **debounce** | `number` | optional | Debounce delay in milliseconds | -| **params** | `Record` | optional | Additional parameters to pass to validator | - --- ## ConditionalValidation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label for the rule listing | -| **description** | `string` | optional | Administrative notes explaining the business reason | -| **active** | `boolean` | optional | | -| **events** | `Enum<'insert' \| 'update' \| 'delete'>[]` | optional | Validation contexts | -| **tags** | `string[]` | optional | Categorization tags (e.g., "compliance", "billing") | -| **severity** | `Enum<'error' \| 'warning' \| 'info'>` | optional | | -| **message** | `string` | ✅ | Error message to display to the user | -| **type** | `string` | ✅ | | -| **when** | `string` | ✅ | Condition formula (e.g. "type = 'enterprise'") | -| **then** | `object \| object \| object \| object \| object \| object \| object \| object \| any` | ✅ | Validation rule to apply when condition is true | -| **otherwise** | `object \| object \| object \| object \| object \| object \| object \| object \| any` | optional | Validation rule to apply when condition is false | - --- ## CrossFieldValidation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label for the rule listing | -| **description** | `string` | optional | Administrative notes explaining the business reason | -| **active** | `boolean` | optional | | -| **events** | `Enum<'insert' \| 'update' \| 'delete'>[]` | optional | Validation contexts | -| **tags** | `string[]` | optional | Categorization tags (e.g., "compliance", "billing") | -| **severity** | `Enum<'error' \| 'warning' \| 'info'>` | optional | | -| **message** | `string` | ✅ | Error message to display to the user | -| **type** | `string` | ✅ | | -| **condition** | `string` | ✅ | Formula expression comparing fields (e.g. "end_date > start_date") | -| **fields** | `string[]` | ✅ | Fields involved in the validation | - --- ## CustomValidator -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label for the rule listing | -| **description** | `string` | optional | Administrative notes explaining the business reason | -| **active** | `boolean` | optional | | -| **events** | `Enum<'insert' \| 'update' \| 'delete'>[]` | optional | Validation contexts | -| **tags** | `string[]` | optional | Categorization tags (e.g., "compliance", "billing") | -| **severity** | `Enum<'error' \| 'warning' \| 'info'>` | optional | | -| **message** | `string` | ✅ | Error message to display to the user | -| **type** | `string` | ✅ | | -| **handler** | `string` | ✅ | Name of the custom validation function registered in the system | -| **params** | `Record` | optional | Parameters passed to the custom handler | - --- ## FormatValidation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label for the rule listing | -| **description** | `string` | optional | Administrative notes explaining the business reason | -| **active** | `boolean` | optional | | -| **events** | `Enum<'insert' \| 'update' \| 'delete'>[]` | optional | Validation contexts | -| **tags** | `string[]` | optional | Categorization tags (e.g., "compliance", "billing") | -| **severity** | `Enum<'error' \| 'warning' \| 'info'>` | optional | | -| **message** | `string` | ✅ | Error message to display to the user | -| **type** | `string` | ✅ | | -| **field** | `string` | ✅ | | -| **regex** | `string` | optional | | -| **format** | `Enum<'email' \| 'url' \| 'phone' \| 'json'>` | optional | | - --- ## JSONValidation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label for the rule listing | -| **description** | `string` | optional | Administrative notes explaining the business reason | -| **active** | `boolean` | optional | | -| **events** | `Enum<'insert' \| 'update' \| 'delete'>[]` | optional | Validation contexts | -| **tags** | `string[]` | optional | Categorization tags (e.g., "compliance", "billing") | -| **severity** | `Enum<'error' \| 'warning' \| 'info'>` | optional | | -| **message** | `string` | ✅ | Error message to display to the user | -| **type** | `string` | ✅ | | -| **field** | `string` | ✅ | JSON field to validate | -| **schema** | `Record` | ✅ | JSON Schema object definition | - --- ## ScriptValidation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label for the rule listing | -| **description** | `string` | optional | Administrative notes explaining the business reason | -| **active** | `boolean` | optional | | -| **events** | `Enum<'insert' \| 'update' \| 'delete'>[]` | optional | Validation contexts | -| **tags** | `string[]` | optional | Categorization tags (e.g., "compliance", "billing") | -| **severity** | `Enum<'error' \| 'warning' \| 'info'>` | optional | | -| **message** | `string` | ✅ | Error message to display to the user | -| **type** | `string` | ✅ | | -| **condition** | `string` | ✅ | Formula expression. If TRUE, validation fails. (e.g. amount < 0) | - --- ## StateMachineValidation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label for the rule listing | -| **description** | `string` | optional | Administrative notes explaining the business reason | -| **active** | `boolean` | optional | | -| **events** | `Enum<'insert' \| 'update' \| 'delete'>[]` | optional | Validation contexts | -| **tags** | `string[]` | optional | Categorization tags (e.g., "compliance", "billing") | -| **severity** | `Enum<'error' \| 'warning' \| 'info'>` | optional | | -| **message** | `string` | ✅ | Error message to display to the user | -| **type** | `string` | ✅ | | -| **field** | `string` | ✅ | State field (e.g. status) | -| **transitions** | `Record` | ✅ | Map of `{ OldState: [AllowedNewStates] }` | - --- ## UniquenessValidation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label for the rule listing | -| **description** | `string` | optional | Administrative notes explaining the business reason | -| **active** | `boolean` | optional | | -| **events** | `Enum<'insert' \| 'update' \| 'delete'>[]` | optional | Validation contexts | -| **tags** | `string[]` | optional | Categorization tags (e.g., "compliance", "billing") | -| **severity** | `Enum<'error' \| 'warning' \| 'info'>` | optional | | -| **message** | `string` | ✅ | Error message to display to the user | -| **type** | `string` | ✅ | | -| **fields** | `string[]` | ✅ | Fields that must be combined unique | -| **scope** | `string` | optional | Formula condition for scope (e.g. active = true) | -| **caseSensitive** | `boolean` | optional | | - --- ## ValidationRule diff --git a/content/docs/references/hub/composer.mdx b/content/docs/references/hub/composer.mdx index 089e9a160..e00c2ebf2 100644 --- a/content/docs/references/hub/composer.mdx +++ b/content/docs/references/hub/composer.mdx @@ -23,68 +23,19 @@ const result = BillOfMaterialsSchema.parse(data); ## BillOfMaterials -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **tenantId** | `string` | ✅ | Target Tenant ID | -| **dependencies** | `object[]` | ✅ | Installed packages | -| **environment** | `Record` | optional | | -| **resolutionStrategy** | `Enum<'strict' \| 'override' \| 'merge'>` | optional | Conflict resolution strategy (strict=fail, override=last-wins, merge=deep-merge) | - --- ## ComposerRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **bom** | `object` | ✅ | | -| **runtimeVersion** | `string` | optional | | -| **dryRun** | `boolean` | optional | | - --- ## ComposerResponse -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | | -| **manifest** | `object` | optional | The compiled System Manifest | -| **manifestUrl** | `string` | optional | Presigned download URL | -| **buildId** | `string` | ✅ | | -| **timestamp** | `string` | ✅ | | -| **duration** | `number` | ✅ | Compilation time in ms | -| **conflicts** | `object[]` | optional | | -| **errors** | `string[]` | optional | | - --- ## ConflictReport -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **resourceType** | `Enum<'object' \| 'field' \| 'api' \| 'ui'>` | ✅ | Type of colliding resource | -| **resourceId** | `string` | ✅ | ID of the resource | -| **sources** | `string[]` | ✅ | List of plugin IDs defining this resource | -| **resolution** | `string` | ✅ | How it was resolved (e.g. "com.example.erp won") | -| **severity** | `Enum<'info' \| 'warning' \| 'error'>` | ✅ | Severity of the conflict | - --- ## DependencyRequirement -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Plugin ID (e.g. "com.example.crm") | -| **version** | `string` | optional | SemVer range or "latest" | -| **configuration** | `Record` | optional | Configuration overrides | -| **features** | `Record` | optional | Feature toggles | - diff --git a/content/docs/references/hub/license.mdx b/content/docs/references/hub/license.mdx index d1a4472d6..2c053ab07 100644 --- a/content/docs/references/hub/license.mdx +++ b/content/docs/references/hub/license.mdx @@ -23,49 +23,11 @@ const result = FeatureSchema.parse(data); ## Feature -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **code** | `string` | ✅ | Feature code (e.g. core.api_access) | -| **label** | `string` | ✅ | | -| **description** | `string` | optional | | -| **type** | `Enum<'boolean' \| 'counter' \| 'gauge'>` | optional | | -| **unit** | `Enum<'count' \| 'bytes' \| 'seconds' \| 'percent'>` | optional | | -| **requires** | `string[]` | optional | | - --- ## License -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **spaceId** | `string` | ✅ | Target Space ID | -| **planCode** | `string` | ✅ | | -| **issuedAt** | `string` | ✅ | | -| **expiresAt** | `string` | optional | | -| **status** | `Enum<'active' \| 'expired' \| 'suspended' \| 'trial'>` | ✅ | | -| **customFeatures** | `string[]` | optional | | -| **customLimits** | `Record` | optional | | -| **plugins** | `string[]` | optional | List of enabled plugin package IDs | -| **signature** | `string` | optional | Cryptographic signature of the license | - --- ## Plan -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **code** | `string` | ✅ | Plan code (e.g. pro_v1) | -| **label** | `string` | ✅ | | -| **active** | `boolean` | optional | | -| **features** | `string[]` | ✅ | List of enabled boolean features | -| **limits** | `Record` | ✅ | Map of metric codes to limit values (e.g. `{ storage_gb: 10 }`) | -| **currency** | `string` | optional | | -| **priceMonthly** | `number` | optional | | -| **priceYearly** | `number` | optional | | - diff --git a/content/docs/references/hub/marketplace.mdx b/content/docs/references/hub/marketplace.mdx index ebebeb7bf..fd9b7ce29 100644 --- a/content/docs/references/hub/marketplace.mdx +++ b/content/docs/references/hub/marketplace.mdx @@ -23,51 +23,11 @@ const result = MarketplacePluginSchema.parse(data); ## MarketplacePlugin -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | | -| **label** | `string` | ✅ | | -| **description** | `string` | optional | | -| **readme** | `string` | optional | | -| **version** | `string` | ✅ | | -| **author** | `object` | optional | | -| **tags** | `string[]` | optional | | -| **category** | `Enum<'app' \| 'integration' \| 'theme' \| 'utility' \| 'driver'>` | optional | | -| **icon** | `string` | optional | | -| **screenshots** | `string[]` | optional | | -| **homepage** | `string` | optional | | -| **repository** | `string` | optional | | -| **bugs** | `string` | optional | | -| **downloads** | `integer` | optional | | -| **rating** | `number` | optional | | -| **pricing** | `object` | optional | | -| **verified** | `boolean` | optional | Is verified maintaned by ObjectStack | - --- ## PluginAuthor -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | | -| **email** | `string` | optional | | -| **url** | `string` | optional | | - --- ## PluginPricing -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'free' \| 'one_time' \| 'recurring'>` | ✅ | | -| **currency** | `string` | optional | | -| **amount** | `number` | ✅ | | -| **interval** | `Enum<'month' \| 'year'>` | optional | Required if type is recurring | -| **trialDays** | `integer` | optional | | - diff --git a/content/docs/references/hub/metrics.mdx b/content/docs/references/hub/metrics.mdx index 903758fad..f0343b288 100644 --- a/content/docs/references/hub/metrics.mdx +++ b/content/docs/references/hub/metrics.mdx @@ -23,9 +23,3 @@ const result = MetricTypeSchema.parse(data); ## MetricType -### Allowed Values - -* `boolean` -* `counter` -* `gauge` - diff --git a/content/docs/references/hub/plugin-registry.mdx b/content/docs/references/hub/plugin-registry.mdx index 23cf14461..c90f620ef 100644 --- a/content/docs/references/hub/plugin-registry.mdx +++ b/content/docs/references/hub/plugin-registry.mdx @@ -23,108 +23,23 @@ const result = PluginInstallConfigSchema.parse(data); ## PluginInstallConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **pluginId** | `string` | ✅ | | -| **version** | `string` | optional | Defaults to latest | -| **config** | `Record` | optional | | -| **autoUpdate** | `boolean` | optional | | -| **options** | `object` | optional | | - --- ## PluginQualityMetrics -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **testCoverage** | `number` | optional | | -| **documentationScore** | `number` | optional | | -| **codeQuality** | `number` | optional | | -| **securityScan** | `object` | optional | | -| **conformanceTests** | `object[]` | optional | | - --- ## PluginRegistryEntry -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Plugin identifier (reverse domain notation) | -| **version** | `string` | ✅ | | -| **name** | `string` | ✅ | | -| **description** | `string` | optional | | -| **readme** | `string` | optional | | -| **category** | `Enum<'data' \| 'integration' \| 'ui' \| 'analytics' \| 'security' \| 'automation' \| 'ai' \| 'utility' \| 'driver' \| 'gateway' \| 'adapter'>` | optional | | -| **tags** | `string[]` | optional | | -| **vendor** | `object` | ✅ | | -| **capabilities** | `object` | optional | | -| **compatibility** | `object` | optional | | -| **links** | `object` | optional | | -| **media** | `object` | optional | | -| **quality** | `object` | optional | | -| **statistics** | `object` | optional | | -| **license** | `string` | optional | SPDX license identifier | -| **pricing** | `object` | optional | | -| **publishedAt** | `string` | optional | | -| **updatedAt** | `string` | optional | | -| **deprecated** | `boolean` | optional | | -| **deprecationMessage** | `string` | optional | | -| **replacedBy** | `string` | optional | Plugin ID that replaces this one | -| **flags** | `object` | optional | | - --- ## PluginSearchFilters -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **query** | `string` | optional | | -| **category** | `string[]` | optional | | -| **tags** | `string[]` | optional | | -| **trustLevel** | `Enum<'official' \| 'verified' \| 'community' \| 'unverified'>[]` | optional | | -| **implementsProtocols** | `string[]` | optional | | -| **pricingModel** | `Enum<'free' \| 'freemium' \| 'paid' \| 'enterprise'>[]` | optional | | -| **minRating** | `number` | optional | | -| **sortBy** | `Enum<'relevance' \| 'downloads' \| 'rating' \| 'updated' \| 'name'>` | optional | | -| **sortOrder** | `Enum<'asc' \| 'desc'>` | optional | | -| **page** | `integer` | optional | | -| **limit** | `integer` | optional | | - --- ## PluginStatistics -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **downloads** | `integer` | optional | | -| **downloadsLastMonth** | `integer` | optional | | -| **activeInstallations** | `integer` | optional | | -| **ratings** | `object` | optional | | -| **stars** | `integer` | optional | | -| **dependents** | `integer` | optional | | - --- ## PluginVendor -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Vendor identifier (reverse domain) | -| **name** | `string` | ✅ | | -| **website** | `string` | optional | | -| **email** | `string` | optional | | -| **verified** | `boolean` | optional | Whether vendor is verified by ObjectStack | -| **trustLevel** | `Enum<'official' \| 'verified' \| 'community' \| 'unverified'>` | optional | | - diff --git a/content/docs/references/hub/space.mdx b/content/docs/references/hub/space.mdx index 7c6311eca..be988e4b4 100644 --- a/content/docs/references/hub/space.mdx +++ b/content/docs/references/hub/space.mdx @@ -23,60 +23,15 @@ const result = DeploymentTargetSchema.parse(data); ## DeploymentTarget -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **provider** | `Enum<'vercel' \| 'docker' \| 'kubernetes'>` | ✅ | | -| **region** | `string` | optional | | -| **url** | `string` | optional | Public Access URL | -| **env** | `Record` | optional | Runtime Environment Variables | - --- ## HubSpace -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | | -| **name** | `string` | ✅ | | -| **slug** | `string` | ✅ | URL friendly identifier | -| **ownerId** | `string` | ✅ | | -| **runtime** | `object` | optional | Runtime instance configuration | -| **bom** | `object` | ✅ | | -| **lastBuild** | `object` | optional | | -| **subscription** | `object` | optional | | -| **deployment** | `object` | optional | | -| **createdAt** | `string` | ✅ | | -| **updatedAt** | `string` | ✅ | | - --- ## SpaceSubscription -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **planId** | `string` | ✅ | Reference to Plan Code | -| **status** | `Enum<'active' \| 'past_due' \| 'canceled' \| 'trialing' \| 'incomplete'>` | ✅ | | -| **currentPeriodEnd** | `string` | optional | | -| **stripeCustomerId** | `string` | optional | | -| **stripeSubscriptionId** | `string` | optional | | -| **addons** | `object[]` | optional | | -| **usage** | `Record` | optional | | - --- ## SubscriptionStatus -### Allowed Values - -* `active` -* `past_due` -* `canceled` -* `trialing` -* `incomplete` - diff --git a/content/docs/references/hub/tenant.mdx b/content/docs/references/hub/tenant.mdx index 5db39df9e..83918e026 100644 --- a/content/docs/references/hub/tenant.mdx +++ b/content/docs/references/hub/tenant.mdx @@ -23,55 +23,18 @@ const result = DatabaseLevelIsolationStrategySchema.parse(data); ## DatabaseLevelIsolationStrategy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **strategy** | `string` | ✅ | Database-level isolation strategy | -| **database** | `object` | optional | Database configuration | -| **connectionPool** | `object` | optional | Connection pool configuration | -| **backup** | `object` | optional | Backup configuration | -| **encryption** | `object` | optional | Encryption configuration | - --- ## LevelIsolationStrategySchema -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **strategy** | `string` | ✅ | Schema-level isolation strategy | -| **schema** | `object` | optional | Schema configuration | -| **migrations** | `object` | optional | Migration configuration | -| **performance** | `object` | optional | Performance settings | - --- ## RowLevelIsolationStrategy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **strategy** | `string` | ✅ | Row-level isolation strategy | -| **database** | `object` | optional | Database configuration | -| **performance** | `object` | optional | Performance settings | - --- ## Tenant -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique tenant identifier | -| **name** | `string` | ✅ | Tenant display name | -| **isolationLevel** | `Enum<'shared_schema' \| 'isolated_schema' \| 'isolated_db'>` | ✅ | | -| **customizations** | `Record` | optional | Custom configuration values | -| **quotas** | `object` | optional | | - --- ## TenantIsolationConfig @@ -80,33 +43,11 @@ const result = DatabaseLevelIsolationStrategySchema.parse(data); ## TenantIsolationLevel -### Allowed Values - -* `shared_schema` -* `isolated_schema` -* `isolated_db` - --- ## TenantQuota -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **maxUsers** | `integer` | optional | Maximum number of users | -| **maxStorage** | `integer` | optional | Maximum storage in bytes | -| **apiRateLimit** | `integer` | optional | API requests per minute | - --- ## TenantSecurityPolicy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **encryption** | `object` | optional | Encryption requirements | -| **accessControl** | `object` | optional | Access control requirements | -| **compliance** | `object` | optional | Compliance requirements | - diff --git a/content/docs/references/integration/connector.mdx b/content/docs/references/integration/connector.mdx index afb39502c..809ed2b78 100644 --- a/content/docs/references/integration/connector.mdx +++ b/content/docs/references/integration/connector.mdx @@ -27,208 +27,51 @@ const result = AuthenticationSchema.parse(data); ## ConflictResolution -Conflict resolution strategy - -### Allowed Values - -* `source_wins` -* `target_wins` -* `latest_wins` -* `manual` - --- ## Connector -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique connector identifier | -| **label** | `string` | ✅ | Display label | -| **type** | `Enum<'saas' \| 'database' \| 'file_storage' \| 'message_queue' \| 'api' \| 'custom'>` | ✅ | Connector type | -| **description** | `string` | optional | Connector description | -| **icon** | `string` | optional | Icon identifier | -| **authentication** | `object \| object \| object \| object \| object \| object \| object` | ✅ | Authentication configuration | -| **syncConfig** | `object` | optional | Data sync configuration | -| **fieldMappings** | `object[]` | optional | Field mapping rules | -| **webhooks** | `object[]` | optional | Webhook configurations | -| **rateLimitConfig** | `object` | optional | Rate limiting configuration | -| **retryConfig** | `object` | optional | Retry configuration | -| **connectionTimeoutMs** | `number` | optional | Connection timeout in ms | -| **requestTimeoutMs** | `number` | optional | Request timeout in ms | -| **status** | `Enum<'active' \| 'inactive' \| 'error' \| 'configuring'>` | optional | Connector status | -| **enabled** | `boolean` | optional | Enable connector | -| **metadata** | `Record` | optional | Custom connector metadata | - --- ## ConnectorStatus -Connector status - -### Allowed Values - -* `active` -* `inactive` -* `error` -* `configuring` - --- ## ConnectorType -Connector type - -### Allowed Values - -* `saas` -* `database` -* `file_storage` -* `message_queue` -* `api` -* `custom` - --- ## DataSyncConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **strategy** | `Enum<'full' \| 'incremental' \| 'upsert' \| 'append_only'>` | optional | Synchronization strategy | -| **direction** | `Enum<'import' \| 'export' \| 'bidirectional'>` | optional | Sync direction | -| **schedule** | `string` | optional | Cron expression for scheduled sync | -| **realtimeSync** | `boolean` | optional | Enable real-time sync | -| **timestampField** | `string` | optional | Field to track last modification time | -| **conflictResolution** | `Enum<'source_wins' \| 'target_wins' \| 'latest_wins' \| 'manual'>` | optional | Conflict resolution strategy | -| **batchSize** | `number` | optional | Records per batch | -| **deleteMode** | `Enum<'hard_delete' \| 'soft_delete' \| 'ignore'>` | optional | Delete handling mode | -| **filters** | `Record` | optional | Filter criteria for selective sync | - --- ## FieldTransform -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'uppercase' \| 'lowercase' \| 'trim' \| 'date_format' \| 'number_format' \| 'custom'>` | ✅ | Transformation type | -| **params** | `Record` | optional | Transformation parameters | -| **function** | `string` | optional | Custom JavaScript function for transformation | - --- ## RateLimitStrategy -Rate limiting strategy - -### Allowed Values - -* `fixed_window` -* `sliding_window` -* `token_bucket` -* `leaky_bucket` - --- ## RetryConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **strategy** | `Enum<'exponential_backoff' \| 'linear_backoff' \| 'fixed_delay' \| 'no_retry'>` | optional | Retry strategy | -| **maxAttempts** | `number` | optional | Maximum retry attempts | -| **initialDelayMs** | `number` | optional | Initial retry delay in ms | -| **maxDelayMs** | `number` | optional | Maximum retry delay in ms | -| **backoffMultiplier** | `number` | optional | Exponential backoff multiplier | -| **retryableStatusCodes** | `number[]` | optional | HTTP status codes to retry | -| **retryOnNetworkError** | `boolean` | optional | Retry on network errors | -| **jitter** | `boolean` | optional | Add jitter to retry delays | - --- ## RetryStrategy -Retry strategy - -### Allowed Values - -* `exponential_backoff` -* `linear_backoff` -* `fixed_delay` -* `no_retry` - --- ## SyncStrategy -Synchronization strategy - -### Allowed Values - -* `full` -* `incremental` -* `upsert` -* `append_only` - --- ## WebhookConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Webhook unique name (lowercase snake_case) | -| **label** | `string` | optional | Human-readable webhook label | -| **object** | `string` | optional | Object to listen to (optional for manual webhooks) | -| **triggers** | `Enum<'create' \| 'update' \| 'delete' \| 'undelete' \| 'api'>[]` | optional | Events that trigger execution | -| **url** | `string` | ✅ | External webhook endpoint URL | -| **method** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'PATCH' \| 'DELETE'>` | optional | HTTP method | -| **headers** | `Record` | optional | Custom HTTP headers | -| **body** | `any` | optional | Request body payload (if not using default record data) | -| **payloadFields** | `string[]` | optional | Fields to include. Empty = All | -| **includeSession** | `boolean` | optional | Include user session info | -| **authentication** | `object` | optional | Authentication configuration | -| **retryPolicy** | `object` | optional | Retry policy configuration | -| **timeoutMs** | `integer` | optional | Request timeout in milliseconds | -| **secret** | `string` | optional | Signing secret for HMAC signature verification | -| **isActive** | `boolean` | optional | Whether webhook is active | -| **description** | `string` | optional | Webhook description | -| **tags** | `string[]` | optional | Tags for organization | -| **events** | `Enum<'record.created' \| 'record.updated' \| 'record.deleted' \| 'sync.started' \| 'sync.completed' \| 'sync.failed' \| 'auth.expired' \| 'rate_limit.exceeded'>[]` | optional | Connector events to subscribe to | -| **signatureAlgorithm** | `Enum<'hmac_sha256' \| 'hmac_sha512' \| 'none'>` | optional | Webhook signature algorithm | - --- ## WebhookEvent -Webhook event type - -### Allowed Values - -* `record.created` -* `record.updated` -* `record.deleted` -* `sync.started` -* `sync.completed` -* `sync.failed` -* `auth.expired` -* `rate_limit.exceeded` - --- ## WebhookSignatureAlgorithm -Webhook signature algorithm - -### Allowed Values - -* `hmac_sha256` -* `hmac_sha512` -* `none` - diff --git a/content/docs/references/integration/http.mdx b/content/docs/references/integration/http.mdx index 59217292f..5ca3b7ce5 100644 --- a/content/docs/references/integration/http.mdx +++ b/content/docs/references/integration/http.mdx @@ -23,14 +23,3 @@ const result = RateLimitConfigSchema.parse(data); ## RateLimitConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **strategy** | `Enum<'fixed_window' \| 'sliding_window' \| 'token_bucket' \| 'leaky_bucket'>` | optional | Rate limiting strategy | -| **maxRequests** | `number` | ✅ | Maximum requests per window | -| **windowSeconds** | `number` | ✅ | Time window in seconds | -| **burstCapacity** | `number` | optional | Burst capacity | -| **respectUpstreamLimits** | `boolean` | optional | Respect external rate limit headers | -| **rateLimitHeaders** | `object` | optional | Custom rate limit headers | - diff --git a/content/docs/references/integration/mapping.mdx b/content/docs/references/integration/mapping.mdx index 3055a8a5b..af6a4a42b 100644 --- a/content/docs/references/integration/mapping.mdx +++ b/content/docs/references/integration/mapping.mdx @@ -23,15 +23,3 @@ const result = FieldMappingSchema.parse(data); ## FieldMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **source** | `string` | ✅ | Source field name | -| **target** | `string` | ✅ | Target field name | -| **transform** | `object \| object \| object \| object \| object` | optional | Transformation to apply | -| **defaultValue** | `any` | optional | Default if source is null/undefined | -| **dataType** | `Enum<'string' \| 'number' \| 'boolean' \| 'date' \| 'datetime' \| 'json' \| 'array'>` | optional | Target data type | -| **required** | `boolean` | optional | Field is required | -| **syncMode** | `Enum<'read_only' \| 'write_only' \| 'bidirectional'>` | optional | Sync mode | - diff --git a/content/docs/references/integration/message-queue.mdx b/content/docs/references/integration/message-queue.mdx index b8e5f08b5..c88eacc0a 100644 --- a/content/docs/references/integration/message-queue.mdx +++ b/content/docs/references/integration/message-queue.mdx @@ -23,39 +23,7 @@ const result = ConsumerConfigSchema.parse(data); ## ConsumerConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable consumer | -| **consumerGroup** | `string` | optional | Consumer group ID | -| **concurrency** | `number` | optional | Number of concurrent consumers | -| **prefetchCount** | `number` | optional | Prefetch count | -| **ackMode** | `Enum<'auto' \| 'manual' \| 'client'>` | optional | Message acknowledgment mode | -| **autoCommit** | `boolean` | optional | Auto-commit offsets | -| **autoCommitIntervalMs** | `number` | optional | Auto-commit interval in ms | -| **sessionTimeoutMs** | `number` | optional | Session timeout in ms | -| **rebalanceTimeoutMs** | `number` | optional | Rebalance timeout in ms | - --- ## MessageQueueProvider -Message queue provider type - -### Allowed Values - -* `rabbitmq` -* `kafka` -* `redis_pubsub` -* `redis_streams` -* `aws_sqs` -* `aws_sns` -* `google_pubsub` -* `azure_service_bus` -* `azure_event_hubs` -* `nats` -* `pulsar` -* `activemq` -* `custom` - diff --git a/content/docs/references/integration/misc.mdx b/content/docs/references/integration/misc.mdx index 0edaa55d3..bb7cc8dc3 100644 --- a/content/docs/references/integration/misc.mdx +++ b/content/docs/references/integration/misc.mdx @@ -23,778 +23,175 @@ const result = AckModeSchema.parse(data); ## AckMode -Message acknowledgment mode - -### Allowed Values - -* `auto` -* `manual` -* `client` - --- ## ApiVersionConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **version** | `string` | ✅ | API version (e.g., "v2", "2023-10-01") | -| **isDefault** | `boolean` | optional | Is this the default version | -| **deprecationDate** | `string` | optional | API version deprecation date (ISO 8601) | -| **sunsetDate** | `string` | optional | API version sunset date (ISO 8601) | - --- ## BuildConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **buildCommand** | `string` | optional | Build command (e.g., npm run build) | -| **outputDirectory** | `string` | optional | Output directory (e.g., .next, dist) | -| **installCommand** | `string` | optional | Install command (e.g., npm install, pnpm install) | -| **devCommand** | `string` | optional | Development command (e.g., npm run dev) | -| **nodeVersion** | `string` | optional | Node.js version (e.g., 18.x, 20.x) | -| **env** | `Record` | optional | Build environment variables | - --- ## CdcConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable CDC | -| **method** | `Enum<'log_based' \| 'trigger_based' \| 'query_based' \| 'custom'>` | ✅ | CDC method | -| **slotName** | `string` | optional | Replication slot name (for log-based CDC) | -| **publicationName** | `string` | optional | Publication name (for PostgreSQL) | -| **startPosition** | `string` | optional | Starting position/LSN for CDC stream | -| **batchSize** | `number` | optional | CDC batch size | -| **pollIntervalMs** | `number` | optional | CDC polling interval in ms | - --- ## DatabaseConnector -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique connector identifier | -| **label** | `string` | ✅ | Display label | -| **type** | `string` | ✅ | | -| **description** | `string` | optional | Connector description | -| **icon** | `string` | optional | Icon identifier | -| **authentication** | `object \| object \| object \| object \| object \| object \| object` | ✅ | Authentication configuration | -| **syncConfig** | `object` | optional | Data sync configuration | -| **fieldMappings** | `object[]` | optional | Field mapping rules | -| **webhooks** | `object[]` | optional | Webhook configurations | -| **rateLimitConfig** | `object` | optional | Rate limiting configuration | -| **retryConfig** | `object` | optional | Retry configuration | -| **connectionTimeoutMs** | `number` | optional | Connection timeout in ms | -| **requestTimeoutMs** | `number` | optional | Request timeout in ms | -| **status** | `Enum<'active' \| 'inactive' \| 'error' \| 'configuring'>` | optional | Connector status | -| **enabled** | `boolean` | optional | Enable connector | -| **metadata** | `Record` | optional | Custom connector metadata | -| **provider** | `Enum<'postgresql' \| 'mysql' \| 'mariadb' \| 'mssql' \| 'oracle' \| 'mongodb' \| 'redis' \| 'cassandra' \| 'snowflake' \| 'bigquery' \| 'redshift' \| 'custom'>` | ✅ | Database provider type | -| **connectionConfig** | `object` | ✅ | Database connection configuration | -| **poolConfig** | `object` | optional | Connection pool configuration | -| **sslConfig** | `object` | optional | SSL/TLS configuration | -| **tables** | `object[]` | ✅ | Tables to sync | -| **cdcConfig** | `object` | optional | CDC configuration | -| **readReplicaConfig** | `object` | optional | Read replica configuration | -| **queryTimeoutMs** | `number` | optional | Query timeout in ms | -| **enableQueryLogging** | `boolean` | optional | Enable SQL query logging | - --- ## DatabasePoolConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **min** | `number` | optional | Minimum connections in pool | -| **max** | `number` | optional | Maximum connections in pool | -| **idleTimeoutMs** | `number` | optional | Idle connection timeout in ms | -| **connectionTimeoutMs** | `number` | optional | Connection establishment timeout in ms | -| **acquireTimeoutMs** | `number` | optional | Connection acquisition timeout in ms | -| **evictionRunIntervalMs** | `number` | optional | Connection eviction check interval in ms | -| **testOnBorrow** | `boolean` | optional | Test connection before use | - --- ## DatabaseProvider -Database provider type - -### Allowed Values - -* `postgresql` -* `mysql` -* `mariadb` -* `mssql` -* `oracle` -* `mongodb` -* `redis` -* `cassandra` -* `snowflake` -* `bigquery` -* `redshift` -* `custom` - --- ## DatabaseTable -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Table name in ObjectStack (snake_case) | -| **label** | `string` | ✅ | Display label | -| **schema** | `string` | optional | Database schema name | -| **tableName** | `string` | ✅ | Actual table name in database | -| **primaryKey** | `string` | ✅ | Primary key column | -| **enabled** | `boolean` | optional | Enable sync for this table | -| **fieldMappings** | `object[]` | optional | Table-specific field mappings | -| **whereClause** | `string` | optional | SQL WHERE clause for filtering | - --- ## DeliveryGuarantee -Message delivery guarantee - -### Allowed Values - -* `at_most_once` -* `at_least_once` -* `exactly_once` - --- ## DeploymentConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **autoDeployment** | `boolean` | optional | Enable automatic deployments | -| **regions** | `Enum<'iad1' \| 'sfo1' \| 'gru1' \| 'lhr1' \| 'fra1' \| 'sin1' \| 'syd1' \| 'hnd1' \| 'icn1'>[]` | optional | Deployment regions | -| **enablePreview** | `boolean` | optional | Enable preview deployments | -| **previewComments** | `boolean` | optional | Post preview URLs in PR comments | -| **productionProtection** | `boolean` | optional | Require approval for production deployments | -| **deployHooks** | `object[]` | optional | Deploy hooks | - --- ## DlqConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable DLQ | -| **queueName** | `string` | ✅ | Dead letter queue/topic name | -| **maxRetries** | `number` | optional | Max retries before DLQ | -| **retryDelayMs** | `number` | optional | Retry delay in ms | - --- ## DomainConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **domain** | `string` | ✅ | Domain name (e.g., app.example.com) | -| **httpsRedirect** | `boolean` | optional | Redirect HTTP to HTTPS | -| **customCertificate** | `object` | optional | Custom SSL certificate | -| **gitBranch** | `string` | optional | Git branch to deploy to this domain | - --- ## EdgeFunctionConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Edge function name | -| **path** | `string` | ✅ | Function path (e.g., /api/*) | -| **regions** | `string[]` | optional | Specific regions for this function | -| **memoryLimit** | `integer` | optional | Memory limit in MB | -| **timeout** | `integer` | optional | Timeout in seconds | - --- ## EnvironmentVariables -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **key** | `string` | ✅ | Environment variable name | -| **value** | `string` | ✅ | Environment variable value | -| **target** | `Enum<'production' \| 'preview' \| 'development'>[]` | ✅ | Target environments | -| **isSecret** | `boolean` | optional | Encrypt this variable | -| **gitBranch** | `string` | optional | Specific git branch | - --- ## FileAccessPattern -File access pattern - -### Allowed Values - -* `public_read` -* `private` -* `authenticated_read` -* `bucket_owner_read` -* `bucket_owner_full` - --- ## FileFilterConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **includePatterns** | `string[]` | optional | File patterns to include (glob) | -| **excludePatterns** | `string[]` | optional | File patterns to exclude (glob) | -| **minFileSize** | `number` | optional | Minimum file size in bytes | -| **maxFileSize** | `number` | optional | Maximum file size in bytes | -| **allowedExtensions** | `string[]` | optional | Allowed file extensions | -| **blockedExtensions** | `string[]` | optional | Blocked file extensions | - --- ## FileMetadataConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **extractMetadata** | `boolean` | optional | Extract file metadata | -| **metadataFields** | `Enum<'content_type' \| 'file_size' \| 'last_modified' \| 'etag' \| 'checksum' \| 'creator' \| 'created_at' \| 'custom'>[]` | optional | Metadata fields to extract | -| **customMetadata** | `Record` | optional | Custom metadata key-value pairs | - --- ## FileStorageConnector -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique connector identifier | -| **label** | `string` | ✅ | Display label | -| **type** | `string` | ✅ | | -| **description** | `string` | optional | Connector description | -| **icon** | `string` | optional | Icon identifier | -| **authentication** | `object \| object \| object \| object \| object \| object \| object` | ✅ | Authentication configuration | -| **syncConfig** | `object` | optional | Data sync configuration | -| **fieldMappings** | `object[]` | optional | Field mapping rules | -| **webhooks** | `object[]` | optional | Webhook configurations | -| **rateLimitConfig** | `object` | optional | Rate limiting configuration | -| **retryConfig** | `object` | optional | Retry configuration | -| **connectionTimeoutMs** | `number` | optional | Connection timeout in ms | -| **requestTimeoutMs** | `number` | optional | Request timeout in ms | -| **status** | `Enum<'active' \| 'inactive' \| 'error' \| 'configuring'>` | optional | Connector status | -| **enabled** | `boolean` | optional | Enable connector | -| **metadata** | `Record` | optional | Custom connector metadata | -| **provider** | `Enum<'s3' \| 'azure_blob' \| 'gcs' \| 'dropbox' \| 'box' \| 'onedrive' \| 'google_drive' \| 'sharepoint' \| 'ftp' \| 'local' \| 'custom'>` | ✅ | File storage provider type | -| **storageConfig** | `object` | optional | Storage configuration | -| **buckets** | `object[]` | ✅ | Buckets/containers to sync | -| **metadataConfig** | `object` | optional | Metadata extraction configuration | -| **multipartConfig** | `object` | optional | Multipart upload configuration | -| **versioningConfig** | `object` | optional | File versioning configuration | -| **encryption** | `object` | optional | Encryption configuration | -| **lifecyclePolicy** | `object` | optional | Lifecycle policy | -| **contentProcessing** | `object` | optional | Content processing configuration | -| **bufferSize** | `number` | optional | Buffer size in bytes | -| **transferAcceleration** | `boolean` | optional | Enable transfer acceleration | - --- ## FileStorageProvider -File storage provider type - -### Allowed Values - -* `s3` -* `azure_blob` -* `gcs` -* `dropbox` -* `box` -* `onedrive` -* `google_drive` -* `sharepoint` -* `ftp` -* `local` -* `custom` - --- ## FileVersioningConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable file versioning | -| **maxVersions** | `number` | optional | Maximum versions to retain | -| **retentionDays** | `number` | optional | Version retention period in days | - --- ## GitHubActionsWorkflow -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Workflow name | -| **path** | `string` | ✅ | Workflow file path (e.g., .github/workflows/ci.yml) | -| **enabled** | `boolean` | optional | Enable workflow | -| **triggers** | `Enum<'push' \| 'pull_request' \| 'release' \| 'schedule' \| 'workflow_dispatch' \| 'repository_dispatch'>[]` | optional | Workflow triggers | -| **env** | `Record` | optional | Environment variables | -| **secrets** | `string[]` | optional | Required secrets | - --- ## GitHubCommitConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **authorName** | `string` | optional | Commit author name | -| **authorEmail** | `string` | optional | Commit author email | -| **signCommits** | `boolean` | optional | Sign commits with GPG | -| **messageTemplate** | `string` | optional | Commit message template | -| **useConventionalCommits** | `boolean` | optional | Use conventional commits format | - --- ## GitHubConnector -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique connector identifier | -| **label** | `string` | ✅ | Display label | -| **type** | `string` | ✅ | | -| **description** | `string` | optional | Connector description | -| **icon** | `string` | optional | Icon identifier | -| **authentication** | `object \| object \| object \| object \| object \| object \| object` | ✅ | Authentication configuration | -| **syncConfig** | `object` | optional | Data sync configuration | -| **fieldMappings** | `object[]` | optional | Field mapping rules | -| **webhooks** | `object[]` | optional | Webhook configurations | -| **rateLimitConfig** | `object` | optional | Rate limiting configuration | -| **retryConfig** | `object` | optional | Retry configuration | -| **connectionTimeoutMs** | `number` | optional | Connection timeout in ms | -| **requestTimeoutMs** | `number` | optional | Request timeout in ms | -| **status** | `Enum<'active' \| 'inactive' \| 'error' \| 'configuring'>` | optional | Connector status | -| **enabled** | `boolean` | optional | Enable connector | -| **metadata** | `Record` | optional | Custom connector metadata | -| **provider** | `Enum<'github' \| 'github_enterprise'>` | ✅ | GitHub provider | -| **baseUrl** | `string` | optional | GitHub API base URL | -| **repositories** | `object[]` | ✅ | Repositories to manage | -| **commitConfig** | `object` | optional | Commit configuration | -| **pullRequestConfig** | `object` | optional | Pull request configuration | -| **workflows** | `object[]` | optional | GitHub Actions workflows | -| **releaseConfig** | `object` | optional | Release configuration | -| **issueTracking** | `object` | optional | Issue tracking configuration | -| **enableWebhooks** | `boolean` | optional | Enable GitHub webhooks | -| **webhookEvents** | `Enum<'push' \| 'pull_request' \| 'issues' \| 'issue_comment' \| 'release' \| 'workflow_run' \| 'deployment' \| 'deployment_status' \| 'check_run' \| 'check_suite' \| 'status'>[]` | optional | Webhook events to subscribe to | - --- ## GitHubIssueTracking -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable issue tracking | -| **defaultLabels** | `string[]` | optional | Default issue labels | -| **templatePaths** | `string[]` | optional | Issue template paths | -| **autoAssign** | `boolean` | optional | Auto-assign issues | -| **autoCloseStale** | `object` | optional | Auto-close stale issues configuration | - --- ## GitHubProvider -GitHub provider type - -### Allowed Values - -* `github` -* `github_enterprise` - --- ## GitHubPullRequestConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **titleTemplate** | `string` | optional | PR title template | -| **bodyTemplate** | `string` | optional | PR body template | -| **defaultReviewers** | `string[]` | optional | Default reviewers (usernames) | -| **defaultAssignees** | `string[]` | optional | Default assignees (usernames) | -| **defaultLabels** | `string[]` | optional | Default labels | -| **draftByDefault** | `boolean` | optional | Create draft PRs by default | -| **deleteHeadBranch** | `boolean` | optional | Delete head branch after merge | - --- ## GitHubReleaseConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **tagPattern** | `string` | optional | Tag name pattern (e.g., v*, release/*) | -| **semanticVersioning** | `boolean` | optional | Use semantic versioning | -| **autoReleaseNotes** | `boolean` | optional | Generate release notes automatically | -| **releaseNameTemplate** | `string` | optional | Release name template | -| **preReleasePattern** | `string` | optional | Pre-release pattern (e.g., *-alpha, *-beta) | -| **draftByDefault** | `boolean` | optional | Create draft releases by default | - --- ## GitHubRepository -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **owner** | `string` | ✅ | Repository owner (organization or username) | -| **name** | `string` | ✅ | Repository name | -| **defaultBranch** | `string` | optional | Default branch name | -| **autoMerge** | `boolean` | optional | Enable auto-merge for pull requests | -| **branchProtection** | `object` | optional | Branch protection configuration | -| **topics** | `string[]` | optional | Repository topics | - --- ## GitRepositoryConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'github' \| 'gitlab' \| 'bitbucket'>` | ✅ | Git provider | -| **repo** | `string` | ✅ | Repository identifier (e.g., owner/repo) | -| **productionBranch** | `string` | optional | Production branch name | -| **autoDeployProduction** | `boolean` | optional | Auto-deploy production branch | -| **autoDeployPreview** | `boolean` | optional | Auto-deploy preview branches | - --- ## MessageFormat -Message format/serialization - -### Allowed Values - -* `json` -* `xml` -* `protobuf` -* `avro` -* `text` -* `binary` - --- ## MessageQueueConnector -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique connector identifier | -| **label** | `string` | ✅ | Display label | -| **type** | `string` | ✅ | | -| **description** | `string` | optional | Connector description | -| **icon** | `string` | optional | Icon identifier | -| **authentication** | `object \| object \| object \| object \| object \| object \| object` | ✅ | Authentication configuration | -| **syncConfig** | `object` | optional | Data sync configuration | -| **fieldMappings** | `object[]` | optional | Field mapping rules | -| **webhooks** | `object[]` | optional | Webhook configurations | -| **rateLimitConfig** | `object` | optional | Rate limiting configuration | -| **retryConfig** | `object` | optional | Retry configuration | -| **connectionTimeoutMs** | `number` | optional | Connection timeout in ms | -| **requestTimeoutMs** | `number` | optional | Request timeout in ms | -| **status** | `Enum<'active' \| 'inactive' \| 'error' \| 'configuring'>` | optional | Connector status | -| **enabled** | `boolean` | optional | Enable connector | -| **metadata** | `Record` | optional | Custom connector metadata | -| **provider** | `Enum<'rabbitmq' \| 'kafka' \| 'redis_pubsub' \| 'redis_streams' \| 'aws_sqs' \| 'aws_sns' \| 'google_pubsub' \| 'azure_service_bus' \| 'azure_event_hubs' \| 'nats' \| 'pulsar' \| 'activemq' \| 'custom'>` | ✅ | Message queue provider type | -| **brokerConfig** | `object` | ✅ | Broker connection configuration | -| **topics** | `object[]` | ✅ | Topics/queues to sync | -| **deliveryGuarantee** | `Enum<'at_most_once' \| 'at_least_once' \| 'exactly_once'>` | optional | Message delivery guarantee | -| **sslConfig** | `object` | optional | SSL/TLS configuration | -| **saslConfig** | `object` | optional | SASL authentication configuration | -| **schemaRegistry** | `object` | optional | Schema registry configuration | -| **preserveOrder** | `boolean` | optional | Preserve message ordering | -| **enableMetrics** | `boolean` | optional | Enable message queue metrics | -| **enableTracing** | `boolean` | optional | Enable distributed tracing | - --- ## ProducerConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable producer | -| **acks** | `Enum<'0' \| '1' \| 'all'>` | optional | Acknowledgment level | -| **compressionType** | `Enum<'none' \| 'gzip' \| 'snappy' \| 'lz4' \| 'zstd'>` | optional | Compression type | -| **batchSize** | `number` | optional | Batch size in bytes | -| **lingerMs** | `number` | optional | Linger time in ms | -| **maxInFlightRequests** | `number` | optional | Max in-flight requests | -| **idempotence** | `boolean` | optional | Enable idempotent producer | -| **transactional** | `boolean` | optional | Enable transactional producer | -| **transactionTimeoutMs** | `number` | optional | Transaction timeout in ms | - --- ## SaasConnector -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique connector identifier | -| **label** | `string` | ✅ | Display label | -| **type** | `string` | ✅ | | -| **description** | `string` | optional | Connector description | -| **icon** | `string` | optional | Icon identifier | -| **authentication** | `object \| object \| object \| object \| object \| object \| object` | ✅ | Authentication configuration | -| **syncConfig** | `object` | optional | Data sync configuration | -| **fieldMappings** | `object[]` | optional | Field mapping rules | -| **webhooks** | `object[]` | optional | Webhook configurations | -| **rateLimitConfig** | `object` | optional | Rate limiting configuration | -| **retryConfig** | `object` | optional | Retry configuration | -| **connectionTimeoutMs** | `number` | optional | Connection timeout in ms | -| **requestTimeoutMs** | `number` | optional | Request timeout in ms | -| **status** | `Enum<'active' \| 'inactive' \| 'error' \| 'configuring'>` | optional | Connector status | -| **enabled** | `boolean` | optional | Enable connector | -| **metadata** | `Record` | optional | Custom connector metadata | -| **provider** | `Enum<'salesforce' \| 'hubspot' \| 'stripe' \| 'shopify' \| 'zendesk' \| 'intercom' \| 'mailchimp' \| 'slack' \| 'microsoft_dynamics' \| 'servicenow' \| 'netsuite' \| 'custom'>` | ✅ | SaaS provider type | -| **baseUrl** | `string` | ✅ | API base URL | -| **apiVersion** | `object` | optional | API version configuration | -| **objectTypes** | `object[]` | ✅ | Syncable object types | -| **oauthSettings** | `object` | optional | OAuth-specific configuration | -| **paginationConfig** | `object` | optional | Pagination configuration | -| **sandboxConfig** | `object` | optional | Sandbox environment configuration | -| **customHeaders** | `Record` | optional | Custom HTTP headers for all requests | - --- ## SaasObjectType -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Object type name (snake_case) | -| **label** | `string` | ✅ | Display label | -| **apiName** | `string` | ✅ | API name in external system | -| **enabled** | `boolean` | optional | Enable sync for this object | -| **supportsCreate** | `boolean` | optional | Supports record creation | -| **supportsUpdate** | `boolean` | optional | Supports record updates | -| **supportsDelete** | `boolean` | optional | Supports record deletion | -| **fieldMappings** | `object[]` | optional | Object-specific field mappings | - --- ## SaasProvider -SaaS provider type - -### Allowed Values - -* `salesforce` -* `hubspot` -* `stripe` -* `shopify` -* `zendesk` -* `intercom` -* `mailchimp` -* `slack` -* `microsoft_dynamics` -* `servicenow` -* `netsuite` -* `custom` - --- ## SslConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable SSL/TLS | -| **rejectUnauthorized** | `boolean` | optional | Reject unauthorized certificates | -| **ca** | `string` | optional | Certificate Authority certificate | -| **cert** | `string` | optional | Client certificate | -| **key** | `string` | optional | Client private key | - --- ## StorageBucket -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Bucket identifier in ObjectStack (snake_case) | -| **label** | `string` | ✅ | Display label | -| **bucketName** | `string` | ✅ | Actual bucket/container name in storage system | -| **region** | `string` | optional | Storage region | -| **enabled** | `boolean` | optional | Enable sync for this bucket | -| **prefix** | `string` | optional | Prefix/path within bucket | -| **accessPattern** | `Enum<'public_read' \| 'private' \| 'authenticated_read' \| 'bucket_owner_read' \| 'bucket_owner_full'>` | optional | Access pattern | -| **fileFilters** | `object` | optional | File filter configuration | - --- ## TopicQueue -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Topic/queue identifier in ObjectStack (snake_case) | -| **label** | `string` | ✅ | Display label | -| **topicName** | `string` | ✅ | Actual topic/queue name in message queue system | -| **enabled** | `boolean` | optional | Enable sync for this topic/queue | -| **mode** | `Enum<'consumer' \| 'producer' \| 'both'>` | optional | Consumer, producer, or both | -| **messageFormat** | `Enum<'json' \| 'xml' \| 'protobuf' \| 'avro' \| 'text' \| 'binary'>` | optional | Message format/serialization | -| **partitions** | `number` | optional | Number of partitions (for Kafka) | -| **replicationFactor** | `number` | optional | Replication factor (for Kafka) | -| **consumerConfig** | `object` | optional | Consumer-specific configuration | -| **producerConfig** | `object` | optional | Producer-specific configuration | -| **dlqConfig** | `object` | optional | Dead letter queue configuration | -| **routingKey** | `string` | optional | Routing key pattern | -| **messageFilter** | `object` | optional | Message filter criteria | - --- ## VercelConnector -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique connector identifier | -| **label** | `string` | ✅ | Display label | -| **type** | `string` | ✅ | | -| **description** | `string` | optional | Connector description | -| **icon** | `string` | optional | Icon identifier | -| **authentication** | `object \| object \| object \| object \| object \| object \| object` | ✅ | Authentication configuration | -| **syncConfig** | `object` | optional | Data sync configuration | -| **fieldMappings** | `object[]` | optional | Field mapping rules | -| **webhooks** | `object[]` | optional | Webhook configurations | -| **rateLimitConfig** | `object` | optional | Rate limiting configuration | -| **retryConfig** | `object` | optional | Retry configuration | -| **connectionTimeoutMs** | `number` | optional | Connection timeout in ms | -| **requestTimeoutMs** | `number` | optional | Request timeout in ms | -| **status** | `Enum<'active' \| 'inactive' \| 'error' \| 'configuring'>` | optional | Connector status | -| **enabled** | `boolean` | optional | Enable connector | -| **metadata** | `Record` | optional | Custom connector metadata | -| **provider** | `Enum<'vercel'>` | ✅ | Vercel provider | -| **baseUrl** | `string` | optional | Vercel API base URL | -| **team** | `object` | optional | Vercel team configuration | -| **projects** | `object[]` | ✅ | Vercel projects | -| **monitoring** | `object` | optional | Monitoring configuration | -| **enableWebhooks** | `boolean` | optional | Enable Vercel webhooks | -| **webhookEvents** | `Enum<'deployment.created' \| 'deployment.succeeded' \| 'deployment.failed' \| 'deployment.ready' \| 'deployment.error' \| 'deployment.canceled' \| 'deployment-checks-completed' \| 'deployment-prepared' \| 'project.created' \| 'project.removed'>[]` | optional | Webhook events to subscribe to | - --- ## VercelFramework -Frontend framework - -### Allowed Values - -* `nextjs` -* `react` -* `vue` -* `nuxtjs` -* `gatsby` -* `remix` -* `astro` -* `sveltekit` -* `solid` -* `angular` -* `static` -* `other` - --- ## VercelMonitoring -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enableWebAnalytics** | `boolean` | optional | Enable Vercel Web Analytics | -| **enableSpeedInsights** | `boolean` | optional | Enable Vercel Speed Insights | -| **logDrains** | `object[]` | optional | Log drains configuration | - --- ## VercelProject -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Vercel project name | -| **framework** | `Enum<'nextjs' \| 'react' \| 'vue' \| 'nuxtjs' \| 'gatsby' \| 'remix' \| 'astro' \| 'sveltekit' \| 'solid' \| 'angular' \| 'static' \| 'other'>` | optional | Frontend framework | -| **gitRepository** | `object` | optional | Git repository configuration | -| **buildConfig** | `object` | optional | Build configuration | -| **deploymentConfig** | `object` | optional | Deployment configuration | -| **domains** | `object[]` | optional | Custom domains | -| **environmentVariables** | `object[]` | optional | Environment variables | -| **edgeFunctions** | `object[]` | optional | Edge functions | -| **rootDirectory** | `string` | optional | Root directory (for monorepos) | - --- ## VercelProvider -Vercel provider type - -### Allowed Values - -* `vercel` - --- ## VercelTeam -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **teamId** | `string` | optional | Team ID or slug | -| **teamName** | `string` | optional | Team name | - diff --git a/content/docs/references/integration/object-storage.mdx b/content/docs/references/integration/object-storage.mdx index a4e27d250..3cc1fe3e8 100644 --- a/content/docs/references/integration/object-storage.mdx +++ b/content/docs/references/integration/object-storage.mdx @@ -23,12 +23,3 @@ const result = MultipartUploadConfigSchema.parse(data); ## MultipartUploadConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable multipart uploads | -| **partSize** | `number` | optional | Part size in bytes (min 5MB) | -| **maxConcurrentParts** | `number` | optional | Maximum concurrent part uploads | -| **threshold** | `number` | optional | File size threshold for multipart upload in bytes | - diff --git a/content/docs/references/permission/permission.mdx b/content/docs/references/permission/permission.mdx index 44e5a0022..56c69a0a6 100644 --- a/content/docs/references/permission/permission.mdx +++ b/content/docs/references/permission/permission.mdx @@ -23,45 +23,11 @@ const result = FieldPermissionSchema.parse(data); ## FieldPermission -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **readable** | `boolean` | optional | Field read access | -| **editable** | `boolean` | optional | Field edit access | - --- ## ObjectPermission -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **allowCreate** | `boolean` | optional | Create permission | -| **allowRead** | `boolean` | optional | Read permission | -| **allowEdit** | `boolean` | optional | Edit permission | -| **allowDelete** | `boolean` | optional | Delete permission | -| **allowTransfer** | `boolean` | optional | Change record ownership | -| **allowRestore** | `boolean` | optional | Restore from trash (Undelete) | -| **allowPurge** | `boolean` | optional | Permanently delete (Hard Delete/GDPR) | -| **viewAllRecords** | `boolean` | optional | View All Data (Bypass Sharing) | -| **modifyAllRecords** | `boolean` | optional | Modify All Data (Bypass Sharing) | - --- ## PermissionSet -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Permission set unique name (lowercase snake_case) | -| **label** | `string` | optional | Display label | -| **isProfile** | `boolean` | optional | Whether this is a user profile | -| **objects** | `Record` | ✅ | Entity permissions | -| **fields** | `Record` | optional | Field level security | -| **systemPermissions** | `string[]` | optional | System level capabilities | -| **rowLevelSecurity** | `object[]` | optional | Row-level security policies (see rls.zod.ts for full spec) | -| **contextVariables** | `Record` | optional | Context variables for RLS evaluation | - diff --git a/content/docs/references/permission/rls.mdx b/content/docs/references/permission/rls.mdx index 1b342f563..59e80d650 100644 --- a/content/docs/references/permission/rls.mdx +++ b/content/docs/references/permission/rls.mdx @@ -23,78 +23,19 @@ const result = RLSConfigSchema.parse(data); ## RLSConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable RLS enforcement globally | -| **defaultPolicy** | `Enum<'deny' \| 'allow'>` | optional | Default action when no policies match | -| **allowSuperuserBypass** | `boolean` | optional | Allow superusers to bypass RLS | -| **bypassRoles** | `string[]` | optional | Roles that bypass RLS (see all data) | -| **logEvaluations** | `boolean` | optional | Log RLS policy evaluations for debugging | -| **cacheResults** | `boolean` | optional | Cache RLS evaluation results | -| **cacheTtlSeconds** | `integer` | optional | Cache TTL in seconds | -| **prefetchUserContext** | `boolean` | optional | Pre-fetch user context for performance | - --- ## RLSEvaluationResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **policyName** | `string` | ✅ | Policy name | -| **granted** | `boolean` | ✅ | Whether access was granted | -| **durationMs** | `number` | optional | Evaluation duration in milliseconds | -| **error** | `string` | optional | Error message if evaluation failed | -| **usingResult** | `boolean` | optional | USING clause evaluation result | -| **checkResult** | `boolean` | optional | CHECK clause evaluation result | - --- ## RLSOperation -### Allowed Values - -* `select` -* `insert` -* `update` -* `delete` -* `all` - --- ## RLSUserContext -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | User ID | -| **email** | `string` | optional | User email | -| **tenantId** | `string` | optional | Tenant/Organization ID | -| **role** | `string \| string[]` | optional | User role(s) | -| **department** | `string` | optional | User department | -| **attributes** | `Record` | optional | Additional custom user attributes | - --- ## RowLevelSecurityPolicy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Policy unique identifier (snake_case) | -| **label** | `string` | optional | Human-readable policy label | -| **description** | `string` | optional | Policy description and business justification | -| **object** | `string` | ✅ | Target object name | -| **operation** | `Enum<'select' \| 'insert' \| 'update' \| 'delete' \| 'all'>` | ✅ | Database operation this policy applies to | -| **using** | `string` | optional | Filter condition for SELECT/UPDATE/DELETE (PostgreSQL SQL WHERE clause syntax with parameterized context variables). Optional for INSERT-only policies. | -| **check** | `string` | optional | Validation condition for INSERT/UPDATE (defaults to USING clause if not specified - enforced at application level) | -| **roles** | `string[]` | optional | Roles this policy applies to (omit for all roles) | -| **enabled** | `boolean` | optional | Whether this policy is active | -| **priority** | `integer` | optional | Policy evaluation priority (higher = evaluated first) | -| **tags** | `string[]` | optional | Policy categorization tags | - diff --git a/content/docs/references/permission/sharing.mdx b/content/docs/references/permission/sharing.mdx index c3beba1d8..492ef6eee 100644 --- a/content/docs/references/permission/sharing.mdx +++ b/content/docs/references/permission/sharing.mdx @@ -23,71 +23,22 @@ const result = CriteriaSharingRuleSchema.parse(data); ## CriteriaSharingRule -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label | -| **description** | `string` | optional | Administrative notes | -| **object** | `string` | ✅ | Target Object Name | -| **active** | `boolean` | optional | | -| **accessLevel** | `Enum<'read' \| 'edit' \| 'full'>` | optional | | -| **sharedWith** | `object` | ✅ | The recipient of the shared access | -| **type** | `string` | ✅ | | -| **condition** | `string` | ✅ | Formula condition (e.g. "department = 'Sales'") | - --- ## OWDModel -### Allowed Values - -* `private` -* `public_read` -* `public_read_write` -* `controlled_by_parent` - --- ## OwnerSharingRule -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique rule name (snake_case) | -| **label** | `string` | optional | Human-readable label | -| **description** | `string` | optional | Administrative notes | -| **object** | `string` | ✅ | Target Object Name | -| **active** | `boolean` | optional | | -| **accessLevel** | `Enum<'read' \| 'edit' \| 'full'>` | optional | | -| **sharedWith** | `object` | ✅ | The recipient of the shared access | -| **type** | `string` | ✅ | | -| **ownedBy** | `object` | ✅ | Source group/role whose records are being shared | - --- ## ShareRecipientType -### Allowed Values - -* `user` -* `group` -* `role` -* `role_and_subordinates` -* `guest` - --- ## SharingLevel -### Allowed Values - -* `read` -* `edit` -* `full` - --- ## SharingRule @@ -96,8 +47,3 @@ const result = CriteriaSharingRuleSchema.parse(data); ## SharingRuleType -### Allowed Values - -* `owner` -* `criteria` - diff --git a/content/docs/references/permission/territory.mdx b/content/docs/references/permission/territory.mdx index 62cf01120..545357672 100644 --- a/content/docs/references/permission/territory.mdx +++ b/content/docs/references/permission/territory.mdx @@ -23,42 +23,11 @@ const result = TerritorySchema.parse(data); ## Territory -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Territory unique name (lowercase snake_case) | -| **label** | `string` | ✅ | Territory Label (e.g. "West Coast") | -| **modelId** | `string` | ✅ | Belongs to which Territory Model | -| **parent** | `string` | optional | Parent Territory | -| **type** | `Enum<'geography' \| 'industry' \| 'named_account' \| 'product_line'>` | optional | | -| **assignmentRule** | `string` | optional | Criteria based assignment rule | -| **assignedUsers** | `string[]` | optional | | -| **accountAccess** | `Enum<'read' \| 'edit'>` | optional | | -| **opportunityAccess** | `Enum<'read' \| 'edit'>` | optional | | -| **caseAccess** | `Enum<'read' \| 'edit'>` | optional | | - --- ## TerritoryModel -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Model Name (e.g. FY24 Planning) | -| **state** | `Enum<'planning' \| 'active' \| 'archived'>` | optional | | -| **startDate** | `string` | optional | | -| **endDate** | `string` | optional | | - --- ## TerritoryType -### Allowed Values - -* `geography` -* `industry` -* `named_account` -* `product_line` - diff --git a/content/docs/references/shared/http.mdx b/content/docs/references/shared/http.mdx index 3dbf3b8c4..3d06b4b57 100644 --- a/content/docs/references/shared/http.mdx +++ b/content/docs/references/shared/http.mdx @@ -23,37 +23,11 @@ const result = CorsConfigSchema.parse(data); ## CorsConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable CORS | -| **origins** | `string \| string[]` | optional | Allowed origins (* for all) | -| **methods** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'DELETE' \| 'PATCH' \| 'HEAD' \| 'OPTIONS'>[]` | optional | Allowed HTTP methods | -| **credentials** | `boolean` | optional | Allow credentials (cookies, authorization headers) | -| **maxAge** | `integer` | optional | Preflight cache duration in seconds | - --- ## RateLimitConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable rate limiting | -| **windowMs** | `integer` | optional | Time window in milliseconds | -| **maxRequests** | `integer` | optional | Max requests per window | - --- ## StaticMount -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **path** | `string` | ✅ | URL path to serve from | -| **directory** | `string` | ✅ | Physical directory to serve | -| **cacheControl** | `string` | optional | Cache-Control header value | - diff --git a/content/docs/references/shared/identifiers.mdx b/content/docs/references/shared/identifiers.mdx index 766dcdbcd..f2c9e8701 100644 --- a/content/docs/references/shared/identifiers.mdx +++ b/content/docs/references/shared/identifiers.mdx @@ -23,17 +23,11 @@ const result = EventNameSchema.parse(data); ## EventName -Event name (lowercase with dot notation for namespacing) - --- ## SnakeCaseIdentifier -Snake case identifier (lowercase with underscores only) - --- ## SystemIdentifier -System identifier (lowercase with underscores or dots) - diff --git a/content/docs/references/shared/mapping.mdx b/content/docs/references/shared/mapping.mdx index 076fde475..2b09b7cb6 100644 --- a/content/docs/references/shared/mapping.mdx +++ b/content/docs/references/shared/mapping.mdx @@ -23,15 +23,6 @@ const result = FieldMappingSchema.parse(data); ## FieldMapping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **source** | `string` | ✅ | Source field name | -| **target** | `string` | ✅ | Target field name | -| **transform** | `object \| object \| object \| object \| object` | optional | Transformation to apply | -| **defaultValue** | `any` | optional | Default if source is null/undefined | - --- ## TransformType diff --git a/content/docs/references/shared/view.mdx b/content/docs/references/shared/view.mdx index b1f62a858..8b0c9e006 100644 --- a/content/docs/references/shared/view.mdx +++ b/content/docs/references/shared/view.mdx @@ -23,13 +23,3 @@ const result = HttpMethodSchema.parse(data); ## HttpMethod -### Allowed Values - -* `GET` -* `POST` -* `PUT` -* `DELETE` -* `PATCH` -* `HEAD` -* `OPTIONS` - diff --git a/content/docs/references/system/audit.mdx b/content/docs/references/system/audit.mdx index fc5a5fb02..4fe517c9c 100644 --- a/content/docs/references/system/audit.mdx +++ b/content/docs/references/system/audit.mdx @@ -23,216 +23,43 @@ const result = AuditConfigSchema.parse(data); ## AuditConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Configuration name (snake_case, max 64 chars) | -| **label** | `string` | ✅ | Display label | -| **enabled** | `boolean` | optional | Enable audit logging | -| **eventTypes** | `Enum<'data.create' \| 'data.read' \| 'data.update' \| 'data.delete' \| 'data.export' \| 'data.import' \| 'data.bulk_update' \| 'data.bulk_delete' \| 'auth.login' \| 'auth.login_failed' \| 'auth.logout' \| 'auth.session_created' \| 'auth.session_expired' \| 'auth.password_reset' \| 'auth.password_changed' \| 'auth.email_verified' \| 'auth.mfa_enabled' \| 'auth.mfa_disabled' \| 'auth.account_locked' \| 'auth.account_unlocked' \| 'authz.permission_granted' \| 'authz.permission_revoked' \| 'authz.role_assigned' \| 'authz.role_removed' \| 'authz.role_created' \| 'authz.role_updated' \| 'authz.role_deleted' \| 'authz.policy_created' \| 'authz.policy_updated' \| 'authz.policy_deleted' \| 'system.config_changed' \| 'system.plugin_installed' \| 'system.plugin_uninstalled' \| 'system.backup_created' \| 'system.backup_restored' \| 'system.integration_added' \| 'system.integration_removed' \| 'security.access_denied' \| 'security.suspicious_activity' \| 'security.data_breach' \| 'security.api_key_created' \| 'security.api_key_revoked'>[]` | optional | Event types to audit | -| **excludeEventTypes** | `Enum<'data.create' \| 'data.read' \| 'data.update' \| 'data.delete' \| 'data.export' \| 'data.import' \| 'data.bulk_update' \| 'data.bulk_delete' \| 'auth.login' \| 'auth.login_failed' \| 'auth.logout' \| 'auth.session_created' \| 'auth.session_expired' \| 'auth.password_reset' \| 'auth.password_changed' \| 'auth.email_verified' \| 'auth.mfa_enabled' \| 'auth.mfa_disabled' \| 'auth.account_locked' \| 'auth.account_unlocked' \| 'authz.permission_granted' \| 'authz.permission_revoked' \| 'authz.role_assigned' \| 'authz.role_removed' \| 'authz.role_created' \| 'authz.role_updated' \| 'authz.role_deleted' \| 'authz.policy_created' \| 'authz.policy_updated' \| 'authz.policy_deleted' \| 'system.config_changed' \| 'system.plugin_installed' \| 'system.plugin_uninstalled' \| 'system.backup_created' \| 'system.backup_restored' \| 'system.integration_added' \| 'system.integration_removed' \| 'security.access_denied' \| 'security.suspicious_activity' \| 'security.data_breach' \| 'security.api_key_created' \| 'security.api_key_revoked'>[]` | optional | Event types to exclude | -| **minimumSeverity** | `Enum<'debug' \| 'info' \| 'notice' \| 'warning' \| 'error' \| 'critical' \| 'alert' \| 'emergency'>` | optional | Minimum severity level | -| **storage** | `object` | ✅ | Storage configuration | -| **retentionPolicy** | `object` | optional | Retention policy | -| **suspiciousActivityRules** | `object[]` | optional | Suspicious activity rules | -| **includeSensitiveData** | `boolean` | optional | Include sensitive data | -| **redactFields** | `string[]` | optional | Fields to redact | -| **logReads** | `boolean` | optional | Log read operations | -| **readSamplingRate** | `number` | optional | Read sampling rate | -| **logSystemEvents** | `boolean` | optional | Log system events | -| **customHandlers** | `object[]` | optional | Custom event handler references | -| **compliance** | `object` | optional | Compliance configuration | - --- ## AuditEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Audit event ID | -| **eventType** | `Enum<'data.create' \| 'data.read' \| 'data.update' \| 'data.delete' \| 'data.export' \| 'data.import' \| 'data.bulk_update' \| 'data.bulk_delete' \| 'auth.login' \| 'auth.login_failed' \| 'auth.logout' \| 'auth.session_created' \| 'auth.session_expired' \| 'auth.password_reset' \| 'auth.password_changed' \| 'auth.email_verified' \| 'auth.mfa_enabled' \| 'auth.mfa_disabled' \| 'auth.account_locked' \| 'auth.account_unlocked' \| 'authz.permission_granted' \| 'authz.permission_revoked' \| 'authz.role_assigned' \| 'authz.role_removed' \| 'authz.role_created' \| 'authz.role_updated' \| 'authz.role_deleted' \| 'authz.policy_created' \| 'authz.policy_updated' \| 'authz.policy_deleted' \| 'system.config_changed' \| 'system.plugin_installed' \| 'system.plugin_uninstalled' \| 'system.backup_created' \| 'system.backup_restored' \| 'system.integration_added' \| 'system.integration_removed' \| 'security.access_denied' \| 'security.suspicious_activity' \| 'security.data_breach' \| 'security.api_key_created' \| 'security.api_key_revoked'>` | ✅ | Event type | -| **severity** | `Enum<'debug' \| 'info' \| 'notice' \| 'warning' \| 'error' \| 'critical' \| 'alert' \| 'emergency'>` | optional | Event severity | -| **timestamp** | `string` | ✅ | Event timestamp | -| **actor** | `object` | ✅ | Event actor | -| **target** | `object` | optional | Event target | -| **description** | `string` | ✅ | Event description | -| **changes** | `object[]` | optional | List of changes | -| **result** | `Enum<'success' \| 'failure' \| 'partial'>` | optional | Action result | -| **errorMessage** | `string` | optional | Error message | -| **tenantId** | `string` | optional | Tenant identifier | -| **requestId** | `string` | optional | Request ID for tracing | -| **metadata** | `Record` | optional | Additional metadata | -| **location** | `object` | optional | Geographic location | - --- ## AuditEventActor -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'user' \| 'system' \| 'service' \| 'api_client' \| 'integration'>` | ✅ | Actor type | -| **id** | `string` | ✅ | Actor identifier | -| **name** | `string` | optional | Actor display name | -| **email** | `string` | optional | Actor email address | -| **ipAddress** | `string` | optional | Actor IP address | -| **userAgent** | `string` | optional | User agent string | - --- ## AuditEventChange -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Changed field name | -| **oldValue** | `any` | optional | Previous value | -| **newValue** | `any` | optional | New value | - --- ## AuditEventFilter -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **eventTypes** | `Enum<'data.create' \| 'data.read' \| 'data.update' \| 'data.delete' \| 'data.export' \| 'data.import' \| 'data.bulk_update' \| 'data.bulk_delete' \| 'auth.login' \| 'auth.login_failed' \| 'auth.logout' \| 'auth.session_created' \| 'auth.session_expired' \| 'auth.password_reset' \| 'auth.password_changed' \| 'auth.email_verified' \| 'auth.mfa_enabled' \| 'auth.mfa_disabled' \| 'auth.account_locked' \| 'auth.account_unlocked' \| 'authz.permission_granted' \| 'authz.permission_revoked' \| 'authz.role_assigned' \| 'authz.role_removed' \| 'authz.role_created' \| 'authz.role_updated' \| 'authz.role_deleted' \| 'authz.policy_created' \| 'authz.policy_updated' \| 'authz.policy_deleted' \| 'system.config_changed' \| 'system.plugin_installed' \| 'system.plugin_uninstalled' \| 'system.backup_created' \| 'system.backup_restored' \| 'system.integration_added' \| 'system.integration_removed' \| 'security.access_denied' \| 'security.suspicious_activity' \| 'security.data_breach' \| 'security.api_key_created' \| 'security.api_key_revoked'>[]` | optional | Event types to include | -| **severities** | `Enum<'debug' \| 'info' \| 'notice' \| 'warning' \| 'error' \| 'critical' \| 'alert' \| 'emergency'>[]` | optional | Severity levels to include | -| **actorId** | `string` | optional | Actor identifier | -| **tenantId** | `string` | optional | Tenant identifier | -| **timeRange** | `object` | optional | Time range filter | -| **result** | `Enum<'success' \| 'failure' \| 'partial'>` | optional | Result status | -| **searchQuery** | `string` | optional | Search query | -| **customFilters** | `Record` | optional | Custom filters | - --- ## AuditEventSeverity -### Allowed Values - -* `debug` -* `info` -* `notice` -* `warning` -* `error` -* `critical` -* `alert` -* `emergency` - --- ## AuditEventTarget -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Target type | -| **id** | `string` | ✅ | Target identifier | -| **name** | `string` | optional | Target display name | -| **metadata** | `Record` | optional | Target metadata | - --- ## AuditEventType -### Allowed Values - -* `data.create` -* `data.read` -* `data.update` -* `data.delete` -* `data.export` -* `data.import` -* `data.bulk_update` -* `data.bulk_delete` -* `auth.login` -* `auth.login_failed` -* `auth.logout` -* `auth.session_created` -* `auth.session_expired` -* `auth.password_reset` -* `auth.password_changed` -* `auth.email_verified` -* `auth.mfa_enabled` -* `auth.mfa_disabled` -* `auth.account_locked` -* `auth.account_unlocked` -* `authz.permission_granted` -* `authz.permission_revoked` -* `authz.role_assigned` -* `authz.role_removed` -* `authz.role_created` -* `authz.role_updated` -* `authz.role_deleted` -* `authz.policy_created` -* `authz.policy_updated` -* `authz.policy_deleted` -* `system.config_changed` -* `system.plugin_installed` -* `system.plugin_uninstalled` -* `system.backup_created` -* `system.backup_restored` -* `system.integration_added` -* `system.integration_removed` -* `security.access_denied` -* `security.suspicious_activity` -* `security.data_breach` -* `security.api_key_created` -* `security.api_key_revoked` - --- ## AuditRetentionPolicy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **retentionDays** | `integer` | optional | Retention period in days | -| **archiveAfterRetention** | `boolean` | optional | Archive logs after retention period | -| **archiveStorage** | `object` | optional | Archive storage configuration | -| **customRetention** | `Record` | optional | Custom retention by event type | -| **minimumRetentionDays** | `integer` | optional | Minimum retention for compliance | - --- ## AuditStorageConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'database' \| 'elasticsearch' \| 'mongodb' \| 'clickhouse' \| 's3' \| 'gcs' \| 'azure_blob' \| 'custom'>` | ✅ | Storage backend type | -| **connectionString** | `string` | optional | Connection string | -| **config** | `Record` | optional | Storage-specific configuration | -| **bufferEnabled** | `boolean` | optional | Enable buffering | -| **bufferSize** | `integer` | optional | Buffer size | -| **flushIntervalSeconds** | `integer` | optional | Flush interval in seconds | -| **compression** | `boolean` | optional | Enable compression | - --- ## SuspiciousActivityRule -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Rule identifier | -| **name** | `string` | ✅ | Rule name | -| **description** | `string` | optional | Rule description | -| **enabled** | `boolean` | optional | Rule enabled status | -| **eventTypes** | `Enum<'data.create' \| 'data.read' \| 'data.update' \| 'data.delete' \| 'data.export' \| 'data.import' \| 'data.bulk_update' \| 'data.bulk_delete' \| 'auth.login' \| 'auth.login_failed' \| 'auth.logout' \| 'auth.session_created' \| 'auth.session_expired' \| 'auth.password_reset' \| 'auth.password_changed' \| 'auth.email_verified' \| 'auth.mfa_enabled' \| 'auth.mfa_disabled' \| 'auth.account_locked' \| 'auth.account_unlocked' \| 'authz.permission_granted' \| 'authz.permission_revoked' \| 'authz.role_assigned' \| 'authz.role_removed' \| 'authz.role_created' \| 'authz.role_updated' \| 'authz.role_deleted' \| 'authz.policy_created' \| 'authz.policy_updated' \| 'authz.policy_deleted' \| 'system.config_changed' \| 'system.plugin_installed' \| 'system.plugin_uninstalled' \| 'system.backup_created' \| 'system.backup_restored' \| 'system.integration_added' \| 'system.integration_removed' \| 'security.access_denied' \| 'security.suspicious_activity' \| 'security.data_breach' \| 'security.api_key_created' \| 'security.api_key_revoked'>[]` | ✅ | Event types to monitor | -| **condition** | `object` | ✅ | Detection condition | -| **actions** | `Enum<'alert' \| 'lock_account' \| 'block_ip' \| 'require_mfa' \| 'log_critical' \| 'webhook'>[]` | ✅ | Actions to take | -| **alertSeverity** | `Enum<'debug' \| 'info' \| 'notice' \| 'warning' \| 'error' \| 'critical' \| 'alert' \| 'emergency'>` | optional | Alert severity | -| **notifications** | `object` | optional | Notification configuration | - diff --git a/content/docs/references/system/cache.mdx b/content/docs/references/system/cache.mdx index 9bb6ccd3b..4f9a74ec1 100644 --- a/content/docs/references/system/cache.mdx +++ b/content/docs/references/system/cache.mdx @@ -23,54 +23,15 @@ const result = CacheConfigSchema.parse(data); ## CacheConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **tiers** | `object[]` | ✅ | | -| **invalidation** | `object[]` | ✅ | | -| **prefetch** | `boolean` | optional | | -| **compression** | `boolean` | optional | | -| **encryption** | `boolean` | optional | | - --- ## CacheInvalidation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **trigger** | `Enum<'create' \| 'update' \| 'delete' \| 'manual'>` | ✅ | | -| **scope** | `Enum<'key' \| 'pattern' \| 'tag' \| 'all'>` | ✅ | | -| **pattern** | `string` | optional | | -| **tags** | `string[]` | optional | | - --- ## CacheStrategy -### Allowed Values - -* `lru` -* `lfu` -* `fifo` -* `ttl` -* `adaptive` - --- ## CacheTier -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | | -| **type** | `Enum<'memory' \| 'redis' \| 'memcached' \| 'cdn'>` | ✅ | | -| **maxSize** | `number` | optional | Max size in MB | -| **ttl** | `number` | optional | Default TTL in seconds | -| **strategy** | `Enum<'lru' \| 'lfu' \| 'fifo' \| 'ttl' \| 'adaptive'>` | optional | | -| **warmup** | `boolean` | optional | | - diff --git a/content/docs/references/system/change-management.mdx b/content/docs/references/system/change-management.mdx index aa19a4e25..41bbc2ce3 100644 --- a/content/docs/references/system/change-management.mdx +++ b/content/docs/references/system/change-management.mdx @@ -23,86 +23,23 @@ const result = ChangeImpactSchema.parse(data); ## ChangeImpact -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **level** | `Enum<'low' \| 'medium' \| 'high' \| 'critical'>` | ✅ | Impact level | -| **affectedSystems** | `string[]` | ✅ | Affected systems | -| **affectedUsers** | `number` | optional | Affected user count | -| **downtime** | `object` | optional | Downtime information | - --- ## ChangePriority -### Allowed Values - -* `critical` -* `high` -* `medium` -* `low` - --- ## ChangeRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Change request ID | -| **title** | `string` | ✅ | Change title | -| **description** | `string` | ✅ | Change description | -| **type** | `Enum<'standard' \| 'normal' \| 'emergency' \| 'major'>` | ✅ | Change type | -| **priority** | `Enum<'critical' \| 'high' \| 'medium' \| 'low'>` | ✅ | Change priority | -| **status** | `Enum<'draft' \| 'submitted' \| 'in-review' \| 'approved' \| 'scheduled' \| 'in-progress' \| 'completed' \| 'failed' \| 'rolled-back' \| 'cancelled'>` | ✅ | Change status | -| **requestedBy** | `string` | ✅ | Requester user ID | -| **requestedAt** | `number` | ✅ | Request timestamp | -| **impact** | `object` | ✅ | Impact assessment | -| **implementation** | `object` | ✅ | Implementation plan | -| **rollbackPlan** | `object` | ✅ | Rollback plan | -| **schedule** | `object` | optional | Schedule | -| **approval** | `object` | optional | Approval workflow | -| **attachments** | `object[]` | optional | Attachments | - --- ## ChangeStatus -### Allowed Values - -* `draft` -* `submitted` -* `in-review` -* `approved` -* `scheduled` -* `in-progress` -* `completed` -* `failed` -* `rolled-back` -* `cancelled` - --- ## ChangeType -### Allowed Values - -* `standard` -* `normal` -* `emergency` -* `major` - --- ## RollbackPlan -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **description** | `string` | ✅ | Rollback description | -| **steps** | `object[]` | ✅ | Rollback steps | -| **testProcedure** | `string` | optional | Test procedure | - diff --git a/content/docs/references/system/collaboration.mdx b/content/docs/references/system/collaboration.mdx index 44fa75150..6470fda2e 100644 --- a/content/docs/references/system/collaboration.mdx +++ b/content/docs/references/system/collaboration.mdx @@ -23,76 +23,22 @@ const result = AwarenessEventSchema.parse(data); ## AwarenessEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **eventId** | `string` | ✅ | Event identifier | -| **sessionId** | `string` | ✅ | Session identifier | -| **eventType** | `Enum<'user.joined' \| 'user.left' \| 'user.updated' \| 'session.created' \| 'session.ended'>` | ✅ | Type of awareness event | -| **userId** | `string` | optional | User involved in event | -| **timestamp** | `string` | ✅ | ISO 8601 datetime of event | -| **payload** | `any` | optional | Event payload | - --- ## AwarenessSession -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **sessionId** | `string` | ✅ | Session identifier | -| **documentId** | `string` | optional | Document ID this session is for | -| **users** | `object[]` | ✅ | Active users in session | -| **startedAt** | `string` | ✅ | ISO 8601 datetime when session started | -| **lastUpdate** | `string` | ✅ | ISO 8601 datetime of last update | -| **metadata** | `Record` | optional | Session metadata | - --- ## AwarenessUpdate -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **status** | `Enum<'active' \| 'idle' \| 'viewing' \| 'disconnected'>` | optional | Updated status | -| **currentDocument** | `string` | optional | Updated current document | -| **currentView** | `string` | optional | Updated current view | -| **metadata** | `Record` | optional | Updated metadata | - --- ## AwarenessUserState -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **userId** | `string` | ✅ | User identifier | -| **sessionId** | `string` | ✅ | Session identifier | -| **userName** | `string` | ✅ | Display name | -| **userAvatar** | `string` | optional | User avatar URL | -| **status** | `Enum<'active' \| 'idle' \| 'viewing' \| 'disconnected'>` | ✅ | Current activity status | -| **currentDocument** | `string` | optional | Document ID user is currently editing | -| **currentView** | `string` | optional | Current view/page user is on | -| **lastActivity** | `string` | ✅ | ISO 8601 datetime of last activity | -| **joinedAt** | `string` | ✅ | ISO 8601 datetime when user joined session | -| **permissions** | `string[]` | optional | User permissions in this session | -| **metadata** | `Record` | optional | Additional user state metadata | - --- ## CRDTMergeResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **state** | `object \| object \| object \| object \| object` | ✅ | Merged CRDT state | -| **conflicts** | `object[]` | optional | Conflicts encountered during merge | - --- ## CRDTState @@ -101,203 +47,58 @@ const result = AwarenessEventSchema.parse(data); ## CRDTType -### Allowed Values - -* `lww-register` -* `g-counter` -* `pn-counter` -* `g-set` -* `or-set` -* `lww-map` -* `text` -* `tree` -* `json` - --- ## CollaborationMode -### Allowed Values - -* `ot` -* `crdt` -* `lock` -* `hybrid` - --- ## CollaborationSession -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **sessionId** | `string` | ✅ | Session identifier | -| **documentId** | `string` | ✅ | Document identifier | -| **config** | `object` | ✅ | Session configuration | -| **users** | `object[]` | ✅ | Active users | -| **cursors** | `object[]` | ✅ | Active cursors | -| **version** | `integer` | ✅ | Current document version | -| **operations** | `object \| object[]` | optional | Recent operations | -| **createdAt** | `string` | ✅ | ISO 8601 datetime when session was created | -| **lastActivity** | `string` | ✅ | ISO 8601 datetime of last activity | -| **status** | `Enum<'active' \| 'idle' \| 'ended'>` | ✅ | Session status | - --- ## CollaborationSessionConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **mode** | `Enum<'ot' \| 'crdt' \| 'lock' \| 'hybrid'>` | ✅ | Collaboration mode to use | -| **enableCursorSharing** | `boolean` | optional | Enable cursor sharing | -| **enablePresence** | `boolean` | optional | Enable presence tracking | -| **enableAwareness** | `boolean` | optional | Enable awareness state | -| **maxUsers** | `integer` | optional | Maximum concurrent users | -| **idleTimeout** | `integer` | optional | Idle timeout in milliseconds | -| **conflictResolution** | `Enum<'ot' \| 'crdt' \| 'manual'>` | optional | Conflict resolution strategy | -| **persistence** | `boolean` | optional | Enable operation persistence | -| **snapshot** | `object` | optional | Snapshot configuration | - --- ## CollaborativeCursor -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **userId** | `string` | ✅ | User identifier | -| **sessionId** | `string` | ✅ | Session identifier | -| **documentId** | `string` | ✅ | Document identifier | -| **userName** | `string` | ✅ | Display name of user | -| **position** | `object` | ✅ | Current cursor position | -| **selection** | `object` | optional | Current text selection | -| **style** | `object` | ✅ | Visual style for this cursor | -| **isTyping** | `boolean` | optional | Whether user is currently typing | -| **lastUpdate** | `string` | ✅ | ISO 8601 datetime of last cursor update | -| **metadata** | `Record` | optional | Additional cursor metadata | - --- ## CounterOperation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **replicaId** | `string` | ✅ | Replica identifier | -| **delta** | `integer` | ✅ | Change amount (positive for increment, negative for decrement) | -| **timestamp** | `string` | ✅ | ISO 8601 datetime of operation | - --- ## CursorColorPreset -### Allowed Values - -* `blue` -* `green` -* `red` -* `yellow` -* `purple` -* `orange` -* `pink` -* `teal` -* `indigo` -* `cyan` - --- ## CursorSelection -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **anchor** | `object` | ✅ | Selection anchor (start point) | -| **focus** | `object` | ✅ | Selection focus (end point) | -| **direction** | `Enum<'forward' \| 'backward'>` | optional | Selection direction | - --- ## CursorStyle -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **color** | `Enum<'blue' \| 'green' \| 'red' \| 'yellow' \| 'purple' \| 'orange' \| 'pink' \| 'teal' \| 'indigo' \| 'cyan'> \| string` | ✅ | Cursor color (preset or custom hex) | -| **opacity** | `number` | optional | Cursor opacity (0-1) | -| **label** | `string` | optional | Label to display with cursor (usually username) | -| **showLabel** | `boolean` | optional | Whether to show label | -| **pulseOnUpdate** | `boolean` | optional | Whether to pulse when cursor moves | - --- ## CursorUpdate -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **position** | `object` | optional | Updated cursor position | -| **selection** | `object` | optional | Updated selection | -| **isTyping** | `boolean` | optional | Updated typing state | -| **metadata** | `Record` | optional | Updated metadata | - --- ## GCounter -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | | -| **counts** | `Record` | ✅ | Map of replica ID to count | - --- ## LWWRegister -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | | -| **value** | `any` | optional | Current register value | -| **timestamp** | `string` | ✅ | ISO 8601 datetime of last write | -| **replicaId** | `string` | ✅ | ID of replica that performed last write | -| **vectorClock** | `object` | optional | Optional vector clock for causality tracking | - --- ## ORSet -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | | -| **elements** | `object[]` | ✅ | Set elements with metadata | - --- ## ORSetElement -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **value** | `any` | optional | Element value | -| **timestamp** | `string` | ✅ | Addition timestamp | -| **replicaId** | `string` | ✅ | Replica that added the element | -| **uid** | `string` | ✅ | Unique identifier for this addition | -| **removed** | `boolean` | optional | Whether element has been removed | - --- ## OTComponent @@ -306,102 +107,31 @@ const result = AwarenessEventSchema.parse(data); ## OTOperation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **operationId** | `string` | ✅ | Unique operation identifier | -| **documentId** | `string` | ✅ | Document identifier | -| **userId** | `string` | ✅ | User who created the operation | -| **sessionId** | `string` | ✅ | Session identifier | -| **components** | `object \| object \| object[]` | ✅ | Operation components | -| **baseVersion** | `integer` | ✅ | Document version this operation is based on | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when operation was created | -| **metadata** | `Record` | optional | Additional operation metadata | - --- ## OTOperationType -### Allowed Values - -* `insert` -* `delete` -* `retain` - --- ## OTTransformResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **operation** | `object` | ✅ | Transformed operation | -| **transformed** | `boolean` | ✅ | Whether transformation was applied | -| **conflicts** | `string[]` | optional | Conflict descriptions if any | - --- ## PNCounter -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | | -| **positive** | `Record` | ✅ | Positive increments per replica | -| **negative** | `Record` | ✅ | Negative increments per replica | - --- ## TextCRDTOperation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **operationId** | `string` | ✅ | Unique operation identifier | -| **replicaId** | `string` | ✅ | Replica identifier | -| **position** | `integer` | ✅ | Position in document | -| **insert** | `string` | optional | Text to insert | -| **delete** | `integer` | optional | Number of characters to delete | -| **timestamp** | `string` | ✅ | ISO 8601 datetime of operation | -| **lamportTimestamp** | `integer` | ✅ | Lamport timestamp for ordering | - --- ## TextCRDTState -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | | -| **documentId** | `string` | ✅ | Document identifier | -| **content** | `string` | ✅ | Current text content | -| **operations** | `object[]` | ✅ | History of operations | -| **lamportClock** | `integer` | ✅ | Current Lamport clock value | -| **vectorClock** | `object` | ✅ | Vector clock for causality | - --- ## UserActivityStatus -### Allowed Values - -* `active` -* `idle` -* `viewing` -* `disconnected` - --- ## VectorClock -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **clock** | `Record` | ✅ | Map of replica ID to logical timestamp | - diff --git a/content/docs/references/system/compliance.mdx b/content/docs/references/system/compliance.mdx index 1cad173e0..81681ed45 100644 --- a/content/docs/references/system/compliance.mdx +++ b/content/docs/references/system/compliance.mdx @@ -23,68 +23,19 @@ const result = AuditLogConfigSchema.parse(data); ## AuditLogConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **retentionDays** | `number` | optional | | -| **immutable** | `boolean` | optional | | -| **signLogs** | `boolean` | optional | | -| **events** | `Enum<'create' \| 'read' \| 'update' \| 'delete' \| 'export' \| 'permission-change' \| 'login' \| 'logout' \| 'failed-login'>[]` | ✅ | | - --- ## ComplianceConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **gdpr** | `object` | optional | | -| **hipaa** | `object` | optional | | -| **pciDss** | `object` | optional | | -| **auditLog** | `object` | ✅ | | - --- ## GDPRConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | ✅ | | -| **dataSubjectRights** | `object` | ✅ | | -| **legalBasis** | `Enum<'consent' \| 'contract' \| 'legal-obligation' \| 'vital-interests' \| 'public-task' \| 'legitimate-interests'>` | ✅ | | -| **consentTracking** | `boolean` | optional | | -| **dataRetentionDays** | `number` | optional | | -| **dataProcessingAgreement** | `string` | optional | | - --- ## HIPAAConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | ✅ | | -| **phi** | `object` | ✅ | | -| **businessAssociateAgreement** | `boolean` | optional | | - --- ## PCIDSSConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | ✅ | | -| **level** | `Enum<'1' \| '2' \| '3' \| '4'>` | ✅ | | -| **cardDataFields** | `string[]` | ✅ | | -| **tokenization** | `boolean` | optional | | -| **encryptionInTransit** | `boolean` | optional | | -| **encryptionAtRest** | `boolean` | optional | | - diff --git a/content/docs/references/system/context.mdx b/content/docs/references/system/context.mdx index 0911bc9ef..91be5f7c4 100644 --- a/content/docs/references/system/context.mdx +++ b/content/docs/references/system/context.mdx @@ -23,29 +23,7 @@ const result = KernelContextSchema.parse(data); ## KernelContext -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **instanceId** | `string` | ✅ | Unique UUID for this running kernel process | -| **mode** | `Enum<'development' \| 'production' \| 'test' \| 'provisioning'>` | optional | Kernel operating mode | -| **version** | `string` | ✅ | Kernel version | -| **appName** | `string` | optional | Host application name | -| **cwd** | `string` | ✅ | Current working directory | -| **workspaceRoot** | `string` | optional | Workspace root if different from cwd | -| **startTime** | `integer` | ✅ | Boot timestamp (ms) | -| **features** | `Record` | optional | Global feature toggles | - --- ## RuntimeMode -Kernel operating mode - -### Allowed Values - -* `development` -* `production` -* `test` -* `provisioning` - diff --git a/content/docs/references/system/datasource.mdx b/content/docs/references/system/datasource.mdx index a908b2864..82737d7db 100644 --- a/content/docs/references/system/datasource.mdx +++ b/content/docs/references/system/datasource.mdx @@ -23,58 +23,15 @@ const result = DatasourceSchema.parse(data); ## Datasource -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique datasource identifier | -| **label** | `string` | optional | Display label | -| **driver** | `string` | ✅ | Underlying driver type | -| **config** | `Record` | ✅ | Driver specific configuration | -| **pool** | `object` | optional | Connection pool settings | -| **readReplicas** | `Record[]` | optional | Read-only replica configurations | -| **capabilities** | `object` | optional | Capability overrides | -| **description** | `string` | optional | Internal description | -| **active** | `boolean` | optional | Is datasource enabled | - --- ## DatasourceCapabilities -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **transactions** | `boolean` | optional | | -| **queryFilters** | `boolean` | optional | | -| **queryAggregations** | `boolean` | optional | | -| **querySorting** | `boolean` | optional | | -| **queryPagination** | `boolean` | optional | | -| **queryWindowFunctions** | `boolean` | optional | | -| **querySubqueries** | `boolean` | optional | | -| **joins** | `boolean` | optional | | -| **fullTextSearch** | `boolean` | optional | | -| **readOnly** | `boolean` | optional | | -| **dynamicSchema** | `boolean` | optional | | - --- ## DriverDefinition -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique driver identifier (e.g. "postgres") | -| **label** | `string` | ✅ | Display label (e.g. "PostgreSQL") | -| **description** | `string` | optional | | -| **icon** | `string` | optional | | -| **configSchema** | `Record` | ✅ | JSON Schema for connection configuration | -| **capabilities** | `object` | optional | | - --- ## DriverType -Underlying driver identifier - diff --git a/content/docs/references/system/encryption.mdx b/content/docs/references/system/encryption.mdx index e50e8120f..0d24c890e 100644 --- a/content/docs/references/system/encryption.mdx +++ b/content/docs/references/system/encryption.mdx @@ -23,61 +23,19 @@ const result = EncryptionAlgorithmSchema.parse(data); ## EncryptionAlgorithm -### Allowed Values - -* `aes-256-gcm` -* `aes-256-cbc` -* `chacha20-poly1305` - --- ## EncryptionConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **algorithm** | `Enum<'aes-256-gcm' \| 'aes-256-cbc' \| 'chacha20-poly1305'>` | optional | | -| **keyManagement** | `object` | ✅ | | -| **scope** | `Enum<'field' \| 'record' \| 'table' \| 'database'>` | ✅ | | -| **deterministicEncryption** | `boolean` | optional | Allows equality queries on encrypted data | -| **searchableEncryption** | `boolean` | optional | Allows search on encrypted data | - --- ## FieldEncryption -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **fieldName** | `string` | ✅ | | -| **encryptionConfig** | `object` | ✅ | | -| **indexable** | `boolean` | optional | | - --- ## KeyManagementProvider -### Allowed Values - -* `local` -* `aws-kms` -* `azure-key-vault` -* `gcp-kms` -* `hashicorp-vault` - --- ## KeyRotationPolicy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **frequencyDays** | `number` | optional | | -| **retainOldVersions** | `number` | optional | | -| **autoRotate** | `boolean` | optional | | - diff --git a/content/docs/references/system/events.mdx b/content/docs/references/system/events.mdx index daf3ee98c..9f59296e1 100644 --- a/content/docs/references/system/events.mdx +++ b/content/docs/references/system/events.mdx @@ -23,239 +23,63 @@ const result = DeadLetterQueueEntrySchema.parse(data); ## DeadLetterQueueEntry -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique entry identifier | -| **event** | `object` | ✅ | Original event | -| **error** | `object` | ✅ | Failure details | -| **retries** | `integer` | ✅ | Number of retry attempts | -| **firstFailedAt** | `string` | ✅ | When event first failed | -| **lastFailedAt** | `string` | ✅ | When event last failed | -| **failedHandler** | `string` | optional | Handler ID that failed | - --- ## Event -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Unique event identifier | -| **name** | `string` | ✅ | Event name (lowercase with dots, e.g., user.created, order.paid) | -| **payload** | `any` | optional | Event payload schema | -| **metadata** | `object` | ✅ | Event metadata | - --- ## EventBusConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **persistence** | `object` | optional | Event persistence configuration | -| **queue** | `object` | optional | Event queue configuration | -| **eventSourcing** | `object` | optional | Event sourcing configuration | -| **replay** | `object` | optional | Event replay configuration | -| **webhooks** | `object[]` | optional | Webhook configurations | -| **messageQueue** | `object` | optional | Message queue integration | -| **realtime** | `object` | optional | Real-time notification configuration | -| **eventTypes** | `object[]` | optional | Event type definitions | -| **handlers** | `object[]` | optional | Global event handlers | - --- ## EventHandler -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Unique handler identifier | -| **eventName** | `string` | ✅ | Name of event to handle (supports wildcards like user.*) | -| **priority** | `integer` | optional | Execution priority (lower numbers execute first) | -| **async** | `boolean` | optional | Execute in background (true) or block (false) | -| **retry** | `object` | optional | Retry policy for failed handlers | -| **timeoutMs** | `integer` | optional | Handler timeout in milliseconds | - --- ## EventLogEntry -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique log entry identifier | -| **event** | `object` | ✅ | The event | -| **status** | `Enum<'pending' \| 'processing' \| 'completed' \| 'failed'>` | ✅ | Processing status | -| **handlersExecuted** | `object[]` | optional | Handlers that processed this event | -| **receivedAt** | `string` | ✅ | When event was received | -| **processedAt** | `string` | optional | When event was processed | -| **totalDurationMs** | `integer` | optional | Total processing time | - --- ## EventMessageQueueConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **provider** | `Enum<'kafka' \| 'rabbitmq' \| 'aws-sqs' \| 'redis-pubsub' \| 'google-pubsub' \| 'azure-service-bus'>` | ✅ | Message queue provider | -| **topic** | `string` | ✅ | Topic or queue name | -| **eventPattern** | `string` | optional | Event name pattern to publish (supports wildcards) | -| **partitionKey** | `string` | optional | JSON path for partition key (e.g., "metadata.tenantId") | -| **format** | `Enum<'json' \| 'avro' \| 'protobuf'>` | optional | Message serialization format | -| **includeMetadata** | `boolean` | optional | Include event metadata in message | -| **compression** | `Enum<'none' \| 'gzip' \| 'snappy' \| 'lz4'>` | optional | Message compression | -| **batchSize** | `integer` | optional | Batch size for publishing | -| **flushIntervalMs** | `integer` | optional | Flush interval for batching | - --- ## EventMetadata -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **source** | `string` | ✅ | Event source (e.g., plugin name, system component) | -| **timestamp** | `string` | ✅ | ISO 8601 datetime when event was created | -| **userId** | `string` | optional | User who triggered the event | -| **tenantId** | `string` | optional | Tenant identifier for multi-tenant systems | -| **correlationId** | `string` | optional | Correlation ID for event tracing | -| **causationId** | `string` | optional | ID of the event that caused this event | -| **priority** | `Enum<'critical' \| 'high' \| 'normal' \| 'low' \| 'background'>` | optional | Event priority | - --- ## EventPersistence -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable event persistence | -| **retention** | `integer` | ✅ | Days to retain persisted events | -| **storage** | `Enum<'database' \| 'file' \| 's3' \| 'custom'>` | optional | Storage backend for persisted events | - --- ## EventPriority -### Allowed Values - -* `critical` -* `high` -* `normal` -* `low` -* `background` - --- ## EventQueueConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | optional | Event queue name | -| **concurrency** | `integer` | optional | Max concurrent event handlers | -| **retryPolicy** | `object` | optional | Default retry policy for events | -| **deadLetterQueue** | `string` | optional | Dead letter queue name for failed events | -| **priorityEnabled** | `boolean` | optional | Process events based on priority | - --- ## EventReplayConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **fromTimestamp** | `string` | ✅ | Start timestamp for replay (ISO 8601) | -| **toTimestamp** | `string` | optional | End timestamp for replay (ISO 8601) | -| **eventTypes** | `string[]` | optional | Event types to replay (empty = all) | -| **filters** | `Record` | optional | Additional filters for event selection | -| **speed** | `number` | optional | Replay speed multiplier (1 = real-time) | -| **targetHandlers** | `string[]` | optional | Handler IDs to execute (empty = all) | - --- ## EventRoute -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **from** | `string` | ✅ | Source event pattern (supports wildcards, e.g., user.* or *.created) | -| **to** | `string[]` | ✅ | Target event names to route to | - --- ## EventSourcingConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable event sourcing | -| **snapshotInterval** | `integer` | optional | Create snapshot every N events | -| **snapshotRetention** | `integer` | optional | Number of snapshots to retain | -| **retention** | `integer` | optional | Days to retain events | -| **aggregateTypes** | `string[]` | optional | Aggregate types to enable event sourcing for | -| **storage** | `object` | optional | Event store configuration | - --- ## EventTypeDefinition -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Event type name (lowercase with dots) | -| **version** | `string` | optional | Event schema version | -| **schema** | `any` | optional | JSON Schema for event payload validation | -| **description** | `string` | optional | Event type description | -| **deprecated** | `boolean` | optional | Whether this event type is deprecated | -| **tags** | `string[]` | optional | Event type tags | - --- ## EventWebhookConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Unique webhook identifier | -| **eventPattern** | `string` | ✅ | Event name pattern (supports wildcards) | -| **url** | `string` | ✅ | Webhook endpoint URL | -| **method** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'PATCH'>` | optional | HTTP method | -| **headers** | `Record` | optional | HTTP headers | -| **authentication** | `object` | optional | Authentication configuration | -| **retryPolicy** | `object` | optional | Retry policy | -| **timeoutMs** | `integer` | optional | Request timeout in milliseconds | -| **enabled** | `boolean` | optional | Whether webhook is enabled | - --- ## RealTimeNotificationConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable real-time notifications | -| **protocol** | `Enum<'websocket' \| 'sse' \| 'long-polling'>` | optional | Real-time protocol | -| **eventPattern** | `string` | optional | Event pattern to broadcast | -| **userFilter** | `boolean` | optional | Filter events by user | -| **tenantFilter** | `boolean` | optional | Filter events by tenant | -| **channels** | `object[]` | optional | Named channels for event broadcasting | -| **rateLimit** | `object` | optional | Rate limiting configuration | - diff --git a/content/docs/references/system/feature.mdx b/content/docs/references/system/feature.mdx index 9c6c36b6b..4f632c011 100644 --- a/content/docs/references/system/feature.mdx +++ b/content/docs/references/system/feature.mdx @@ -23,28 +23,7 @@ const result = FeatureFlagSchema.parse(data); ## FeatureFlag -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Feature key (snake_case) | -| **label** | `string` | optional | Display label | -| **description** | `string` | optional | | -| **enabled** | `boolean` | optional | Is globally enabled | -| **strategy** | `Enum<'boolean' \| 'percentage' \| 'user_list' \| 'group' \| 'custom'>` | optional | | -| **conditions** | `object` | optional | | -| **environment** | `Enum<'dev' \| 'staging' \| 'prod' \| 'all'>` | optional | Environment validity | -| **expiresAt** | `string` | optional | Feature flag expiration date | - --- ## FeatureStrategy -### Allowed Values - -* `boolean` -* `percentage` -* `user_list` -* `group` -* `custom` - diff --git a/content/docs/references/system/http-server.mdx b/content/docs/references/system/http-server.mdx index 3d88d5042..df0c0a114 100644 --- a/content/docs/references/system/http-server.mdx +++ b/content/docs/references/system/http-server.mdx @@ -23,117 +23,31 @@ const result = HttpServerConfigSchema.parse(data); ## HttpServerConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **port** | `integer` | optional | Port number to listen on | -| **host** | `string` | optional | Host address to bind to | -| **cors** | `object` | optional | CORS configuration | -| **requestTimeout** | `integer` | optional | Request timeout in milliseconds | -| **bodyLimit** | `string` | optional | Maximum request body size | -| **compression** | `boolean` | optional | Enable response compression | -| **security** | `object` | optional | Security configuration | -| **static** | `object[]` | optional | Static file serving configuration | -| **trustProxy** | `boolean` | optional | Trust X-Forwarded-* headers | - --- ## MiddlewareConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Middleware name (snake_case) | -| **type** | `Enum<'authentication' \| 'authorization' \| 'logging' \| 'validation' \| 'transformation' \| 'error' \| 'custom'>` | ✅ | Middleware type | -| **enabled** | `boolean` | optional | Whether middleware is enabled | -| **order** | `integer` | optional | Execution order priority | -| **config** | `Record` | optional | Middleware configuration object | -| **paths** | `object` | optional | Path filtering | - --- ## MiddlewareType -### Allowed Values - -* `authentication` -* `authorization` -* `logging` -* `validation` -* `transformation` -* `error` -* `custom` - --- ## RouteHandlerMetadata -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **method** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'DELETE' \| 'PATCH' \| 'HEAD' \| 'OPTIONS'>` | ✅ | HTTP method | -| **path** | `string` | ✅ | URL path pattern | -| **handler** | `string` | ✅ | Handler identifier or name | -| **metadata** | `object` | optional | | -| **security** | `object` | optional | | - --- ## ServerCapabilities -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **httpVersions** | `Enum<'1.0' \| '1.1' \| '2.0' \| '3.0'>[]` | optional | Supported HTTP versions | -| **websocket** | `boolean` | optional | WebSocket support | -| **sse** | `boolean` | optional | Server-Sent Events support | -| **serverPush** | `boolean` | optional | HTTP/2 Server Push support | -| **streaming** | `boolean` | optional | Response streaming support | -| **middleware** | `boolean` | optional | Middleware chain support | -| **routeParams** | `boolean` | optional | URL parameter support (/users/:id) | -| **compression** | `boolean` | optional | Built-in compression support | - --- ## ServerEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'starting' \| 'started' \| 'stopping' \| 'stopped' \| 'request' \| 'response' \| 'error'>` | ✅ | Event type | -| **timestamp** | `string` | ✅ | Event timestamp (ISO 8601) | -| **data** | `Record` | optional | Event-specific data | - --- ## ServerEventType -### Allowed Values - -* `starting` -* `started` -* `stopping` -* `stopped` -* `request` -* `response` -* `error` - --- ## ServerStatus -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **state** | `Enum<'stopped' \| 'starting' \| 'running' \| 'stopping' \| 'error'>` | ✅ | Current server state | -| **uptime** | `integer` | optional | Server uptime in milliseconds | -| **server** | `object` | optional | | -| **connections** | `object` | optional | | -| **requests** | `object` | optional | | - diff --git a/content/docs/references/system/job.mdx b/content/docs/references/system/job.mdx index 7eb0d5740..32a1d41a4 100644 --- a/content/docs/references/system/job.mdx +++ b/content/docs/references/system/job.mdx @@ -23,89 +23,30 @@ const result = CronScheduleSchema.parse(data); ## CronSchedule -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | | -| **expression** | `string` | ✅ | Cron expression (e.g., "0 0 * * *" for daily at midnight) | -| **timezone** | `string` | optional | Timezone for cron execution (e.g., "America/New_York") | - --- ## IntervalSchedule -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | | -| **intervalMs** | `integer` | ✅ | Interval in milliseconds | - --- ## Job -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique job identifier | -| **name** | `string` | ✅ | Job name (snake_case) | -| **schedule** | `object \| object \| object` | ✅ | Job schedule configuration | -| **retryPolicy** | `object` | optional | Retry policy configuration | -| **timeout** | `integer` | optional | Timeout in milliseconds | -| **enabled** | `boolean` | optional | Whether the job is enabled | - --- ## JobExecution -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **jobId** | `string` | ✅ | Job identifier | -| **startedAt** | `string` | ✅ | ISO 8601 datetime when execution started | -| **completedAt** | `string` | optional | ISO 8601 datetime when execution completed | -| **status** | `Enum<'running' \| 'success' \| 'failed' \| 'timeout'>` | ✅ | Execution status | -| **error** | `string` | optional | Error message if failed | -| **duration** | `integer` | optional | Execution duration in milliseconds | - --- ## JobExecutionStatus -### Allowed Values - -* `running` -* `success` -* `failed` -* `timeout` - --- ## OnceSchedule -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | | -| **at** | `string` | ✅ | ISO 8601 datetime when to execute | - --- ## RetryPolicy -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **maxRetries** | `integer` | optional | Maximum number of retry attempts | -| **backoffMs** | `integer` | optional | Initial backoff delay in milliseconds | -| **backoffMultiplier** | `number` | optional | Multiplier for exponential backoff | - --- ## Schedule diff --git a/content/docs/references/system/logging.mdx b/content/docs/references/system/logging.mdx index bdcdd33af..50b6c9004 100644 --- a/content/docs/references/system/logging.mdx +++ b/content/docs/references/system/logging.mdx @@ -23,249 +23,55 @@ const result = ConsoleDestinationConfigSchema.parse(data); ## ConsoleDestinationConfig -Console destination configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **stream** | `Enum<'stdout' \| 'stderr'>` | optional | | -| **colors** | `boolean` | optional | | -| **prettyPrint** | `boolean` | optional | | - --- ## ExtendedLogLevel -Extended log severity level - -### Allowed Values - -* `trace` -* `debug` -* `info` -* `warn` -* `error` -* `fatal` - --- ## ExternalServiceDestinationConfig -External service destination configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **endpoint** | `string` | optional | | -| **region** | `string` | optional | | -| **credentials** | `object` | optional | | -| **logGroup** | `string` | optional | | -| **logStream** | `string` | optional | | -| **index** | `string` | optional | | -| **config** | `Record` | optional | | - --- ## FileDestinationConfig -File destination configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **path** | `string` | ✅ | Log file path | -| **rotation** | `object` | optional | | -| **encoding** | `string` | optional | | -| **append** | `boolean` | optional | | - --- ## HttpDestinationConfig -HTTP destination configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **url** | `string` | ✅ | HTTP endpoint URL | -| **method** | `Enum<'POST' \| 'PUT'>` | optional | | -| **headers** | `Record` | optional | | -| **auth** | `object` | optional | | -| **batch** | `object` | optional | | -| **retry** | `object` | optional | | -| **timeout** | `integer` | optional | | - --- ## LogDestination -Log destination configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Destination name (snake_case) | -| **type** | `Enum<'console' \| 'file' \| 'syslog' \| 'elasticsearch' \| 'cloudwatch' \| 'stackdriver' \| 'azure_monitor' \| 'datadog' \| 'splunk' \| 'loki' \| 'http' \| 'kafka' \| 'redis' \| 'custom'>` | ✅ | Destination type | -| **level** | `Enum<'trace' \| 'debug' \| 'info' \| 'warn' \| 'error' \| 'fatal'>` | optional | Extended log severity level | -| **enabled** | `boolean` | optional | | -| **console** | `object` | optional | Console destination configuration | -| **file** | `object` | optional | File destination configuration | -| **http** | `object` | optional | HTTP destination configuration | -| **externalService** | `object` | optional | External service destination configuration | -| **format** | `Enum<'json' \| 'text' \| 'pretty'>` | optional | | -| **filterId** | `string` | optional | Filter function identifier | - --- ## LogDestinationType -Log destination type - -### Allowed Values - -* `console` -* `file` -* `syslog` -* `elasticsearch` -* `cloudwatch` -* `stackdriver` -* `azure_monitor` -* `datadog` -* `splunk` -* `loki` -* `http` -* `kafka` -* `redis` -* `custom` - --- ## LogEnrichmentConfig -Log enrichment configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **staticFields** | `Record` | optional | Static fields added to every log | -| **dynamicEnrichers** | `string[]` | optional | Dynamic enricher function IDs | -| **addHostname** | `boolean` | optional | | -| **addProcessId** | `boolean` | optional | | -| **addEnvironment** | `boolean` | optional | | -| **addTimestampFormats** | `object` | optional | | -| **addCaller** | `boolean` | optional | | -| **addCorrelationIds** | `boolean` | optional | | - --- ## LogEntry -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **timestamp** | `string` | ✅ | ISO 8601 timestamp | -| **level** | `Enum<'debug' \| 'info' \| 'warn' \| 'error' \| 'fatal'>` | ✅ | Log severity level | -| **message** | `string` | ✅ | Log message | -| **context** | `Record` | optional | Structured context data | -| **error** | `Record` | optional | Error object if present | -| **traceId** | `string` | optional | Distributed trace ID | -| **spanId** | `string` | optional | Span ID | -| **service** | `string` | optional | Service name | -| **component** | `string` | optional | Component name (e.g. plugin id) | - --- ## LogFormat -Log output format - -### Allowed Values - -* `json` -* `text` -* `pretty` - --- ## LogLevel -Log severity level - -### Allowed Values - -* `debug` -* `info` -* `warn` -* `error` -* `fatal` - --- ## LoggerConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | optional | Logger name identifier | -| **level** | `Enum<'debug' \| 'info' \| 'warn' \| 'error' \| 'fatal'>` | optional | Log severity level | -| **format** | `Enum<'json' \| 'text' \| 'pretty'>` | optional | Log output format | -| **redact** | `string[]` | optional | Keys to redact from log context | -| **sourceLocation** | `boolean` | optional | Include file and line number | -| **file** | `string` | optional | Path to log file | -| **rotation** | `object` | optional | | - --- ## LoggingConfig -Logging configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Configuration name (snake_case, max 64 chars) | -| **label** | `string` | ✅ | Display label | -| **enabled** | `boolean` | optional | | -| **level** | `Enum<'trace' \| 'debug' \| 'info' \| 'warn' \| 'error' \| 'fatal'>` | optional | Extended log severity level | -| **default** | `object` | optional | Default logger configuration | -| **loggers** | `Record` | optional | Named logger configurations | -| **destinations** | `object[]` | ✅ | Log destinations | -| **enrichment** | `object` | optional | Log enrichment configuration | -| **redact** | `string[]` | optional | Fields to redact | -| **sampling** | `object` | optional | | -| **buffer** | `object` | optional | | -| **performance** | `object` | optional | | - --- ## StructuredLogEntry -Structured log entry - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **timestamp** | `string` | ✅ | ISO 8601 timestamp | -| **level** | `Enum<'trace' \| 'debug' \| 'info' \| 'warn' \| 'error' \| 'fatal'>` | ✅ | Log severity level | -| **message** | `string` | ✅ | Log message | -| **context** | `Record` | optional | Structured context | -| **error** | `object` | optional | Error details | -| **trace** | `object` | optional | Distributed tracing context | -| **source** | `object` | optional | Source information | -| **host** | `object` | optional | Host information | -| **environment** | `string` | optional | Environment (e.g., production, staging) | -| **user** | `object` | optional | User context | -| **request** | `object` | optional | Request context | -| **labels** | `Record` | optional | Custom labels | -| **metadata** | `Record` | optional | Additional metadata | - diff --git a/content/docs/references/system/manifest.mdx b/content/docs/references/system/manifest.mdx index cf6fbb749..0819a01cf 100644 --- a/content/docs/references/system/manifest.mdx +++ b/content/docs/references/system/manifest.mdx @@ -23,22 +23,3 @@ const result = ManifestSchema.parse(data); ## Manifest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique package identifier (reverse domain style) | -| **version** | `string` | ✅ | Package version (semantic versioning) | -| **type** | `Enum<'app' \| 'plugin' \| 'driver' \| 'module' \| 'objectql' \| 'gateway' \| 'adapter'>` | ✅ | Type of package | -| **name** | `string` | ✅ | Human-readable package name | -| **description** | `string` | optional | Package description | -| **permissions** | `string[]` | optional | Array of required permission strings | -| **objects** | `string[]` | optional | Glob patterns for ObjectQL schemas files | -| **datasources** | `string[]` | optional | Glob patterns for Datasource definitions | -| **dependencies** | `Record` | optional | Package dependencies | -| **configuration** | `object` | optional | Plugin configuration settings | -| **contributes** | `object` | optional | Platform contributions | -| **data** | `object[]` | optional | Initial seed data | -| **capabilities** | `object` | optional | Plugin capability declarations for interoperability | -| **extensions** | `Record` | optional | Extension points and contributions | - diff --git a/content/docs/references/system/masking.mdx b/content/docs/references/system/masking.mdx index b5432653e..1f0bb7331 100644 --- a/content/docs/references/system/masking.mdx +++ b/content/docs/references/system/masking.mdx @@ -23,41 +23,11 @@ const result = MaskingConfigSchema.parse(data); ## MaskingConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **rules** | `object[]` | ✅ | | -| **auditUnmasking** | `boolean` | optional | | - --- ## MaskingRule -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | | -| **strategy** | `Enum<'redact' \| 'partial' \| 'hash' \| 'tokenize' \| 'randomize' \| 'nullify' \| 'substitute'>` | ✅ | | -| **pattern** | `string` | optional | Regex pattern for partial masking | -| **preserveFormat** | `boolean` | optional | | -| **preserveLength** | `boolean` | optional | | -| **roles** | `string[]` | optional | Roles that see masked data | -| **exemptRoles** | `string[]` | optional | Roles that see unmasked data | - --- ## MaskingStrategy -### Allowed Values - -* `redact` -* `partial` -* `hash` -* `tokenize` -* `randomize` -* `nullify` -* `substitute` - diff --git a/content/docs/references/system/message-queue.mdx b/content/docs/references/system/message-queue.mdx index e76bf4ea0..7e234f988 100644 --- a/content/docs/references/system/message-queue.mdx +++ b/content/docs/references/system/message-queue.mdx @@ -23,66 +23,19 @@ const result = ConsumerConfigSchema.parse(data); ## ConsumerConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **groupId** | `string` | ✅ | | -| **autoOffsetReset** | `Enum<'earliest' \| 'latest'>` | optional | | -| **enableAutoCommit** | `boolean` | optional | | -| **maxPollRecords** | `number` | optional | | - --- ## DeadLetterQueue -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | | -| **maxRetries** | `number` | optional | | -| **queueName** | `string` | ✅ | | - --- ## MessageQueueConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **provider** | `Enum<'kafka' \| 'rabbitmq' \| 'aws-sqs' \| 'redis-pubsub' \| 'google-pubsub' \| 'azure-service-bus'>` | ✅ | | -| **topics** | `object[]` | ✅ | | -| **consumers** | `object[]` | optional | | -| **deadLetterQueue** | `object` | optional | | -| **ssl** | `boolean` | optional | | -| **sasl** | `object` | optional | | - --- ## MessageQueueProvider -### Allowed Values - -* `kafka` -* `rabbitmq` -* `aws-sqs` -* `redis-pubsub` -* `google-pubsub` -* `azure-service-bus` - --- ## TopicConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | | -| **partitions** | `number` | optional | | -| **replicationFactor** | `number` | optional | | -| **retentionMs** | `number` | optional | | -| **compressionType** | `Enum<'none' \| 'gzip' \| 'snappy' \| 'lz4'>` | optional | | - diff --git a/content/docs/references/system/metadata-loader.mdx b/content/docs/references/system/metadata-loader.mdx index bb6a70630..517788896 100644 --- a/content/docs/references/system/metadata-loader.mdx +++ b/content/docs/references/system/metadata-loader.mdx @@ -23,179 +23,47 @@ const result = MetadataCollectionInfoSchema.parse(data); ## MetadataCollectionInfo -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `string` | ✅ | Collection type | -| **count** | `integer` | ✅ | Number of items | -| **formats** | `Enum<'json' \| 'yaml' \| 'typescript' \| 'javascript'>[]` | ✅ | Formats in collection | -| **totalSize** | `integer` | optional | Total size in bytes | -| **lastModified** | `string` | optional | Last modification date | -| **location** | `string` | optional | Collection location | - --- ## MetadataExportOptions -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **output** | `string` | ✅ | Output file path | -| **format** | `Enum<'json' \| 'yaml' \| 'typescript' \| 'javascript'>` | optional | Export format | -| **filter** | `string` | optional | Filter items to export | -| **includeStats** | `boolean` | optional | Include metadata statistics | -| **compress** | `boolean` | optional | Compress output (gzip) | -| **prettify** | `boolean` | optional | Pretty print output | - --- ## MetadataFormat -### Allowed Values - -* `json` -* `yaml` -* `typescript` -* `javascript` - --- ## MetadataImportOptions -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **conflictResolution** | `Enum<'skip' \| 'overwrite' \| 'merge' \| 'fail'>` | optional | How to handle existing items | -| **validate** | `boolean` | optional | Validate before import | -| **dryRun** | `boolean` | optional | Simulate import without saving | -| **continueOnError** | `boolean` | optional | Continue if validation fails | -| **transform** | `string` | optional | Transform items before import | - --- ## MetadataLoadOptions -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **patterns** | `string[]` | optional | File glob patterns | -| **ifNoneMatch** | `string` | optional | ETag for conditional request | -| **ifModifiedSince** | `string` | optional | Only load if modified after this date | -| **validate** | `boolean` | optional | Validate against schema | -| **useCache** | `boolean` | optional | Enable caching | -| **filter** | `string` | optional | Filter predicate as string | -| **limit** | `integer` | optional | Maximum items to load | -| **recursive** | `boolean` | optional | Search subdirectories | - --- ## MetadataLoadResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **data** | `any \| null` | optional | Loaded metadata | -| **fromCache** | `boolean` | optional | Loaded from cache | -| **notModified** | `boolean` | optional | Not modified since last request | -| **etag** | `string` | optional | Entity tag | -| **stats** | `object` | optional | Metadata statistics | -| **loadTime** | `number` | optional | Load duration in ms | - --- ## MetadataLoaderContract -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Loader identifier | -| **supportedFormats** | `Enum<'json' \| 'yaml' \| 'typescript' \| 'javascript'>[]` | ✅ | Supported formats | -| **supportsWatch** | `boolean` | optional | Supports file watching | -| **supportsWrite** | `boolean` | optional | Supports write operations | -| **supportsCache** | `boolean` | optional | Supports caching | - --- ## MetadataManagerConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **rootDir** | `string` | optional | Root directory path | -| **formats** | `Enum<'json' \| 'yaml' \| 'typescript' \| 'javascript'>[]` | optional | Enabled formats | -| **cache** | `object` | optional | Cache settings | -| **watch** | `boolean` | optional | Enable file watching | -| **watchOptions** | `object` | optional | File watcher options | -| **validation** | `object` | optional | Validation settings | -| **loaderOptions** | `Record` | optional | Loader-specific configuration | - --- ## MetadataSaveOptions -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **format** | `Enum<'json' \| 'yaml' \| 'typescript' \| 'javascript'>` | optional | Output format | -| **prettify** | `boolean` | optional | Format with indentation | -| **indent** | `integer` | optional | Indentation spaces | -| **sortKeys** | `boolean` | optional | Sort object keys | -| **includeDefaults** | `boolean` | optional | Include default values | -| **backup** | `boolean` | optional | Create backup file | -| **overwrite** | `boolean` | optional | Overwrite existing file | -| **atomic** | `boolean` | optional | Use atomic write operation | -| **path** | `string` | optional | Custom output path | - --- ## MetadataSaveResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **success** | `boolean` | ✅ | Save successful | -| **path** | `string` | ✅ | Output path | -| **etag** | `string` | optional | Generated entity tag | -| **size** | `integer` | optional | File size | -| **saveTime** | `number` | optional | Save duration in ms | -| **backupPath** | `string` | optional | Backup file path | - --- ## MetadataStats -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **size** | `integer` | ✅ | File size in bytes | -| **modifiedAt** | `string` | ✅ | Last modified date | -| **etag** | `string` | ✅ | Entity tag for cache validation | -| **format** | `Enum<'json' \| 'yaml' \| 'typescript' \| 'javascript'>` | ✅ | Serialization format | -| **path** | `string` | optional | File system path | -| **metadata** | `Record` | optional | Provider-specific metadata | - --- ## MetadataWatchEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'added' \| 'changed' \| 'deleted'>` | ✅ | Event type | -| **metadataType** | `string` | ✅ | Type of metadata | -| **name** | `string` | ✅ | Item identifier | -| **path** | `string` | ✅ | File path | -| **data** | `any` | optional | Item data | -| **timestamp** | `string` | ✅ | Event timestamp | - diff --git a/content/docs/references/system/metrics.mdx b/content/docs/references/system/metrics.mdx index 9dc001548..2b6bd029a 100644 --- a/content/docs/references/system/metrics.mdx +++ b/content/docs/references/system/metrics.mdx @@ -23,246 +23,55 @@ const result = HistogramBucketConfigSchema.parse(data); ## HistogramBucketConfig -Histogram bucket configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'linear' \| 'exponential' \| 'explicit'>` | ✅ | Bucket type | -| **linear** | `object` | optional | | -| **exponential** | `object` | optional | | -| **explicit** | `object` | optional | | - --- ## MetricAggregationConfig -Metric aggregation configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'sum' \| 'avg' \| 'min' \| 'max' \| 'count' \| 'p50' \| 'p75' \| 'p90' \| 'p95' \| 'p99' \| 'p999' \| 'rate' \| 'stddev'>` | ✅ | Aggregation type | -| **window** | `object` | optional | | -| **groupBy** | `string[]` | optional | Group by label names | -| **filters** | `Record` | optional | Filter criteria | - --- ## MetricAggregationType -Metric aggregation type - -### Allowed Values - -* `sum` -* `avg` -* `min` -* `max` -* `count` -* `p50` -* `p75` -* `p90` -* `p95` -* `p99` -* `p999` -* `rate` -* `stddev` - --- ## MetricDataPoint -Metric data point - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Metric name | -| **type** | `Enum<'counter' \| 'gauge' \| 'histogram' \| 'summary'>` | ✅ | Metric type | -| **timestamp** | `string` | ✅ | Observation timestamp | -| **value** | `number` | optional | Metric value | -| **labels** | `Record` | optional | Metric labels | -| **histogram** | `object` | optional | | -| **summary** | `object` | optional | | - --- ## MetricDefinition -Metric definition - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Metric name (snake_case) | -| **label** | `string` | optional | Display label | -| **type** | `Enum<'counter' \| 'gauge' \| 'histogram' \| 'summary'>` | ✅ | Metric type | -| **unit** | `Enum<'nanoseconds' \| 'microseconds' \| 'milliseconds' \| 'seconds' \| 'minutes' \| 'hours' \| 'days' \| 'bytes' \| 'kilobytes' \| 'megabytes' \| 'gigabytes' \| 'terabytes' \| 'requests_per_second' \| 'events_per_second' \| 'bytes_per_second' \| 'percent' \| 'ratio' \| 'count' \| 'operations' \| 'custom'>` | optional | Metric unit | -| **description** | `string` | optional | Metric description | -| **labelNames** | `string[]` | optional | Label names | -| **histogram** | `object` | optional | Histogram bucket configuration | -| **summary** | `object` | optional | | -| **enabled** | `boolean` | optional | | - --- ## MetricExportConfig -Metric export configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'prometheus' \| 'openmetrics' \| 'graphite' \| 'statsd' \| 'influxdb' \| 'datadog' \| 'cloudwatch' \| 'stackdriver' \| 'azure_monitor' \| 'http' \| 'custom'>` | ✅ | Export type | -| **endpoint** | `string` | optional | Export endpoint | -| **interval** | `integer` | optional | | -| **batch** | `object` | optional | | -| **auth** | `object` | optional | | -| **config** | `Record` | optional | Additional configuration | - --- ## MetricLabels -Metric labels - --- ## MetricType -Metric type - -### Allowed Values - -* `counter` -* `gauge` -* `histogram` -* `summary` - --- ## MetricUnit -Metric unit - -### Allowed Values - -* `nanoseconds` -* `microseconds` -* `milliseconds` -* `seconds` -* `minutes` -* `hours` -* `days` -* `bytes` -* `kilobytes` -* `megabytes` -* `gigabytes` -* `terabytes` -* `requests_per_second` -* `events_per_second` -* `bytes_per_second` -* `percent` -* `ratio` -* `count` -* `operations` -* `custom` - --- ## MetricsConfig -Metrics configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Configuration name (snake_case, max 64 chars) | -| **label** | `string` | ✅ | Display label | -| **enabled** | `boolean` | optional | | -| **metrics** | `object[]` | optional | | -| **defaultLabels** | `Record` | optional | Metric labels | -| **aggregations** | `object[]` | optional | | -| **slis** | `object[]` | optional | | -| **slos** | `object[]` | optional | | -| **exports** | `object[]` | optional | | -| **collectionInterval** | `integer` | optional | | -| **retention** | `object` | optional | | -| **cardinalityLimits** | `object` | optional | | - --- ## ServiceLevelIndicator -Service Level Indicator - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | SLI name (snake_case) | -| **label** | `string` | ✅ | Display label | -| **description** | `string` | optional | SLI description | -| **metric** | `string` | ✅ | Base metric name | -| **type** | `Enum<'availability' \| 'latency' \| 'throughput' \| 'error_rate' \| 'saturation' \| 'custom'>` | ✅ | SLI type | -| **successCriteria** | `object` | ✅ | Success criteria | -| **window** | `object` | ✅ | Measurement window | -| **enabled** | `boolean` | optional | | - --- ## ServiceLevelObjective -Service Level Objective - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | SLO name (snake_case) | -| **label** | `string` | ✅ | Display label | -| **description** | `string` | optional | SLO description | -| **sli** | `string` | ✅ | SLI name | -| **target** | `number` | ✅ | Target percentage | -| **period** | `object` | ✅ | Time period | -| **errorBudget** | `object` | optional | | -| **alerts** | `object[]` | optional | | -| **enabled** | `boolean` | optional | | - --- ## TimeSeries -Time series - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Series name | -| **labels** | `Record` | optional | Series labels | -| **dataPoints** | `object[]` | ✅ | Data points | -| **startTime** | `string` | optional | Start time | -| **endTime** | `string` | optional | End time | - --- ## TimeSeriesDataPoint -Time series data point - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **timestamp** | `string` | ✅ | Timestamp | -| **value** | `number` | ✅ | Value | -| **labels** | `Record` | optional | Labels | - diff --git a/content/docs/references/system/notification.mdx b/content/docs/references/system/notification.mdx index 120e421cf..76e62e590 100644 --- a/content/docs/references/system/notification.mdx +++ b/content/docs/references/system/notification.mdx @@ -23,88 +23,23 @@ const result = EmailTemplateSchema.parse(data); ## EmailTemplate -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Template identifier | -| **subject** | `string` | ✅ | Email subject | -| **body** | `string` | ✅ | Email body content | -| **bodyType** | `Enum<'text' \| 'html' \| 'markdown'>` | optional | Body content type | -| **variables** | `string[]` | optional | Template variables | -| **attachments** | `object[]` | optional | Email attachments | - --- ## InAppNotification -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **title** | `string` | ✅ | Notification title | -| **message** | `string` | ✅ | Notification message | -| **type** | `Enum<'info' \| 'success' \| 'warning' \| 'error'>` | ✅ | Notification type | -| **actionUrl** | `string` | optional | Action URL | -| **dismissible** | `boolean` | optional | User dismissible | -| **expiresAt** | `number` | optional | Expiration timestamp | - --- ## NotificationChannel -### Allowed Values - -* `email` -* `sms` -* `push` -* `in-app` -* `slack` -* `teams` -* `webhook` - --- ## NotificationConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Notification ID | -| **name** | `string` | ✅ | Notification name | -| **channel** | `Enum<'email' \| 'sms' \| 'push' \| 'in-app' \| 'slack' \| 'teams' \| 'webhook'>` | ✅ | Notification channel | -| **template** | `object \| object \| object \| object` | ✅ | Notification template | -| **recipients** | `object` | ✅ | Recipients | -| **schedule** | `object` | optional | Scheduling | -| **retryPolicy** | `object` | optional | Retry policy | -| **tracking** | `object` | optional | Tracking configuration | - --- ## PushNotification -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **title** | `string` | ✅ | Notification title | -| **body** | `string` | ✅ | Notification body | -| **icon** | `string` | optional | Notification icon URL | -| **badge** | `number` | optional | Badge count | -| **data** | `Record` | optional | Custom data | -| **actions** | `object[]` | optional | Notification actions | - --- ## SMSTemplate -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Template identifier | -| **message** | `string` | ✅ | SMS message content | -| **maxLength** | `number` | optional | Maximum message length | -| **variables** | `string[]` | optional | Template variables | - diff --git a/content/docs/references/system/object-storage.mdx b/content/docs/references/system/object-storage.mdx index 4707cc737..98aca23ad 100644 --- a/content/docs/references/system/object-storage.mdx +++ b/content/docs/references/system/object-storage.mdx @@ -23,257 +23,59 @@ const result = AccessControlConfigSchema.parse(data); ## AccessControlConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **acl** | `Enum<'private' \| 'public_read' \| 'public_read_write' \| 'authenticated_read' \| 'bucket_owner_read' \| 'bucket_owner_full_control'>` | optional | Default access control level | -| **allowedOrigins** | `string[]` | optional | CORS allowed origins | -| **allowedMethods** | `Enum<'GET' \| 'PUT' \| 'POST' \| 'DELETE' \| 'HEAD'>[]` | optional | CORS allowed HTTP methods | -| **allowedHeaders** | `string[]` | optional | CORS allowed headers | -| **exposeHeaders** | `string[]` | optional | CORS exposed headers | -| **maxAge** | `number` | optional | CORS preflight cache duration in seconds | -| **corsEnabled** | `boolean` | optional | Enable CORS configuration | -| **publicAccess** | `object` | optional | Public access control | -| **allowedIps** | `string[]` | optional | Allowed IP addresses/CIDR blocks | -| **blockedIps** | `string[]` | optional | Blocked IP addresses/CIDR blocks | - --- ## BucketConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Bucket identifier in ObjectStack (snake_case) | -| **label** | `string` | ✅ | Display label | -| **bucketName** | `string` | ✅ | Actual bucket/container name in storage provider | -| **region** | `string` | optional | Storage region (e.g., us-east-1, westus) | -| **provider** | `Enum<'s3' \| 'azure_blob' \| 'gcs' \| 'minio' \| 'r2' \| 'spaces' \| 'wasabi' \| 'backblaze' \| 'local'>` | ✅ | Storage provider | -| **endpoint** | `string` | optional | Custom endpoint URL (for S3-compatible providers) | -| **pathStyle** | `boolean` | optional | Use path-style URLs (for S3-compatible providers) | -| **versioning** | `boolean` | optional | Enable object versioning | -| **encryption** | `object` | optional | Server-side encryption configuration | -| **accessControl** | `object` | optional | Access control configuration | -| **lifecyclePolicy** | `object` | optional | Lifecycle policy configuration | -| **multipartConfig** | `object` | optional | Multipart upload configuration | -| **tags** | `Record` | optional | Bucket tags for organization | -| **description** | `string` | optional | Bucket description | -| **enabled** | `boolean` | optional | Enable this bucket | - --- ## FileMetadata -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **path** | `string` | ✅ | File path | -| **name** | `string` | ✅ | File name | -| **size** | `integer` | ✅ | File size in bytes | -| **mimeType** | `string` | ✅ | MIME type | -| **lastModified** | `string` | ✅ | Last modified timestamp | -| **created** | `string` | ✅ | Creation timestamp | -| **etag** | `string` | optional | Entity tag | - --- ## LifecycleAction -Lifecycle policy action type - -### Allowed Values - -* `transition` -* `delete` -* `abort` - --- ## LifecyclePolicyConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable lifecycle policies | -| **rules** | `object[]` | optional | Lifecycle rules | - --- ## LifecyclePolicyRule -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Rule identifier | -| **enabled** | `boolean` | optional | Enable this rule | -| **action** | `Enum<'transition' \| 'delete' \| 'abort'>` | ✅ | Action to perform | -| **prefix** | `string` | optional | Object key prefix filter (e.g., "uploads/") | -| **tags** | `Record` | optional | Object tag filters | -| **daysAfterCreation** | `number` | optional | Days after object creation | -| **daysAfterModification** | `number` | optional | Days after last modification | -| **targetStorageClass** | `Enum<'standard' \| 'intelligent' \| 'infrequent_access' \| 'glacier' \| 'deep_archive'>` | optional | Target storage class for transition action | - --- ## MultipartUploadConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **enabled** | `boolean` | optional | Enable multipart uploads | -| **partSize** | `number` | optional | Part size in bytes (min 5MB, max 5GB) | -| **maxParts** | `number` | optional | Maximum number of parts (max 10,000) | -| **threshold** | `number` | optional | File size threshold to trigger multipart upload (bytes) | -| **maxConcurrent** | `number` | optional | Maximum concurrent part uploads | -| **abortIncompleteAfterDays** | `number` | optional | Auto-abort incomplete uploads after N days | - --- ## ObjectMetadata -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **contentType** | `string` | ✅ | MIME type (e.g., image/jpeg, application/pdf) | -| **contentLength** | `number` | ✅ | File size in bytes | -| **contentEncoding** | `string` | optional | Content encoding (e.g., gzip) | -| **contentDisposition** | `string` | optional | Content disposition header | -| **contentLanguage** | `string` | optional | Content language | -| **cacheControl** | `string` | optional | Cache control directives | -| **etag** | `string` | optional | Entity tag for versioning/caching | -| **lastModified** | `string` | optional | Last modification timestamp | -| **versionId** | `string` | optional | Object version identifier | -| **storageClass** | `Enum<'standard' \| 'intelligent' \| 'infrequent_access' \| 'glacier' \| 'deep_archive'>` | optional | Storage class/tier | -| **encryption** | `object` | optional | Server-side encryption configuration | -| **custom** | `Record` | optional | Custom user-defined metadata | - --- ## ObjectStorageConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Storage configuration identifier | -| **label** | `string` | ✅ | Display label | -| **provider** | `Enum<'s3' \| 'azure_blob' \| 'gcs' \| 'minio' \| 'r2' \| 'spaces' \| 'wasabi' \| 'backblaze' \| 'local'>` | ✅ | Primary storage provider | -| **scope** | `Enum<'global' \| 'tenant' \| 'user' \| 'session' \| 'temp' \| 'cache' \| 'data' \| 'logs' \| 'config' \| 'public'>` | optional | Storage scope | -| **connection** | `object` | ✅ | Connection credentials | -| **buckets** | `object[]` | optional | Configured buckets | -| **defaultBucket** | `string` | optional | Default bucket name for operations | -| **location** | `string` | optional | Root path (local) or base location | -| **quota** | `integer` | optional | Max size in bytes | -| **options** | `Record` | optional | Provider-specific configuration options | -| **enabled** | `boolean` | optional | Enable this storage configuration | -| **description** | `string` | optional | Configuration description | - --- ## PresignedUrlConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **operation** | `Enum<'get' \| 'put' \| 'delete' \| 'head'>` | ✅ | Allowed operation | -| **expiresIn** | `number` | ✅ | Expiration time in seconds (max 7 days) | -| **contentType** | `string` | optional | Required content type for PUT operations | -| **maxSize** | `number` | optional | Maximum file size in bytes for PUT operations | -| **responseContentType** | `string` | optional | Override content-type for GET operations | -| **responseContentDisposition** | `string` | optional | Override content-disposition for GET operations | - --- ## StorageAcl -Storage access control level - -### Allowed Values - -* `private` -* `public_read` -* `public_read_write` -* `authenticated_read` -* `bucket_owner_read` -* `bucket_owner_full_control` - --- ## StorageClass -Storage class/tier for cost optimization - -### Allowed Values - -* `standard` -* `intelligent` -* `infrequent_access` -* `glacier` -* `deep_archive` - --- ## StorageConnection -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **accessKeyId** | `string` | optional | AWS access key ID or MinIO access key | -| **secretAccessKey** | `string` | optional | AWS secret access key or MinIO secret key | -| **sessionToken** | `string` | optional | AWS session token for temporary credentials | -| **accountName** | `string` | optional | Azure storage account name | -| **accountKey** | `string` | optional | Azure storage account key | -| **sasToken** | `string` | optional | Azure SAS token | -| **projectId** | `string` | optional | GCP project ID | -| **credentials** | `string` | optional | GCP service account credentials JSON | -| **endpoint** | `string` | optional | Custom endpoint URL | -| **region** | `string` | optional | Default region | -| **useSSL** | `boolean` | optional | Use SSL/TLS for connections | -| **timeout** | `number` | optional | Connection timeout in milliseconds | - --- ## StorageProvider -Storage provider type - -### Allowed Values - -* `s3` -* `azure_blob` -* `gcs` -* `minio` -* `r2` -* `spaces` -* `wasabi` -* `backblaze` -* `local` - --- ## StorageScope -Storage scope classification - -### Allowed Values - -* `global` -* `tenant` -* `user` -* `session` -* `temp` -* `cache` -* `data` -* `logs` -* `config` -* `public` - diff --git a/content/docs/references/system/plugin-capability.mdx b/content/docs/references/system/plugin-capability.mdx index 83324fd7a..97b7411d2 100644 --- a/content/docs/references/system/plugin-capability.mdx +++ b/content/docs/references/system/plugin-capability.mdx @@ -23,129 +23,35 @@ const result = CapabilityConformanceLevelSchema.parse(data); ## CapabilityConformanceLevel -Level of protocol conformance - -### Allowed Values - -* `full` -* `partial` -* `experimental` -* `deprecated` - --- ## ExtensionPoint -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique extension point identifier | -| **name** | `string` | ✅ | | -| **description** | `string` | optional | | -| **type** | `Enum<'action' \| 'hook' \| 'widget' \| 'provider' \| 'transformer' \| 'validator' \| 'decorator'>` | ✅ | | -| **contract** | `object` | optional | | -| **cardinality** | `Enum<'single' \| 'multiple'>` | optional | Whether multiple extensions can register to this point | - --- ## PluginCapability -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **protocol** | `object` | ✅ | | -| **conformance** | `Enum<'full' \| 'partial' \| 'experimental' \| 'deprecated'>` | optional | Level of protocol conformance | -| **implementedFeatures** | `string[]` | optional | List of implemented feature names | -| **features** | `object[]` | optional | | -| **metadata** | `Record` | optional | | -| **certified** | `boolean` | optional | Has passed official conformance tests | -| **certificationDate** | `string` | optional | | - --- ## PluginCapabilityManifest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **implements** | `object[]` | optional | List of protocols this plugin conforms to | -| **provides** | `object[]` | optional | Services/APIs this plugin offers to others | -| **requires** | `object[]` | optional | Required plugins and their capabilities | -| **extensionPoints** | `object[]` | optional | Points where other plugins can extend this plugin | -| **extensions** | `object[]` | optional | Extensions contributed to other plugins | - --- ## PluginDependency -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **pluginId** | `string` | ✅ | Required plugin identifier | -| **version** | `string` | ✅ | Semantic version constraint | -| **optional** | `boolean` | optional | | -| **reason** | `string` | optional | | -| **requiredCapabilities** | `string[]` | optional | Protocol IDs the dependency must support | - --- ## PluginInterface -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique interface identifier | -| **name** | `string` | ✅ | | -| **description** | `string` | optional | | -| **version** | `object` | ✅ | Semantic version of the protocol | -| **methods** | `object[]` | ✅ | | -| **events** | `object[]` | optional | | -| **stability** | `Enum<'stable' \| 'beta' \| 'alpha' \| 'experimental'>` | optional | | - --- ## ProtocolFeature -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Feature identifier within the protocol | -| **enabled** | `boolean` | optional | | -| **description** | `string` | optional | | -| **sinceVersion** | `string` | optional | Version when this feature was added | -| **deprecatedSince** | `string` | optional | Version when deprecated | - --- ## ProtocolReference -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique protocol identifier (e.g., com.objectstack.protocol.storage.v1) | -| **label** | `string` | ✅ | | -| **version** | `object` | ✅ | Semantic version of the protocol | -| **specification** | `string` | optional | URL or path to protocol specification | -| **description** | `string` | optional | | - --- ## ProtocolVersion -Semantic version of the protocol - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **major** | `integer` | ✅ | | -| **minor** | `integer` | ✅ | | -| **patch** | `integer` | ✅ | | - diff --git a/content/docs/references/system/plugin-lifecycle-events.mdx b/content/docs/references/system/plugin-lifecycle-events.mdx index 95c83e690..30dd99efd 100644 --- a/content/docs/references/system/plugin-lifecycle-events.mdx +++ b/content/docs/references/system/plugin-lifecycle-events.mdx @@ -23,171 +23,51 @@ const result = EventPhaseSchema.parse(data); ## EventPhase -Plugin lifecycle phase - -### Allowed Values - -* `init` -* `start` -* `destroy` - --- ## HookRegisteredEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **hookName** | `string` | ✅ | Name of the hook | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds | -| **handlerCount** | `integer` | ✅ | Number of handlers registered for this hook | - --- ## HookTriggeredEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **hookName** | `string` | ✅ | Name of the hook | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds | -| **args** | `any[]` | ✅ | Arguments passed to the hook handlers | -| **handlerCount** | `integer` | optional | Number of handlers that will handle this event | - --- ## KernelEventBase -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds | - --- ## KernelReadyEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds | -| **duration** | `number` | optional | Total initialization duration in milliseconds | -| **pluginCount** | `integer` | optional | Number of plugins initialized | - --- ## KernelShutdownEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds | -| **reason** | `string` | optional | Reason for kernel shutdown | - --- ## PluginErrorEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **pluginName** | `string` | ✅ | Name of the plugin | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds when event occurred | -| **error** | `any` | ✅ | Error object | -| **phase** | `Enum<'init' \| 'start' \| 'destroy'>` | ✅ | Lifecycle phase where error occurred | -| **errorMessage** | `string` | optional | Error message | -| **errorStack** | `string` | optional | Error stack trace | - --- ## PluginEventBase -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **pluginName** | `string` | ✅ | Name of the plugin | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds when event occurred | - --- ## PluginLifecycleEventType -Plugin lifecycle event type - -### Allowed Values - -* `kernel:ready` -* `kernel:shutdown` -* `kernel:before-init` -* `kernel:after-init` -* `plugin:registered` -* `plugin:before-init` -* `plugin:init` -* `plugin:after-init` -* `plugin:before-start` -* `plugin:started` -* `plugin:after-start` -* `plugin:before-destroy` -* `plugin:destroyed` -* `plugin:after-destroy` -* `plugin:error` -* `service:registered` -* `service:unregistered` -* `hook:registered` -* `hook:triggered` - --- ## PluginLifecyclePhaseEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **pluginName** | `string` | ✅ | Name of the plugin | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds when event occurred | -| **duration** | `number` | optional | Duration of the lifecycle phase in milliseconds | -| **phase** | `Enum<'init' \| 'start' \| 'destroy'>` | optional | Lifecycle phase | - --- ## PluginRegisteredEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **pluginName** | `string` | ✅ | Name of the plugin | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds when event occurred | -| **version** | `string` | optional | Plugin version | - --- ## ServiceRegisteredEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **serviceName** | `string` | ✅ | Name of the registered service | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds | -| **serviceType** | `string` | optional | Type or interface name of the service | - --- ## ServiceUnregisteredEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **serviceName** | `string` | ✅ | Name of the unregistered service | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds | - diff --git a/content/docs/references/system/plugin-validator.mdx b/content/docs/references/system/plugin-validator.mdx index 552054a96..903b08774 100644 --- a/content/docs/references/system/plugin-validator.mdx +++ b/content/docs/references/system/plugin-validator.mdx @@ -23,50 +23,15 @@ const result = PluginMetadataSchema.parse(data); ## PluginMetadata -Plugin metadata for validation - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique plugin identifier | -| **version** | `string` | optional | Semantic version (e.g., 1.0.0) | -| **dependencies** | `string[]` | optional | Array of plugin names this plugin depends on | -| **signature** | `string` | optional | Cryptographic signature for plugin verification | - --- ## ValidationError -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Field name that failed validation | -| **message** | `string` | ✅ | Human-readable error message | -| **code** | `string` | optional | Machine-readable error code | - --- ## ValidationResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **valid** | `boolean` | ✅ | Whether the plugin passed validation | -| **errors** | `object[]` | optional | Validation errors | -| **warnings** | `object[]` | optional | Validation warnings | - --- ## ValidationWarning -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Field name with warning | -| **message** | `string` | ✅ | Human-readable warning message | -| **code** | `string` | optional | Machine-readable warning code | - diff --git a/content/docs/references/system/plugin.mdx b/content/docs/references/system/plugin.mdx index 44b246abd..251145e27 100644 --- a/content/docs/references/system/plugin.mdx +++ b/content/docs/references/system/plugin.mdx @@ -23,40 +23,11 @@ const result = PluginSchema.parse(data); ## Plugin -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | optional | Unique Plugin ID (e.g. com.example.crm) | -| **version** | `string` | optional | Semantic Version | -| **description** | `string` | optional | | -| **author** | `string` | optional | | -| **homepage** | `string` | optional | | - --- ## PluginContext -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **ql** | `Record` | ✅ | ObjectQL Engine Interface | -| **os** | `Record` | ✅ | ObjectStack Kernel Interface | -| **logger** | `Record` | ✅ | Logger Interface | -| **storage** | `Record` | ✅ | Storage Interface | -| **i18n** | `Record` | ✅ | Internationalization Interface | -| **metadata** | `Record` | ✅ | | -| **events** | `Record` | ✅ | | -| **app** | `Record` | ✅ | App Framework Interface | -| **drivers** | `Record` | ✅ | Driver Registry | - --- ## PluginLifecycle -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | - diff --git a/content/docs/references/system/search-engine.mdx b/content/docs/references/system/search-engine.mdx index aa12e7d34..992837c0e 100644 --- a/content/docs/references/system/search-engine.mdx +++ b/content/docs/references/system/search-engine.mdx @@ -23,66 +23,19 @@ const result = AnalyzerConfigSchema.parse(data); ## AnalyzerConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'standard' \| 'simple' \| 'whitespace' \| 'keyword' \| 'pattern' \| 'language'>` | ✅ | | -| **language** | `string` | optional | | -| **stopwords** | `string[]` | optional | | -| **customFilters** | `string[]` | optional | | - --- ## FacetConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | | -| **maxValues** | `number` | optional | | -| **sort** | `Enum<'count' \| 'alpha'>` | optional | | - --- ## SearchConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **provider** | `Enum<'elasticsearch' \| 'algolia' \| 'meilisearch' \| 'typesense' \| 'opensearch'>` | ✅ | | -| **indexes** | `object[]` | ✅ | | -| **analyzers** | `Record` | optional | | -| **facets** | `object[]` | optional | | -| **typoTolerance** | `boolean` | optional | | -| **synonyms** | `Record` | optional | | -| **ranking** | `Enum<'typo' \| 'geo' \| 'words' \| 'filters' \| 'proximity' \| 'attribute' \| 'exact' \| 'custom'>[]` | optional | | - --- ## SearchIndexConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **indexName** | `string` | ✅ | | -| **objectName** | `string` | ✅ | Source ObjectQL object | -| **fields** | `object[]` | ✅ | | -| **replicas** | `number` | optional | | -| **shards** | `number` | optional | | - --- ## SearchProvider -### Allowed Values - -* `elasticsearch` -* `algolia` -* `meilisearch` -* `typesense` -* `opensearch` - diff --git a/content/docs/references/system/service-registry.mdx b/content/docs/references/system/service-registry.mdx index bb5d449f7..efb65e15b 100644 --- a/content/docs/references/system/service-registry.mdx +++ b/content/docs/references/system/service-registry.mdx @@ -23,78 +23,23 @@ const result = ScopeConfigSchema.parse(data); ## ScopeConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **scopeType** | `string` | ✅ | Type of scope | -| **scopeId** | `string` | optional | Unique scope identifier | -| **metadata** | `Record` | optional | Scope-specific context metadata | - --- ## ScopeInfo -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **scopeId** | `string` | ✅ | Unique scope identifier | -| **scopeType** | `string` | ✅ | Type of scope | -| **createdAt** | `integer` | ✅ | Unix timestamp in milliseconds when scope was created | -| **serviceCount** | `integer` | optional | Number of services registered in this scope | -| **metadata** | `Record` | optional | Scope-specific context metadata | - --- ## ServiceFactoryRegistration -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique service name identifier | -| **scope** | `Enum<'singleton' \| 'transient' \| 'scoped'>` | optional | Service scope type | -| **factoryType** | `Enum<'sync' \| 'async'>` | optional | Whether factory is synchronous or asynchronous | -| **singleton** | `boolean` | optional | Whether to cache the factory result (singleton pattern) | - --- ## ServiceMetadata -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique service name identifier | -| **scope** | `Enum<'singleton' \| 'transient' \| 'scoped'>` | optional | Service scope type | -| **type** | `string` | optional | Service type or interface name | -| **registeredAt** | `integer` | optional | Unix timestamp in milliseconds when service was registered | -| **metadata** | `Record` | optional | Additional service-specific metadata | - --- ## ServiceRegistryConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **strictMode** | `boolean` | optional | Throw errors on invalid operations (duplicate registration, service not found, etc.) | -| **allowOverwrite** | `boolean` | optional | Allow overwriting existing service registrations | -| **enableLogging** | `boolean` | optional | Enable logging for service registration and retrieval | -| **scopeTypes** | `string[]` | optional | Supported scope types | -| **maxServices** | `integer` | optional | Maximum number of services that can be registered | - --- ## ServiceScopeType -Service scope type - -### Allowed Values - -* `singleton` -* `transient` -* `scoped` - diff --git a/content/docs/references/system/startup-orchestrator.mdx b/content/docs/references/system/startup-orchestrator.mdx index 99c87441c..a7bdff5aa 100644 --- a/content/docs/references/system/startup-orchestrator.mdx +++ b/content/docs/references/system/startup-orchestrator.mdx @@ -23,53 +23,15 @@ const result = HealthStatusSchema.parse(data); ## HealthStatus -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **healthy** | `boolean` | ✅ | Whether the plugin is healthy | -| **timestamp** | `integer` | ✅ | Unix timestamp in milliseconds when health check was performed | -| **details** | `Record` | optional | Optional plugin-specific health details | -| **message** | `string` | optional | Error message if plugin is unhealthy | - --- ## PluginStartupResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **plugin** | `Record` | ✅ | Plugin metadata | -| **success** | `boolean` | ✅ | Whether the plugin started successfully | -| **duration** | `number` | ✅ | Time taken to start the plugin in milliseconds | -| **error** | `any` | optional | Error object if startup failed | -| **health** | `object` | optional | Health status after startup if health check was enabled | - --- ## StartupOptions -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **timeout** | `integer` | optional | Maximum time in milliseconds to wait for each plugin to start | -| **rollbackOnFailure** | `boolean` | optional | Whether to rollback already-started plugins if any plugin fails | -| **healthCheck** | `boolean` | optional | Whether to run health checks after plugin startup | -| **parallel** | `boolean` | optional | Whether to start plugins in parallel when dependencies allow | -| **context** | `any` | optional | Custom context object to pass to plugin lifecycle methods | - --- ## StartupOrchestrationResult -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **results** | `object[]` | ✅ | Startup results for each plugin | -| **totalDuration** | `number` | ✅ | Total time taken for all plugins in milliseconds | -| **allSuccessful** | `boolean` | ✅ | Whether all plugins started successfully | -| **rolledBack** | `string[]` | optional | Names of plugins that were rolled back | - diff --git a/content/docs/references/system/tracing.mdx b/content/docs/references/system/tracing.mdx index f5b5df178..df1bc25f4 100644 --- a/content/docs/references/system/tracing.mdx +++ b/content/docs/references/system/tracing.mdx @@ -23,258 +23,71 @@ const result = OpenTelemetryCompatibilitySchema.parse(data); ## OpenTelemetryCompatibility -OpenTelemetry compatibility configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **sdkVersion** | `string` | optional | OTel SDK version | -| **exporter** | `object` | ✅ | Exporter configuration | -| **resource** | `object` | ✅ | Resource attributes | -| **instrumentation** | `object` | optional | | -| **semanticConventionsVersion** | `string` | optional | Semantic conventions version | - --- ## OtelExporterType -OpenTelemetry exporter type - -### Allowed Values - -* `otlp_http` -* `otlp_grpc` -* `jaeger` -* `zipkin` -* `console` -* `datadog` -* `honeycomb` -* `lightstep` -* `newrelic` -* `custom` - --- ## SamplingDecision -Sampling decision - -### Allowed Values - -* `drop` -* `record_only` -* `record_and_sample` - --- ## SamplingStrategyType -Sampling strategy type - -### Allowed Values - -* `always_on` -* `always_off` -* `trace_id_ratio` -* `rate_limiting` -* `parent_based` -* `probability` -* `composite` -* `custom` - --- ## Span -OpenTelemetry span - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **context** | `object` | ✅ | Trace context | -| **name** | `string` | ✅ | Span name | -| **kind** | `Enum<'internal' \| 'server' \| 'client' \| 'producer' \| 'consumer'>` | optional | Span kind | -| **startTime** | `string` | ✅ | Span start time | -| **endTime** | `string` | optional | Span end time | -| **duration** | `number` | optional | Duration in milliseconds | -| **status** | `object` | optional | | -| **attributes** | `Record` | optional | Span attributes | -| **events** | `object[]` | optional | | -| **links** | `object[]` | optional | | -| **resource** | `Record` | optional | Resource attributes | -| **instrumentationLibrary** | `object` | optional | | - --- ## SpanAttributeValue -Span attribute value - --- ## SpanAttributes -Span attributes - --- ## SpanEvent -Span event - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Event name | -| **timestamp** | `string` | ✅ | Event timestamp | -| **attributes** | `Record` | optional | Event attributes | - --- ## SpanKind -Span kind - -### Allowed Values - -* `internal` -* `server` -* `client` -* `producer` -* `consumer` - --- ## SpanLink -Span link - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **context** | `object` | ✅ | Linked trace context | -| **attributes** | `Record` | optional | Link attributes | - --- ## SpanStatus -Span status - -### Allowed Values - -* `unset` -* `ok` -* `error` - --- ## TraceContext -Trace context (W3C Trace Context) - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **traceId** | `string` | ✅ | Trace ID (32 hex chars) | -| **spanId** | `string` | ✅ | Span ID (16 hex chars) | -| **traceFlags** | `integer` | optional | Trace flags bitmap | -| **traceState** | `object` | optional | Trace state | -| **parentSpanId** | `string` | optional | Parent span ID (16 hex chars) | -| **sampled** | `boolean` | optional | | -| **remote** | `boolean` | optional | | - --- ## TraceContextPropagation -Trace context propagation - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **formats** | `Enum<'w3c' \| 'b3' \| 'b3_multi' \| 'jaeger' \| 'xray' \| 'ottrace' \| 'custom'>[]` | optional | | -| **extract** | `boolean` | optional | | -| **inject** | `boolean` | optional | | -| **headers** | `object` | optional | | -| **baggage** | `object` | optional | | - --- ## TraceFlags -Trace flags bitmap - --- ## TracePropagationFormat -Trace propagation format - -### Allowed Values - -* `w3c` -* `b3` -* `b3_multi` -* `jaeger` -* `xray` -* `ottrace` -* `custom` - --- ## TraceSamplingConfig -Trace sampling configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'always_on' \| 'always_off' \| 'trace_id_ratio' \| 'rate_limiting' \| 'parent_based' \| 'probability' \| 'composite' \| 'custom'>` | ✅ | Sampling strategy | -| **ratio** | `number` | optional | Sample ratio (0-1) | -| **rateLimit** | `number` | optional | Traces per second | -| **parentBased** | `object` | optional | | -| **composite** | `object[]` | optional | | -| **rules** | `object[]` | optional | | -| **customSamplerId** | `string` | optional | Custom sampler identifier | - --- ## TraceState -Trace state - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **entries** | `Record` | ✅ | Trace state entries | - --- ## TracingConfig -Tracing configuration - -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Configuration name (snake_case, max 64 chars) | -| **label** | `string` | ✅ | Display label | -| **enabled** | `boolean` | optional | | -| **sampling** | `object` | optional | Trace sampling configuration | -| **propagation** | `object` | optional | Trace context propagation | -| **openTelemetry** | `object` | optional | OpenTelemetry compatibility configuration | -| **spanLimits** | `object` | optional | | -| **traceIdGenerator** | `Enum<'random' \| 'uuid' \| 'custom'>` | optional | | -| **customTraceIdGeneratorId** | `string` | optional | Custom generator identifier | -| **performance** | `object` | optional | | - diff --git a/content/docs/references/system/translation.mdx b/content/docs/references/system/translation.mdx index 62690d173..33bbedfe4 100644 --- a/content/docs/references/system/translation.mdx +++ b/content/docs/references/system/translation.mdx @@ -23,8 +23,6 @@ const result = LocaleSchema.parse(data); ## Locale -BCP-47 Language Tag (e.g. en-US, zh-CN) - --- ## TranslationBundle @@ -33,11 +31,3 @@ BCP-47 Language Tag (e.g. en-US, zh-CN) ## TranslationData -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **objects** | `Record` | optional | | -| **apps** | `Record` | optional | | -| **messages** | `Record` | optional | | - diff --git a/content/docs/references/ui/action.mdx b/content/docs/references/ui/action.mdx index 6f3f3c03b..ef3980157 100644 --- a/content/docs/references/ui/action.mdx +++ b/content/docs/references/ui/action.mdx @@ -23,36 +23,7 @@ const result = ActionSchema.parse(data); ## Action -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Machine name (lowercase snake_case) | -| **label** | `string` | ✅ | Display label | -| **icon** | `string` | optional | Icon name | -| **locations** | `Enum<'list_toolbar' \| 'list_item' \| 'record_header' \| 'record_more' \| 'record_related' \| 'global_nav'>[]` | optional | Locations where this action is visible | -| **component** | `Enum<'action:button' \| 'action:icon' \| 'action:menu' \| 'action:group'>` | optional | Visual component override | -| **location** | `any` | optional | | -| **type** | `Enum<'script' \| 'url' \| 'modal' \| 'flow' \| 'api'>` | optional | Action functionality type | -| **target** | `string` | optional | URL, Script Name, Flow ID, or API Endpoint | -| **execute** | `string` | optional | Legacy execution logic | -| **params** | `object[]` | optional | Input parameters required from user | -| **confirmText** | `string` | optional | Confirmation message before execution | -| **successMessage** | `string` | optional | Success message to show after execution | -| **refreshAfter** | `boolean` | optional | Refresh view after execution | -| **visible** | `string` | optional | Formula returning boolean | - --- ## ActionParam -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | | -| **label** | `string` | ✅ | | -| **type** | `Enum<'text' \| 'textarea' \| 'email' \| 'url' \| 'phone' \| 'password' \| 'markdown' \| 'html' \| 'richtext' \| 'number' \| 'currency' \| 'percent' \| 'date' \| 'datetime' \| 'time' \| 'boolean' \| 'toggle' \| 'select' \| 'multiselect' \| 'radio' \| 'checkboxes' \| 'lookup' \| 'master_detail' \| 'tree' \| 'image' \| 'file' \| 'avatar' \| 'video' \| 'audio' \| 'formula' \| 'summary' \| 'autonumber' \| 'location' \| 'address' \| 'code' \| 'json' \| 'color' \| 'rating' \| 'slider' \| 'signature' \| 'qrcode' \| 'progress' \| 'tags' \| 'vector'>` | ✅ | | -| **required** | `boolean` | optional | | -| **options** | `object[]` | optional | | - diff --git a/content/docs/references/ui/app.mdx b/content/docs/references/ui/app.mdx index 1ba2822e1..f88bf7fd6 100644 --- a/content/docs/references/ui/app.mdx +++ b/content/docs/references/ui/app.mdx @@ -23,66 +23,18 @@ const result = AppSchema.parse(data); ## App -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | App unique machine name (lowercase snake_case) | -| **label** | `string` | ✅ | App display label | -| **version** | `string` | optional | App version | -| **description** | `string` | optional | App description | -| **icon** | `string` | optional | App icon used in the App Launcher | -| **branding** | `object` | optional | App-specific branding | -| **active** | `boolean` | optional | Whether the app is enabled | -| **isDefault** | `boolean` | optional | Is default app | -| **navigation** | `object \| object \| object \| object \| object[]` | optional | Structured navigation menu tree | -| **homePageId** | `string` | optional | ID of the navigation item to serve as landing page | -| **requiredPermissions** | `string[]` | optional | Permissions required to access this app | -| **objects** | `any[]` | optional | Objects belonging to this app | -| **apis** | `any[]` | optional | Custom APIs belonging to this app | - --- ## AppBranding -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **primaryColor** | `string` | optional | Primary theme color hex code | -| **logo** | `string` | optional | Custom logo URL for this app | -| **favicon** | `string` | optional | Custom favicon URL for this app | - --- ## DashboardNavItem -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique identifier for this navigation item (lowercase snake_case) | -| **label** | `string` | ✅ | Display proper label | -| **icon** | `string` | optional | Icon name | -| **visible** | `string` | optional | Visibility formula condition | -| **type** | `string` | ✅ | | -| **dashboardName** | `string` | ✅ | Target dashboard name | - --- ## GroupNavItem -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique identifier for this navigation item (lowercase snake_case) | -| **label** | `string` | ✅ | Display proper label | -| **icon** | `string` | optional | Icon name | -| **visible** | `string` | optional | Visibility formula condition | -| **type** | `string` | ✅ | | -| **expanded** | `boolean` | optional | Default expansion state in sidebar | - --- ## NavigationItem @@ -91,47 +43,11 @@ const result = AppSchema.parse(data); ## ObjectNavItem -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique identifier for this navigation item (lowercase snake_case) | -| **label** | `string` | ✅ | Display proper label | -| **icon** | `string` | optional | Icon name | -| **visible** | `string` | optional | Visibility formula condition | -| **type** | `string` | ✅ | | -| **objectName** | `string` | ✅ | Target object name | -| **viewName** | `string` | optional | Default list view to open. Defaults to "all" | - --- ## PageNavItem -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique identifier for this navigation item (lowercase snake_case) | -| **label** | `string` | ✅ | Display proper label | -| **icon** | `string` | optional | Icon name | -| **visible** | `string` | optional | Visibility formula condition | -| **type** | `string` | ✅ | | -| **pageName** | `string` | ✅ | Target custom page component name | -| **params** | `Record` | optional | Parameters passed to the page context | - --- ## UrlNavItem -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **id** | `string` | ✅ | Unique identifier for this navigation item (lowercase snake_case) | -| **label** | `string` | ✅ | Display proper label | -| **icon** | `string` | optional | Icon name | -| **visible** | `string` | optional | Visibility formula condition | -| **type** | `string` | ✅ | | -| **url** | `string` | ✅ | Target external URL | -| **target** | `Enum<'_self' \| '_blank'>` | optional | Link target window | - diff --git a/content/docs/references/ui/chart.mdx b/content/docs/references/ui/chart.mdx index fc8fb4729..7791fd633 100644 --- a/content/docs/references/ui/chart.mdx +++ b/content/docs/references/ui/chart.mdx @@ -23,50 +23,7 @@ const result = ChartConfigSchema.parse(data); ## ChartConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'bar' \| 'horizontal-bar' \| 'column' \| 'grouped-bar' \| 'stacked-bar' \| 'line' \| 'area' \| 'stacked-area' \| 'step-line' \| 'pie' \| 'donut' \| 'funnel' \| 'scatter' \| 'bubble' \| 'treemap' \| 'sunburst' \| 'sankey' \| 'gauge' \| 'metric' \| 'kpi' \| 'choropleth' \| 'bubble-map' \| 'heatmap' \| 'radar' \| 'waterfall' \| 'box-plot' \| 'violin' \| 'table' \| 'pivot'>` | ✅ | | -| **title** | `string` | optional | Chart title | -| **description** | `string` | optional | Chart description | -| **showLegend** | `boolean` | optional | Display legend | -| **showDataLabels** | `boolean` | optional | Display data labels on chart | -| **colors** | `string[]` | optional | Custom color palette | - --- ## ChartType -### Allowed Values - -* `bar` -* `horizontal-bar` -* `column` -* `grouped-bar` -* `stacked-bar` -* `line` -* `area` -* `stacked-area` -* `step-line` -* `pie` -* `donut` -* `funnel` -* `scatter` -* `bubble` -* `treemap` -* `sunburst` -* `sankey` -* `gauge` -* `metric` -* `kpi` -* `choropleth` -* `bubble-map` -* `heatmap` -* `radar` -* `waterfall` -* `box-plot` -* `violin` -* `table` -* `pivot` - diff --git a/content/docs/references/ui/component.mdx b/content/docs/references/ui/component.mdx index 0a963db76..a46eca34b 100644 --- a/content/docs/references/ui/component.mdx +++ b/content/docs/references/ui/component.mdx @@ -23,74 +23,23 @@ const result = PageCardPropsSchema.parse(data); ## PageCardProps -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **title** | `string` | optional | | -| **bordered** | `boolean` | optional | | -| **actions** | `string[]` | optional | | -| **children** | `any[]` | ✅ | Card content | - --- ## PageHeaderProps -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **title** | `string` | ✅ | Page title | -| **subtitle** | `string` | optional | Page subtitle | -| **icon** | `string` | optional | Icon name | -| **breadcrumb** | `boolean` | optional | Show breadcrumb | -| **actions** | `string[]` | optional | Action IDs to show in header | - --- ## PageTabsProps -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'line' \| 'card' \| 'pill'>` | optional | | -| **position** | `Enum<'top' \| 'left'>` | optional | | -| **items** | `object[]` | ✅ | | - --- ## RecordDetailsProps -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **columns** | `Enum<'1' \| '2' \| '3' \| '4'>` | optional | | -| **layout** | `Enum<'auto' \| 'custom'>` | optional | | -| **sections** | `string[]` | optional | Section IDs to show | - --- ## RecordHighlightsProps -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **fields** | `string[]` | ✅ | Key fields to highlights (max 7) | - --- ## RecordRelatedListProps -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **objectName** | `string` | ✅ | Related object name | -| **relationshipField** | `string` | ✅ | Field on related object that points to this record | -| **columns** | `string[]` | ✅ | Fields to display | -| **sort** | `string` | optional | | -| **limit** | `number` | optional | | - diff --git a/content/docs/references/ui/dashboard.mdx b/content/docs/references/ui/dashboard.mdx index cee58c6a5..487fbe478 100644 --- a/content/docs/references/ui/dashboard.mdx +++ b/content/docs/references/ui/dashboard.mdx @@ -23,31 +23,7 @@ const result = DashboardSchema.parse(data); ## Dashboard -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Dashboard unique name | -| **label** | `string` | ✅ | Dashboard label | -| **description** | `string` | optional | Dashboard description | -| **widgets** | `object[]` | ✅ | Widgets to display | - --- ## DashboardWidget -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **title** | `string` | optional | Widget title | -| **type** | `Enum<'bar' \| 'horizontal-bar' \| 'column' \| 'grouped-bar' \| 'stacked-bar' \| 'line' \| 'area' \| 'stacked-area' \| 'step-line' \| 'pie' \| 'donut' \| 'funnel' \| 'scatter' \| 'bubble' \| 'treemap' \| 'sunburst' \| 'sankey' \| 'gauge' \| 'metric' \| 'kpi' \| 'choropleth' \| 'bubble-map' \| 'heatmap' \| 'radar' \| 'waterfall' \| 'box-plot' \| 'violin' \| 'table' \| 'pivot'>` | optional | Visualization type | -| **chartConfig** | `object` | optional | Chart visualization configuration | -| **object** | `string` | optional | Data source object name | -| **filter** | `any` | optional | Data filter criteria | -| **categoryField** | `string` | optional | Field for grouping (X-Axis) | -| **valueField** | `string` | optional | Field for values (Y-Axis) | -| **aggregate** | `Enum<'count' \| 'sum' \| 'avg' \| 'min' \| 'max'>` | optional | Aggregate function | -| **layout** | `object` | ✅ | Grid layout position | -| **options** | `any` | optional | Widget specific configuration | - diff --git a/content/docs/references/ui/page.mdx b/content/docs/references/ui/page.mdx index dfef1307a..1a408a75c 100644 --- a/content/docs/references/ui/page.mdx +++ b/content/docs/references/ui/page.mdx @@ -23,71 +23,15 @@ const result = PageSchema.parse(data); ## Page -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Page unique name (lowercase snake_case) | -| **label** | `string` | ✅ | | -| **description** | `string` | optional | | -| **type** | `Enum<'record' \| 'home' \| 'app' \| 'utility'>` | optional | | -| **object** | `string` | optional | Bound object (for Record pages) | -| **template** | `string` | optional | Layout template name (e.g. "header-sidebar-main") | -| **regions** | `object[]` | ✅ | Defined regions with components | -| **isDefault** | `boolean` | optional | | -| **assignedProfiles** | `string[]` | optional | | - --- ## PageComponent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'page:header' \| 'page:footer' \| 'page:sidebar' \| 'page:tabs' \| 'page:accordion' \| 'page:card' \| 'page:section' \| 'record:details' \| 'record:highlights' \| 'record:related_list' \| 'record:activity' \| 'record:chatter' \| 'record:path' \| 'app:launcher' \| 'nav:menu' \| 'nav:breadcrumb' \| 'global:search' \| 'global:notifications' \| 'user:profile' \| 'ai:chat_window' \| 'ai:suggestion'> \| string` | ✅ | Component Type (Standard enum or custom string) | -| **id** | `string` | optional | Unique instance ID | -| **label** | `string` | optional | | -| **properties** | `Record` | ✅ | Component props passed to the widget. See component.zod.ts for schemas. | -| **visibility** | `string` | optional | Visibility filter/formula | - --- ## PageComponentType -### Allowed Values - -* `page:header` -* `page:footer` -* `page:sidebar` -* `page:tabs` -* `page:accordion` -* `page:card` -* `page:section` -* `record:details` -* `record:highlights` -* `record:related_list` -* `record:activity` -* `record:chatter` -* `record:path` -* `app:launcher` -* `nav:menu` -* `nav:breadcrumb` -* `global:search` -* `global:notifications` -* `user:profile` -* `ai:chat_window` -* `ai:suggestion` - --- ## PageRegion -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Region name (e.g. "sidebar", "main", "header") | -| **width** | `Enum<'small' \| 'medium' \| 'large' \| 'full'>` | optional | | -| **components** | `object[]` | ✅ | Components in this region | - diff --git a/content/docs/references/ui/report.mdx b/content/docs/references/ui/report.mdx index 989a18d2a..c344082a7 100644 --- a/content/docs/references/ui/report.mdx +++ b/content/docs/references/ui/report.mdx @@ -23,71 +23,19 @@ const result = ReportSchema.parse(data); ## Report -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Report unique name | -| **label** | `string` | ✅ | Report label | -| **description** | `string` | optional | | -| **objectName** | `string` | ✅ | Primary object | -| **type** | `Enum<'tabular' \| 'summary' \| 'matrix' \| 'joined'>` | optional | Report format type | -| **columns** | `object[]` | ✅ | Columns to display | -| **groupingsDown** | `object[]` | optional | Row groupings | -| **groupingsAcross** | `object[]` | optional | Column groupings (Matrix only) | -| **filter** | `any` | optional | Filter criteria | -| **chart** | `object` | optional | Embedded chart configuration | - --- ## ReportChart -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'bar' \| 'horizontal-bar' \| 'column' \| 'grouped-bar' \| 'stacked-bar' \| 'line' \| 'area' \| 'stacked-area' \| 'step-line' \| 'pie' \| 'donut' \| 'funnel' \| 'scatter' \| 'bubble' \| 'treemap' \| 'sunburst' \| 'sankey' \| 'gauge' \| 'metric' \| 'kpi' \| 'choropleth' \| 'bubble-map' \| 'heatmap' \| 'radar' \| 'waterfall' \| 'box-plot' \| 'violin' \| 'table' \| 'pivot'>` | ✅ | | -| **title** | `string` | optional | Chart title | -| **description** | `string` | optional | Chart description | -| **showLegend** | `boolean` | optional | Display legend | -| **showDataLabels** | `boolean` | optional | Display data labels on chart | -| **colors** | `string[]` | optional | Custom color palette | -| **xAxis** | `string` | ✅ | Grouping field for X-Axis | -| **yAxis** | `string` | ✅ | Summary field for Y-Axis | -| **groupBy** | `string` | optional | Additional grouping field | - --- ## ReportColumn -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Field name | -| **label** | `string` | optional | Override label | -| **aggregate** | `Enum<'sum' \| 'avg' \| 'max' \| 'min' \| 'count' \| 'unique'>` | optional | Aggregation function | - --- ## ReportGrouping -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Field to group by | -| **sortOrder** | `Enum<'asc' \| 'desc'>` | optional | | -| **dateGranularity** | `Enum<'day' \| 'week' \| 'month' \| 'quarter' \| 'year'>` | optional | For date fields | - --- ## ReportType -### Allowed Values - -* `tabular` -* `summary` -* `matrix` -* `joined` - diff --git a/content/docs/references/ui/theme.mdx b/content/docs/references/ui/theme.mdx index 451f790ab..358fea73f 100644 --- a/content/docs/references/ui/theme.mdx +++ b/content/docs/references/ui/theme.mdx @@ -23,172 +23,39 @@ const result = AnimationSchema.parse(data); ## Animation -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **duration** | `object` | optional | | -| **timing** | `object` | optional | | - --- ## BorderRadius -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **none** | `string` | optional | No border radius (0) | -| **sm** | `string` | optional | Small border radius (e.g., 0.125rem) | -| **base** | `string` | optional | Base border radius (e.g., 0.25rem) | -| **md** | `string` | optional | Medium border radius (e.g., 0.375rem) | -| **lg** | `string` | optional | Large border radius (e.g., 0.5rem) | -| **xl** | `string` | optional | Extra large border radius (e.g., 0.75rem) | -| **2xl** | `string` | optional | 2X large border radius (e.g., 1rem) | -| **full** | `string` | optional | Full border radius (50%) | - --- ## Breakpoints -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **xs** | `string` | optional | Extra small breakpoint (e.g., 480px) | -| **sm** | `string` | optional | Small breakpoint (e.g., 640px) | -| **md** | `string` | optional | Medium breakpoint (e.g., 768px) | -| **lg** | `string` | optional | Large breakpoint (e.g., 1024px) | -| **xl** | `string` | optional | Extra large breakpoint (e.g., 1280px) | -| **2xl** | `string` | optional | 2X large breakpoint (e.g., 1536px) | - --- ## ColorPalette -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **primary** | `string` | ✅ | Primary brand color (hex, rgb, or hsl) | -| **secondary** | `string` | optional | Secondary brand color | -| **accent** | `string` | optional | Accent color for highlights | -| **success** | `string` | optional | Success state color (default: green) | -| **warning** | `string` | optional | Warning state color (default: yellow) | -| **error** | `string` | optional | Error state color (default: red) | -| **info** | `string` | optional | Info state color (default: blue) | -| **background** | `string` | optional | Background color | -| **surface** | `string` | optional | Surface/card background color | -| **text** | `string` | optional | Primary text color | -| **textSecondary** | `string` | optional | Secondary text color | -| **border** | `string` | optional | Border color | -| **disabled** | `string` | optional | Disabled state color | -| **primaryLight** | `string` | optional | Lighter shade of primary | -| **primaryDark** | `string` | optional | Darker shade of primary | -| **secondaryLight** | `string` | optional | Lighter shade of secondary | -| **secondaryDark** | `string` | optional | Darker shade of secondary | - --- ## Shadow -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **none** | `string` | optional | No shadow | -| **sm** | `string` | optional | Small shadow | -| **base** | `string` | optional | Base shadow | -| **md** | `string` | optional | Medium shadow | -| **lg** | `string` | optional | Large shadow | -| **xl** | `string` | optional | Extra large shadow | -| **2xl** | `string` | optional | 2X large shadow | -| **inner** | `string` | optional | Inner shadow (inset) | - --- ## Spacing -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **0** | `string` | optional | 0 spacing (0) | -| **1** | `string` | optional | Spacing unit 1 (e.g., 0.25rem) | -| **2** | `string` | optional | Spacing unit 2 (e.g., 0.5rem) | -| **3** | `string` | optional | Spacing unit 3 (e.g., 0.75rem) | -| **4** | `string` | optional | Spacing unit 4 (e.g., 1rem) | -| **5** | `string` | optional | Spacing unit 5 (e.g., 1.25rem) | -| **6** | `string` | optional | Spacing unit 6 (e.g., 1.5rem) | -| **8** | `string` | optional | Spacing unit 8 (e.g., 2rem) | -| **10** | `string` | optional | Spacing unit 10 (e.g., 2.5rem) | -| **12** | `string` | optional | Spacing unit 12 (e.g., 3rem) | -| **16** | `string` | optional | Spacing unit 16 (e.g., 4rem) | -| **20** | `string` | optional | Spacing unit 20 (e.g., 5rem) | -| **24** | `string` | optional | Spacing unit 24 (e.g., 6rem) | - --- ## Theme -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Unique theme identifier (snake_case) | -| **label** | `string` | ✅ | Human-readable theme name | -| **description** | `string` | optional | Theme description | -| **mode** | `Enum<'light' \| 'dark' \| 'auto'>` | optional | Theme mode (light, dark, or auto) | -| **colors** | `object` | ✅ | Color palette configuration | -| **typography** | `object` | optional | Typography settings | -| **spacing** | `object` | optional | Spacing scale | -| **borderRadius** | `object` | optional | Border radius scale | -| **shadows** | `object` | optional | Box shadow effects | -| **breakpoints** | `object` | optional | Responsive breakpoints | -| **animation** | `object` | optional | Animation settings | -| **zIndex** | `object` | optional | Z-index scale for layering | -| **customVars** | `Record` | optional | Custom CSS variables (key-value pairs) | -| **logo** | `object` | optional | Logo assets | -| **extends** | `string` | optional | Base theme to extend from | - --- ## ThemeMode -### Allowed Values - -* `light` -* `dark` -* `auto` - --- ## Typography -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **fontFamily** | `object` | optional | | -| **fontSize** | `object` | optional | | -| **fontWeight** | `object` | optional | | -| **lineHeight** | `object` | optional | | -| **letterSpacing** | `object` | optional | | - --- ## ZIndex -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **base** | `number` | optional | Base z-index (e.g., 0) | -| **dropdown** | `number` | optional | Dropdown z-index (e.g., 1000) | -| **sticky** | `number` | optional | Sticky z-index (e.g., 1020) | -| **fixed** | `number` | optional | Fixed z-index (e.g., 1030) | -| **modalBackdrop** | `number` | optional | Modal backdrop z-index (e.g., 1040) | -| **modal** | `number` | optional | Modal z-index (e.g., 1050) | -| **popover** | `number` | optional | Popover z-index (e.g., 1060) | -| **tooltip** | `number` | optional | Tooltip z-index (e.g., 1070) | - diff --git a/content/docs/references/ui/view.mdx b/content/docs/references/ui/view.mdx index 5c7b8ca23..56b57b734 100644 --- a/content/docs/references/ui/view.mdx +++ b/content/docs/references/ui/view.mdx @@ -23,191 +23,54 @@ const result = CalendarConfigSchema.parse(data); ## CalendarConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **startDateField** | `string` | ✅ | | -| **endDateField** | `string` | optional | | -| **titleField** | `string` | ✅ | | -| **colorField** | `string` | optional | | - --- ## FormField -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Field name (snake_case) | -| **label** | `string` | optional | Display label override | -| **placeholder** | `string` | optional | Placeholder text | -| **helpText** | `string` | optional | Help/hint text | -| **readonly** | `boolean` | optional | Read-only override | -| **required** | `boolean` | optional | Required override | -| **hidden** | `boolean` | optional | Hidden override | -| **colSpan** | `integer` | optional | Column span in grid layout (1-4) | -| **widget** | `string` | optional | Custom widget/component name | -| **dependsOn** | `string` | optional | Parent field name for cascading | -| **visibleOn** | `string` | optional | Visibility condition expression | - --- ## FormSection -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **label** | `string` | optional | | -| **collapsible** | `boolean` | optional | | -| **collapsed** | `boolean` | optional | | -| **columns** | `Enum<'1' \| '2' \| '3' \| '4'>` | optional | | -| **fields** | `string \| object[]` | ✅ | | - --- ## FormView -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'simple' \| 'tabbed' \| 'wizard' \| 'split' \| 'drawer' \| 'modal'>` | optional | | -| **data** | `object \| object \| object` | optional | Data source configuration (defaults to "object" provider) | -| **sections** | `object[]` | optional | | -| **groups** | `object[]` | optional | | - --- ## GanttConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **startDateField** | `string` | ✅ | | -| **endDateField** | `string` | ✅ | | -| **titleField** | `string` | ✅ | | -| **progressField** | `string` | optional | | -| **dependenciesField** | `string` | optional | | - --- ## HttpMethod -### Allowed Values - -* `GET` -* `POST` -* `PUT` -* `PATCH` -* `DELETE` - --- ## HttpRequest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **url** | `string` | ✅ | API endpoint URL | -| **method** | `Enum<'GET' \| 'POST' \| 'PUT' \| 'PATCH' \| 'DELETE'>` | optional | HTTP method | -| **headers** | `Record` | optional | Custom HTTP headers | -| **params** | `Record` | optional | Query parameters | -| **body** | `any` | optional | Request body for POST/PUT/PATCH | - --- ## KanbanConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **groupByField** | `string` | ✅ | Field to group columns by (usually status/select) | -| **summarizeField** | `string` | optional | Field to sum at top of column (e.g. amount) | -| **columns** | `string[]` | ✅ | Fields to show on cards | - --- ## ListColumn -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **field** | `string` | ✅ | Field name (snake_case) | -| **label** | `string` | optional | Display label override | -| **width** | `number` | optional | Column width in pixels | -| **align** | `Enum<'left' \| 'center' \| 'right'>` | optional | Text alignment | -| **hidden** | `boolean` | optional | Hide column by default | -| **sortable** | `boolean` | optional | Allow sorting by this column | -| **resizable** | `boolean` | optional | Allow resizing this column | -| **wrap** | `boolean` | optional | Allow text wrapping | -| **type** | `string` | optional | Renderer type override (e.g., "currency", "date") | - --- ## ListView -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | optional | Internal view name (lowercase snake_case) | -| **label** | `string` | optional | | -| **type** | `Enum<'grid' \| 'spreadsheet' \| 'kanban' \| 'gallery' \| 'calendar' \| 'timeline' \| 'gantt' \| 'map'>` | optional | | -| **data** | `object \| object \| object` | optional | Data source configuration (defaults to "object" provider) | -| **columns** | `string[] \| object[]` | ✅ | Fields to display as columns | -| **filter** | `any[]` | optional | Filter criteria (JSON Rules) | -| **sort** | `string \| object[]` | optional | | -| **searchableFields** | `string[]` | optional | Fields enabled for search | -| **resizable** | `boolean` | optional | Enable column resizing | -| **striped** | `boolean` | optional | Striped row styling | -| **bordered** | `boolean` | optional | Show borders | -| **selection** | `object` | optional | Row selection configuration | -| **pagination** | `object` | optional | Pagination configuration | -| **kanban** | `object` | optional | | -| **calendar** | `object` | optional | | -| **gantt** | `object` | optional | | - --- ## PaginationConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **pageSize** | `integer` | optional | Number of records per page | -| **pageSizeOptions** | `integer[]` | optional | Available page size options | - --- ## SelectionConfig -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **type** | `Enum<'none' \| 'single' \| 'multiple'>` | optional | Selection mode | - --- ## View -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **list** | `object` | optional | | -| **form** | `object` | optional | | -| **listViews** | `Record` | optional | Additional named list views | -| **formViews** | `Record` | optional | Additional named form views | - --- ## ViewData diff --git a/content/docs/references/ui/widget.mdx b/content/docs/references/ui/widget.mdx index 912693ec1..73c08c121 100644 --- a/content/docs/references/ui/widget.mdx +++ b/content/docs/references/ui/widget.mdx @@ -23,89 +23,19 @@ const result = FieldWidgetPropsSchema.parse(data); ## FieldWidgetProps -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **value** | `any` | optional | Current field value | -| **readonly** | `boolean` | optional | Read-only mode flag | -| **required** | `boolean` | optional | Required field flag | -| **error** | `string` | optional | Validation error message | -| **field** | `object` | ✅ | Field schema definition | -| **record** | `Record` | optional | Complete record data | -| **options** | `Record` | optional | Custom widget options | - --- ## WidgetEvent -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Event name | -| **label** | `string` | optional | Human-readable event label | -| **description** | `string` | optional | Event description and usage | -| **bubbles** | `boolean` | optional | Whether event bubbles | -| **cancelable** | `boolean` | optional | Whether event is cancelable | -| **payload** | `Record` | optional | Event payload schema | - --- ## WidgetLifecycle -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **onMount** | `string` | optional | Initialization code when widget mounts | -| **onUpdate** | `string` | optional | Code to run when props change | -| **onUnmount** | `string` | optional | Cleanup code when widget unmounts | -| **onValidate** | `string` | optional | Custom validation logic | -| **onFocus** | `string` | optional | Code to run on focus | -| **onBlur** | `string` | optional | Code to run on blur | -| **onError** | `string` | optional | Error handling code | - --- ## WidgetManifest -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Widget identifier (snake_case) | -| **label** | `string` | ✅ | Widget display name | -| **description** | `string` | optional | Widget description | -| **version** | `string` | optional | Widget version (semver) | -| **author** | `string` | optional | Widget author | -| **icon** | `string` | optional | Widget icon | -| **fieldTypes** | `string[]` | optional | Supported field types | -| **category** | `Enum<'input' \| 'display' \| 'picker' \| 'editor' \| 'custom'>` | optional | Widget category | -| **lifecycle** | `object` | optional | Lifecycle hooks | -| **events** | `object[]` | optional | Custom events | -| **properties** | `object[]` | optional | Configuration properties | -| **implementation** | `object` | optional | Widget implementation | -| **dependencies** | `object[]` | optional | Widget dependencies | -| **screenshots** | `string[]` | optional | Screenshot URLs | -| **documentation** | `string` | optional | Documentation URL | -| **license** | `string` | optional | License (SPDX identifier) | -| **tags** | `string[]` | optional | Tags for categorization | - --- ## WidgetProperty -### Properties - -| Property | Type | Required | Description | -| :--- | :--- | :--- | :--- | -| **name** | `string` | ✅ | Property name (camelCase) | -| **label** | `string` | optional | Human-readable label | -| **type** | `Enum<'string' \| 'number' \| 'boolean' \| 'array' \| 'object' \| 'function' \| 'any'>` | ✅ | TypeScript type | -| **required** | `boolean` | optional | Whether property is required | -| **default** | `any` | optional | Default value | -| **description** | `string` | optional | Property description | -| **validation** | `Record` | optional | Validation rules | -| **category** | `string` | optional | Property category | - diff --git a/packages/spec/json-schema/ai/AIKnowledge.json b/packages/spec/json-schema/ai/AIKnowledge.json index a109ef82d..75583d114 100644 --- a/packages/spec/json-schema/ai/AIKnowledge.json +++ b/packages/spec/json-schema/ai/AIKnowledge.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/AIKnowledge", "definitions": { - "AIKnowledge": { - "type": "object", - "properties": { - "topics": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Topics/Tags to recruit knowledge from" - }, - "indexes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Vector Store Indexes" - } - }, - "required": [ - "topics", - "indexes" - ], - "additionalProperties": false - } + "AIKnowledge": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AIModelConfig.json b/packages/spec/json-schema/ai/AIModelConfig.json index a8de168ed..6d6872702 100644 --- a/packages/spec/json-schema/ai/AIModelConfig.json +++ b/packages/spec/json-schema/ai/AIModelConfig.json @@ -1,41 +1,7 @@ { "$ref": "#/definitions/AIModelConfig", "definitions": { - "AIModelConfig": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "openai", - "azure_openai", - "anthropic", - "local" - ], - "default": "openai" - }, - "model": { - "type": "string", - "description": "Model name (e.g. gpt-4, claude-3-opus)" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2, - "default": 0.7 - }, - "maxTokens": { - "type": "number" - }, - "topP": { - "type": "number" - } - }, - "required": [ - "model" - ], - "additionalProperties": false - } + "AIModelConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AIOperationCost.json b/packages/spec/json-schema/ai/AIOperationCost.json index c511eb109..ac384b4f5 100644 --- a/packages/spec/json-schema/ai/AIOperationCost.json +++ b/packages/spec/json-schema/ai/AIOperationCost.json @@ -1,79 +1,7 @@ { "$ref": "#/definitions/AIOperationCost", "definitions": { - "AIOperationCost": { - "type": "object", - "properties": { - "operationId": { - "type": "string" - }, - "operationType": { - "type": "string", - "enum": [ - "conversation", - "orchestration", - "prediction", - "rag", - "nlq" - ] - }, - "agentName": { - "type": "string", - "description": "Agent that performed the operation" - }, - "modelId": { - "type": "string" - }, - "tokens": { - "type": "object", - "properties": { - "prompt": { - "type": "integer", - "minimum": 0, - "description": "Input tokens" - }, - "completion": { - "type": "integer", - "minimum": 0, - "description": "Output tokens" - }, - "total": { - "type": "integer", - "minimum": 0, - "description": "Total tokens" - } - }, - "required": [ - "prompt", - "completion", - "total" - ], - "additionalProperties": false - }, - "cost": { - "type": "number", - "minimum": 0, - "description": "Cost in USD" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "operationId", - "operationType", - "modelId", - "tokens", - "cost", - "timestamp" - ], - "additionalProperties": false - } + "AIOperationCost": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AIOrchestration.json b/packages/spec/json-schema/ai/AIOrchestration.json index d80bdd7dd..bd1b54b0a 100644 --- a/packages/spec/json-schema/ai/AIOrchestration.json +++ b/packages/spec/json-schema/ai/AIOrchestration.json @@ -1,379 +1,7 @@ { "$ref": "#/definitions/AIOrchestration", "definitions": { - "AIOrchestration": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Orchestration unique identifier (snake_case)" - }, - "label": { - "type": "string", - "description": "Display name" - }, - "description": { - "type": "string" - }, - "objectName": { - "type": "string", - "description": "Target object for this orchestration" - }, - "trigger": { - "type": "string", - "enum": [ - "record_created", - "record_updated", - "field_changed", - "scheduled", - "manual", - "webhook", - "batch" - ] - }, - "fieldConditions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name to monitor" - }, - "operator": { - "type": "string", - "enum": [ - "changed", - "changed_to", - "changed_from", - "is", - "is_not" - ], - "default": "changed" - }, - "value": { - "description": "Value to compare against (for changed_to/changed_from/is/is_not)" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Fields to monitor (for field_changed trigger)" - }, - "schedule": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "cron", - "interval", - "daily", - "weekly", - "monthly" - ], - "default": "cron" - }, - "cron": { - "type": "string", - "description": "Cron expression (required if type is \"cron\")" - }, - "interval": { - "type": "number", - "description": "Interval in minutes (required if type is \"interval\")" - }, - "time": { - "type": "string", - "description": "Time of day for daily schedules (HH:MM format)" - }, - "dayOfWeek": { - "type": "integer", - "minimum": 0, - "maximum": 6, - "description": "Day of week for weekly (0=Sunday)" - }, - "dayOfMonth": { - "type": "integer", - "minimum": 1, - "maximum": 31, - "description": "Day of month for monthly" - }, - "timezone": { - "type": "string", - "default": "UTC" - } - }, - "additionalProperties": false, - "description": "Schedule configuration (for scheduled trigger)" - }, - "webhookConfig": { - "type": "object", - "properties": { - "secret": { - "type": "string", - "description": "Webhook verification secret" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Expected headers" - } - }, - "additionalProperties": false, - "description": "Webhook configuration (for webhook trigger)" - }, - "entryCriteria": { - "type": "string", - "description": "Formula condition - workflow only runs if TRUE" - }, - "aiTasks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Optional task ID for referencing" - }, - "name": { - "type": "string", - "description": "Human-readable task name" - }, - "type": { - "type": "string", - "enum": [ - "classify", - "extract", - "summarize", - "generate", - "predict", - "translate", - "sentiment", - "entity_recognition", - "anomaly_detection", - "recommendation" - ] - }, - "model": { - "type": "string", - "description": "Model ID from registry (uses default if not specified)" - }, - "promptTemplate": { - "type": "string", - "description": "Prompt template ID for this task" - }, - "inputFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Source fields to process (e.g., [\"description\", \"comments\"])" - }, - "inputContext": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context for the AI model" - }, - "outputField": { - "type": "string", - "description": "Target field to store the result" - }, - "outputFormat": { - "type": "string", - "enum": [ - "text", - "json", - "number", - "boolean", - "array" - ], - "default": "text" - }, - "classes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Valid classes for classification tasks" - }, - "multiClass": { - "type": "boolean", - "default": false, - "description": "Allow multiple classes to be selected" - }, - "extractionSchema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON schema for structured extraction" - }, - "maxLength": { - "type": "number", - "description": "Maximum length for generated content" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Model temperature override" - }, - "fallbackValue": { - "description": "Fallback value if AI task fails" - }, - "retryAttempts": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "default": 1 - }, - "condition": { - "type": "string", - "description": "Formula condition - task only runs if TRUE" - }, - "description": { - "type": "string" - }, - "active": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "type", - "inputFields", - "outputField" - ], - "additionalProperties": false - }, - "description": "AI tasks to execute in sequence" - }, - "postActions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "send_email", - "create_record", - "update_related", - "trigger_flow", - "webhook" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action-specific configuration" - }, - "condition": { - "type": "string", - "description": "Execute only if condition is TRUE" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - }, - "description": "Actions after AI tasks complete" - }, - "executionMode": { - "type": "string", - "enum": [ - "sequential", - "parallel" - ], - "default": "sequential", - "description": "How to execute multiple AI tasks" - }, - "stopOnError": { - "type": "boolean", - "default": false, - "description": "Stop workflow if any task fails" - }, - "timeout": { - "type": "number", - "description": "Maximum execution time in seconds" - }, - "priority": { - "type": "string", - "enum": [ - "low", - "normal", - "high", - "critical" - ], - "default": "normal" - }, - "enableLogging": { - "type": "boolean", - "default": true - }, - "enableMetrics": { - "type": "boolean", - "default": true - }, - "notifyOnFailure": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs to notify on failure" - }, - "active": { - "type": "boolean", - "default": true - }, - "version": { - "type": "string", - "default": "1.0.0" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "category": { - "type": "string", - "description": "Workflow category (e.g., \"support\", \"sales\", \"hr\")" - }, - "owner": { - "type": "string", - "description": "User ID of workflow owner" - }, - "createdAt": { - "type": "string", - "description": "ISO timestamp" - }, - "updatedAt": { - "type": "string", - "description": "ISO timestamp" - } - }, - "required": [ - "name", - "label", - "objectName", - "trigger", - "aiTasks" - ], - "additionalProperties": false - } + "AIOrchestration": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AIOrchestrationExecutionResult.json b/packages/spec/json-schema/ai/AIOrchestrationExecutionResult.json index 6688867d6..bb5536edc 100644 --- a/packages/spec/json-schema/ai/AIOrchestrationExecutionResult.json +++ b/packages/spec/json-schema/ai/AIOrchestrationExecutionResult.json @@ -1,137 +1,7 @@ { "$ref": "#/definitions/AIOrchestrationExecutionResult", "definitions": { - "AIOrchestrationExecutionResult": { - "type": "object", - "properties": { - "workflowName": { - "type": "string" - }, - "recordId": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "success", - "partial_success", - "failed", - "skipped" - ] - }, - "executionTime": { - "type": "number", - "description": "Execution time in milliseconds" - }, - "tasksExecuted": { - "type": "integer", - "description": "Number of tasks executed" - }, - "tasksSucceeded": { - "type": "integer", - "description": "Number of tasks succeeded" - }, - "tasksFailed": { - "type": "integer", - "description": "Number of tasks failed" - }, - "taskResults": { - "type": "array", - "items": { - "type": "object", - "properties": { - "taskId": { - "type": "string" - }, - "taskName": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "success", - "failed", - "skipped" - ] - }, - "output": {}, - "error": { - "type": "string" - }, - "executionTime": { - "type": "number", - "description": "Task execution time in milliseconds" - }, - "modelUsed": { - "type": "string" - }, - "tokensUsed": { - "type": "number" - } - }, - "required": [ - "taskName", - "status" - ], - "additionalProperties": false - } - }, - "tokens": { - "type": "object", - "properties": { - "prompt": { - "type": "integer", - "minimum": 0, - "description": "Input tokens" - }, - "completion": { - "type": "integer", - "minimum": 0, - "description": "Output tokens" - }, - "total": { - "type": "integer", - "minimum": 0, - "description": "Total tokens" - } - }, - "required": [ - "prompt", - "completion", - "total" - ], - "additionalProperties": false, - "description": "Total token usage for this execution" - }, - "cost": { - "type": "number", - "minimum": 0, - "description": "Total cost for this execution in USD" - }, - "error": { - "type": "string" - }, - "startedAt": { - "type": "string", - "description": "ISO timestamp" - }, - "completedAt": { - "type": "string", - "description": "ISO timestamp" - } - }, - "required": [ - "workflowName", - "recordId", - "status", - "executionTime", - "tasksExecuted", - "tasksSucceeded", - "tasksFailed", - "startedAt" - ], - "additionalProperties": false - } + "AIOrchestrationExecutionResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AIOrchestrationTrigger.json b/packages/spec/json-schema/ai/AIOrchestrationTrigger.json index 20633c89e..58492cb49 100644 --- a/packages/spec/json-schema/ai/AIOrchestrationTrigger.json +++ b/packages/spec/json-schema/ai/AIOrchestrationTrigger.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/AIOrchestrationTrigger", "definitions": { - "AIOrchestrationTrigger": { - "type": "string", - "enum": [ - "record_created", - "record_updated", - "field_changed", - "scheduled", - "manual", - "webhook", - "batch" - ] - } + "AIOrchestrationTrigger": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AITask.json b/packages/spec/json-schema/ai/AITask.json index 0b098e88a..c2e652904 100644 --- a/packages/spec/json-schema/ai/AITask.json +++ b/packages/spec/json-schema/ai/AITask.json @@ -1,123 +1,7 @@ { "$ref": "#/definitions/AITask", "definitions": { - "AITask": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Optional task ID for referencing" - }, - "name": { - "type": "string", - "description": "Human-readable task name" - }, - "type": { - "type": "string", - "enum": [ - "classify", - "extract", - "summarize", - "generate", - "predict", - "translate", - "sentiment", - "entity_recognition", - "anomaly_detection", - "recommendation" - ] - }, - "model": { - "type": "string", - "description": "Model ID from registry (uses default if not specified)" - }, - "promptTemplate": { - "type": "string", - "description": "Prompt template ID for this task" - }, - "inputFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Source fields to process (e.g., [\"description\", \"comments\"])" - }, - "inputContext": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context for the AI model" - }, - "outputField": { - "type": "string", - "description": "Target field to store the result" - }, - "outputFormat": { - "type": "string", - "enum": [ - "text", - "json", - "number", - "boolean", - "array" - ], - "default": "text" - }, - "classes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Valid classes for classification tasks" - }, - "multiClass": { - "type": "boolean", - "default": false, - "description": "Allow multiple classes to be selected" - }, - "extractionSchema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON schema for structured extraction" - }, - "maxLength": { - "type": "number", - "description": "Maximum length for generated content" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2, - "description": "Model temperature override" - }, - "fallbackValue": { - "description": "Fallback value if AI task fails" - }, - "retryAttempts": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "default": 1 - }, - "condition": { - "type": "string", - "description": "Formula condition - task only runs if TRUE" - }, - "description": { - "type": "string" - }, - "active": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "type", - "inputFields", - "outputField" - ], - "additionalProperties": false - } + "AITask": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AITaskType.json b/packages/spec/json-schema/ai/AITaskType.json index e8deef913..ab518cce6 100644 --- a/packages/spec/json-schema/ai/AITaskType.json +++ b/packages/spec/json-schema/ai/AITaskType.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/AITaskType", "definitions": { - "AITaskType": { - "type": "string", - "enum": [ - "classify", - "extract", - "summarize", - "generate", - "predict", - "translate", - "sentiment", - "entity_recognition", - "anomaly_detection", - "recommendation" - ] - } + "AITaskType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AITool.json b/packages/spec/json-schema/ai/AITool.json index b3c972d1b..6a7f15c02 100644 --- a/packages/spec/json-schema/ai/AITool.json +++ b/packages/spec/json-schema/ai/AITool.json @@ -1,33 +1,7 @@ { "$ref": "#/definitions/AITool", "definitions": { - "AITool": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "action", - "flow", - "query", - "vector_search" - ] - }, - "name": { - "type": "string", - "description": "Reference name (Action Name, Flow Name)" - }, - "description": { - "type": "string", - "description": "Override description for the LLM" - } - }, - "required": [ - "type", - "name" - ], - "additionalProperties": false - } + "AITool": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/Agent.json b/packages/spec/json-schema/ai/Agent.json index 41a8b9b22..22bfc5cbb 100644 --- a/packages/spec/json-schema/ai/Agent.json +++ b/packages/spec/json-schema/ai/Agent.json @@ -1,140 +1,7 @@ { "$ref": "#/definitions/Agent", "definitions": { - "Agent": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Agent unique identifier" - }, - "label": { - "type": "string", - "description": "Agent display name" - }, - "avatar": { - "type": "string" - }, - "role": { - "type": "string", - "description": "The persona/role (e.g. \"Senior Support Engineer\")" - }, - "instructions": { - "type": "string", - "description": "System Prompt / Prime Directives" - }, - "model": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "openai", - "azure_openai", - "anthropic", - "local" - ], - "default": "openai" - }, - "model": { - "type": "string", - "description": "Model name (e.g. gpt-4, claude-3-opus)" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2, - "default": 0.7 - }, - "maxTokens": { - "type": "number" - }, - "topP": { - "type": "number" - } - }, - "required": [ - "model" - ], - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "action", - "flow", - "query", - "vector_search" - ] - }, - "name": { - "type": "string", - "description": "Reference name (Action Name, Flow Name)" - }, - "description": { - "type": "string", - "description": "Override description for the LLM" - } - }, - "required": [ - "type", - "name" - ], - "additionalProperties": false - }, - "description": "Available tools" - }, - "knowledge": { - "type": "object", - "properties": { - "topics": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Topics/Tags to recruit knowledge from" - }, - "indexes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Vector Store Indexes" - } - }, - "required": [ - "topics", - "indexes" - ], - "additionalProperties": false, - "description": "RAG access" - }, - "active": { - "type": "boolean", - "default": true - }, - "access": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Who can chat with this agent" - } - }, - "required": [ - "name", - "label", - "role", - "instructions" - ], - "additionalProperties": false - } + "Agent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AgentAction.json b/packages/spec/json-schema/ai/AgentAction.json index f1fc98f79..5367e3a50 100644 --- a/packages/spec/json-schema/ai/AgentAction.json +++ b/packages/spec/json-schema/ai/AgentAction.json @@ -1,436 +1,7 @@ { "$ref": "#/definitions/AgentAction", "definitions": { - "AgentAction": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique action ID" - }, - "type": { - "type": "string", - "enum": [ - "navigate_to_object_list", - "navigate_to_object_form", - "navigate_to_record_detail", - "navigate_to_dashboard", - "navigate_to_report", - "navigate_to_app", - "navigate_back", - "navigate_home", - "open_tab", - "close_tab", - "change_view_mode", - "apply_filter", - "clear_filter", - "apply_sort", - "change_grouping", - "show_columns", - "expand_record", - "collapse_record", - "refresh_view", - "export_data", - "create_record", - "update_record", - "delete_record", - "fill_field", - "clear_field", - "submit_form", - "cancel_form", - "validate_form", - "save_draft", - "select_record", - "deselect_record", - "select_all", - "deselect_all", - "bulk_update", - "bulk_delete", - "bulk_export", - "trigger_flow", - "trigger_approval", - "trigger_webhook", - "run_report", - "send_email", - "send_notification", - "schedule_task", - "open_modal", - "close_modal", - "open_sidebar", - "close_sidebar", - "show_notification", - "hide_notification", - "open_dropdown", - "close_dropdown", - "toggle_section" - ], - "description": "Type of UI action to perform" - }, - "params": { - "anyOf": [ - { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (for object-specific navigation)" - }, - "recordId": { - "type": "string", - "description": "Record ID (for detail page)" - }, - "viewType": { - "type": "string", - "enum": [ - "list", - "form", - "detail", - "kanban", - "calendar", - "gantt" - ] - }, - "dashboardId": { - "type": "string", - "description": "Dashboard ID" - }, - "reportId": { - "type": "string", - "description": "Report ID" - }, - "appName": { - "type": "string", - "description": "App name" - }, - "mode": { - "type": "string", - "enum": [ - "new", - "edit", - "view" - ], - "description": "Form mode" - }, - "openInNewTab": { - "type": "boolean", - "description": "Open in new tab" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "viewMode": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "pivot" - ] - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter conditions" - }, - "sort": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - "required": [ - "field", - "order" - ], - "additionalProperties": false - } - }, - "groupBy": { - "type": "string", - "description": "Field to group by" - }, - "columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Columns to show/hide" - }, - "recordId": { - "type": "string", - "description": "Record to expand/collapse" - }, - "exportFormat": { - "type": "string", - "enum": [ - "csv", - "xlsx", - "pdf", - "json" - ] - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "recordId": { - "type": "string", - "description": "Record ID (for edit/delete)" - }, - "fieldValues": { - "type": "object", - "additionalProperties": {}, - "description": "Field name-value pairs" - }, - "fieldName": { - "type": "string", - "description": "Specific field to fill/clear" - }, - "fieldValue": { - "description": "Value to set" - }, - "validateOnly": { - "type": "boolean", - "description": "Validate without saving" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "recordIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Record IDs to select/operate on" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter for bulk operations" - }, - "updateData": { - "type": "object", - "additionalProperties": {}, - "description": "Data for bulk update" - }, - "exportFormat": { - "type": "string", - "enum": [ - "csv", - "xlsx", - "pdf", - "json" - ] - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "flowName": { - "type": "string", - "description": "Flow/workflow name" - }, - "approvalProcessName": { - "type": "string", - "description": "Approval process name" - }, - "webhookUrl": { - "type": "string", - "description": "Webhook URL" - }, - "reportName": { - "type": "string", - "description": "Report name" - }, - "emailTemplate": { - "type": "string", - "description": "Email template" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Email recipients" - }, - "subject": { - "type": "string", - "description": "Email subject" - }, - "message": { - "type": "string", - "description": "Notification/email message" - }, - "taskData": { - "type": "object", - "additionalProperties": {}, - "description": "Task creation data" - }, - "scheduleTime": { - "type": "string", - "description": "Schedule time (ISO 8601)" - }, - "contextData": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context data" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "componentId": { - "type": "string", - "description": "Component ID" - }, - "modalConfig": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "content": {}, - "size": { - "type": "string", - "enum": [ - "small", - "medium", - "large", - "fullscreen" - ] - } - }, - "additionalProperties": false - }, - "notificationConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "info", - "success", - "warning", - "error" - ] - }, - "message": { - "type": "string" - }, - "duration": { - "type": "number", - "description": "Duration in ms" - } - }, - "required": [ - "message" - ], - "additionalProperties": false - }, - "sidebarConfig": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "left", - "right" - ] - }, - "width": { - "type": "string" - }, - "content": {} - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } - ], - "description": "Action-specific parameters" - }, - "requireConfirmation": { - "type": "boolean", - "default": false, - "description": "Require user confirmation before executing" - }, - "confirmationMessage": { - "type": "string", - "description": "Message to show in confirmation dialog" - }, - "successMessage": { - "type": "string", - "description": "Message to show on success" - }, - "onError": { - "type": "string", - "enum": [ - "retry", - "skip", - "abort" - ], - "default": "abort", - "description": "Error handling strategy" - }, - "metadata": { - "type": "object", - "properties": { - "intent": { - "type": "string", - "description": "Original user intent/query" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Confidence score (0-1)" - }, - "agentName": { - "type": "string", - "description": "Agent that generated this action" - }, - "timestamp": { - "type": "string", - "description": "Generation timestamp (ISO 8601)" - } - }, - "additionalProperties": false - } - }, - "required": [ - "type", - "params" - ], - "additionalProperties": false - } + "AgentAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AgentActionResult.json b/packages/spec/json-schema/ai/AgentActionResult.json index 80fd7f5cc..fc4ec0b64 100644 --- a/packages/spec/json-schema/ai/AgentActionResult.json +++ b/packages/spec/json-schema/ai/AgentActionResult.json @@ -1,69 +1,7 @@ { "$ref": "#/definitions/AgentActionResult", "definitions": { - "AgentActionResult": { - "type": "object", - "properties": { - "actionId": { - "type": "string", - "description": "ID of the executed action" - }, - "status": { - "type": "string", - "enum": [ - "success", - "error", - "cancelled", - "pending" - ], - "description": "Execution status" - }, - "data": { - "description": "Action result data" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "details": {} - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if status is \"error\"" - }, - "metadata": { - "type": "object", - "properties": { - "startTime": { - "type": "string", - "description": "Execution start time (ISO 8601)" - }, - "endTime": { - "type": "string", - "description": "Execution end time (ISO 8601)" - }, - "duration": { - "type": "number", - "description": "Execution duration in ms" - } - }, - "additionalProperties": false - } - }, - "required": [ - "actionId", - "status" - ], - "additionalProperties": false - } + "AgentActionResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AgentActionSequence.json b/packages/spec/json-schema/ai/AgentActionSequence.json index fb23b9f00..c0363cf8c 100644 --- a/packages/spec/json-schema/ai/AgentActionSequence.json +++ b/packages/spec/json-schema/ai/AgentActionSequence.json @@ -1,492 +1,7 @@ { "$ref": "#/definitions/AgentActionSequence", "definitions": { - "AgentActionSequence": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique sequence ID" - }, - "actions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique action ID" - }, - "type": { - "type": "string", - "enum": [ - "navigate_to_object_list", - "navigate_to_object_form", - "navigate_to_record_detail", - "navigate_to_dashboard", - "navigate_to_report", - "navigate_to_app", - "navigate_back", - "navigate_home", - "open_tab", - "close_tab", - "change_view_mode", - "apply_filter", - "clear_filter", - "apply_sort", - "change_grouping", - "show_columns", - "expand_record", - "collapse_record", - "refresh_view", - "export_data", - "create_record", - "update_record", - "delete_record", - "fill_field", - "clear_field", - "submit_form", - "cancel_form", - "validate_form", - "save_draft", - "select_record", - "deselect_record", - "select_all", - "deselect_all", - "bulk_update", - "bulk_delete", - "bulk_export", - "trigger_flow", - "trigger_approval", - "trigger_webhook", - "run_report", - "send_email", - "send_notification", - "schedule_task", - "open_modal", - "close_modal", - "open_sidebar", - "close_sidebar", - "show_notification", - "hide_notification", - "open_dropdown", - "close_dropdown", - "toggle_section" - ], - "description": "Type of UI action to perform" - }, - "params": { - "anyOf": [ - { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (for object-specific navigation)" - }, - "recordId": { - "type": "string", - "description": "Record ID (for detail page)" - }, - "viewType": { - "type": "string", - "enum": [ - "list", - "form", - "detail", - "kanban", - "calendar", - "gantt" - ] - }, - "dashboardId": { - "type": "string", - "description": "Dashboard ID" - }, - "reportId": { - "type": "string", - "description": "Report ID" - }, - "appName": { - "type": "string", - "description": "App name" - }, - "mode": { - "type": "string", - "enum": [ - "new", - "edit", - "view" - ], - "description": "Form mode" - }, - "openInNewTab": { - "type": "boolean", - "description": "Open in new tab" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "viewMode": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "pivot" - ] - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter conditions" - }, - "sort": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - "required": [ - "field", - "order" - ], - "additionalProperties": false - } - }, - "groupBy": { - "type": "string", - "description": "Field to group by" - }, - "columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Columns to show/hide" - }, - "recordId": { - "type": "string", - "description": "Record to expand/collapse" - }, - "exportFormat": { - "type": "string", - "enum": [ - "csv", - "xlsx", - "pdf", - "json" - ] - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "recordId": { - "type": "string", - "description": "Record ID (for edit/delete)" - }, - "fieldValues": { - "type": "object", - "additionalProperties": {}, - "description": "Field name-value pairs" - }, - "fieldName": { - "type": "string", - "description": "Specific field to fill/clear" - }, - "fieldValue": { - "description": "Value to set" - }, - "validateOnly": { - "type": "boolean", - "description": "Validate without saving" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "recordIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Record IDs to select/operate on" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter for bulk operations" - }, - "updateData": { - "type": "object", - "additionalProperties": {}, - "description": "Data for bulk update" - }, - "exportFormat": { - "type": "string", - "enum": [ - "csv", - "xlsx", - "pdf", - "json" - ] - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "flowName": { - "type": "string", - "description": "Flow/workflow name" - }, - "approvalProcessName": { - "type": "string", - "description": "Approval process name" - }, - "webhookUrl": { - "type": "string", - "description": "Webhook URL" - }, - "reportName": { - "type": "string", - "description": "Report name" - }, - "emailTemplate": { - "type": "string", - "description": "Email template" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Email recipients" - }, - "subject": { - "type": "string", - "description": "Email subject" - }, - "message": { - "type": "string", - "description": "Notification/email message" - }, - "taskData": { - "type": "object", - "additionalProperties": {}, - "description": "Task creation data" - }, - "scheduleTime": { - "type": "string", - "description": "Schedule time (ISO 8601)" - }, - "contextData": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context data" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "componentId": { - "type": "string", - "description": "Component ID" - }, - "modalConfig": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "content": {}, - "size": { - "type": "string", - "enum": [ - "small", - "medium", - "large", - "fullscreen" - ] - } - }, - "additionalProperties": false - }, - "notificationConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "info", - "success", - "warning", - "error" - ] - }, - "message": { - "type": "string" - }, - "duration": { - "type": "number", - "description": "Duration in ms" - } - }, - "required": [ - "message" - ], - "additionalProperties": false - }, - "sidebarConfig": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "left", - "right" - ] - }, - "width": { - "type": "string" - }, - "content": {} - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } - ], - "description": "Action-specific parameters" - }, - "requireConfirmation": { - "type": "boolean", - "default": false, - "description": "Require user confirmation before executing" - }, - "confirmationMessage": { - "type": "string", - "description": "Message to show in confirmation dialog" - }, - "successMessage": { - "type": "string", - "description": "Message to show on success" - }, - "onError": { - "type": "string", - "enum": [ - "retry", - "skip", - "abort" - ], - "default": "abort", - "description": "Error handling strategy" - }, - "metadata": { - "type": "object", - "properties": { - "intent": { - "type": "string", - "description": "Original user intent/query" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Confidence score (0-1)" - }, - "agentName": { - "type": "string", - "description": "Agent that generated this action" - }, - "timestamp": { - "type": "string", - "description": "Generation timestamp (ISO 8601)" - } - }, - "additionalProperties": false - } - }, - "required": [ - "type", - "params" - ], - "additionalProperties": false - }, - "description": "Ordered list of actions" - }, - "mode": { - "type": "string", - "enum": [ - "sequential", - "parallel" - ], - "default": "sequential", - "description": "Execution mode" - }, - "stopOnError": { - "type": "boolean", - "default": true, - "description": "Stop sequence on first error" - }, - "atomic": { - "type": "boolean", - "default": false, - "description": "Rollback all changes if any action fails" - }, - "metadata": { - "type": "object", - "properties": { - "intent": { - "type": "string", - "description": "Original user intent" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Overall confidence score" - }, - "agentName": { - "type": "string", - "description": "Agent that generated this sequence" - } - }, - "additionalProperties": false - } - }, - "required": [ - "actions" - ], - "additionalProperties": false - } + "AgentActionSequence": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/AgentActionSequenceResult.json b/packages/spec/json-schema/ai/AgentActionSequenceResult.json index 9c7dc8151..513b02b0b 100644 --- a/packages/spec/json-schema/ai/AgentActionSequenceResult.json +++ b/packages/spec/json-schema/ai/AgentActionSequenceResult.json @@ -1,143 +1,7 @@ { "$ref": "#/definitions/AgentActionSequenceResult", "definitions": { - "AgentActionSequenceResult": { - "type": "object", - "properties": { - "sequenceId": { - "type": "string", - "description": "ID of the executed sequence" - }, - "status": { - "type": "string", - "enum": [ - "success", - "partial_success", - "error", - "cancelled" - ], - "description": "Overall execution status" - }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "actionId": { - "type": "string", - "description": "ID of the executed action" - }, - "status": { - "type": "string", - "enum": [ - "success", - "error", - "cancelled", - "pending" - ], - "description": "Execution status" - }, - "data": { - "description": "Action result data" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "details": {} - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if status is \"error\"" - }, - "metadata": { - "type": "object", - "properties": { - "startTime": { - "type": "string", - "description": "Execution start time (ISO 8601)" - }, - "endTime": { - "type": "string", - "description": "Execution end time (ISO 8601)" - }, - "duration": { - "type": "number", - "description": "Execution duration in ms" - } - }, - "additionalProperties": false - } - }, - "required": [ - "actionId", - "status" - ], - "additionalProperties": false - }, - "description": "Results for each action" - }, - "summary": { - "type": "object", - "properties": { - "total": { - "type": "number", - "description": "Total number of actions" - }, - "successful": { - "type": "number", - "description": "Number of successful actions" - }, - "failed": { - "type": "number", - "description": "Number of failed actions" - }, - "cancelled": { - "type": "number", - "description": "Number of cancelled actions" - } - }, - "required": [ - "total", - "successful", - "failed", - "cancelled" - ], - "additionalProperties": false - }, - "metadata": { - "type": "object", - "properties": { - "startTime": { - "type": "string" - }, - "endTime": { - "type": "string" - }, - "totalDuration": { - "type": "number", - "description": "Total execution time in ms" - } - }, - "additionalProperties": false - } - }, - "required": [ - "sequenceId", - "status", - "results", - "summary" - ], - "additionalProperties": false - } + "AgentActionSequenceResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/BatchAIOrchestrationExecution.json b/packages/spec/json-schema/ai/BatchAIOrchestrationExecution.json index 1224750b3..15c7b8166 100644 --- a/packages/spec/json-schema/ai/BatchAIOrchestrationExecution.json +++ b/packages/spec/json-schema/ai/BatchAIOrchestrationExecution.json @@ -1,48 +1,7 @@ { "$ref": "#/definitions/BatchAIOrchestrationExecution", "definitions": { - "BatchAIOrchestrationExecution": { - "type": "object", - "properties": { - "workflowName": { - "type": "string", - "description": "Orchestration to execute" - }, - "recordIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Records to process" - }, - "batchSize": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "default": 10 - }, - "parallelism": { - "type": "integer", - "minimum": 1, - "maximum": 10, - "default": 3 - }, - "priority": { - "type": "string", - "enum": [ - "low", - "normal", - "high" - ], - "default": "normal" - } - }, - "required": [ - "workflowName", - "recordIds" - ], - "additionalProperties": false - } + "BatchAIOrchestrationExecution": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/BillingPeriod.json b/packages/spec/json-schema/ai/BillingPeriod.json index c3e35f111..c2bf49e88 100644 --- a/packages/spec/json-schema/ai/BillingPeriod.json +++ b/packages/spec/json-schema/ai/BillingPeriod.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/BillingPeriod", "definitions": { - "BillingPeriod": { - "type": "string", - "enum": [ - "hourly", - "daily", - "weekly", - "monthly", - "quarterly", - "yearly", - "custom" - ] - } + "BillingPeriod": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/BudgetLimit.json b/packages/spec/json-schema/ai/BudgetLimit.json index 966be9734..6a050bcfd 100644 --- a/packages/spec/json-schema/ai/BudgetLimit.json +++ b/packages/spec/json-schema/ai/BudgetLimit.json @@ -1,111 +1,7 @@ { "$ref": "#/definitions/BudgetLimit", "definitions": { - "BudgetLimit": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "global", - "user", - "agent", - "object", - "project", - "department" - ] - }, - "scope": { - "type": "string", - "description": "Scope identifier (userId, agentId, etc.)" - }, - "maxCost": { - "type": "number", - "minimum": 0, - "description": "Maximum cost limit" - }, - "currency": { - "type": "string", - "default": "USD" - }, - "period": { - "type": "string", - "enum": [ - "hourly", - "daily", - "weekly", - "monthly", - "quarterly", - "yearly", - "custom" - ] - }, - "customPeriodDays": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Custom period in days" - }, - "softLimit": { - "type": "number", - "minimum": 0, - "description": "Soft limit for warnings" - }, - "warnThresholds": { - "type": "array", - "items": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "description": "Warning thresholds (e.g., [0.5, 0.8, 0.95])" - }, - "enforced": { - "type": "boolean", - "default": true, - "description": "Block requests when exceeded" - }, - "gracePeriodSeconds": { - "type": "integer", - "minimum": 0, - "default": 0, - "description": "Grace period after limit exceeded" - }, - "allowRollover": { - "type": "boolean", - "default": false, - "description": "Allow unused budget to rollover" - }, - "maxRolloverPercentage": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Max rollover as % of limit" - }, - "name": { - "type": "string", - "description": "Budget name" - }, - "description": { - "type": "string" - }, - "active": { - "type": "boolean", - "default": true - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "type", - "maxCost", - "period" - ], - "additionalProperties": false - } + "BudgetLimit": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/BudgetStatus.json b/packages/spec/json-schema/ai/BudgetStatus.json index fa2641ffe..669c44c38 100644 --- a/packages/spec/json-schema/ai/BudgetStatus.json +++ b/packages/spec/json-schema/ai/BudgetStatus.json @@ -1,91 +1,7 @@ { "$ref": "#/definitions/BudgetStatus", "definitions": { - "BudgetStatus": { - "type": "object", - "properties": { - "budgetId": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "global", - "user", - "agent", - "object", - "project", - "department" - ] - }, - "scope": { - "type": "string" - }, - "periodStart": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "periodEnd": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "currentCost": { - "type": "number", - "minimum": 0, - "default": 0 - }, - "maxCost": { - "type": "number", - "minimum": 0 - }, - "currency": { - "type": "string", - "default": "USD" - }, - "percentageUsed": { - "type": "number", - "minimum": 0, - "description": "Usage as percentage (can exceed 1.0 if over budget)" - }, - "remainingCost": { - "type": "number", - "description": "Remaining budget (can be negative if exceeded)" - }, - "isExceeded": { - "type": "boolean", - "default": false - }, - "isWarning": { - "type": "boolean", - "default": false - }, - "projectedCost": { - "type": "number", - "minimum": 0, - "description": "Projected cost for period" - }, - "projectedOverage": { - "type": "number", - "minimum": 0, - "description": "Projected overage" - }, - "lastUpdated": { - "type": "string", - "description": "ISO 8601 timestamp" - } - }, - "required": [ - "budgetId", - "type", - "periodStart", - "periodEnd", - "maxCost", - "percentageUsed", - "remainingCost", - "lastUpdated" - ], - "additionalProperties": false - } + "BudgetStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/BudgetType.json b/packages/spec/json-schema/ai/BudgetType.json index 00cfbf527..7f399fb0b 100644 --- a/packages/spec/json-schema/ai/BudgetType.json +++ b/packages/spec/json-schema/ai/BudgetType.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/BudgetType", "definitions": { - "BudgetType": { - "type": "string", - "enum": [ - "global", - "user", - "agent", - "object", - "project", - "department" - ] - } + "BudgetType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CICDPipelineConfig.json b/packages/spec/json-schema/ai/CICDPipelineConfig.json index 25450e175..8e0507082 100644 --- a/packages/spec/json-schema/ai/CICDPipelineConfig.json +++ b/packages/spec/json-schema/ai/CICDPipelineConfig.json @@ -1,136 +1,7 @@ { "$ref": "#/definitions/CICDPipelineConfig", "definitions": { - "CICDPipelineConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Pipeline name" - }, - "trigger": { - "type": "string", - "enum": [ - "push", - "pull_request", - "release", - "schedule", - "manual" - ], - "description": "Pipeline trigger" - }, - "branches": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Branches to run pipeline on" - }, - "stages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Pipeline stage name" - }, - "type": { - "type": "string", - "enum": [ - "build", - "test", - "lint", - "security_scan", - "deploy", - "smoke_test", - "rollback" - ], - "description": "Stage type" - }, - "order": { - "type": "integer", - "minimum": 0, - "description": "Execution order" - }, - "parallel": { - "type": "boolean", - "default": false, - "description": "Can run in parallel with other stages" - }, - "commands": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Commands to execute" - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Stage-specific environment variables" - }, - "timeout": { - "type": "integer", - "minimum": 60, - "default": 600, - "description": "Stage timeout in seconds" - }, - "retryOnFailure": { - "type": "boolean", - "default": false, - "description": "Retry stage on failure" - }, - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "default": 0, - "description": "Maximum retry attempts" - } - }, - "required": [ - "name", - "type", - "order", - "commands" - ], - "additionalProperties": false - }, - "description": "Pipeline stages" - }, - "notifications": { - "type": "object", - "properties": { - "onSuccess": { - "type": "boolean", - "default": false - }, - "onFailure": { - "type": "boolean", - "default": true - }, - "channels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Notification channels (e.g., slack, email)" - } - }, - "additionalProperties": false, - "description": "Pipeline notifications" - } - }, - "required": [ - "name", - "trigger", - "stages" - ], - "additionalProperties": false - } + "CICDPipelineConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ChunkingStrategy.json b/packages/spec/json-schema/ai/ChunkingStrategy.json index 3147a265a..54f8131e9 100644 --- a/packages/spec/json-schema/ai/ChunkingStrategy.json +++ b/packages/spec/json-schema/ai/ChunkingStrategy.json @@ -1,133 +1,7 @@ { "$ref": "#/definitions/ChunkingStrategy", "definitions": { - "ChunkingStrategy": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "fixed" - }, - "chunkSize": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Fixed chunk size in tokens/chars" - }, - "chunkOverlap": { - "type": "integer", - "minimum": 0, - "default": 0, - "description": "Overlap between chunks" - }, - "unit": { - "type": "string", - "enum": [ - "tokens", - "characters" - ], - "default": "tokens" - } - }, - "required": [ - "type", - "chunkSize" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "semantic" - }, - "model": { - "type": "string", - "description": "Model for semantic chunking" - }, - "minChunkSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100 - }, - "maxChunkSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "recursive" - }, - "separators": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "\n\n", - "\n", - " ", - "" - ] - }, - "chunkSize": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "chunkOverlap": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - "required": [ - "type", - "chunkSize" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "markdown" - }, - "maxChunkSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - }, - "respectHeaders": { - "type": "boolean", - "default": true, - "description": "Keep headers with content" - }, - "respectCodeBlocks": { - "type": "boolean", - "default": true, - "description": "Keep code blocks intact" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } + "ChunkingStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CodeGenerationConfig.json b/packages/spec/json-schema/ai/CodeGenerationConfig.json index 873be1a6c..4f7d5ff19 100644 --- a/packages/spec/json-schema/ai/CodeGenerationConfig.json +++ b/packages/spec/json-schema/ai/CodeGenerationConfig.json @@ -1,65 +1,7 @@ { "$ref": "#/definitions/CodeGenerationConfig", "definitions": { - "CodeGenerationConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable code generation" - }, - "targets": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "frontend", - "backend", - "api", - "database", - "tests", - "documentation", - "infrastructure" - ], - "description": "Code generation target" - }, - "description": "Code generation targets" - }, - "templateRepo": { - "type": "string", - "description": "Template repository for scaffolding" - }, - "styleGuide": { - "type": "string", - "description": "Code style guide to follow" - }, - "includeTests": { - "type": "boolean", - "default": true, - "description": "Generate tests with code" - }, - "includeDocumentation": { - "type": "boolean", - "default": true, - "description": "Generate documentation" - }, - "validationMode": { - "type": "string", - "enum": [ - "strict", - "moderate", - "permissive" - ], - "default": "strict", - "description": "Code validation strictness" - } - }, - "required": [ - "targets" - ], - "additionalProperties": false - } + "CodeGenerationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CodeGenerationTarget.json b/packages/spec/json-schema/ai/CodeGenerationTarget.json index 6c767b605..3744f44f4 100644 --- a/packages/spec/json-schema/ai/CodeGenerationTarget.json +++ b/packages/spec/json-schema/ai/CodeGenerationTarget.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/CodeGenerationTarget", "definitions": { - "CodeGenerationTarget": { - "type": "string", - "enum": [ - "frontend", - "backend", - "api", - "database", - "tests", - "documentation", - "infrastructure" - ], - "description": "Code generation target" - } + "CodeGenerationTarget": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ComponentActionParams.json b/packages/spec/json-schema/ai/ComponentActionParams.json index f9c6c9999..d66e86536 100644 --- a/packages/spec/json-schema/ai/ComponentActionParams.json +++ b/packages/spec/json-schema/ai/ComponentActionParams.json @@ -1,77 +1,7 @@ { "$ref": "#/definitions/ComponentActionParams", "definitions": { - "ComponentActionParams": { - "type": "object", - "properties": { - "componentId": { - "type": "string", - "description": "Component ID" - }, - "modalConfig": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "content": {}, - "size": { - "type": "string", - "enum": [ - "small", - "medium", - "large", - "fullscreen" - ] - } - }, - "additionalProperties": false - }, - "notificationConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "info", - "success", - "warning", - "error" - ] - }, - "message": { - "type": "string" - }, - "duration": { - "type": "number", - "description": "Duration in ms" - } - }, - "required": [ - "message" - ], - "additionalProperties": false - }, - "sidebarConfig": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "left", - "right" - ] - }, - "width": { - "type": "string" - }, - "content": {} - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } + "ComponentActionParams": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ComponentActionType.json b/packages/spec/json-schema/ai/ComponentActionType.json index d8d7483e0..5637c015c 100644 --- a/packages/spec/json-schema/ai/ComponentActionType.json +++ b/packages/spec/json-schema/ai/ComponentActionType.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/ComponentActionType", "definitions": { - "ComponentActionType": { - "type": "string", - "enum": [ - "open_modal", - "close_modal", - "open_sidebar", - "close_sidebar", - "show_notification", - "hide_notification", - "open_dropdown", - "close_dropdown", - "toggle_section" - ] - } + "ComponentActionType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ConversationAnalytics.json b/packages/spec/json-schema/ai/ConversationAnalytics.json index 23a39cba3..bdfbd30cb 100644 --- a/packages/spec/json-schema/ai/ConversationAnalytics.json +++ b/packages/spec/json-schema/ai/ConversationAnalytics.json @@ -1,86 +1,7 @@ { "$ref": "#/definitions/ConversationAnalytics", "definitions": { - "ConversationAnalytics": { - "type": "object", - "properties": { - "sessionId": { - "type": "string" - }, - "totalMessages": { - "type": "integer", - "minimum": 0 - }, - "userMessages": { - "type": "integer", - "minimum": 0 - }, - "assistantMessages": { - "type": "integer", - "minimum": 0 - }, - "systemMessages": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "averageTokensPerMessage": { - "type": "number", - "minimum": 0 - }, - "peakTokenUsage": { - "type": "integer", - "minimum": 0 - }, - "pruningEvents": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "summarizationEvents": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "tokensSavedByPruning": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "tokensSavedBySummarization": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "duration": { - "type": "number", - "minimum": 0, - "description": "Session duration in seconds" - }, - "firstMessageAt": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "lastMessageAt": { - "type": "string", - "description": "ISO 8601 timestamp" - } - }, - "required": [ - "sessionId", - "totalMessages", - "userMessages", - "assistantMessages", - "systemMessages", - "totalTokens", - "averageTokensPerMessage", - "peakTokenUsage" - ], - "additionalProperties": false - } + "ConversationAnalytics": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ConversationContext.json b/packages/spec/json-schema/ai/ConversationContext.json index fda95530b..139e7f0f9 100644 --- a/packages/spec/json-schema/ai/ConversationContext.json +++ b/packages/spec/json-schema/ai/ConversationContext.json @@ -1,48 +1,7 @@ { "$ref": "#/definitions/ConversationContext", "definitions": { - "ConversationContext": { - "type": "object", - "properties": { - "sessionId": { - "type": "string", - "description": "Conversation session ID" - }, - "userId": { - "type": "string", - "description": "User identifier" - }, - "agentId": { - "type": "string", - "description": "AI agent identifier" - }, - "object": { - "type": "string", - "description": "Related object (e.g., \"case\", \"project\")" - }, - "recordId": { - "type": "string", - "description": "Related record ID" - }, - "scope": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context scope" - }, - "systemMessage": { - "type": "string", - "description": "System prompt/instructions" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "sessionId" - ], - "additionalProperties": false - } + "ConversationContext": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ConversationMessage.json b/packages/spec/json-schema/ai/ConversationMessage.json index 9b0579ece..a7ce6af04 100644 --- a/packages/spec/json-schema/ai/ConversationMessage.json +++ b/packages/spec/json-schema/ai/ConversationMessage.json @@ -1,219 +1,7 @@ { "$ref": "#/definitions/ConversationMessage", "definitions": { - "ConversationMessage": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique message ID" - }, - "timestamp": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "role": { - "type": "string", - "enum": [ - "system", - "user", - "assistant", - "function", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image", - "file", - "code", - "structured" - ], - "default": "text" - }, - "text": { - "type": "string", - "description": "Text content" - }, - "imageUrl": { - "type": "string", - "format": "uri", - "description": "Image URL for vision models" - }, - "fileUrl": { - "type": "string", - "format": "uri", - "description": "File attachment URL" - }, - "mimeType": { - "type": "string", - "description": "MIME type for files" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional metadata" - } - }, - "additionalProperties": false - } - } - ], - "description": "Message content (text or multimodal)" - }, - "functionCall": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Function name" - }, - "arguments": { - "type": "string", - "description": "JSON string of function arguments" - }, - "result": { - "type": "string", - "description": "Function execution result" - } - }, - "required": [ - "name", - "arguments" - ], - "additionalProperties": false, - "description": "Legacy function call" - }, - "toolCalls": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Tool call ID" - }, - "type": { - "type": "string", - "enum": [ - "function" - ], - "default": "function" - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Function name" - }, - "arguments": { - "type": "string", - "description": "JSON string of function arguments" - }, - "result": { - "type": "string", - "description": "Function execution result" - } - }, - "required": [ - "name", - "arguments" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "function" - ], - "additionalProperties": false - }, - "description": "Tool calls" - }, - "toolCallId": { - "type": "string", - "description": "Tool call ID this message responds to" - }, - "name": { - "type": "string", - "description": "Name of the function/user" - }, - "tokens": { - "type": "object", - "properties": { - "prompt": { - "type": "integer", - "minimum": 0, - "description": "Input tokens" - }, - "completion": { - "type": "integer", - "minimum": 0, - "description": "Output tokens" - }, - "total": { - "type": "integer", - "minimum": 0, - "description": "Total tokens" - } - }, - "required": [ - "prompt", - "completion", - "total" - ], - "additionalProperties": false, - "description": "Token usage for this message" - }, - "cost": { - "type": "number", - "minimum": 0, - "description": "Cost for this message in USD" - }, - "pinned": { - "type": "boolean", - "default": false, - "description": "Prevent removal during pruning" - }, - "importance": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Importance score for pruning" - }, - "embedding": { - "type": "array", - "items": { - "type": "number" - }, - "description": "Vector embedding for semantic search" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "id", - "timestamp", - "role", - "content" - ], - "additionalProperties": false - } + "ConversationMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ConversationSession.json b/packages/spec/json-schema/ai/ConversationSession.json index b5da890fa..a33b0f955 100644 --- a/packages/spec/json-schema/ai/ConversationSession.json +++ b/packages/spec/json-schema/ai/ConversationSession.json @@ -1,500 +1,7 @@ { "$ref": "#/definitions/ConversationSession", "definitions": { - "ConversationSession": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique session ID" - }, - "name": { - "type": "string", - "description": "Session name/title" - }, - "context": { - "type": "object", - "properties": { - "sessionId": { - "type": "string", - "description": "Conversation session ID" - }, - "userId": { - "type": "string", - "description": "User identifier" - }, - "agentId": { - "type": "string", - "description": "AI agent identifier" - }, - "object": { - "type": "string", - "description": "Related object (e.g., \"case\", \"project\")" - }, - "recordId": { - "type": "string", - "description": "Related record ID" - }, - "scope": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context scope" - }, - "systemMessage": { - "type": "string", - "description": "System prompt/instructions" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "sessionId" - ], - "additionalProperties": false - }, - "modelId": { - "type": "string", - "description": "AI model ID" - }, - "tokenBudget": { - "type": "object", - "properties": { - "maxTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum total tokens" - }, - "maxPromptTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Max tokens for prompt" - }, - "maxCompletionTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Max tokens for completion" - }, - "reserveTokens": { - "type": "integer", - "minimum": 0, - "default": 500, - "description": "Reserve tokens for system messages" - }, - "bufferPercentage": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.1, - "description": "Buffer percentage (0.1 = 10%)" - }, - "strategy": { - "type": "string", - "enum": [ - "fifo", - "importance", - "semantic", - "sliding_window", - "summary" - ], - "default": "sliding_window" - }, - "slidingWindowSize": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of recent messages to keep" - }, - "minImportanceScore": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Minimum importance to keep" - }, - "semanticThreshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Semantic similarity threshold" - }, - "enableSummarization": { - "type": "boolean", - "default": false, - "description": "Enable context summarization" - }, - "summarizationThreshold": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Trigger summarization at N tokens" - }, - "summaryModel": { - "type": "string", - "description": "Model ID for summarization" - }, - "warnThreshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.8, - "description": "Warn at % of budget (0.8 = 80%)" - } - }, - "required": [ - "maxTokens" - ], - "additionalProperties": false - }, - "messages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique message ID" - }, - "timestamp": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "role": { - "type": "string", - "enum": [ - "system", - "user", - "assistant", - "function", - "tool" - ] - }, - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image", - "file", - "code", - "structured" - ], - "default": "text" - }, - "text": { - "type": "string", - "description": "Text content" - }, - "imageUrl": { - "type": "string", - "format": "uri", - "description": "Image URL for vision models" - }, - "fileUrl": { - "type": "string", - "format": "uri", - "description": "File attachment URL" - }, - "mimeType": { - "type": "string", - "description": "MIME type for files" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional metadata" - } - }, - "additionalProperties": false - } - } - ], - "description": "Message content (text or multimodal)" - }, - "functionCall": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Function name" - }, - "arguments": { - "type": "string", - "description": "JSON string of function arguments" - }, - "result": { - "type": "string", - "description": "Function execution result" - } - }, - "required": [ - "name", - "arguments" - ], - "additionalProperties": false, - "description": "Legacy function call" - }, - "toolCalls": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Tool call ID" - }, - "type": { - "type": "string", - "enum": [ - "function" - ], - "default": "function" - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Function name" - }, - "arguments": { - "type": "string", - "description": "JSON string of function arguments" - }, - "result": { - "type": "string", - "description": "Function execution result" - } - }, - "required": [ - "name", - "arguments" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "function" - ], - "additionalProperties": false - }, - "description": "Tool calls" - }, - "toolCallId": { - "type": "string", - "description": "Tool call ID this message responds to" - }, - "name": { - "type": "string", - "description": "Name of the function/user" - }, - "tokens": { - "type": "object", - "properties": { - "prompt": { - "type": "integer", - "minimum": 0, - "description": "Input tokens" - }, - "completion": { - "type": "integer", - "minimum": 0, - "description": "Output tokens" - }, - "total": { - "type": "integer", - "minimum": 0, - "description": "Total tokens" - } - }, - "required": [ - "prompt", - "completion", - "total" - ], - "additionalProperties": false, - "description": "Token usage for this message" - }, - "cost": { - "type": "number", - "minimum": 0, - "description": "Cost for this message in USD" - }, - "pinned": { - "type": "boolean", - "default": false, - "description": "Prevent removal during pruning" - }, - "importance": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Importance score for pruning" - }, - "embedding": { - "type": "array", - "items": { - "type": "number" - }, - "description": "Vector embedding for semantic search" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "id", - "timestamp", - "role", - "content" - ], - "additionalProperties": false - }, - "default": [] - }, - "tokens": { - "type": "object", - "properties": { - "promptTokens": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "completionTokens": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "budgetLimit": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "budgetUsed": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "budgetRemaining": { - "type": "integer", - "minimum": 0 - }, - "budgetPercentage": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Usage as percentage of budget" - }, - "messageCount": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "prunedMessageCount": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "summarizedMessageCount": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - "required": [ - "budgetLimit", - "budgetRemaining", - "budgetPercentage" - ], - "additionalProperties": false - }, - "totalTokens": { - "type": "object", - "properties": { - "prompt": { - "type": "integer", - "minimum": 0, - "description": "Input tokens" - }, - "completion": { - "type": "integer", - "minimum": 0, - "description": "Output tokens" - }, - "total": { - "type": "integer", - "minimum": 0, - "description": "Total tokens" - } - }, - "required": [ - "prompt", - "completion", - "total" - ], - "additionalProperties": false, - "description": "Total tokens across all messages" - }, - "totalCost": { - "type": "number", - "minimum": 0, - "description": "Total cost for this session in USD" - }, - "status": { - "type": "string", - "enum": [ - "active", - "paused", - "completed", - "archived" - ], - "default": "active" - }, - "createdAt": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "updatedAt": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "expiresAt": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "metadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "id", - "context", - "tokenBudget", - "createdAt", - "updatedAt" - ], - "additionalProperties": false - } + "ConversationSession": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ConversationSummary.json b/packages/spec/json-schema/ai/ConversationSummary.json index 566a0d9df..96ab91311 100644 --- a/packages/spec/json-schema/ai/ConversationSummary.json +++ b/packages/spec/json-schema/ai/ConversationSummary.json @@ -1,73 +1,7 @@ { "$ref": "#/definitions/ConversationSummary", "definitions": { - "ConversationSummary": { - "type": "object", - "properties": { - "summary": { - "type": "string", - "description": "Conversation summary" - }, - "keyPoints": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Key discussion points" - }, - "originalTokens": { - "type": "integer", - "minimum": 0, - "description": "Original token count" - }, - "summaryTokens": { - "type": "integer", - "minimum": 0, - "description": "Summary token count" - }, - "tokensSaved": { - "type": "integer", - "minimum": 0, - "description": "Tokens saved" - }, - "messageRange": { - "type": "object", - "properties": { - "startIndex": { - "type": "integer", - "minimum": 0 - }, - "endIndex": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "startIndex", - "endIndex" - ], - "additionalProperties": false, - "description": "Range of messages summarized" - }, - "generatedAt": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "modelId": { - "type": "string", - "description": "Model used for summarization" - } - }, - "required": [ - "summary", - "originalTokens", - "summaryTokens", - "tokensSaved", - "messageRange", - "generatedAt" - ], - "additionalProperties": false - } + "ConversationSummary": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CostAlert.json b/packages/spec/json-schema/ai/CostAlert.json index 2c5d82d41..89bfa1b5c 100644 --- a/packages/spec/json-schema/ai/CostAlert.json +++ b/packages/spec/json-schema/ai/CostAlert.json @@ -1,107 +1,7 @@ { "$ref": "#/definitions/CostAlert", "definitions": { - "CostAlert": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "type": { - "type": "string", - "enum": [ - "threshold_warning", - "threshold_critical", - "limit_exceeded", - "anomaly_detected", - "projection_exceeded" - ] - }, - "severity": { - "type": "string", - "enum": [ - "info", - "warning", - "critical" - ] - }, - "budgetId": { - "type": "string" - }, - "budgetType": { - "type": "string", - "enum": [ - "global", - "user", - "agent", - "object", - "project", - "department" - ] - }, - "scope": { - "type": "string" - }, - "message": { - "type": "string", - "description": "Alert message" - }, - "currentCost": { - "type": "number", - "minimum": 0 - }, - "maxCost": { - "type": "number", - "minimum": 0 - }, - "threshold": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "currency": { - "type": "string", - "default": "USD" - }, - "recommendations": { - "type": "array", - "items": { - "type": "string" - } - }, - "acknowledged": { - "type": "boolean", - "default": false - }, - "acknowledgedBy": { - "type": "string" - }, - "acknowledgedAt": { - "type": "string" - }, - "resolved": { - "type": "boolean", - "default": false - }, - "metadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "id", - "timestamp", - "type", - "severity", - "message", - "currentCost" - ], - "additionalProperties": false - } + "CostAlert": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CostAlertType.json b/packages/spec/json-schema/ai/CostAlertType.json index 92df165d4..a2100d9bb 100644 --- a/packages/spec/json-schema/ai/CostAlertType.json +++ b/packages/spec/json-schema/ai/CostAlertType.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/CostAlertType", "definitions": { - "CostAlertType": { - "type": "string", - "enum": [ - "threshold_warning", - "threshold_critical", - "limit_exceeded", - "anomaly_detected", - "projection_exceeded" - ] - } + "CostAlertType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CostAnalytics.json b/packages/spec/json-schema/ai/CostAnalytics.json index 5b49a6762..0ee0de7d8 100644 --- a/packages/spec/json-schema/ai/CostAnalytics.json +++ b/packages/spec/json-schema/ai/CostAnalytics.json @@ -1,589 +1,7 @@ { "$ref": "#/definitions/CostAnalytics", "definitions": { - "CostAnalytics": { - "type": "object", - "properties": { - "periodStart": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "periodEnd": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "totalRequests": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "currency": { - "type": "string", - "default": "USD" - }, - "averageCostPerRequest": { - "type": "number", - "minimum": 0 - }, - "averageCostPerToken": { - "type": "number", - "minimum": 0 - }, - "averageRequestsPerDay": { - "type": "number", - "minimum": 0 - }, - "costTrend": { - "type": "string", - "enum": [ - "increasing", - "decreasing", - "stable" - ] - }, - "trendPercentage": { - "type": "number", - "description": "% change vs previous period" - }, - "byModel": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "byProvider": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "byUser": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "byAgent": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "byOperation": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "byDate": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "topModels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "topUsers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "topAgents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "tokensPerDollar": { - "type": "number", - "minimum": 0 - }, - "requestsPerDollar": { - "type": "number", - "minimum": 0 - } - }, - "required": [ - "periodStart", - "periodEnd", - "totalCost", - "totalRequests", - "averageCostPerRequest", - "averageRequestsPerDay" - ], - "additionalProperties": false - } + "CostAnalytics": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CostBreakdownDimension.json b/packages/spec/json-schema/ai/CostBreakdownDimension.json index 6adf1cca4..6dabb90fd 100644 --- a/packages/spec/json-schema/ai/CostBreakdownDimension.json +++ b/packages/spec/json-schema/ai/CostBreakdownDimension.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/CostBreakdownDimension", "definitions": { - "CostBreakdownDimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - } + "CostBreakdownDimension": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CostBreakdownEntry.json b/packages/spec/json-schema/ai/CostBreakdownEntry.json index 74a712ff0..2cf66b49c 100644 --- a/packages/spec/json-schema/ai/CostBreakdownEntry.json +++ b/packages/spec/json-schema/ai/CostBreakdownEntry.json @@ -1,60 +1,7 @@ { "$ref": "#/definitions/CostBreakdownEntry", "definitions": { - "CostBreakdownEntry": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } + "CostBreakdownEntry": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CostEntry.json b/packages/spec/json-schema/ai/CostEntry.json index 3e92a89ea..e273be723 100644 --- a/packages/spec/json-schema/ai/CostEntry.json +++ b/packages/spec/json-schema/ai/CostEntry.json @@ -1,106 +1,7 @@ { "$ref": "#/definitions/CostEntry", "definitions": { - "CostEntry": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique cost entry ID" - }, - "timestamp": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "modelId": { - "type": "string", - "description": "AI model used" - }, - "provider": { - "type": "string", - "description": "AI provider (e.g., \"openai\", \"anthropic\")" - }, - "operation": { - "type": "string", - "description": "Operation type (e.g., \"chat_completion\", \"embedding\")" - }, - "promptTokens": { - "type": "integer", - "minimum": 0 - }, - "completionTokens": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1 - }, - "promptCost": { - "type": "number", - "minimum": 0, - "description": "Cost of prompt tokens" - }, - "completionCost": { - "type": "number", - "minimum": 0, - "description": "Cost of completion tokens" - }, - "totalCost": { - "type": "number", - "minimum": 0, - "description": "Total cost in base currency" - }, - "currency": { - "type": "string", - "default": "USD" - }, - "sessionId": { - "type": "string", - "description": "Conversation session ID" - }, - "userId": { - "type": "string", - "description": "User who triggered the request" - }, - "agentId": { - "type": "string", - "description": "AI agent ID" - }, - "object": { - "type": "string", - "description": "Related object (e.g., \"case\", \"project\")" - }, - "recordId": { - "type": "string", - "description": "Related record ID" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "metadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "id", - "timestamp", - "modelId", - "provider", - "operation", - "totalCost" - ], - "additionalProperties": false - } + "CostEntry": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CostMetricType.json b/packages/spec/json-schema/ai/CostMetricType.json index aac8b9c47..9e0d0c587 100644 --- a/packages/spec/json-schema/ai/CostMetricType.json +++ b/packages/spec/json-schema/ai/CostMetricType.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/CostMetricType", "definitions": { - "CostMetricType": { - "type": "string", - "enum": [ - "token", - "request", - "character", - "second", - "image", - "embedding" - ] - } + "CostMetricType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CostOptimizationRecommendation.json b/packages/spec/json-schema/ai/CostOptimizationRecommendation.json index 05db81d88..1bdd16e60 100644 --- a/packages/spec/json-schema/ai/CostOptimizationRecommendation.json +++ b/packages/spec/json-schema/ai/CostOptimizationRecommendation.json @@ -1,100 +1,7 @@ { "$ref": "#/definitions/CostOptimizationRecommendation", "definitions": { - "CostOptimizationRecommendation": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "switch_model", - "reduce_tokens", - "batch_requests", - "cache_results", - "adjust_parameters", - "limit_usage" - ] - }, - "title": { - "type": "string" - }, - "description": { - "type": "string" - }, - "estimatedSavings": { - "type": "number", - "minimum": 0 - }, - "savingsPercentage": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "priority": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - "effort": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - "actionable": { - "type": "boolean", - "default": true - }, - "actionSteps": { - "type": "array", - "items": { - "type": "string" - } - }, - "targetModel": { - "type": "string" - }, - "alternativeModel": { - "type": "string" - }, - "affectedUsers": { - "type": "array", - "items": { - "type": "string" - } - }, - "status": { - "type": "string", - "enum": [ - "pending", - "accepted", - "rejected", - "implemented" - ], - "default": "pending" - }, - "implementedAt": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "title", - "description", - "priority", - "effort" - ], - "additionalProperties": false - } + "CostOptimizationRecommendation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CostQueryFilters.json b/packages/spec/json-schema/ai/CostQueryFilters.json index bcd977905..8e9dd33a2 100644 --- a/packages/spec/json-schema/ai/CostQueryFilters.json +++ b/packages/spec/json-schema/ai/CostQueryFilters.json @@ -1,112 +1,7 @@ { "$ref": "#/definitions/CostQueryFilters", "definitions": { - "CostQueryFilters": { - "type": "object", - "properties": { - "startDate": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "endDate": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "modelIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "providers": { - "type": "array", - "items": { - "type": "string" - } - }, - "userIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "agentIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "operations": { - "type": "array", - "items": { - "type": "string" - } - }, - "sessionIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "minCost": { - "type": "number", - "minimum": 0 - }, - "maxCost": { - "type": "number", - "minimum": 0 - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "groupBy": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - } - }, - "orderBy": { - "type": "string", - "enum": [ - "timestamp", - "cost", - "tokens" - ], - "default": "timestamp" - }, - "orderDirection": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "desc" - }, - "limit": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "offset": { - "type": "integer", - "minimum": 0 - } - }, - "additionalProperties": false - } + "CostQueryFilters": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/CostReport.json b/packages/spec/json-schema/ai/CostReport.json index 39028ac09..e36899186 100644 --- a/packages/spec/json-schema/ai/CostReport.json +++ b/packages/spec/json-schema/ai/CostReport.json @@ -1,964 +1,7 @@ { "$ref": "#/definitions/CostReport", "definitions": { - "CostReport": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "generatedAt": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "periodStart": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "periodEnd": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "period": { - "type": "string", - "enum": [ - "hourly", - "daily", - "weekly", - "monthly", - "quarterly", - "yearly", - "custom" - ] - }, - "analytics": { - "type": "object", - "properties": { - "periodStart": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "periodEnd": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "totalRequests": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "currency": { - "type": "string", - "default": "USD" - }, - "averageCostPerRequest": { - "type": "number", - "minimum": 0 - }, - "averageCostPerToken": { - "type": "number", - "minimum": 0 - }, - "averageRequestsPerDay": { - "type": "number", - "minimum": 0 - }, - "costTrend": { - "type": "string", - "enum": [ - "increasing", - "decreasing", - "stable" - ] - }, - "trendPercentage": { - "type": "number", - "description": "% change vs previous period" - }, - "byModel": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "byProvider": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "byUser": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "byAgent": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "byOperation": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "byDate": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "topModels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "topUsers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "topAgents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "dimension": { - "type": "string", - "enum": [ - "model", - "provider", - "user", - "agent", - "object", - "operation", - "date", - "hour", - "tag" - ] - }, - "value": { - "type": "string", - "description": "Dimension value (e.g., model ID, user ID)" - }, - "totalCost": { - "type": "number", - "minimum": 0 - }, - "requestCount": { - "type": "integer", - "minimum": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0 - }, - "percentageOfTotal": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "periodStart": { - "type": "string" - }, - "periodEnd": { - "type": "string" - } - }, - "required": [ - "dimension", - "value", - "totalCost", - "requestCount", - "percentageOfTotal" - ], - "additionalProperties": false - } - }, - "tokensPerDollar": { - "type": "number", - "minimum": 0 - }, - "requestsPerDollar": { - "type": "number", - "minimum": 0 - } - }, - "required": [ - "periodStart", - "periodEnd", - "totalCost", - "totalRequests", - "averageCostPerRequest", - "averageRequestsPerDay" - ], - "additionalProperties": false - }, - "budgets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "budgetId": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "global", - "user", - "agent", - "object", - "project", - "department" - ] - }, - "scope": { - "type": "string" - }, - "periodStart": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "periodEnd": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "currentCost": { - "type": "number", - "minimum": 0, - "default": 0 - }, - "maxCost": { - "type": "number", - "minimum": 0 - }, - "currency": { - "type": "string", - "default": "USD" - }, - "percentageUsed": { - "type": "number", - "minimum": 0, - "description": "Usage as percentage (can exceed 1.0 if over budget)" - }, - "remainingCost": { - "type": "number", - "description": "Remaining budget (can be negative if exceeded)" - }, - "isExceeded": { - "type": "boolean", - "default": false - }, - "isWarning": { - "type": "boolean", - "default": false - }, - "projectedCost": { - "type": "number", - "minimum": 0, - "description": "Projected cost for period" - }, - "projectedOverage": { - "type": "number", - "minimum": 0, - "description": "Projected overage" - }, - "lastUpdated": { - "type": "string", - "description": "ISO 8601 timestamp" - } - }, - "required": [ - "budgetId", - "type", - "periodStart", - "periodEnd", - "maxCost", - "percentageUsed", - "remainingCost", - "lastUpdated" - ], - "additionalProperties": false - } - }, - "alerts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "type": { - "type": "string", - "enum": [ - "threshold_warning", - "threshold_critical", - "limit_exceeded", - "anomaly_detected", - "projection_exceeded" - ] - }, - "severity": { - "type": "string", - "enum": [ - "info", - "warning", - "critical" - ] - }, - "budgetId": { - "type": "string" - }, - "budgetType": { - "type": "string", - "enum": [ - "global", - "user", - "agent", - "object", - "project", - "department" - ] - }, - "scope": { - "type": "string" - }, - "message": { - "type": "string", - "description": "Alert message" - }, - "currentCost": { - "type": "number", - "minimum": 0 - }, - "maxCost": { - "type": "number", - "minimum": 0 - }, - "threshold": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "currency": { - "type": "string", - "default": "USD" - }, - "recommendations": { - "type": "array", - "items": { - "type": "string" - } - }, - "acknowledged": { - "type": "boolean", - "default": false - }, - "acknowledgedBy": { - "type": "string" - }, - "acknowledgedAt": { - "type": "string" - }, - "resolved": { - "type": "boolean", - "default": false - }, - "metadata": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "id", - "timestamp", - "type", - "severity", - "message", - "currentCost" - ], - "additionalProperties": false - } - }, - "activeAlertCount": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "recommendations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "switch_model", - "reduce_tokens", - "batch_requests", - "cache_results", - "adjust_parameters", - "limit_usage" - ] - }, - "title": { - "type": "string" - }, - "description": { - "type": "string" - }, - "estimatedSavings": { - "type": "number", - "minimum": 0 - }, - "savingsPercentage": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "priority": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - "effort": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ] - }, - "actionable": { - "type": "boolean", - "default": true - }, - "actionSteps": { - "type": "array", - "items": { - "type": "string" - } - }, - "targetModel": { - "type": "string" - }, - "alternativeModel": { - "type": "string" - }, - "affectedUsers": { - "type": "array", - "items": { - "type": "string" - } - }, - "status": { - "type": "string", - "enum": [ - "pending", - "accepted", - "rejected", - "implemented" - ], - "default": "pending" - }, - "implementedAt": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "title", - "description", - "priority", - "effort" - ], - "additionalProperties": false - } - }, - "previousPeriodCost": { - "type": "number", - "minimum": 0 - }, - "costChange": { - "type": "number", - "description": "Change vs previous period" - }, - "costChangePercentage": { - "type": "number" - }, - "forecastedCost": { - "type": "number", - "minimum": 0 - }, - "forecastedBudgetStatus": { - "type": "string", - "enum": [ - "under", - "at", - "over" - ] - }, - "format": { - "type": "string", - "enum": [ - "summary", - "detailed", - "executive" - ], - "default": "summary" - }, - "currency": { - "type": "string", - "default": "USD" - } - }, - "required": [ - "id", - "name", - "generatedAt", - "periodStart", - "periodEnd", - "period", - "analytics" - ], - "additionalProperties": false - } + "CostReport": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/DataActionParams.json b/packages/spec/json-schema/ai/DataActionParams.json index 3118b8cac..16817f4f1 100644 --- a/packages/spec/json-schema/ai/DataActionParams.json +++ b/packages/spec/json-schema/ai/DataActionParams.json @@ -1,38 +1,7 @@ { "$ref": "#/definitions/DataActionParams", "definitions": { - "DataActionParams": { - "type": "object", - "properties": { - "recordIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Record IDs to select/operate on" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter for bulk operations" - }, - "updateData": { - "type": "object", - "additionalProperties": {}, - "description": "Data for bulk update" - }, - "exportFormat": { - "type": "string", - "enum": [ - "csv", - "xlsx", - "pdf", - "json" - ] - } - }, - "additionalProperties": false - } + "DataActionParams": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/DataActionType.json b/packages/spec/json-schema/ai/DataActionType.json index 7904b2343..67ac42949 100644 --- a/packages/spec/json-schema/ai/DataActionType.json +++ b/packages/spec/json-schema/ai/DataActionType.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/DataActionType", "definitions": { - "DataActionType": { - "type": "string", - "enum": [ - "select_record", - "deselect_record", - "select_all", - "deselect_all", - "bulk_update", - "bulk_delete", - "bulk_export" - ] - } + "DataActionType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/DeploymentStrategy.json b/packages/spec/json-schema/ai/DeploymentStrategy.json index cef4affd5..4a5be34dd 100644 --- a/packages/spec/json-schema/ai/DeploymentStrategy.json +++ b/packages/spec/json-schema/ai/DeploymentStrategy.json @@ -1,52 +1,7 @@ { "$ref": "#/definitions/DeploymentStrategy", "definitions": { - "DeploymentStrategy": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rolling", - "blue_green", - "canary", - "recreate" - ], - "default": "rolling", - "description": "Deployment strategy" - }, - "canaryPercentage": { - "type": "number", - "minimum": 0, - "maximum": 100, - "default": 10, - "description": "Canary deployment percentage" - }, - "healthCheckUrl": { - "type": "string", - "description": "Health check endpoint" - }, - "healthCheckTimeout": { - "type": "integer", - "minimum": 10, - "default": 60, - "description": "Health check timeout in seconds" - }, - "autoRollback": { - "type": "boolean", - "default": true, - "description": "Automatically rollback on failure" - }, - "smokeTests": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Smoke test commands to run post-deployment" - } - }, - "additionalProperties": false - } + "DeploymentStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/DevOpsAgent.json b/packages/spec/json-schema/ai/DevOpsAgent.json index 2981a6138..084228a31 100644 --- a/packages/spec/json-schema/ai/DevOpsAgent.json +++ b/packages/spec/json-schema/ai/DevOpsAgent.json @@ -1,802 +1,7 @@ { "$ref": "#/definitions/DevOpsAgent", "definitions": { - "DevOpsAgent": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Agent unique identifier" - }, - "label": { - "type": "string", - "description": "Agent display name" - }, - "avatar": { - "type": "string" - }, - "role": { - "type": "string", - "description": "The persona/role (e.g. \"Senior Support Engineer\")" - }, - "instructions": { - "type": "string", - "description": "System Prompt / Prime Directives" - }, - "model": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "openai", - "azure_openai", - "anthropic", - "local" - ], - "default": "openai" - }, - "model": { - "type": "string", - "description": "Model name (e.g. gpt-4, claude-3-opus)" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2, - "default": 0.7 - }, - "maxTokens": { - "type": "number" - }, - "topP": { - "type": "number" - } - }, - "required": [ - "model" - ], - "additionalProperties": false - }, - "tools": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "action", - "flow", - "query", - "vector_search" - ] - }, - "name": { - "type": "string", - "description": "Reference name (Action Name, Flow Name)" - }, - "description": { - "type": "string", - "description": "Override description for the LLM" - } - }, - "required": [ - "type", - "name" - ], - "additionalProperties": false - }, - "description": "Available tools" - }, - "knowledge": { - "type": "object", - "properties": { - "topics": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Topics/Tags to recruit knowledge from" - }, - "indexes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Vector Store Indexes" - } - }, - "required": [ - "topics", - "indexes" - ], - "additionalProperties": false, - "description": "RAG access" - }, - "active": { - "type": "boolean", - "default": true - }, - "access": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Who can chat with this agent" - }, - "developmentConfig": { - "type": "object", - "properties": { - "specificationSource": { - "type": "string", - "description": "Path to ObjectStack specification" - }, - "codeGeneration": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable code generation" - }, - "targets": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "frontend", - "backend", - "api", - "database", - "tests", - "documentation", - "infrastructure" - ], - "description": "Code generation target" - }, - "description": "Code generation targets" - }, - "templateRepo": { - "type": "string", - "description": "Template repository for scaffolding" - }, - "styleGuide": { - "type": "string", - "description": "Code style guide to follow" - }, - "includeTests": { - "type": "boolean", - "default": true, - "description": "Generate tests with code" - }, - "includeDocumentation": { - "type": "boolean", - "default": true, - "description": "Generate documentation" - }, - "validationMode": { - "type": "string", - "enum": [ - "strict", - "moderate", - "permissive" - ], - "default": "strict", - "description": "Code validation strictness" - } - }, - "required": [ - "targets" - ], - "additionalProperties": false, - "description": "Code generation settings" - }, - "testing": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable automated testing" - }, - "testTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "unit", - "integration", - "e2e", - "performance", - "security", - "accessibility" - ] - }, - "default": [ - "unit", - "integration" - ], - "description": "Types of tests to run" - }, - "coverageThreshold": { - "type": "number", - "minimum": 0, - "maximum": 100, - "default": 80, - "description": "Minimum test coverage percentage" - }, - "framework": { - "type": "string", - "description": "Testing framework (e.g., vitest, jest, playwright)" - }, - "preCommitTests": { - "type": "boolean", - "default": true, - "description": "Run tests before committing" - }, - "autoFix": { - "type": "boolean", - "default": false, - "description": "Attempt to auto-fix failing tests" - } - }, - "additionalProperties": false, - "description": "Testing configuration" - }, - "linting": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "autoFix": { - "type": "boolean", - "default": true - }, - "rules": { - "type": "object", - "additionalProperties": {} - } - }, - "additionalProperties": false, - "description": "Code linting configuration" - }, - "formatting": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "autoFormat": { - "type": "boolean", - "default": true - }, - "config": { - "type": "object", - "additionalProperties": {} - } - }, - "additionalProperties": false, - "description": "Code formatting configuration" - } - }, - "required": [ - "specificationSource", - "codeGeneration" - ], - "additionalProperties": false, - "description": "Development configuration" - }, - "pipelines": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Pipeline name" - }, - "trigger": { - "type": "string", - "enum": [ - "push", - "pull_request", - "release", - "schedule", - "manual" - ], - "description": "Pipeline trigger" - }, - "branches": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Branches to run pipeline on" - }, - "stages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Pipeline stage name" - }, - "type": { - "type": "string", - "enum": [ - "build", - "test", - "lint", - "security_scan", - "deploy", - "smoke_test", - "rollback" - ], - "description": "Stage type" - }, - "order": { - "type": "integer", - "minimum": 0, - "description": "Execution order" - }, - "parallel": { - "type": "boolean", - "default": false, - "description": "Can run in parallel with other stages" - }, - "commands": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Commands to execute" - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Stage-specific environment variables" - }, - "timeout": { - "type": "integer", - "minimum": 60, - "default": 600, - "description": "Stage timeout in seconds" - }, - "retryOnFailure": { - "type": "boolean", - "default": false, - "description": "Retry stage on failure" - }, - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "default": 0, - "description": "Maximum retry attempts" - } - }, - "required": [ - "name", - "type", - "order", - "commands" - ], - "additionalProperties": false - }, - "description": "Pipeline stages" - }, - "notifications": { - "type": "object", - "properties": { - "onSuccess": { - "type": "boolean", - "default": false - }, - "onFailure": { - "type": "boolean", - "default": true - }, - "channels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Notification channels (e.g., slack, email)" - } - }, - "additionalProperties": false, - "description": "Pipeline notifications" - } - }, - "required": [ - "name", - "trigger", - "stages" - ], - "additionalProperties": false - }, - "description": "CI/CD pipelines" - }, - "versionManagement": { - "type": "object", - "properties": { - "scheme": { - "type": "string", - "enum": [ - "semver", - "calver", - "custom" - ], - "default": "semver", - "description": "Versioning scheme" - }, - "autoIncrement": { - "type": "string", - "enum": [ - "major", - "minor", - "patch", - "none" - ], - "default": "patch", - "description": "Auto-increment strategy" - }, - "prefix": { - "type": "string", - "default": "v", - "description": "Version tag prefix" - }, - "generateChangelog": { - "type": "boolean", - "default": true, - "description": "Generate changelog automatically" - }, - "changelogFormat": { - "type": "string", - "enum": [ - "conventional", - "keepachangelog", - "custom" - ], - "default": "conventional", - "description": "Changelog format" - }, - "tagReleases": { - "type": "boolean", - "default": true, - "description": "Create Git tags for releases" - } - }, - "additionalProperties": false, - "description": "Version management configuration" - }, - "deploymentStrategy": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rolling", - "blue_green", - "canary", - "recreate" - ], - "default": "rolling", - "description": "Deployment strategy" - }, - "canaryPercentage": { - "type": "number", - "minimum": 0, - "maximum": 100, - "default": 10, - "description": "Canary deployment percentage" - }, - "healthCheckUrl": { - "type": "string", - "description": "Health check endpoint" - }, - "healthCheckTimeout": { - "type": "integer", - "minimum": 10, - "default": 60, - "description": "Health check timeout in seconds" - }, - "autoRollback": { - "type": "boolean", - "default": true, - "description": "Automatically rollback on failure" - }, - "smokeTests": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Smoke test commands to run post-deployment" - } - }, - "additionalProperties": false, - "description": "Deployment strategy" - }, - "monitoring": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable monitoring" - }, - "metrics": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "performance", - "errors", - "usage", - "availability", - "latency" - ] - }, - "default": [ - "performance", - "errors", - "availability" - ], - "description": "Metrics to monitor" - }, - "alerts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Alert name" - }, - "metric": { - "type": "string", - "description": "Metric to monitor" - }, - "threshold": { - "type": "number", - "description": "Alert threshold" - }, - "severity": { - "type": "string", - "enum": [ - "info", - "warning", - "critical" - ], - "description": "Alert severity" - } - }, - "required": [ - "name", - "metric", - "threshold", - "severity" - ], - "additionalProperties": false - }, - "description": "Alert configurations" - }, - "integrations": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Monitoring service integrations" - } - }, - "additionalProperties": false, - "description": "Monitoring configuration" - }, - "integrations": { - "type": "object", - "properties": { - "github": { - "type": "object", - "properties": { - "connector": { - "type": "string", - "description": "GitHub connector name" - }, - "repository": { - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "Repository owner" - }, - "name": { - "type": "string", - "description": "Repository name" - } - }, - "required": [ - "owner", - "name" - ], - "additionalProperties": false, - "description": "Repository configuration" - }, - "featureBranch": { - "type": "string", - "default": "develop", - "description": "Default feature branch" - }, - "pullRequest": { - "type": "object", - "properties": { - "autoCreate": { - "type": "boolean", - "default": true, - "description": "Automatically create PRs" - }, - "autoMerge": { - "type": "boolean", - "default": false, - "description": "Automatically merge PRs when checks pass" - }, - "requireReviews": { - "type": "boolean", - "default": true, - "description": "Require reviews before merge" - }, - "deleteBranchOnMerge": { - "type": "boolean", - "default": true, - "description": "Delete feature branch after merge" - } - }, - "additionalProperties": false, - "description": "Pull request settings" - } - }, - "required": [ - "connector", - "repository" - ], - "additionalProperties": false, - "description": "GitHub integration configuration" - }, - "vercel": { - "type": "object", - "properties": { - "connector": { - "type": "string", - "description": "Vercel connector name" - }, - "project": { - "type": "string", - "description": "Vercel project name" - }, - "environments": { - "type": "object", - "properties": { - "production": { - "type": "string", - "default": "main", - "description": "Production branch" - }, - "preview": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "develop", - "feature/*" - ], - "description": "Preview branches" - } - }, - "additionalProperties": false, - "description": "Environment mapping" - }, - "deployment": { - "type": "object", - "properties": { - "autoDeployProduction": { - "type": "boolean", - "default": false, - "description": "Auto-deploy to production" - }, - "autoDeployPreview": { - "type": "boolean", - "default": true, - "description": "Auto-deploy preview environments" - }, - "requireApproval": { - "type": "boolean", - "default": true, - "description": "Require approval for production deployments" - } - }, - "additionalProperties": false, - "description": "Deployment settings" - } - }, - "required": [ - "connector", - "project" - ], - "additionalProperties": false, - "description": "Vercel integration configuration" - }, - "additional": { - "type": "object", - "additionalProperties": {}, - "description": "Additional integration configurations" - } - }, - "required": [ - "github", - "vercel" - ], - "additionalProperties": false, - "description": "Integration configurations" - }, - "selfIteration": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable self-iteration" - }, - "iterationFrequency": { - "type": "string", - "description": "Iteration frequency (cron expression)" - }, - "optimizationGoals": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "performance", - "security", - "code_quality", - "test_coverage", - "documentation" - ] - }, - "description": "Optimization goals" - }, - "learningMode": { - "type": "string", - "enum": [ - "conservative", - "balanced", - "aggressive" - ], - "default": "balanced", - "description": "Learning mode" - } - }, - "additionalProperties": false, - "description": "Self-iteration configuration" - } - }, - "required": [ - "name", - "label", - "role", - "instructions", - "developmentConfig", - "integrations" - ], - "additionalProperties": false - } + "DevOpsAgent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/DevOpsTool.json b/packages/spec/json-schema/ai/DevOpsTool.json index 3abc74475..154126919 100644 --- a/packages/spec/json-schema/ai/DevOpsTool.json +++ b/packages/spec/json-schema/ai/DevOpsTool.json @@ -1,38 +1,7 @@ { "$ref": "#/definitions/DevOpsTool", "definitions": { - "DevOpsTool": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "action", - "flow", - "query", - "vector_search", - "git_operation", - "code_generation", - "test_execution", - "deployment", - "monitoring" - ] - }, - "name": { - "type": "string", - "description": "Reference name (Action Name, Flow Name)" - }, - "description": { - "type": "string", - "description": "Override description for the LLM" - } - }, - "required": [ - "type", - "name" - ], - "additionalProperties": false - } + "DevOpsTool": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/DevelopmentConfig.json b/packages/spec/json-schema/ai/DevelopmentConfig.json index 182afd7de..79275adca 100644 --- a/packages/spec/json-schema/ai/DevelopmentConfig.json +++ b/packages/spec/json-schema/ai/DevelopmentConfig.json @@ -1,170 +1,7 @@ { "$ref": "#/definitions/DevelopmentConfig", "definitions": { - "DevelopmentConfig": { - "type": "object", - "properties": { - "specificationSource": { - "type": "string", - "description": "Path to ObjectStack specification" - }, - "codeGeneration": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable code generation" - }, - "targets": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "frontend", - "backend", - "api", - "database", - "tests", - "documentation", - "infrastructure" - ], - "description": "Code generation target" - }, - "description": "Code generation targets" - }, - "templateRepo": { - "type": "string", - "description": "Template repository for scaffolding" - }, - "styleGuide": { - "type": "string", - "description": "Code style guide to follow" - }, - "includeTests": { - "type": "boolean", - "default": true, - "description": "Generate tests with code" - }, - "includeDocumentation": { - "type": "boolean", - "default": true, - "description": "Generate documentation" - }, - "validationMode": { - "type": "string", - "enum": [ - "strict", - "moderate", - "permissive" - ], - "default": "strict", - "description": "Code validation strictness" - } - }, - "required": [ - "targets" - ], - "additionalProperties": false, - "description": "Code generation settings" - }, - "testing": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable automated testing" - }, - "testTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "unit", - "integration", - "e2e", - "performance", - "security", - "accessibility" - ] - }, - "default": [ - "unit", - "integration" - ], - "description": "Types of tests to run" - }, - "coverageThreshold": { - "type": "number", - "minimum": 0, - "maximum": 100, - "default": 80, - "description": "Minimum test coverage percentage" - }, - "framework": { - "type": "string", - "description": "Testing framework (e.g., vitest, jest, playwright)" - }, - "preCommitTests": { - "type": "boolean", - "default": true, - "description": "Run tests before committing" - }, - "autoFix": { - "type": "boolean", - "default": false, - "description": "Attempt to auto-fix failing tests" - } - }, - "additionalProperties": false, - "description": "Testing configuration" - }, - "linting": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "autoFix": { - "type": "boolean", - "default": true - }, - "rules": { - "type": "object", - "additionalProperties": {} - } - }, - "additionalProperties": false, - "description": "Code linting configuration" - }, - "formatting": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "autoFormat": { - "type": "boolean", - "default": true - }, - "config": { - "type": "object", - "additionalProperties": {} - } - }, - "additionalProperties": false, - "description": "Code formatting configuration" - } - }, - "required": [ - "specificationSource", - "codeGeneration" - ], - "additionalProperties": false - } + "DevelopmentConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/DocumentChunk.json b/packages/spec/json-schema/ai/DocumentChunk.json index 23b50b1e7..a541ba5c0 100644 --- a/packages/spec/json-schema/ai/DocumentChunk.json +++ b/packages/spec/json-schema/ai/DocumentChunk.json @@ -1,97 +1,7 @@ { "$ref": "#/definitions/DocumentChunk", "definitions": { - "DocumentChunk": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique chunk identifier" - }, - "content": { - "type": "string", - "description": "Chunk text content" - }, - "embedding": { - "type": "array", - "items": { - "type": "number" - }, - "description": "Embedding vector" - }, - "metadata": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Document source (file path, URL, etc.)" - }, - "sourceType": { - "type": "string", - "enum": [ - "file", - "url", - "api", - "database", - "custom" - ] - }, - "title": { - "type": "string" - }, - "author": { - "type": "string" - }, - "createdAt": { - "type": "string", - "description": "ISO timestamp" - }, - "updatedAt": { - "type": "string", - "description": "ISO timestamp" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "category": { - "type": "string" - }, - "language": { - "type": "string", - "description": "Document language (ISO 639-1 code)" - }, - "custom": { - "type": "object", - "additionalProperties": {}, - "description": "Custom metadata fields" - } - }, - "required": [ - "source" - ], - "additionalProperties": false - }, - "chunkIndex": { - "type": "integer", - "minimum": 0, - "description": "Chunk position in document" - }, - "tokens": { - "type": "integer", - "description": "Token count" - } - }, - "required": [ - "id", - "content", - "metadata", - "chunkIndex" - ], - "additionalProperties": false - } + "DocumentChunk": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/DocumentLoaderConfig.json b/packages/spec/json-schema/ai/DocumentLoaderConfig.json index edfecf359..a20bb3537 100644 --- a/packages/spec/json-schema/ai/DocumentLoaderConfig.json +++ b/packages/spec/json-schema/ai/DocumentLoaderConfig.json @@ -1,69 +1,7 @@ { "$ref": "#/definitions/DocumentLoaderConfig", "definitions": { - "DocumentLoaderConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "file", - "directory", - "url", - "api", - "database", - "custom" - ] - }, - "source": { - "type": "string", - "description": "Source path, URL, or identifier" - }, - "fileTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Accepted file extensions (e.g., [\".pdf\", \".md\"])" - }, - "recursive": { - "type": "boolean", - "default": false, - "description": "Process directories recursively" - }, - "maxFileSize": { - "type": "integer", - "description": "Maximum file size in bytes" - }, - "excludePatterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Patterns to exclude" - }, - "extractImages": { - "type": "boolean", - "default": false, - "description": "Extract text from images (OCR)" - }, - "extractTables": { - "type": "boolean", - "default": false, - "description": "Extract and format tables" - }, - "loaderConfig": { - "type": "object", - "additionalProperties": {}, - "description": "Custom loader-specific config" - } - }, - "required": [ - "type", - "source" - ], - "additionalProperties": false - } + "DocumentLoaderConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/DocumentMetadata.json b/packages/spec/json-schema/ai/DocumentMetadata.json index fcf7493c4..efc8279ce 100644 --- a/packages/spec/json-schema/ai/DocumentMetadata.json +++ b/packages/spec/json-schema/ai/DocumentMetadata.json @@ -1,61 +1,7 @@ { "$ref": "#/definitions/DocumentMetadata", "definitions": { - "DocumentMetadata": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Document source (file path, URL, etc.)" - }, - "sourceType": { - "type": "string", - "enum": [ - "file", - "url", - "api", - "database", - "custom" - ] - }, - "title": { - "type": "string" - }, - "author": { - "type": "string" - }, - "createdAt": { - "type": "string", - "description": "ISO timestamp" - }, - "updatedAt": { - "type": "string", - "description": "ISO timestamp" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "category": { - "type": "string" - }, - "language": { - "type": "string", - "description": "Document language (ISO 639-1 code)" - }, - "custom": { - "type": "object", - "additionalProperties": {}, - "description": "Custom metadata fields" - } - }, - "required": [ - "source" - ], - "additionalProperties": false - } + "DocumentMetadata": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/EmbeddingModel.json b/packages/spec/json-schema/ai/EmbeddingModel.json index ae6a03588..500526702 100644 --- a/packages/spec/json-schema/ai/EmbeddingModel.json +++ b/packages/spec/json-schema/ai/EmbeddingModel.json @@ -1,57 +1,7 @@ { "$ref": "#/definitions/EmbeddingModel", "definitions": { - "EmbeddingModel": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "openai", - "cohere", - "huggingface", - "azure_openai", - "local", - "custom" - ] - }, - "model": { - "type": "string", - "description": "Model name (e.g., \"text-embedding-3-large\")" - }, - "dimensions": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Embedding vector dimensions" - }, - "maxTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum tokens per embedding" - }, - "batchSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100, - "description": "Batch size for embedding" - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "Custom endpoint URL" - }, - "apiKey": { - "type": "string", - "description": "API key or reference to secret" - } - }, - "required": [ - "provider", - "model", - "dimensions" - ], - "additionalProperties": false - } + "EmbeddingModel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/Entity.json b/packages/spec/json-schema/ai/Entity.json index 6f82a0723..609915f85 100644 --- a/packages/spec/json-schema/ai/Entity.json +++ b/packages/spec/json-schema/ai/Entity.json @@ -1,55 +1,7 @@ { "$ref": "#/definitions/Entity", "definitions": { - "Entity": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "object", - "field", - "value", - "operator", - "function", - "timeframe" - ] - }, - "text": { - "type": "string", - "description": "Original text from query" - }, - "value": { - "description": "Normalized value" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Confidence score" - }, - "span": { - "type": "array", - "minItems": 2, - "maxItems": 2, - "items": [ - { - "type": "number" - }, - { - "type": "number" - } - ], - "description": "Character span in query" - } - }, - "required": [ - "type", - "text", - "confidence" - ], - "additionalProperties": false - } + "Entity": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/EvaluationMetrics.json b/packages/spec/json-schema/ai/EvaluationMetrics.json index 74a315433..08256fa20 100644 --- a/packages/spec/json-schema/ai/EvaluationMetrics.json +++ b/packages/spec/json-schema/ai/EvaluationMetrics.json @@ -1,64 +1,7 @@ { "$ref": "#/definitions/EvaluationMetrics", "definitions": { - "EvaluationMetrics": { - "type": "object", - "properties": { - "accuracy": { - "type": "number" - }, - "precision": { - "type": "number" - }, - "recall": { - "type": "number" - }, - "f1Score": { - "type": "number" - }, - "auc": { - "type": "number", - "description": "Area Under ROC Curve" - }, - "mse": { - "type": "number", - "description": "Mean Squared Error" - }, - "rmse": { - "type": "number", - "description": "Root Mean Squared Error" - }, - "mae": { - "type": "number", - "description": "Mean Absolute Error" - }, - "r2Score": { - "type": "number", - "description": "R-squared score" - }, - "silhouetteScore": { - "type": "number" - }, - "daviesBouldinIndex": { - "type": "number" - }, - "mape": { - "type": "number", - "description": "Mean Absolute Percentage Error" - }, - "smape": { - "type": "number", - "description": "Symmetric MAPE" - }, - "custom": { - "type": "object", - "additionalProperties": { - "type": "number" - } - } - }, - "additionalProperties": false - } + "EvaluationMetrics": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/FieldSynonymConfig.json b/packages/spec/json-schema/ai/FieldSynonymConfig.json index e41f385ec..0a64d953c 100644 --- a/packages/spec/json-schema/ai/FieldSynonymConfig.json +++ b/packages/spec/json-schema/ai/FieldSynonymConfig.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/FieldSynonymConfig", "definitions": { - "FieldSynonymConfig": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "field": { - "type": "string", - "description": "Field name" - }, - "synonyms": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Natural language synonyms" - }, - "examples": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Example queries using synonyms" - } - }, - "required": [ - "object", - "field", - "synonyms" - ], - "additionalProperties": false - } + "FieldSynonymConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/FormActionParams.json b/packages/spec/json-schema/ai/FormActionParams.json index ede35872a..24b6482d6 100644 --- a/packages/spec/json-schema/ai/FormActionParams.json +++ b/packages/spec/json-schema/ai/FormActionParams.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/FormActionParams", "definitions": { - "FormActionParams": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "recordId": { - "type": "string", - "description": "Record ID (for edit/delete)" - }, - "fieldValues": { - "type": "object", - "additionalProperties": {}, - "description": "Field name-value pairs" - }, - "fieldName": { - "type": "string", - "description": "Specific field to fill/clear" - }, - "fieldValue": { - "description": "Value to set" - }, - "validateOnly": { - "type": "boolean", - "description": "Validate without saving" - } - }, - "additionalProperties": false - } + "FormActionParams": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/FormActionType.json b/packages/spec/json-schema/ai/FormActionType.json index 86303f43e..d8a465f60 100644 --- a/packages/spec/json-schema/ai/FormActionType.json +++ b/packages/spec/json-schema/ai/FormActionType.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/FormActionType", "definitions": { - "FormActionType": { - "type": "string", - "enum": [ - "create_record", - "update_record", - "delete_record", - "fill_field", - "clear_field", - "submit_form", - "cancel_form", - "validate_form", - "save_draft" - ] - } + "FormActionType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/FunctionCall.json b/packages/spec/json-schema/ai/FunctionCall.json index d706a167b..0611dc126 100644 --- a/packages/spec/json-schema/ai/FunctionCall.json +++ b/packages/spec/json-schema/ai/FunctionCall.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/FunctionCall", "definitions": { - "FunctionCall": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Function name" - }, - "arguments": { - "type": "string", - "description": "JSON string of function arguments" - }, - "result": { - "type": "string", - "description": "Function execution result" - } - }, - "required": [ - "name", - "arguments" - ], - "additionalProperties": false - } + "FunctionCall": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/GitHubIntegration.json b/packages/spec/json-schema/ai/GitHubIntegration.json index 7a7de0ef3..5cee51333 100644 --- a/packages/spec/json-schema/ai/GitHubIntegration.json +++ b/packages/spec/json-schema/ai/GitHubIntegration.json @@ -1,71 +1,7 @@ { "$ref": "#/definitions/GitHubIntegration", "definitions": { - "GitHubIntegration": { - "type": "object", - "properties": { - "connector": { - "type": "string", - "description": "GitHub connector name" - }, - "repository": { - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "Repository owner" - }, - "name": { - "type": "string", - "description": "Repository name" - } - }, - "required": [ - "owner", - "name" - ], - "additionalProperties": false, - "description": "Repository configuration" - }, - "featureBranch": { - "type": "string", - "default": "develop", - "description": "Default feature branch" - }, - "pullRequest": { - "type": "object", - "properties": { - "autoCreate": { - "type": "boolean", - "default": true, - "description": "Automatically create PRs" - }, - "autoMerge": { - "type": "boolean", - "default": false, - "description": "Automatically merge PRs when checks pass" - }, - "requireReviews": { - "type": "boolean", - "default": true, - "description": "Require reviews before merge" - }, - "deleteBranchOnMerge": { - "type": "boolean", - "default": true, - "description": "Delete feature branch after merge" - } - }, - "additionalProperties": false, - "description": "Pull request settings" - } - }, - "required": [ - "connector", - "repository" - ], - "additionalProperties": false - } + "GitHubIntegration": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/Hyperparameters.json b/packages/spec/json-schema/ai/Hyperparameters.json index 94010bd08..47214c282 100644 --- a/packages/spec/json-schema/ai/Hyperparameters.json +++ b/packages/spec/json-schema/ai/Hyperparameters.json @@ -1,80 +1,7 @@ { "$ref": "#/definitions/Hyperparameters", "definitions": { - "Hyperparameters": { - "type": "object", - "properties": { - "learningRate": { - "type": "number", - "description": "Learning rate for training" - }, - "epochs": { - "type": "integer", - "description": "Number of training epochs" - }, - "batchSize": { - "type": "integer", - "description": "Training batch size" - }, - "maxDepth": { - "type": "integer", - "description": "Maximum tree depth" - }, - "numTrees": { - "type": "integer", - "description": "Number of trees in ensemble" - }, - "minSamplesSplit": { - "type": "integer", - "description": "Minimum samples to split node" - }, - "minSamplesLeaf": { - "type": "integer", - "description": "Minimum samples in leaf node" - }, - "hiddenLayers": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "Hidden layer sizes" - }, - "activation": { - "type": "string", - "description": "Activation function" - }, - "dropout": { - "type": "number", - "description": "Dropout rate" - }, - "l1Regularization": { - "type": "number", - "description": "L1 regularization strength" - }, - "l2Regularization": { - "type": "number", - "description": "L2 regularization strength" - }, - "numClusters": { - "type": "integer", - "description": "Number of clusters (k-means, etc.)" - }, - "seasonalPeriod": { - "type": "integer", - "description": "Seasonal period for time series" - }, - "forecastHorizon": { - "type": "integer", - "description": "Number of periods to forecast" - }, - "custom": { - "type": "object", - "additionalProperties": {}, - "description": "Algorithm-specific parameters" - } - }, - "additionalProperties": false - } + "Hyperparameters": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/IntegrationConfig.json b/packages/spec/json-schema/ai/IntegrationConfig.json index c638f3fd8..e04373d03 100644 --- a/packages/spec/json-schema/ai/IntegrationConfig.json +++ b/packages/spec/json-schema/ai/IntegrationConfig.json @@ -1,151 +1,7 @@ { "$ref": "#/definitions/IntegrationConfig", "definitions": { - "IntegrationConfig": { - "type": "object", - "properties": { - "github": { - "type": "object", - "properties": { - "connector": { - "type": "string", - "description": "GitHub connector name" - }, - "repository": { - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "Repository owner" - }, - "name": { - "type": "string", - "description": "Repository name" - } - }, - "required": [ - "owner", - "name" - ], - "additionalProperties": false, - "description": "Repository configuration" - }, - "featureBranch": { - "type": "string", - "default": "develop", - "description": "Default feature branch" - }, - "pullRequest": { - "type": "object", - "properties": { - "autoCreate": { - "type": "boolean", - "default": true, - "description": "Automatically create PRs" - }, - "autoMerge": { - "type": "boolean", - "default": false, - "description": "Automatically merge PRs when checks pass" - }, - "requireReviews": { - "type": "boolean", - "default": true, - "description": "Require reviews before merge" - }, - "deleteBranchOnMerge": { - "type": "boolean", - "default": true, - "description": "Delete feature branch after merge" - } - }, - "additionalProperties": false, - "description": "Pull request settings" - } - }, - "required": [ - "connector", - "repository" - ], - "additionalProperties": false, - "description": "GitHub integration configuration" - }, - "vercel": { - "type": "object", - "properties": { - "connector": { - "type": "string", - "description": "Vercel connector name" - }, - "project": { - "type": "string", - "description": "Vercel project name" - }, - "environments": { - "type": "object", - "properties": { - "production": { - "type": "string", - "default": "main", - "description": "Production branch" - }, - "preview": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "develop", - "feature/*" - ], - "description": "Preview branches" - } - }, - "additionalProperties": false, - "description": "Environment mapping" - }, - "deployment": { - "type": "object", - "properties": { - "autoDeployProduction": { - "type": "boolean", - "default": false, - "description": "Auto-deploy to production" - }, - "autoDeployPreview": { - "type": "boolean", - "default": true, - "description": "Auto-deploy preview environments" - }, - "requireApproval": { - "type": "boolean", - "default": true, - "description": "Require approval for production deployments" - } - }, - "additionalProperties": false, - "description": "Deployment settings" - } - }, - "required": [ - "connector", - "project" - ], - "additionalProperties": false, - "description": "Vercel integration configuration" - }, - "additional": { - "type": "object", - "additionalProperties": {}, - "description": "Additional integration configurations" - } - }, - "required": [ - "github", - "vercel" - ], - "additionalProperties": false - } + "IntegrationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/IntentActionMapping.json b/packages/spec/json-schema/ai/IntentActionMapping.json index 50511314c..a11e984b4 100644 --- a/packages/spec/json-schema/ai/IntentActionMapping.json +++ b/packages/spec/json-schema/ai/IntentActionMapping.json @@ -1,491 +1,7 @@ { "$ref": "#/definitions/IntentActionMapping", "definitions": { - "IntentActionMapping": { - "type": "object", - "properties": { - "intent": { - "type": "string", - "description": "Intent pattern (e.g., \"open_new_record_form\")" - }, - "examples": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Example user queries" - }, - "actionTemplate": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique action ID" - }, - "type": { - "type": "string", - "enum": [ - "navigate_to_object_list", - "navigate_to_object_form", - "navigate_to_record_detail", - "navigate_to_dashboard", - "navigate_to_report", - "navigate_to_app", - "navigate_back", - "navigate_home", - "open_tab", - "close_tab", - "change_view_mode", - "apply_filter", - "clear_filter", - "apply_sort", - "change_grouping", - "show_columns", - "expand_record", - "collapse_record", - "refresh_view", - "export_data", - "create_record", - "update_record", - "delete_record", - "fill_field", - "clear_field", - "submit_form", - "cancel_form", - "validate_form", - "save_draft", - "select_record", - "deselect_record", - "select_all", - "deselect_all", - "bulk_update", - "bulk_delete", - "bulk_export", - "trigger_flow", - "trigger_approval", - "trigger_webhook", - "run_report", - "send_email", - "send_notification", - "schedule_task", - "open_modal", - "close_modal", - "open_sidebar", - "close_sidebar", - "show_notification", - "hide_notification", - "open_dropdown", - "close_dropdown", - "toggle_section" - ], - "description": "Type of UI action to perform" - }, - "params": { - "anyOf": [ - { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (for object-specific navigation)" - }, - "recordId": { - "type": "string", - "description": "Record ID (for detail page)" - }, - "viewType": { - "type": "string", - "enum": [ - "list", - "form", - "detail", - "kanban", - "calendar", - "gantt" - ] - }, - "dashboardId": { - "type": "string", - "description": "Dashboard ID" - }, - "reportId": { - "type": "string", - "description": "Report ID" - }, - "appName": { - "type": "string", - "description": "App name" - }, - "mode": { - "type": "string", - "enum": [ - "new", - "edit", - "view" - ], - "description": "Form mode" - }, - "openInNewTab": { - "type": "boolean", - "description": "Open in new tab" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "viewMode": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "pivot" - ] - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter conditions" - }, - "sort": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - "required": [ - "field", - "order" - ], - "additionalProperties": false - } - }, - "groupBy": { - "type": "string", - "description": "Field to group by" - }, - "columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Columns to show/hide" - }, - "recordId": { - "type": "string", - "description": "Record to expand/collapse" - }, - "exportFormat": { - "type": "string", - "enum": [ - "csv", - "xlsx", - "pdf", - "json" - ] - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "recordId": { - "type": "string", - "description": "Record ID (for edit/delete)" - }, - "fieldValues": { - "type": "object", - "additionalProperties": {}, - "description": "Field name-value pairs" - }, - "fieldName": { - "type": "string", - "description": "Specific field to fill/clear" - }, - "fieldValue": { - "description": "Value to set" - }, - "validateOnly": { - "type": "boolean", - "description": "Validate without saving" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "recordIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Record IDs to select/operate on" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter for bulk operations" - }, - "updateData": { - "type": "object", - "additionalProperties": {}, - "description": "Data for bulk update" - }, - "exportFormat": { - "type": "string", - "enum": [ - "csv", - "xlsx", - "pdf", - "json" - ] - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "flowName": { - "type": "string", - "description": "Flow/workflow name" - }, - "approvalProcessName": { - "type": "string", - "description": "Approval process name" - }, - "webhookUrl": { - "type": "string", - "description": "Webhook URL" - }, - "reportName": { - "type": "string", - "description": "Report name" - }, - "emailTemplate": { - "type": "string", - "description": "Email template" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Email recipients" - }, - "subject": { - "type": "string", - "description": "Email subject" - }, - "message": { - "type": "string", - "description": "Notification/email message" - }, - "taskData": { - "type": "object", - "additionalProperties": {}, - "description": "Task creation data" - }, - "scheduleTime": { - "type": "string", - "description": "Schedule time (ISO 8601)" - }, - "contextData": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context data" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "componentId": { - "type": "string", - "description": "Component ID" - }, - "modalConfig": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "content": {}, - "size": { - "type": "string", - "enum": [ - "small", - "medium", - "large", - "fullscreen" - ] - } - }, - "additionalProperties": false - }, - "notificationConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "info", - "success", - "warning", - "error" - ] - }, - "message": { - "type": "string" - }, - "duration": { - "type": "number", - "description": "Duration in ms" - } - }, - "required": [ - "message" - ], - "additionalProperties": false - }, - "sidebarConfig": { - "type": "object", - "properties": { - "position": { - "type": "string", - "enum": [ - "left", - "right" - ] - }, - "width": { - "type": "string" - }, - "content": {} - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } - ], - "description": "Action-specific parameters" - }, - "requireConfirmation": { - "type": "boolean", - "default": false, - "description": "Require user confirmation before executing" - }, - "confirmationMessage": { - "type": "string", - "description": "Message to show in confirmation dialog" - }, - "successMessage": { - "type": "string", - "description": "Message to show on success" - }, - "onError": { - "type": "string", - "enum": [ - "retry", - "skip", - "abort" - ], - "default": "abort", - "description": "Error handling strategy" - }, - "metadata": { - "type": "object", - "properties": { - "intent": { - "type": "string", - "description": "Original user intent/query" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Confidence score (0-1)" - }, - "agentName": { - "type": "string", - "description": "Agent that generated this action" - }, - "timestamp": { - "type": "string", - "description": "Generation timestamp (ISO 8601)" - } - }, - "additionalProperties": false - } - }, - "required": [ - "type", - "params" - ], - "additionalProperties": false, - "description": "Action to execute" - }, - "paramExtraction": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "entity", - "slot", - "context" - ] - }, - "required": { - "type": "boolean", - "default": false - }, - "default": {} - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "description": "Rules for extracting parameters from user input" - }, - "minConfidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.7, - "description": "Minimum confidence to execute" - } - }, - "required": [ - "intent", - "actionTemplate" - ], - "additionalProperties": false - } + "IntentActionMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/MessageContent.json b/packages/spec/json-schema/ai/MessageContent.json index b02b78075..4eb067b6d 100644 --- a/packages/spec/json-schema/ai/MessageContent.json +++ b/packages/spec/json-schema/ai/MessageContent.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/MessageContent", "definitions": { - "MessageContent": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "image", - "file", - "code", - "structured" - ], - "default": "text" - }, - "text": { - "type": "string", - "description": "Text content" - }, - "imageUrl": { - "type": "string", - "format": "uri", - "description": "Image URL for vision models" - }, - "fileUrl": { - "type": "string", - "format": "uri", - "description": "File attachment URL" - }, - "mimeType": { - "type": "string", - "description": "MIME type for files" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional metadata" - } - }, - "additionalProperties": false - } + "MessageContent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/MessageContentType.json b/packages/spec/json-schema/ai/MessageContentType.json index 446c93b09..ed6910ba0 100644 --- a/packages/spec/json-schema/ai/MessageContentType.json +++ b/packages/spec/json-schema/ai/MessageContentType.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/MessageContentType", "definitions": { - "MessageContentType": { - "type": "string", - "enum": [ - "text", - "image", - "file", - "code", - "structured" - ] - } + "MessageContentType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/MessagePruningEvent.json b/packages/spec/json-schema/ai/MessagePruningEvent.json index 11cd4ad9f..b05db7785 100644 --- a/packages/spec/json-schema/ai/MessagePruningEvent.json +++ b/packages/spec/json-schema/ai/MessagePruningEvent.json @@ -1,92 +1,7 @@ { "$ref": "#/definitions/MessagePruningEvent", "definitions": { - "MessagePruningEvent": { - "type": "object", - "properties": { - "timestamp": { - "type": "string", - "description": "ISO 8601 timestamp" - }, - "strategy": { - "type": "string", - "enum": [ - "fifo", - "importance", - "semantic", - "sliding_window", - "summary" - ] - }, - "reason": { - "type": "string", - "description": "Reason for pruning" - }, - "prunedMessages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "messageId": { - "type": "string" - }, - "role": { - "type": "string", - "enum": [ - "system", - "user", - "assistant", - "function", - "tool" - ] - }, - "tokens": { - "type": "integer", - "minimum": 0 - }, - "importance": { - "type": "number", - "minimum": 0, - "maximum": 1 - } - }, - "required": [ - "messageId", - "role", - "tokens" - ], - "additionalProperties": false - } - }, - "tokensFreed": { - "type": "integer", - "minimum": 0 - }, - "messagesRemoved": { - "type": "integer", - "minimum": 0 - }, - "remainingTokens": { - "type": "integer", - "minimum": 0 - }, - "remainingMessages": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "timestamp", - "strategy", - "reason", - "prunedMessages", - "tokensFreed", - "messagesRemoved", - "remainingTokens", - "remainingMessages" - ], - "additionalProperties": false - } + "MessagePruningEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/MessageRole.json b/packages/spec/json-schema/ai/MessageRole.json index fd0393d13..3eeb7efb9 100644 --- a/packages/spec/json-schema/ai/MessageRole.json +++ b/packages/spec/json-schema/ai/MessageRole.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/MessageRole", "definitions": { - "MessageRole": { - "type": "string", - "enum": [ - "system", - "user", - "assistant", - "function", - "tool" - ] - } + "MessageRole": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ModelCapability.json b/packages/spec/json-schema/ai/ModelCapability.json index 976b0a236..75d1dafd9 100644 --- a/packages/spec/json-schema/ai/ModelCapability.json +++ b/packages/spec/json-schema/ai/ModelCapability.json @@ -1,47 +1,7 @@ { "$ref": "#/definitions/ModelCapability", "definitions": { - "ModelCapability": { - "type": "object", - "properties": { - "textGeneration": { - "type": "boolean", - "default": true, - "description": "Supports text generation" - }, - "textEmbedding": { - "type": "boolean", - "default": false, - "description": "Supports text embedding" - }, - "imageGeneration": { - "type": "boolean", - "default": false, - "description": "Supports image generation" - }, - "imageUnderstanding": { - "type": "boolean", - "default": false, - "description": "Supports image understanding" - }, - "functionCalling": { - "type": "boolean", - "default": false, - "description": "Supports function calling" - }, - "codeGeneration": { - "type": "boolean", - "default": false, - "description": "Supports code generation" - }, - "reasoning": { - "type": "boolean", - "default": false, - "description": "Supports advanced reasoning" - } - }, - "additionalProperties": false - } + "ModelCapability": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ModelConfig.json b/packages/spec/json-schema/ai/ModelConfig.json index 7220acf41..0bccf8cbd 100644 --- a/packages/spec/json-schema/ai/ModelConfig.json +++ b/packages/spec/json-schema/ai/ModelConfig.json @@ -1,181 +1,7 @@ { "$ref": "#/definitions/ModelConfig", "definitions": { - "ModelConfig": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique model identifier" - }, - "name": { - "type": "string", - "description": "Model display name" - }, - "version": { - "type": "string", - "description": "Model version (e.g., \"gpt-4-turbo-2024-04-09\")" - }, - "provider": { - "type": "string", - "enum": [ - "openai", - "azure_openai", - "anthropic", - "google", - "cohere", - "huggingface", - "local", - "custom" - ] - }, - "capabilities": { - "type": "object", - "properties": { - "textGeneration": { - "type": "boolean", - "default": true, - "description": "Supports text generation" - }, - "textEmbedding": { - "type": "boolean", - "default": false, - "description": "Supports text embedding" - }, - "imageGeneration": { - "type": "boolean", - "default": false, - "description": "Supports image generation" - }, - "imageUnderstanding": { - "type": "boolean", - "default": false, - "description": "Supports image understanding" - }, - "functionCalling": { - "type": "boolean", - "default": false, - "description": "Supports function calling" - }, - "codeGeneration": { - "type": "boolean", - "default": false, - "description": "Supports code generation" - }, - "reasoning": { - "type": "boolean", - "default": false, - "description": "Supports advanced reasoning" - } - }, - "additionalProperties": false - }, - "limits": { - "type": "object", - "properties": { - "maxTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum tokens per request" - }, - "contextWindow": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Context window size" - }, - "maxOutputTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum output tokens" - }, - "rateLimit": { - "type": "object", - "properties": { - "requestsPerMinute": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "tokensPerMinute": { - "type": "integer", - "exclusiveMinimum": 0 - } - }, - "additionalProperties": false - } - }, - "required": [ - "maxTokens", - "contextWindow" - ], - "additionalProperties": false - }, - "pricing": { - "type": "object", - "properties": { - "currency": { - "type": "string", - "default": "USD" - }, - "inputCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K input tokens" - }, - "outputCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K output tokens" - }, - "embeddingCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K embedding tokens" - } - }, - "additionalProperties": false - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "Custom API endpoint" - }, - "apiKey": { - "type": "string", - "description": "API key or reference to secret" - }, - "region": { - "type": "string", - "description": "Deployment region (e.g., \"us-east-1\")" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for categorization" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "recommendedFor": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Use case recommendations" - } - }, - "required": [ - "id", - "name", - "version", - "provider", - "capabilities", - "limits" - ], - "additionalProperties": false - } + "ModelConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ModelDrift.json b/packages/spec/json-schema/ai/ModelDrift.json index 8e4c9f6d8..626d82a86 100644 --- a/packages/spec/json-schema/ai/ModelDrift.json +++ b/packages/spec/json-schema/ai/ModelDrift.json @@ -1,73 +1,7 @@ { "$ref": "#/definitions/ModelDrift", "definitions": { - "ModelDrift": { - "type": "object", - "properties": { - "modelName": { - "type": "string" - }, - "driftType": { - "type": "string", - "enum": [ - "feature_drift", - "prediction_drift", - "performance_drift" - ] - }, - "severity": { - "type": "string", - "enum": [ - "low", - "medium", - "high", - "critical" - ] - }, - "detectedAt": { - "type": "string", - "description": "ISO timestamp" - }, - "metrics": { - "type": "object", - "properties": { - "driftScore": { - "type": "number", - "description": "Drift magnitude (0-1)" - }, - "affectedFeatures": { - "type": "array", - "items": { - "type": "string" - } - }, - "performanceChange": { - "type": "number", - "description": "Change in performance metric" - } - }, - "required": [ - "driftScore" - ], - "additionalProperties": false - }, - "recommendation": { - "type": "string" - }, - "autoRetrainTriggered": { - "type": "boolean", - "default": false - } - }, - "required": [ - "modelName", - "driftType", - "severity", - "detectedAt", - "metrics" - ], - "additionalProperties": false - } + "ModelDrift": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ModelFeature.json b/packages/spec/json-schema/ai/ModelFeature.json index 37726d3fd..08fa0b11e 100644 --- a/packages/spec/json-schema/ai/ModelFeature.json +++ b/packages/spec/json-schema/ai/ModelFeature.json @@ -1,71 +1,7 @@ { "$ref": "#/definitions/ModelFeature", "definitions": { - "ModelFeature": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Feature name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label" - }, - "field": { - "type": "string", - "description": "Source field name" - }, - "object": { - "type": "string", - "description": "Source object (if different from target)" - }, - "dataType": { - "type": "string", - "enum": [ - "numeric", - "categorical", - "text", - "datetime", - "boolean" - ], - "description": "Feature data type" - }, - "transformation": { - "type": "string", - "enum": [ - "none", - "normalize", - "standardize", - "one_hot_encode", - "label_encode", - "log_transform", - "binning", - "embedding" - ], - "default": "none" - }, - "required": { - "type": "boolean", - "default": true - }, - "defaultValue": {}, - "description": { - "type": "string" - }, - "importance": { - "type": "number", - "description": "Feature importance score (0-1)" - } - }, - "required": [ - "name", - "field", - "dataType" - ], - "additionalProperties": false - } + "ModelFeature": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ModelLimits.json b/packages/spec/json-schema/ai/ModelLimits.json index 551aeedc1..f3b78b577 100644 --- a/packages/spec/json-schema/ai/ModelLimits.json +++ b/packages/spec/json-schema/ai/ModelLimits.json @@ -1,45 +1,7 @@ { "$ref": "#/definitions/ModelLimits", "definitions": { - "ModelLimits": { - "type": "object", - "properties": { - "maxTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum tokens per request" - }, - "contextWindow": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Context window size" - }, - "maxOutputTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum output tokens" - }, - "rateLimit": { - "type": "object", - "properties": { - "requestsPerMinute": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "tokensPerMinute": { - "type": "integer", - "exclusiveMinimum": 0 - } - }, - "additionalProperties": false - } - }, - "required": [ - "maxTokens", - "contextWindow" - ], - "additionalProperties": false - } + "ModelLimits": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ModelPricing.json b/packages/spec/json-schema/ai/ModelPricing.json index c6392cf10..cda5ce8ff 100644 --- a/packages/spec/json-schema/ai/ModelPricing.json +++ b/packages/spec/json-schema/ai/ModelPricing.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/ModelPricing", "definitions": { - "ModelPricing": { - "type": "object", - "properties": { - "currency": { - "type": "string", - "default": "USD" - }, - "inputCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K input tokens" - }, - "outputCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K output tokens" - }, - "embeddingCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K embedding tokens" - } - }, - "additionalProperties": false - } + "ModelPricing": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ModelProvider.json b/packages/spec/json-schema/ai/ModelProvider.json index 6d0535e18..10bf22a6a 100644 --- a/packages/spec/json-schema/ai/ModelProvider.json +++ b/packages/spec/json-schema/ai/ModelProvider.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/ModelProvider", "definitions": { - "ModelProvider": { - "type": "string", - "enum": [ - "openai", - "azure_openai", - "anthropic", - "google", - "cohere", - "huggingface", - "local", - "custom" - ] - } + "ModelProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ModelRegistry.json b/packages/spec/json-schema/ai/ModelRegistry.json index 1d1417b00..f8ed8346a 100644 --- a/packages/spec/json-schema/ai/ModelRegistry.json +++ b/packages/spec/json-schema/ai/ModelRegistry.json @@ -1,427 +1,7 @@ { "$ref": "#/definitions/ModelRegistry", "definitions": { - "ModelRegistry": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Registry name" - }, - "models": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "model": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique model identifier" - }, - "name": { - "type": "string", - "description": "Model display name" - }, - "version": { - "type": "string", - "description": "Model version (e.g., \"gpt-4-turbo-2024-04-09\")" - }, - "provider": { - "type": "string", - "enum": [ - "openai", - "azure_openai", - "anthropic", - "google", - "cohere", - "huggingface", - "local", - "custom" - ] - }, - "capabilities": { - "type": "object", - "properties": { - "textGeneration": { - "type": "boolean", - "default": true, - "description": "Supports text generation" - }, - "textEmbedding": { - "type": "boolean", - "default": false, - "description": "Supports text embedding" - }, - "imageGeneration": { - "type": "boolean", - "default": false, - "description": "Supports image generation" - }, - "imageUnderstanding": { - "type": "boolean", - "default": false, - "description": "Supports image understanding" - }, - "functionCalling": { - "type": "boolean", - "default": false, - "description": "Supports function calling" - }, - "codeGeneration": { - "type": "boolean", - "default": false, - "description": "Supports code generation" - }, - "reasoning": { - "type": "boolean", - "default": false, - "description": "Supports advanced reasoning" - } - }, - "additionalProperties": false - }, - "limits": { - "type": "object", - "properties": { - "maxTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum tokens per request" - }, - "contextWindow": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Context window size" - }, - "maxOutputTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum output tokens" - }, - "rateLimit": { - "type": "object", - "properties": { - "requestsPerMinute": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "tokensPerMinute": { - "type": "integer", - "exclusiveMinimum": 0 - } - }, - "additionalProperties": false - } - }, - "required": [ - "maxTokens", - "contextWindow" - ], - "additionalProperties": false - }, - "pricing": { - "type": "object", - "properties": { - "currency": { - "type": "string", - "default": "USD" - }, - "inputCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K input tokens" - }, - "outputCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K output tokens" - }, - "embeddingCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K embedding tokens" - } - }, - "additionalProperties": false - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "Custom API endpoint" - }, - "apiKey": { - "type": "string", - "description": "API key or reference to secret" - }, - "region": { - "type": "string", - "description": "Deployment region (e.g., \"us-east-1\")" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for categorization" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "recommendedFor": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Use case recommendations" - } - }, - "required": [ - "id", - "name", - "version", - "provider", - "capabilities", - "limits" - ], - "additionalProperties": false - }, - "status": { - "type": "string", - "enum": [ - "active", - "deprecated", - "experimental", - "disabled" - ], - "default": "active" - }, - "priority": { - "type": "integer", - "default": 0, - "description": "Priority for model selection" - }, - "fallbackModels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fallback model IDs" - }, - "healthCheck": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "intervalSeconds": { - "type": "integer", - "default": 300 - }, - "lastChecked": { - "type": "string", - "description": "ISO timestamp" - }, - "status": { - "type": "string", - "enum": [ - "healthy", - "unhealthy", - "unknown" - ], - "default": "unknown" - } - }, - "additionalProperties": false - } - }, - "required": [ - "model" - ], - "additionalProperties": false - }, - "description": "Model entries by ID" - }, - "promptTemplates": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique template identifier" - }, - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Template name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display name" - }, - "system": { - "type": "string", - "description": "System prompt" - }, - "user": { - "type": "string", - "description": "User prompt template with variables" - }, - "assistant": { - "type": "string", - "description": "Assistant message prefix" - }, - "variables": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Variable name (e.g., \"user_name\", \"context\")" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "object", - "array" - ], - "default": "string" - }, - "required": { - "type": "boolean", - "default": false - }, - "defaultValue": {}, - "description": { - "type": "string" - }, - "validation": { - "type": "object", - "properties": { - "minLength": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "pattern": { - "type": "string" - }, - "enum": { - "type": "array" - } - }, - "additionalProperties": false - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Template variables" - }, - "modelId": { - "type": "string", - "description": "Recommended model ID" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "maxTokens": { - "type": "number" - }, - "topP": { - "type": "number" - }, - "frequencyPenalty": { - "type": "number" - }, - "presencePenalty": { - "type": "number" - }, - "stopSequences": { - "type": "array", - "items": { - "type": "string" - } - }, - "version": { - "type": "string", - "default": "1.0.0" - }, - "description": { - "type": "string" - }, - "category": { - "type": "string", - "description": "Template category (e.g., \"code_generation\", \"support\")" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "examples": { - "type": "array", - "items": { - "type": "object", - "properties": { - "input": { - "type": "object", - "additionalProperties": {}, - "description": "Example variable values" - }, - "output": { - "type": "string", - "description": "Expected output" - } - }, - "required": [ - "input", - "output" - ], - "additionalProperties": false - } - } - }, - "required": [ - "id", - "name", - "label", - "user" - ], - "additionalProperties": false - }, - "description": "Prompt templates by name" - }, - "defaultModel": { - "type": "string", - "description": "Default model ID" - }, - "enableAutoFallback": { - "type": "boolean", - "default": true, - "description": "Auto-fallback on errors" - } - }, - "required": [ - "name", - "models" - ], - "additionalProperties": false - } + "ModelRegistry": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ModelRegistryEntry.json b/packages/spec/json-schema/ai/ModelRegistryEntry.json index 9d43bb947..622a22976 100644 --- a/packages/spec/json-schema/ai/ModelRegistryEntry.json +++ b/packages/spec/json-schema/ai/ModelRegistryEntry.json @@ -1,239 +1,7 @@ { "$ref": "#/definitions/ModelRegistryEntry", "definitions": { - "ModelRegistryEntry": { - "type": "object", - "properties": { - "model": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique model identifier" - }, - "name": { - "type": "string", - "description": "Model display name" - }, - "version": { - "type": "string", - "description": "Model version (e.g., \"gpt-4-turbo-2024-04-09\")" - }, - "provider": { - "type": "string", - "enum": [ - "openai", - "azure_openai", - "anthropic", - "google", - "cohere", - "huggingface", - "local", - "custom" - ] - }, - "capabilities": { - "type": "object", - "properties": { - "textGeneration": { - "type": "boolean", - "default": true, - "description": "Supports text generation" - }, - "textEmbedding": { - "type": "boolean", - "default": false, - "description": "Supports text embedding" - }, - "imageGeneration": { - "type": "boolean", - "default": false, - "description": "Supports image generation" - }, - "imageUnderstanding": { - "type": "boolean", - "default": false, - "description": "Supports image understanding" - }, - "functionCalling": { - "type": "boolean", - "default": false, - "description": "Supports function calling" - }, - "codeGeneration": { - "type": "boolean", - "default": false, - "description": "Supports code generation" - }, - "reasoning": { - "type": "boolean", - "default": false, - "description": "Supports advanced reasoning" - } - }, - "additionalProperties": false - }, - "limits": { - "type": "object", - "properties": { - "maxTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum tokens per request" - }, - "contextWindow": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Context window size" - }, - "maxOutputTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum output tokens" - }, - "rateLimit": { - "type": "object", - "properties": { - "requestsPerMinute": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "tokensPerMinute": { - "type": "integer", - "exclusiveMinimum": 0 - } - }, - "additionalProperties": false - } - }, - "required": [ - "maxTokens", - "contextWindow" - ], - "additionalProperties": false - }, - "pricing": { - "type": "object", - "properties": { - "currency": { - "type": "string", - "default": "USD" - }, - "inputCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K input tokens" - }, - "outputCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K output tokens" - }, - "embeddingCostPer1kTokens": { - "type": "number", - "description": "Cost per 1K embedding tokens" - } - }, - "additionalProperties": false - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "Custom API endpoint" - }, - "apiKey": { - "type": "string", - "description": "API key or reference to secret" - }, - "region": { - "type": "string", - "description": "Deployment region (e.g., \"us-east-1\")" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for categorization" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "recommendedFor": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Use case recommendations" - } - }, - "required": [ - "id", - "name", - "version", - "provider", - "capabilities", - "limits" - ], - "additionalProperties": false - }, - "status": { - "type": "string", - "enum": [ - "active", - "deprecated", - "experimental", - "disabled" - ], - "default": "active" - }, - "priority": { - "type": "integer", - "default": 0, - "description": "Priority for model selection" - }, - "fallbackModels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fallback model IDs" - }, - "healthCheck": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "intervalSeconds": { - "type": "integer", - "default": 300 - }, - "lastChecked": { - "type": "string", - "description": "ISO timestamp" - }, - "status": { - "type": "string", - "enum": [ - "healthy", - "unhealthy", - "unknown" - ], - "default": "unknown" - } - }, - "additionalProperties": false - } - }, - "required": [ - "model" - ], - "additionalProperties": false - } + "ModelRegistryEntry": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ModelSelectionCriteria.json b/packages/spec/json-schema/ai/ModelSelectionCriteria.json index b0440799c..b05571016 100644 --- a/packages/spec/json-schema/ai/ModelSelectionCriteria.json +++ b/packages/spec/json-schema/ai/ModelSelectionCriteria.json @@ -1,50 +1,7 @@ { "$ref": "#/definitions/ModelSelectionCriteria", "definitions": { - "ModelSelectionCriteria": { - "type": "object", - "properties": { - "capabilities": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required capabilities" - }, - "maxCostPer1kTokens": { - "type": "number", - "description": "Maximum acceptable cost" - }, - "minContextWindow": { - "type": "number", - "description": "Minimum context window size" - }, - "provider": { - "type": "string", - "enum": [ - "openai", - "azure_openai", - "anthropic", - "google", - "cohere", - "huggingface", - "local", - "custom" - ] - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "excludeDeprecated": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - } + "ModelSelectionCriteria": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/MonitoringConfig.json b/packages/spec/json-schema/ai/MonitoringConfig.json index e76828cc4..4f10dcea7 100644 --- a/packages/spec/json-schema/ai/MonitoringConfig.json +++ b/packages/spec/json-schema/ai/MonitoringConfig.json @@ -1,80 +1,7 @@ { "$ref": "#/definitions/MonitoringConfig", "definitions": { - "MonitoringConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable monitoring" - }, - "metrics": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "performance", - "errors", - "usage", - "availability", - "latency" - ] - }, - "default": [ - "performance", - "errors", - "availability" - ], - "description": "Metrics to monitor" - }, - "alerts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Alert name" - }, - "metric": { - "type": "string", - "description": "Metric to monitor" - }, - "threshold": { - "type": "number", - "description": "Alert threshold" - }, - "severity": { - "type": "string", - "enum": [ - "info", - "warning", - "critical" - ], - "description": "Alert severity" - } - }, - "required": [ - "name", - "metric", - "threshold", - "severity" - ], - "additionalProperties": false - }, - "description": "Alert configurations" - }, - "integrations": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Monitoring service integrations" - } - }, - "additionalProperties": false - } + "MonitoringConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/NLQAnalytics.json b/packages/spec/json-schema/ai/NLQAnalytics.json index 156dfa6cd..30479fb0c 100644 --- a/packages/spec/json-schema/ai/NLQAnalytics.json +++ b/packages/spec/json-schema/ai/NLQAnalytics.json @@ -1,106 +1,7 @@ { "$ref": "#/definitions/NLQAnalytics", "definitions": { - "NLQAnalytics": { - "type": "object", - "properties": { - "totalQueries": { - "type": "integer" - }, - "successfulQueries": { - "type": "integer" - }, - "failedQueries": { - "type": "integer" - }, - "averageConfidence": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "intentDistribution": { - "type": "object", - "additionalProperties": { - "type": "integer" - }, - "description": "Count by intent type" - }, - "topQueries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "query": { - "type": "string" - }, - "count": { - "type": "integer" - }, - "averageConfidence": { - "type": "number" - } - }, - "required": [ - "query", - "count", - "averageConfidence" - ], - "additionalProperties": false - } - }, - "averageParseTime": { - "type": "number", - "description": "Average parse time in milliseconds" - }, - "averageExecutionTime": { - "type": "number" - }, - "lowConfidenceQueries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "query": { - "type": "string" - }, - "confidence": { - "type": "number" - }, - "timestamp": { - "type": "string" - } - }, - "required": [ - "query", - "confidence", - "timestamp" - ], - "additionalProperties": false - } - }, - "startDate": { - "type": "string", - "description": "ISO timestamp" - }, - "endDate": { - "type": "string", - "description": "ISO timestamp" - } - }, - "required": [ - "totalQueries", - "successfulQueries", - "failedQueries", - "averageConfidence", - "intentDistribution", - "topQueries", - "averageParseTime", - "lowConfidenceQueries", - "startDate", - "endDate" - ], - "additionalProperties": false - } + "NLQAnalytics": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/NLQFieldMapping.json b/packages/spec/json-schema/ai/NLQFieldMapping.json index 1b8d1069d..608f2067e 100644 --- a/packages/spec/json-schema/ai/NLQFieldMapping.json +++ b/packages/spec/json-schema/ai/NLQFieldMapping.json @@ -1,40 +1,7 @@ { "$ref": "#/definitions/NLQFieldMapping", "definitions": { - "NLQFieldMapping": { - "type": "object", - "properties": { - "naturalLanguage": { - "type": "string", - "description": "NL field name (e.g., \"customer name\")" - }, - "objectField": { - "type": "string", - "description": "Actual field name (e.g., \"account.name\")" - }, - "object": { - "type": "string", - "description": "Object name" - }, - "field": { - "type": "string", - "description": "Field name" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1 - } - }, - "required": [ - "naturalLanguage", - "objectField", - "object", - "field", - "confidence" - ], - "additionalProperties": false - } + "NLQFieldMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/NLQModelConfig.json b/packages/spec/json-schema/ai/NLQModelConfig.json index 9b732b728..4e2f57c93 100644 --- a/packages/spec/json-schema/ai/NLQModelConfig.json +++ b/packages/spec/json-schema/ai/NLQModelConfig.json @@ -1,78 +1,7 @@ { "$ref": "#/definitions/NLQModelConfig", "definitions": { - "NLQModelConfig": { - "type": "object", - "properties": { - "modelId": { - "type": "string", - "description": "Model from registry" - }, - "systemPrompt": { - "type": "string", - "description": "System prompt override" - }, - "includeSchema": { - "type": "boolean", - "default": true, - "description": "Include object schema in prompt" - }, - "includeExamples": { - "type": "boolean", - "default": true, - "description": "Include examples in prompt" - }, - "enableIntentDetection": { - "type": "boolean", - "default": true - }, - "intentThreshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.7 - }, - "enableEntityRecognition": { - "type": "boolean", - "default": true - }, - "entityRecognitionModel": { - "type": "string" - }, - "enableFuzzyMatching": { - "type": "boolean", - "default": true, - "description": "Fuzzy match field names" - }, - "fuzzyMatchThreshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.8 - }, - "enableTimeframeDetection": { - "type": "boolean", - "default": true - }, - "defaultTimeframe": { - "type": "string", - "description": "Default timeframe if not specified" - }, - "enableCaching": { - "type": "boolean", - "default": true - }, - "cacheTTL": { - "type": "integer", - "default": 3600, - "description": "Cache TTL in seconds" - } - }, - "required": [ - "modelId" - ], - "additionalProperties": false - } + "NLQModelConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/NLQParseResult.json b/packages/spec/json-schema/ai/NLQParseResult.json index f90108e9f..9ff6935d4 100644 --- a/packages/spec/json-schema/ai/NLQParseResult.json +++ b/packages/spec/json-schema/ai/NLQParseResult.json @@ -1,252 +1,7 @@ { "$ref": "#/definitions/NLQParseResult", "definitions": { - "NLQParseResult": { - "type": "object", - "properties": { - "originalQuery": { - "type": "string" - }, - "intent": { - "type": "string", - "enum": [ - "select", - "aggregate", - "filter", - "sort", - "compare", - "trend", - "insight", - "create", - "update", - "delete" - ] - }, - "intentConfidence": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "entities": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "object", - "field", - "value", - "operator", - "function", - "timeframe" - ] - }, - "text": { - "type": "string", - "description": "Original text from query" - }, - "value": { - "description": "Normalized value" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Confidence score" - }, - "span": { - "type": "array", - "minItems": 2, - "maxItems": 2, - "items": [ - { - "type": "number" - }, - { - "type": "number" - } - ], - "description": "Character span in query" - } - }, - "required": [ - "type", - "text", - "confidence" - ], - "additionalProperties": false - } - }, - "targetObject": { - "type": "string", - "description": "Primary object to query" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "naturalLanguage": { - "type": "string", - "description": "NL field name (e.g., \"customer name\")" - }, - "objectField": { - "type": "string", - "description": "Actual field name (e.g., \"account.name\")" - }, - "object": { - "type": "string", - "description": "Object name" - }, - "field": { - "type": "string", - "description": "Field name" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1 - } - }, - "required": [ - "naturalLanguage", - "objectField", - "object", - "field", - "confidence" - ], - "additionalProperties": false - } - }, - "timeframe": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "absolute", - "relative" - ] - }, - "start": { - "type": "string", - "description": "Start date (ISO format)" - }, - "end": { - "type": "string", - "description": "End date (ISO format)" - }, - "relative": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "hour", - "day", - "week", - "month", - "quarter", - "year" - ] - }, - "value": { - "type": "integer" - }, - "direction": { - "type": "string", - "enum": [ - "past", - "future", - "current" - ], - "default": "past" - } - }, - "required": [ - "unit", - "value" - ], - "additionalProperties": false - }, - "text": { - "type": "string", - "description": "Original timeframe text" - } - }, - "required": [ - "type", - "text" - ], - "additionalProperties": false - }, - "ast": { - "description": "Generated ObjectQL AST" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Overall confidence" - }, - "ambiguities": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "description": { - "type": "string" - }, - "suggestions": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "type", - "description" - ], - "additionalProperties": false - }, - "description": "Detected ambiguities requiring clarification" - }, - "alternatives": { - "type": "array", - "items": { - "type": "object", - "properties": { - "interpretation": { - "type": "string" - }, - "confidence": { - "type": "number" - }, - "ast": {} - }, - "required": [ - "interpretation", - "confidence" - ], - "additionalProperties": false - } - } - }, - "required": [ - "originalQuery", - "intent", - "intentConfidence", - "entities", - "confidence" - ], - "additionalProperties": false - } + "NLQParseResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/NLQRequest.json b/packages/spec/json-schema/ai/NLQRequest.json index 68a5909c8..98738a5d0 100644 --- a/packages/spec/json-schema/ai/NLQRequest.json +++ b/packages/spec/json-schema/ai/NLQRequest.json @@ -1,110 +1,7 @@ { "$ref": "#/definitions/NLQRequest", "definitions": { - "NLQRequest": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Natural language query" - }, - "context": { - "type": "object", - "properties": { - "userId": { - "type": "string" - }, - "userRole": { - "type": "string" - }, - "currentObject": { - "type": "string", - "description": "Current object being viewed" - }, - "currentRecordId": { - "type": "string", - "description": "Current record ID" - }, - "conversationHistory": { - "type": "array", - "items": { - "type": "object", - "properties": { - "query": { - "type": "string" - }, - "timestamp": { - "type": "string" - }, - "intent": { - "type": "string", - "enum": [ - "select", - "aggregate", - "filter", - "sort", - "compare", - "trend", - "insight", - "create", - "update", - "delete" - ] - } - }, - "required": [ - "query", - "timestamp" - ], - "additionalProperties": false - } - }, - "defaultLimit": { - "type": "integer", - "default": 100 - }, - "timezone": { - "type": "string", - "default": "UTC" - }, - "locale": { - "type": "string", - "default": "en-US" - } - }, - "additionalProperties": false - }, - "includeAlternatives": { - "type": "boolean", - "default": false, - "description": "Include alternative interpretations" - }, - "maxAlternatives": { - "type": "integer", - "default": 3 - }, - "minConfidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.5, - "description": "Minimum confidence threshold" - }, - "executeQuery": { - "type": "boolean", - "default": false, - "description": "Execute query and return results" - }, - "maxResults": { - "type": "integer", - "description": "Maximum results to return" - } - }, - "required": [ - "query" - ], - "additionalProperties": false - } + "NLQRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/NLQResponse.json b/packages/spec/json-schema/ai/NLQResponse.json index 574ce7a8e..1ac985c13 100644 --- a/packages/spec/json-schema/ai/NLQResponse.json +++ b/packages/spec/json-schema/ai/NLQResponse.json @@ -1,320 +1,7 @@ { "$ref": "#/definitions/NLQResponse", "definitions": { - "NLQResponse": { - "type": "object", - "properties": { - "parseResult": { - "type": "object", - "properties": { - "originalQuery": { - "type": "string" - }, - "intent": { - "type": "string", - "enum": [ - "select", - "aggregate", - "filter", - "sort", - "compare", - "trend", - "insight", - "create", - "update", - "delete" - ] - }, - "intentConfidence": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "entities": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "object", - "field", - "value", - "operator", - "function", - "timeframe" - ] - }, - "text": { - "type": "string", - "description": "Original text from query" - }, - "value": { - "description": "Normalized value" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Confidence score" - }, - "span": { - "type": "array", - "minItems": 2, - "maxItems": 2, - "items": [ - { - "type": "number" - }, - { - "type": "number" - } - ], - "description": "Character span in query" - } - }, - "required": [ - "type", - "text", - "confidence" - ], - "additionalProperties": false - } - }, - "targetObject": { - "type": "string", - "description": "Primary object to query" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "naturalLanguage": { - "type": "string", - "description": "NL field name (e.g., \"customer name\")" - }, - "objectField": { - "type": "string", - "description": "Actual field name (e.g., \"account.name\")" - }, - "object": { - "type": "string", - "description": "Object name" - }, - "field": { - "type": "string", - "description": "Field name" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1 - } - }, - "required": [ - "naturalLanguage", - "objectField", - "object", - "field", - "confidence" - ], - "additionalProperties": false - } - }, - "timeframe": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "absolute", - "relative" - ] - }, - "start": { - "type": "string", - "description": "Start date (ISO format)" - }, - "end": { - "type": "string", - "description": "End date (ISO format)" - }, - "relative": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "hour", - "day", - "week", - "month", - "quarter", - "year" - ] - }, - "value": { - "type": "integer" - }, - "direction": { - "type": "string", - "enum": [ - "past", - "future", - "current" - ], - "default": "past" - } - }, - "required": [ - "unit", - "value" - ], - "additionalProperties": false - }, - "text": { - "type": "string", - "description": "Original timeframe text" - } - }, - "required": [ - "type", - "text" - ], - "additionalProperties": false - }, - "ast": { - "description": "Generated ObjectQL AST" - }, - "confidence": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Overall confidence" - }, - "ambiguities": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "description": { - "type": "string" - }, - "suggestions": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "type", - "description" - ], - "additionalProperties": false - }, - "description": "Detected ambiguities requiring clarification" - }, - "alternatives": { - "type": "array", - "items": { - "type": "object", - "properties": { - "interpretation": { - "type": "string" - }, - "confidence": { - "type": "number" - }, - "ast": {} - }, - "required": [ - "interpretation", - "confidence" - ], - "additionalProperties": false - } - } - }, - "required": [ - "originalQuery", - "intent", - "intentConfidence", - "entities", - "confidence" - ], - "additionalProperties": false - }, - "results": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - }, - "description": "Query results" - }, - "totalCount": { - "type": "integer" - }, - "executionTime": { - "type": "number", - "description": "Execution time in milliseconds" - }, - "needsClarification": { - "type": "boolean", - "description": "Whether query needs clarification" - }, - "tokens": { - "type": "object", - "properties": { - "prompt": { - "type": "integer", - "minimum": 0, - "description": "Input tokens" - }, - "completion": { - "type": "integer", - "minimum": 0, - "description": "Output tokens" - }, - "total": { - "type": "integer", - "minimum": 0, - "description": "Total tokens" - } - }, - "required": [ - "prompt", - "completion", - "total" - ], - "additionalProperties": false, - "description": "Token usage for this query" - }, - "cost": { - "type": "number", - "minimum": 0, - "description": "Cost for this query in USD" - }, - "suggestions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Query refinement suggestions" - } - }, - "required": [ - "parseResult", - "needsClarification" - ], - "additionalProperties": false - } + "NLQResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/NLQTrainingExample.json b/packages/spec/json-schema/ai/NLQTrainingExample.json index 2b6538b0e..56dab8cb9 100644 --- a/packages/spec/json-schema/ai/NLQTrainingExample.json +++ b/packages/spec/json-schema/ai/NLQTrainingExample.json @@ -1,120 +1,7 @@ { "$ref": "#/definitions/NLQTrainingExample", "definitions": { - "NLQTrainingExample": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Natural language query" - }, - "context": { - "type": "object", - "properties": { - "userId": { - "type": "string" - }, - "userRole": { - "type": "string" - }, - "currentObject": { - "type": "string", - "description": "Current object being viewed" - }, - "currentRecordId": { - "type": "string", - "description": "Current record ID" - }, - "conversationHistory": { - "type": "array", - "items": { - "type": "object", - "properties": { - "query": { - "type": "string" - }, - "timestamp": { - "type": "string" - }, - "intent": { - "type": "string", - "enum": [ - "select", - "aggregate", - "filter", - "sort", - "compare", - "trend", - "insight", - "create", - "update", - "delete" - ] - } - }, - "required": [ - "query", - "timestamp" - ], - "additionalProperties": false - } - }, - "defaultLimit": { - "type": "integer", - "default": 100 - }, - "timezone": { - "type": "string", - "default": "UTC" - }, - "locale": { - "type": "string", - "default": "en-US" - } - }, - "additionalProperties": false - }, - "expectedIntent": { - "type": "string", - "enum": [ - "select", - "aggregate", - "filter", - "sort", - "compare", - "trend", - "insight", - "create", - "update", - "delete" - ] - }, - "expectedObject": { - "type": "string" - }, - "expectedAST": { - "description": "Expected ObjectQL AST" - }, - "category": { - "type": "string", - "description": "Example category" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "notes": { - "type": "string" - } - }, - "required": [ - "query", - "expectedIntent" - ], - "additionalProperties": false - } + "NLQTrainingExample": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/NavigationActionParams.json b/packages/spec/json-schema/ai/NavigationActionParams.json index f6ff94eb0..af3c63943 100644 --- a/packages/spec/json-schema/ai/NavigationActionParams.json +++ b/packages/spec/json-schema/ai/NavigationActionParams.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/NavigationActionParams", "definitions": { - "NavigationActionParams": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (for object-specific navigation)" - }, - "recordId": { - "type": "string", - "description": "Record ID (for detail page)" - }, - "viewType": { - "type": "string", - "enum": [ - "list", - "form", - "detail", - "kanban", - "calendar", - "gantt" - ] - }, - "dashboardId": { - "type": "string", - "description": "Dashboard ID" - }, - "reportId": { - "type": "string", - "description": "Report ID" - }, - "appName": { - "type": "string", - "description": "App name" - }, - "mode": { - "type": "string", - "enum": [ - "new", - "edit", - "view" - ], - "description": "Form mode" - }, - "openInNewTab": { - "type": "boolean", - "description": "Open in new tab" - } - }, - "additionalProperties": false - } + "NavigationActionParams": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/NavigationActionType.json b/packages/spec/json-schema/ai/NavigationActionType.json index 0b1bbabda..b80bf4845 100644 --- a/packages/spec/json-schema/ai/NavigationActionType.json +++ b/packages/spec/json-schema/ai/NavigationActionType.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/NavigationActionType", "definitions": { - "NavigationActionType": { - "type": "string", - "enum": [ - "navigate_to_object_list", - "navigate_to_object_form", - "navigate_to_record_detail", - "navigate_to_dashboard", - "navigate_to_report", - "navigate_to_app", - "navigate_back", - "navigate_home", - "open_tab", - "close_tab" - ] - } + "NavigationActionType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/PipelineStage.json b/packages/spec/json-schema/ai/PipelineStage.json index 2f0723de3..2c328723d 100644 --- a/packages/spec/json-schema/ai/PipelineStage.json +++ b/packages/spec/json-schema/ai/PipelineStage.json @@ -1,77 +1,7 @@ { "$ref": "#/definitions/PipelineStage", "definitions": { - "PipelineStage": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Pipeline stage name" - }, - "type": { - "type": "string", - "enum": [ - "build", - "test", - "lint", - "security_scan", - "deploy", - "smoke_test", - "rollback" - ], - "description": "Stage type" - }, - "order": { - "type": "integer", - "minimum": 0, - "description": "Execution order" - }, - "parallel": { - "type": "boolean", - "default": false, - "description": "Can run in parallel with other stages" - }, - "commands": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Commands to execute" - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Stage-specific environment variables" - }, - "timeout": { - "type": "integer", - "minimum": 60, - "default": 600, - "description": "Stage timeout in seconds" - }, - "retryOnFailure": { - "type": "boolean", - "default": false, - "description": "Retry stage on failure" - }, - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 5, - "default": 0, - "description": "Maximum retry attempts" - } - }, - "required": [ - "name", - "type", - "order", - "commands" - ], - "additionalProperties": false - } + "PipelineStage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/PostProcessingAction.json b/packages/spec/json-schema/ai/PostProcessingAction.json index 0729bc630..13b7f20fa 100644 --- a/packages/spec/json-schema/ai/PostProcessingAction.json +++ b/packages/spec/json-schema/ai/PostProcessingAction.json @@ -1,41 +1,7 @@ { "$ref": "#/definitions/PostProcessingAction", "definitions": { - "PostProcessingAction": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "send_email", - "create_record", - "update_related", - "trigger_flow", - "webhook" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action-specific configuration" - }, - "condition": { - "type": "string", - "description": "Execute only if condition is TRUE" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - } + "PostProcessingAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/PredictionRequest.json b/packages/spec/json-schema/ai/PredictionRequest.json index 1b7d8b71a..9f3de4cd9 100644 --- a/packages/spec/json-schema/ai/PredictionRequest.json +++ b/packages/spec/json-schema/ai/PredictionRequest.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/PredictionRequest", "definitions": { - "PredictionRequest": { - "type": "object", - "properties": { - "modelName": { - "type": "string", - "description": "Model to use for prediction" - }, - "recordIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Specific records to predict (if not provided, uses all)" - }, - "inputData": { - "type": "object", - "additionalProperties": {}, - "description": "Direct input data (alternative to recordIds)" - }, - "returnConfidence": { - "type": "boolean", - "default": true - }, - "returnExplanation": { - "type": "boolean", - "default": false - } - }, - "required": [ - "modelName" - ], - "additionalProperties": false - } + "PredictionRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/PredictionResult.json b/packages/spec/json-schema/ai/PredictionResult.json index b19c96715..b1574f75c 100644 --- a/packages/spec/json-schema/ai/PredictionResult.json +++ b/packages/spec/json-schema/ai/PredictionResult.json @@ -1,114 +1,7 @@ { "$ref": "#/definitions/PredictionResult", "definitions": { - "PredictionResult": { - "type": "object", - "properties": { - "modelName": { - "type": "string" - }, - "modelVersion": { - "type": "string" - }, - "recordId": { - "type": "string" - }, - "prediction": { - "description": "The predicted value" - }, - "confidence": { - "type": "number", - "description": "Confidence score (0-1)" - }, - "probabilities": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Class probabilities (for classification)" - }, - "explanation": { - "type": "object", - "properties": { - "topFeatures": { - "type": "array", - "items": { - "type": "object", - "properties": { - "feature": { - "type": "string" - }, - "importance": { - "type": "number" - }, - "value": {} - }, - "required": [ - "feature", - "importance" - ], - "additionalProperties": false - } - }, - "reasoning": { - "type": "string" - } - }, - "additionalProperties": false - }, - "tokens": { - "type": "object", - "properties": { - "prompt": { - "type": "integer", - "minimum": 0, - "description": "Input tokens" - }, - "completion": { - "type": "integer", - "minimum": 0, - "description": "Output tokens" - }, - "total": { - "type": "integer", - "minimum": 0, - "description": "Total tokens" - } - }, - "required": [ - "prompt", - "completion", - "total" - ], - "additionalProperties": false, - "description": "Token usage for this prediction (if AI-powered)" - }, - "cost": { - "type": "number", - "minimum": 0, - "description": "Cost for this prediction in USD" - }, - "metadata": { - "type": "object", - "properties": { - "executionTime": { - "type": "number", - "description": "Execution time in milliseconds" - }, - "timestamp": { - "type": "string", - "description": "ISO timestamp" - } - }, - "additionalProperties": false - } - }, - "required": [ - "modelName", - "modelVersion" - ], - "additionalProperties": false - } + "PredictionResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/PredictiveModel.json b/packages/spec/json-schema/ai/PredictiveModel.json index 74fc3bbb5..169651ed1 100644 --- a/packages/spec/json-schema/ai/PredictiveModel.json +++ b/packages/spec/json-schema/ai/PredictiveModel.json @@ -1,445 +1,7 @@ { "$ref": "#/definitions/PredictiveModel", "definitions": { - "PredictiveModel": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Model unique identifier (snake_case)" - }, - "label": { - "type": "string", - "description": "Model display name" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "classification", - "regression", - "clustering", - "forecasting", - "anomaly_detection", - "recommendation", - "ranking" - ] - }, - "algorithm": { - "type": "string", - "description": "Specific algorithm (e.g., \"random_forest\", \"xgboost\", \"lstm\")" - }, - "objectName": { - "type": "string", - "description": "Target object for predictions" - }, - "target": { - "type": "string", - "description": "Target field to predict" - }, - "targetType": { - "type": "string", - "enum": [ - "numeric", - "categorical", - "binary" - ], - "description": "Target field type" - }, - "features": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Feature name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label" - }, - "field": { - "type": "string", - "description": "Source field name" - }, - "object": { - "type": "string", - "description": "Source object (if different from target)" - }, - "dataType": { - "type": "string", - "enum": [ - "numeric", - "categorical", - "text", - "datetime", - "boolean" - ], - "description": "Feature data type" - }, - "transformation": { - "type": "string", - "enum": [ - "none", - "normalize", - "standardize", - "one_hot_encode", - "label_encode", - "log_transform", - "binning", - "embedding" - ], - "default": "none" - }, - "required": { - "type": "boolean", - "default": true - }, - "defaultValue": {}, - "description": { - "type": "string" - }, - "importance": { - "type": "number", - "description": "Feature importance score (0-1)" - } - }, - "required": [ - "name", - "field", - "dataType" - ], - "additionalProperties": false - }, - "description": "Input features for the model" - }, - "hyperparameters": { - "type": "object", - "properties": { - "learningRate": { - "type": "number", - "description": "Learning rate for training" - }, - "epochs": { - "type": "integer", - "description": "Number of training epochs" - }, - "batchSize": { - "type": "integer", - "description": "Training batch size" - }, - "maxDepth": { - "type": "integer", - "description": "Maximum tree depth" - }, - "numTrees": { - "type": "integer", - "description": "Number of trees in ensemble" - }, - "minSamplesSplit": { - "type": "integer", - "description": "Minimum samples to split node" - }, - "minSamplesLeaf": { - "type": "integer", - "description": "Minimum samples in leaf node" - }, - "hiddenLayers": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "Hidden layer sizes" - }, - "activation": { - "type": "string", - "description": "Activation function" - }, - "dropout": { - "type": "number", - "description": "Dropout rate" - }, - "l1Regularization": { - "type": "number", - "description": "L1 regularization strength" - }, - "l2Regularization": { - "type": "number", - "description": "L2 regularization strength" - }, - "numClusters": { - "type": "integer", - "description": "Number of clusters (k-means, etc.)" - }, - "seasonalPeriod": { - "type": "integer", - "description": "Seasonal period for time series" - }, - "forecastHorizon": { - "type": "integer", - "description": "Number of periods to forecast" - }, - "custom": { - "type": "object", - "additionalProperties": {}, - "description": "Algorithm-specific parameters" - } - }, - "additionalProperties": false - }, - "training": { - "type": "object", - "properties": { - "trainingDataRatio": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.8, - "description": "Proportion of data for training" - }, - "validationDataRatio": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.1, - "description": "Proportion for validation" - }, - "testDataRatio": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.1, - "description": "Proportion for testing" - }, - "dataFilter": { - "type": "string", - "description": "Formula to filter training data" - }, - "minRecords": { - "type": "integer", - "default": 100, - "description": "Minimum records required" - }, - "maxRecords": { - "type": "integer", - "description": "Maximum records to use" - }, - "strategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "online", - "transfer_learning" - ], - "default": "full" - }, - "crossValidation": { - "type": "boolean", - "default": true - }, - "folds": { - "type": "integer", - "minimum": 2, - "maximum": 10, - "default": 5, - "description": "Cross-validation folds" - }, - "earlyStoppingEnabled": { - "type": "boolean", - "default": true - }, - "earlyStoppingPatience": { - "type": "integer", - "default": 10, - "description": "Epochs without improvement before stopping" - }, - "maxTrainingTime": { - "type": "number", - "description": "Maximum training time in seconds" - }, - "gpuEnabled": { - "type": "boolean", - "default": false - }, - "randomSeed": { - "type": "integer", - "description": "Random seed for reproducibility" - } - }, - "additionalProperties": false - }, - "metrics": { - "type": "object", - "properties": { - "accuracy": { - "type": "number" - }, - "precision": { - "type": "number" - }, - "recall": { - "type": "number" - }, - "f1Score": { - "type": "number" - }, - "auc": { - "type": "number", - "description": "Area Under ROC Curve" - }, - "mse": { - "type": "number", - "description": "Mean Squared Error" - }, - "rmse": { - "type": "number", - "description": "Root Mean Squared Error" - }, - "mae": { - "type": "number", - "description": "Mean Absolute Error" - }, - "r2Score": { - "type": "number", - "description": "R-squared score" - }, - "silhouetteScore": { - "type": "number" - }, - "daviesBouldinIndex": { - "type": "number" - }, - "mape": { - "type": "number", - "description": "Mean Absolute Percentage Error" - }, - "smape": { - "type": "number", - "description": "Symmetric MAPE" - }, - "custom": { - "type": "object", - "additionalProperties": { - "type": "number" - } - } - }, - "additionalProperties": false, - "description": "Evaluation metrics from last training" - }, - "deploymentStatus": { - "type": "string", - "enum": [ - "draft", - "training", - "trained", - "deployed", - "deprecated" - ], - "default": "draft" - }, - "version": { - "type": "string", - "default": "1.0.0" - }, - "predictionField": { - "type": "string", - "description": "Field to store predictions" - }, - "confidenceField": { - "type": "string", - "description": "Field to store confidence scores" - }, - "updateTrigger": { - "type": "string", - "enum": [ - "on_create", - "on_update", - "manual", - "scheduled" - ], - "default": "on_create" - }, - "autoRetrain": { - "type": "boolean", - "default": false - }, - "retrainSchedule": { - "type": "string", - "description": "Cron expression for auto-retraining" - }, - "retrainThreshold": { - "type": "number", - "description": "Performance threshold to trigger retraining" - }, - "enableExplainability": { - "type": "boolean", - "default": false, - "description": "Generate feature importance & explanations" - }, - "enableMonitoring": { - "type": "boolean", - "default": true - }, - "alertOnDrift": { - "type": "boolean", - "default": true, - "description": "Alert when model drift is detected" - }, - "active": { - "type": "boolean", - "default": true - }, - "owner": { - "type": "string", - "description": "User ID of model owner" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User/group IDs with access" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "category": { - "type": "string", - "description": "Model category (e.g., \"sales\", \"marketing\", \"operations\")" - }, - "lastTrainedAt": { - "type": "string", - "description": "ISO timestamp" - }, - "createdAt": { - "type": "string", - "description": "ISO timestamp" - }, - "updatedAt": { - "type": "string", - "description": "ISO timestamp" - } - }, - "required": [ - "name", - "label", - "type", - "objectName", - "target", - "features" - ], - "additionalProperties": false - } + "PredictiveModel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/PredictiveModelType.json b/packages/spec/json-schema/ai/PredictiveModelType.json index b836bade7..a36870e0d 100644 --- a/packages/spec/json-schema/ai/PredictiveModelType.json +++ b/packages/spec/json-schema/ai/PredictiveModelType.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/PredictiveModelType", "definitions": { - "PredictiveModelType": { - "type": "string", - "enum": [ - "classification", - "regression", - "clustering", - "forecasting", - "anomaly_detection", - "recommendation", - "ranking" - ] - } + "PredictiveModelType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/PromptTemplate.json b/packages/spec/json-schema/ai/PromptTemplate.json index 1e45abfab..f852e8844 100644 --- a/packages/spec/json-schema/ai/PromptTemplate.json +++ b/packages/spec/json-schema/ai/PromptTemplate.json @@ -1,163 +1,7 @@ { "$ref": "#/definitions/PromptTemplate", "definitions": { - "PromptTemplate": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique template identifier" - }, - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Template name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display name" - }, - "system": { - "type": "string", - "description": "System prompt" - }, - "user": { - "type": "string", - "description": "User prompt template with variables" - }, - "assistant": { - "type": "string", - "description": "Assistant message prefix" - }, - "variables": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Variable name (e.g., \"user_name\", \"context\")" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "object", - "array" - ], - "default": "string" - }, - "required": { - "type": "boolean", - "default": false - }, - "defaultValue": {}, - "description": { - "type": "string" - }, - "validation": { - "type": "object", - "properties": { - "minLength": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "pattern": { - "type": "string" - }, - "enum": { - "type": "array" - } - }, - "additionalProperties": false - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Template variables" - }, - "modelId": { - "type": "string", - "description": "Recommended model ID" - }, - "temperature": { - "type": "number", - "minimum": 0, - "maximum": 2 - }, - "maxTokens": { - "type": "number" - }, - "topP": { - "type": "number" - }, - "frequencyPenalty": { - "type": "number" - }, - "presencePenalty": { - "type": "number" - }, - "stopSequences": { - "type": "array", - "items": { - "type": "string" - } - }, - "version": { - "type": "string", - "default": "1.0.0" - }, - "description": { - "type": "string" - }, - "category": { - "type": "string", - "description": "Template category (e.g., \"code_generation\", \"support\")" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "examples": { - "type": "array", - "items": { - "type": "object", - "properties": { - "input": { - "type": "object", - "additionalProperties": {}, - "description": "Example variable values" - }, - "output": { - "type": "string", - "description": "Expected output" - } - }, - "required": [ - "input", - "output" - ], - "additionalProperties": false - } - } - }, - "required": [ - "id", - "name", - "label", - "user" - ], - "additionalProperties": false - } + "PromptTemplate": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/PromptVariable.json b/packages/spec/json-schema/ai/PromptVariable.json index d2158c624..f39c863c0 100644 --- a/packages/spec/json-schema/ai/PromptVariable.json +++ b/packages/spec/json-schema/ai/PromptVariable.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/PromptVariable", "definitions": { - "PromptVariable": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Variable name (e.g., \"user_name\", \"context\")" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "object", - "array" - ], - "default": "string" - }, - "required": { - "type": "boolean", - "default": false - }, - "defaultValue": {}, - "description": { - "type": "string" - }, - "validation": { - "type": "object", - "properties": { - "minLength": { - "type": "number" - }, - "maxLength": { - "type": "number" - }, - "pattern": { - "type": "string" - }, - "enum": { - "type": "array" - } - }, - "additionalProperties": false - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "PromptVariable": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/QueryContext.json b/packages/spec/json-schema/ai/QueryContext.json index 9ca8bdd3c..c4404c7a1 100644 --- a/packages/spec/json-schema/ai/QueryContext.json +++ b/packages/spec/json-schema/ai/QueryContext.json @@ -1,72 +1,7 @@ { "$ref": "#/definitions/QueryContext", "definitions": { - "QueryContext": { - "type": "object", - "properties": { - "userId": { - "type": "string" - }, - "userRole": { - "type": "string" - }, - "currentObject": { - "type": "string", - "description": "Current object being viewed" - }, - "currentRecordId": { - "type": "string", - "description": "Current record ID" - }, - "conversationHistory": { - "type": "array", - "items": { - "type": "object", - "properties": { - "query": { - "type": "string" - }, - "timestamp": { - "type": "string" - }, - "intent": { - "type": "string", - "enum": [ - "select", - "aggregate", - "filter", - "sort", - "compare", - "trend", - "insight", - "create", - "update", - "delete" - ] - } - }, - "required": [ - "query", - "timestamp" - ], - "additionalProperties": false - } - }, - "defaultLimit": { - "type": "integer", - "default": 100 - }, - "timezone": { - "type": "string", - "default": "UTC" - }, - "locale": { - "type": "string", - "default": "en-US" - } - }, - "additionalProperties": false - } + "QueryContext": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/QueryIntent.json b/packages/spec/json-schema/ai/QueryIntent.json index e7b7e247e..cb9da8f3f 100644 --- a/packages/spec/json-schema/ai/QueryIntent.json +++ b/packages/spec/json-schema/ai/QueryIntent.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/QueryIntent", "definitions": { - "QueryIntent": { - "type": "string", - "enum": [ - "select", - "aggregate", - "filter", - "sort", - "compare", - "trend", - "insight", - "create", - "update", - "delete" - ] - } + "QueryIntent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/QueryTemplate.json b/packages/spec/json-schema/ai/QueryTemplate.json index d1f7f46e7..e2e2fbef8 100644 --- a/packages/spec/json-schema/ai/QueryTemplate.json +++ b/packages/spec/json-schema/ai/QueryTemplate.json @@ -1,81 +1,7 @@ { "$ref": "#/definitions/QueryTemplate", "definitions": { - "QueryTemplate": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Template name (snake_case)" - }, - "label": { - "type": "string" - }, - "pattern": { - "type": "string", - "description": "Query pattern with placeholders" - }, - "variables": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "object", - "field", - "value", - "timeframe" - ] - }, - "required": { - "type": "boolean", - "default": false - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "astTemplate": { - "description": "AST template with variable placeholders" - }, - "category": { - "type": "string" - }, - "examples": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "id", - "name", - "label", - "pattern", - "variables" - ], - "additionalProperties": false - } + "QueryTemplate": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/RAGPipelineConfig.json b/packages/spec/json-schema/ai/RAGPipelineConfig.json index 4d4f8d780..6735cba07 100644 --- a/packages/spec/json-schema/ai/RAGPipelineConfig.json +++ b/packages/spec/json-schema/ai/RAGPipelineConfig.json @@ -1,552 +1,7 @@ { "$ref": "#/definitions/RAGPipelineConfig", "definitions": { - "RAGPipelineConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Pipeline name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display name" - }, - "description": { - "type": "string" - }, - "embedding": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "openai", - "cohere", - "huggingface", - "azure_openai", - "local", - "custom" - ] - }, - "model": { - "type": "string", - "description": "Model name (e.g., \"text-embedding-3-large\")" - }, - "dimensions": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Embedding vector dimensions" - }, - "maxTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum tokens per embedding" - }, - "batchSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100, - "description": "Batch size for embedding" - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "Custom endpoint URL" - }, - "apiKey": { - "type": "string", - "description": "API key or reference to secret" - } - }, - "required": [ - "provider", - "model", - "dimensions" - ], - "additionalProperties": false - }, - "vectorStore": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "pinecone", - "weaviate", - "qdrant", - "milvus", - "chroma", - "pgvector", - "redis", - "opensearch", - "elasticsearch", - "custom" - ] - }, - "indexName": { - "type": "string", - "description": "Index/collection name" - }, - "namespace": { - "type": "string", - "description": "Namespace for multi-tenancy" - }, - "host": { - "type": "string", - "description": "Vector store host" - }, - "port": { - "type": "integer", - "description": "Vector store port" - }, - "apiKey": { - "type": "string", - "description": "API key or reference to secret" - }, - "dimensions": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Vector dimensions" - }, - "metric": { - "type": "string", - "enum": [ - "cosine", - "euclidean", - "dotproduct" - ], - "default": "cosine" - }, - "batchSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100 - }, - "connectionPoolSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10 - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000, - "description": "Timeout in milliseconds" - } - }, - "required": [ - "provider", - "indexName", - "dimensions" - ], - "additionalProperties": false - }, - "chunking": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "fixed" - }, - "chunkSize": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Fixed chunk size in tokens/chars" - }, - "chunkOverlap": { - "type": "integer", - "minimum": 0, - "default": 0, - "description": "Overlap between chunks" - }, - "unit": { - "type": "string", - "enum": [ - "tokens", - "characters" - ], - "default": "tokens" - } - }, - "required": [ - "type", - "chunkSize" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "semantic" - }, - "model": { - "type": "string", - "description": "Model for semantic chunking" - }, - "minChunkSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100 - }, - "maxChunkSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "recursive" - }, - "separators": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "\n\n", - "\n", - " ", - "" - ] - }, - "chunkSize": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "chunkOverlap": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - "required": [ - "type", - "chunkSize" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "markdown" - }, - "maxChunkSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - }, - "respectHeaders": { - "type": "boolean", - "default": true, - "description": "Keep headers with content" - }, - "respectCodeBlocks": { - "type": "boolean", - "default": true, - "description": "Keep code blocks intact" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - }, - "retrieval": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "similarity" - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5, - "description": "Number of results to retrieve" - }, - "scoreThreshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Minimum similarity score" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "mmr" - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - }, - "fetchK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 20, - "description": "Initial fetch size" - }, - "lambda": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.5, - "description": "Diversity vs relevance (0=diverse, 1=relevant)" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "hybrid" - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - }, - "vectorWeight": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.7, - "description": "Weight for vector search" - }, - "keywordWeight": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.3, - "description": "Weight for keyword search" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "parent_document" - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - }, - "retrieveParent": { - "type": "boolean", - "default": true, - "description": "Retrieve full parent document" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - }, - "reranking": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "model": { - "type": "string", - "description": "Reranking model name" - }, - "provider": { - "type": "string", - "enum": [ - "cohere", - "huggingface", - "custom" - ] - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 3, - "description": "Final number of results after reranking" - } - }, - "additionalProperties": false - }, - "loaders": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "file", - "directory", - "url", - "api", - "database", - "custom" - ] - }, - "source": { - "type": "string", - "description": "Source path, URL, or identifier" - }, - "fileTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Accepted file extensions (e.g., [\".pdf\", \".md\"])" - }, - "recursive": { - "type": "boolean", - "default": false, - "description": "Process directories recursively" - }, - "maxFileSize": { - "type": "integer", - "description": "Maximum file size in bytes" - }, - "excludePatterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Patterns to exclude" - }, - "extractImages": { - "type": "boolean", - "default": false, - "description": "Extract text from images (OCR)" - }, - "extractTables": { - "type": "boolean", - "default": false, - "description": "Extract and format tables" - }, - "loaderConfig": { - "type": "object", - "additionalProperties": {}, - "description": "Custom loader-specific config" - } - }, - "required": [ - "type", - "source" - ], - "additionalProperties": false - }, - "description": "Document loaders" - }, - "maxContextTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 4000, - "description": "Maximum tokens in context" - }, - "contextWindow": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "LLM context window size" - }, - "metadataFilters": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": [ - "string", - "number" - ] - } - } - ] - }, - "description": "Filters for retrieval (e.g., {category: \"docs\", status: \"published\"})" - }, - "enableCache": { - "type": "boolean", - "default": true - }, - "cacheTTL": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 3600, - "description": "Cache TTL in seconds" - }, - "cacheInvalidationStrategy": { - "type": "string", - "enum": [ - "time_based", - "manual", - "on_update" - ], - "default": "time_based" - } - }, - "required": [ - "name", - "label", - "embedding", - "vectorStore", - "chunking", - "retrieval" - ], - "additionalProperties": false - } + "RAGPipelineConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/RAGPipelineStatus.json b/packages/spec/json-schema/ai/RAGPipelineStatus.json index 14a5ef4b7..3792d4d2d 100644 --- a/packages/spec/json-schema/ai/RAGPipelineStatus.json +++ b/packages/spec/json-schema/ai/RAGPipelineStatus.json @@ -1,66 +1,7 @@ { "$ref": "#/definitions/RAGPipelineStatus", "definitions": { - "RAGPipelineStatus": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "active", - "indexing", - "error", - "disabled" - ] - }, - "documentsIndexed": { - "type": "integer", - "minimum": 0 - }, - "lastIndexed": { - "type": "string", - "description": "ISO timestamp" - }, - "errorMessage": { - "type": "string" - }, - "health": { - "type": "object", - "properties": { - "vectorStore": { - "type": "string", - "enum": [ - "healthy", - "unhealthy", - "unknown" - ] - }, - "embeddingService": { - "type": "string", - "enum": [ - "healthy", - "unhealthy", - "unknown" - ] - } - }, - "required": [ - "vectorStore", - "embeddingService" - ], - "additionalProperties": false - } - }, - "required": [ - "name", - "status", - "documentsIndexed" - ], - "additionalProperties": false - } + "RAGPipelineStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/RAGQueryRequest.json b/packages/spec/json-schema/ai/RAGQueryRequest.json index 14c04f855..d61e533e2 100644 --- a/packages/spec/json-schema/ai/RAGQueryRequest.json +++ b/packages/spec/json-schema/ai/RAGQueryRequest.json @@ -1,64 +1,7 @@ { "$ref": "#/definitions/RAGQueryRequest", "definitions": { - "RAGQueryRequest": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "User query" - }, - "pipelineName": { - "type": "string", - "description": "Pipeline to use" - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "metadataFilters": { - "type": "object", - "additionalProperties": {} - }, - "conversationHistory": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "enum": [ - "user", - "assistant", - "system" - ] - }, - "content": { - "type": "string" - } - }, - "required": [ - "role", - "content" - ], - "additionalProperties": false - } - }, - "includeMetadata": { - "type": "boolean", - "default": true - }, - "includeSources": { - "type": "boolean", - "default": true - } - }, - "required": [ - "query", - "pipelineName" - ], - "additionalProperties": false - } + "RAGQueryRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/RAGQueryResponse.json b/packages/spec/json-schema/ai/RAGQueryResponse.json index e224ea002..0c000b09a 100644 --- a/packages/spec/json-schema/ai/RAGQueryResponse.json +++ b/packages/spec/json-schema/ai/RAGQueryResponse.json @@ -1,141 +1,7 @@ { "$ref": "#/definitions/RAGQueryResponse", "definitions": { - "RAGQueryResponse": { - "type": "object", - "properties": { - "query": { - "type": "string" - }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "content": { - "type": "string" - }, - "score": { - "type": "number" - }, - "metadata": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Document source (file path, URL, etc.)" - }, - "sourceType": { - "type": "string", - "enum": [ - "file", - "url", - "api", - "database", - "custom" - ] - }, - "title": { - "type": "string" - }, - "author": { - "type": "string" - }, - "createdAt": { - "type": "string", - "description": "ISO timestamp" - }, - "updatedAt": { - "type": "string", - "description": "ISO timestamp" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "category": { - "type": "string" - }, - "language": { - "type": "string", - "description": "Document language (ISO 639-1 code)" - }, - "custom": { - "type": "object", - "additionalProperties": {}, - "description": "Custom metadata fields" - } - }, - "required": [ - "source" - ], - "additionalProperties": false - }, - "chunkId": { - "type": "string" - } - }, - "required": [ - "content", - "score" - ], - "additionalProperties": false - } - }, - "context": { - "type": "string", - "description": "Assembled context for LLM" - }, - "tokens": { - "type": "object", - "properties": { - "prompt": { - "type": "integer", - "minimum": 0, - "description": "Input tokens" - }, - "completion": { - "type": "integer", - "minimum": 0, - "description": "Output tokens" - }, - "total": { - "type": "integer", - "minimum": 0, - "description": "Total tokens" - } - }, - "required": [ - "prompt", - "completion", - "total" - ], - "additionalProperties": false, - "description": "Token usage for this query" - }, - "cost": { - "type": "number", - "minimum": 0, - "description": "Cost for this query in USD" - }, - "tokensUsed": { - "type": "integer", - "description": "Deprecated: use tokens.total instead" - }, - "retrievalTime": { - "type": "number", - "description": "Retrieval time in milliseconds" - } - }, - "required": [ - "query", - "results", - "context" - ], - "additionalProperties": false - } + "RAGQueryResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/RerankingConfig.json b/packages/spec/json-schema/ai/RerankingConfig.json index 79be86f38..150f36b19 100644 --- a/packages/spec/json-schema/ai/RerankingConfig.json +++ b/packages/spec/json-schema/ai/RerankingConfig.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/RerankingConfig", "definitions": { - "RerankingConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "model": { - "type": "string", - "description": "Reranking model name" - }, - "provider": { - "type": "string", - "enum": [ - "cohere", - "huggingface", - "custom" - ] - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 3, - "description": "Final number of results after reranking" - } - }, - "additionalProperties": false - } + "RerankingConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/RetrievalStrategy.json b/packages/spec/json-schema/ai/RetrievalStrategy.json index 36a72b802..9fc63e240 100644 --- a/packages/spec/json-schema/ai/RetrievalStrategy.json +++ b/packages/spec/json-schema/ai/RetrievalStrategy.json @@ -1,121 +1,7 @@ { "$ref": "#/definitions/RetrievalStrategy", "definitions": { - "RetrievalStrategy": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "similarity" - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5, - "description": "Number of results to retrieve" - }, - "scoreThreshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Minimum similarity score" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "mmr" - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - }, - "fetchK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 20, - "description": "Initial fetch size" - }, - "lambda": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.5, - "description": "Diversity vs relevance (0=diverse, 1=relevant)" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "hybrid" - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - }, - "vectorWeight": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.7, - "description": "Weight for vector search" - }, - "keywordWeight": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.3, - "description": "Weight for keyword search" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "parent_document" - }, - "topK": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - }, - "retrieveParent": { - "type": "boolean", - "default": true, - "description": "Retrieve full parent document" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } + "RetrievalStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/TestingConfig.json b/packages/spec/json-schema/ai/TestingConfig.json index d6cb920fd..53f802f26 100644 --- a/packages/spec/json-schema/ai/TestingConfig.json +++ b/packages/spec/json-schema/ai/TestingConfig.json @@ -1,57 +1,7 @@ { "$ref": "#/definitions/TestingConfig", "definitions": { - "TestingConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable automated testing" - }, - "testTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "unit", - "integration", - "e2e", - "performance", - "security", - "accessibility" - ] - }, - "default": [ - "unit", - "integration" - ], - "description": "Types of tests to run" - }, - "coverageThreshold": { - "type": "number", - "minimum": 0, - "maximum": 100, - "default": 80, - "description": "Minimum test coverage percentage" - }, - "framework": { - "type": "string", - "description": "Testing framework (e.g., vitest, jest, playwright)" - }, - "preCommitTests": { - "type": "boolean", - "default": true, - "description": "Run tests before committing" - }, - "autoFix": { - "type": "boolean", - "default": false, - "description": "Attempt to auto-fix failing tests" - } - }, - "additionalProperties": false - } + "TestingConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/Timeframe.json b/packages/spec/json-schema/ai/Timeframe.json index 165d1bf52..8d5a6a00a 100644 --- a/packages/spec/json-schema/ai/Timeframe.json +++ b/packages/spec/json-schema/ai/Timeframe.json @@ -1,68 +1,7 @@ { "$ref": "#/definitions/Timeframe", "definitions": { - "Timeframe": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "absolute", - "relative" - ] - }, - "start": { - "type": "string", - "description": "Start date (ISO format)" - }, - "end": { - "type": "string", - "description": "End date (ISO format)" - }, - "relative": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "hour", - "day", - "week", - "month", - "quarter", - "year" - ] - }, - "value": { - "type": "integer" - }, - "direction": { - "type": "string", - "enum": [ - "past", - "future", - "current" - ], - "default": "past" - } - }, - "required": [ - "unit", - "value" - ], - "additionalProperties": false - }, - "text": { - "type": "string", - "description": "Original timeframe text" - } - }, - "required": [ - "type", - "text" - ], - "additionalProperties": false - } + "Timeframe": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/TokenBudgetConfig.json b/packages/spec/json-schema/ai/TokenBudgetConfig.json index 52b803fae..ee0fe3520 100644 --- a/packages/spec/json-schema/ai/TokenBudgetConfig.json +++ b/packages/spec/json-schema/ai/TokenBudgetConfig.json @@ -1,92 +1,7 @@ { "$ref": "#/definitions/TokenBudgetConfig", "definitions": { - "TokenBudgetConfig": { - "type": "object", - "properties": { - "maxTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum total tokens" - }, - "maxPromptTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Max tokens for prompt" - }, - "maxCompletionTokens": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Max tokens for completion" - }, - "reserveTokens": { - "type": "integer", - "minimum": 0, - "default": 500, - "description": "Reserve tokens for system messages" - }, - "bufferPercentage": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.1, - "description": "Buffer percentage (0.1 = 10%)" - }, - "strategy": { - "type": "string", - "enum": [ - "fifo", - "importance", - "semantic", - "sliding_window", - "summary" - ], - "default": "sliding_window" - }, - "slidingWindowSize": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of recent messages to keep" - }, - "minImportanceScore": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Minimum importance to keep" - }, - "semanticThreshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Semantic similarity threshold" - }, - "enableSummarization": { - "type": "boolean", - "default": false, - "description": "Enable context summarization" - }, - "summarizationThreshold": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Trigger summarization at N tokens" - }, - "summaryModel": { - "type": "string", - "description": "Model ID for summarization" - }, - "warnThreshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.8, - "description": "Warn at % of budget (0.8 = 80%)" - } - }, - "required": [ - "maxTokens" - ], - "additionalProperties": false - } + "TokenBudgetConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/TokenBudgetStrategy.json b/packages/spec/json-schema/ai/TokenBudgetStrategy.json index 514518988..81b14eb99 100644 --- a/packages/spec/json-schema/ai/TokenBudgetStrategy.json +++ b/packages/spec/json-schema/ai/TokenBudgetStrategy.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/TokenBudgetStrategy", "definitions": { - "TokenBudgetStrategy": { - "type": "string", - "enum": [ - "fifo", - "importance", - "semantic", - "sliding_window", - "summary" - ] - } + "TokenBudgetStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/TokenUsage.json b/packages/spec/json-schema/ai/TokenUsage.json index 4810e4c46..f80299d60 100644 --- a/packages/spec/json-schema/ai/TokenUsage.json +++ b/packages/spec/json-schema/ai/TokenUsage.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/TokenUsage", "definitions": { - "TokenUsage": { - "type": "object", - "properties": { - "prompt": { - "type": "integer", - "minimum": 0, - "description": "Input tokens" - }, - "completion": { - "type": "integer", - "minimum": 0, - "description": "Output tokens" - }, - "total": { - "type": "integer", - "minimum": 0, - "description": "Total tokens" - } - }, - "required": [ - "prompt", - "completion", - "total" - ], - "additionalProperties": false - } + "TokenUsage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/TokenUsageStats.json b/packages/spec/json-schema/ai/TokenUsageStats.json index 1f66314c5..6d62868af 100644 --- a/packages/spec/json-schema/ai/TokenUsageStats.json +++ b/packages/spec/json-schema/ai/TokenUsageStats.json @@ -1,66 +1,7 @@ { "$ref": "#/definitions/TokenUsageStats", "definitions": { - "TokenUsageStats": { - "type": "object", - "properties": { - "promptTokens": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "completionTokens": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "totalTokens": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "budgetLimit": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "budgetUsed": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "budgetRemaining": { - "type": "integer", - "minimum": 0 - }, - "budgetPercentage": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Usage as percentage of budget" - }, - "messageCount": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "prunedMessageCount": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "summarizedMessageCount": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - "required": [ - "budgetLimit", - "budgetRemaining", - "budgetPercentage" - ], - "additionalProperties": false - } + "TokenUsageStats": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ToolCall.json b/packages/spec/json-schema/ai/ToolCall.json index b01eed498..b3f98c973 100644 --- a/packages/spec/json-schema/ai/ToolCall.json +++ b/packages/spec/json-schema/ai/ToolCall.json @@ -1,49 +1,7 @@ { "$ref": "#/definitions/ToolCall", "definitions": { - "ToolCall": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Tool call ID" - }, - "type": { - "type": "string", - "enum": [ - "function" - ], - "default": "function" - }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Function name" - }, - "arguments": { - "type": "string", - "description": "JSON string of function arguments" - }, - "result": { - "type": "string", - "description": "Function execution result" - } - }, - "required": [ - "name", - "arguments" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "function" - ], - "additionalProperties": false - } + "ToolCall": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/TrainingConfig.json b/packages/spec/json-schema/ai/TrainingConfig.json index e7d92e90b..c18f1a5dd 100644 --- a/packages/spec/json-schema/ai/TrainingConfig.json +++ b/packages/spec/json-schema/ai/TrainingConfig.json @@ -1,88 +1,7 @@ { "$ref": "#/definitions/TrainingConfig", "definitions": { - "TrainingConfig": { - "type": "object", - "properties": { - "trainingDataRatio": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.8, - "description": "Proportion of data for training" - }, - "validationDataRatio": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.1, - "description": "Proportion for validation" - }, - "testDataRatio": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.1, - "description": "Proportion for testing" - }, - "dataFilter": { - "type": "string", - "description": "Formula to filter training data" - }, - "minRecords": { - "type": "integer", - "default": 100, - "description": "Minimum records required" - }, - "maxRecords": { - "type": "integer", - "description": "Maximum records to use" - }, - "strategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "online", - "transfer_learning" - ], - "default": "full" - }, - "crossValidation": { - "type": "boolean", - "default": true - }, - "folds": { - "type": "integer", - "minimum": 2, - "maximum": 10, - "default": 5, - "description": "Cross-validation folds" - }, - "earlyStoppingEnabled": { - "type": "boolean", - "default": true - }, - "earlyStoppingPatience": { - "type": "integer", - "default": 10, - "description": "Epochs without improvement before stopping" - }, - "maxTrainingTime": { - "type": "number", - "description": "Maximum training time in seconds" - }, - "gpuEnabled": { - "type": "boolean", - "default": false - }, - "randomSeed": { - "type": "integer", - "description": "Random seed for reproducibility" - } - }, - "additionalProperties": false - } + "TrainingConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/UIActionType.json b/packages/spec/json-schema/ai/UIActionType.json index f2af89bbc..dee251afc 100644 --- a/packages/spec/json-schema/ai/UIActionType.json +++ b/packages/spec/json-schema/ai/UIActionType.json @@ -1,63 +1,7 @@ { "$ref": "#/definitions/UIActionType", "definitions": { - "UIActionType": { - "type": "string", - "enum": [ - "navigate_to_object_list", - "navigate_to_object_form", - "navigate_to_record_detail", - "navigate_to_dashboard", - "navigate_to_report", - "navigate_to_app", - "navigate_back", - "navigate_home", - "open_tab", - "close_tab", - "change_view_mode", - "apply_filter", - "clear_filter", - "apply_sort", - "change_grouping", - "show_columns", - "expand_record", - "collapse_record", - "refresh_view", - "export_data", - "create_record", - "update_record", - "delete_record", - "fill_field", - "clear_field", - "submit_form", - "cancel_form", - "validate_form", - "save_draft", - "select_record", - "deselect_record", - "select_all", - "deselect_all", - "bulk_update", - "bulk_delete", - "bulk_export", - "trigger_flow", - "trigger_approval", - "trigger_webhook", - "run_report", - "send_email", - "send_notification", - "schedule_task", - "open_modal", - "close_modal", - "open_sidebar", - "close_sidebar", - "show_notification", - "hide_notification", - "open_dropdown", - "close_dropdown", - "toggle_section" - ] - } + "UIActionType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/VectorStoreConfig.json b/packages/spec/json-schema/ai/VectorStoreConfig.json index 8010a9225..3f5abf587 100644 --- a/packages/spec/json-schema/ai/VectorStoreConfig.json +++ b/packages/spec/json-schema/ai/VectorStoreConfig.json @@ -1,82 +1,7 @@ { "$ref": "#/definitions/VectorStoreConfig", "definitions": { - "VectorStoreConfig": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "pinecone", - "weaviate", - "qdrant", - "milvus", - "chroma", - "pgvector", - "redis", - "opensearch", - "elasticsearch", - "custom" - ] - }, - "indexName": { - "type": "string", - "description": "Index/collection name" - }, - "namespace": { - "type": "string", - "description": "Namespace for multi-tenancy" - }, - "host": { - "type": "string", - "description": "Vector store host" - }, - "port": { - "type": "integer", - "description": "Vector store port" - }, - "apiKey": { - "type": "string", - "description": "API key or reference to secret" - }, - "dimensions": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Vector dimensions" - }, - "metric": { - "type": "string", - "enum": [ - "cosine", - "euclidean", - "dotproduct" - ], - "default": "cosine" - }, - "batchSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100 - }, - "connectionPoolSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10 - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000, - "description": "Timeout in milliseconds" - } - }, - "required": [ - "provider", - "indexName", - "dimensions" - ], - "additionalProperties": false - } + "VectorStoreConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/VectorStoreProvider.json b/packages/spec/json-schema/ai/VectorStoreProvider.json index d99c95731..d3a9ff18d 100644 --- a/packages/spec/json-schema/ai/VectorStoreProvider.json +++ b/packages/spec/json-schema/ai/VectorStoreProvider.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/VectorStoreProvider", "definitions": { - "VectorStoreProvider": { - "type": "string", - "enum": [ - "pinecone", - "weaviate", - "qdrant", - "milvus", - "chroma", - "pgvector", - "redis", - "opensearch", - "elasticsearch", - "custom" - ] - } + "VectorStoreProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/VercelIntegration.json b/packages/spec/json-schema/ai/VercelIntegration.json index bcf41d7e9..f0f6b05f3 100644 --- a/packages/spec/json-schema/ai/VercelIntegration.json +++ b/packages/spec/json-schema/ai/VercelIntegration.json @@ -1,69 +1,7 @@ { "$ref": "#/definitions/VercelIntegration", "definitions": { - "VercelIntegration": { - "type": "object", - "properties": { - "connector": { - "type": "string", - "description": "Vercel connector name" - }, - "project": { - "type": "string", - "description": "Vercel project name" - }, - "environments": { - "type": "object", - "properties": { - "production": { - "type": "string", - "default": "main", - "description": "Production branch" - }, - "preview": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "develop", - "feature/*" - ], - "description": "Preview branches" - } - }, - "additionalProperties": false, - "description": "Environment mapping" - }, - "deployment": { - "type": "object", - "properties": { - "autoDeployProduction": { - "type": "boolean", - "default": false, - "description": "Auto-deploy to production" - }, - "autoDeployPreview": { - "type": "boolean", - "default": true, - "description": "Auto-deploy preview environments" - }, - "requireApproval": { - "type": "boolean", - "default": true, - "description": "Require approval for production deployments" - } - }, - "additionalProperties": false, - "description": "Deployment settings" - } - }, - "required": [ - "connector", - "project" - ], - "additionalProperties": false - } + "VercelIntegration": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/VersionManagement.json b/packages/spec/json-schema/ai/VersionManagement.json index 0c1c19478..893d4c70e 100644 --- a/packages/spec/json-schema/ai/VersionManagement.json +++ b/packages/spec/json-schema/ai/VersionManagement.json @@ -1,58 +1,7 @@ { "$ref": "#/definitions/VersionManagement", "definitions": { - "VersionManagement": { - "type": "object", - "properties": { - "scheme": { - "type": "string", - "enum": [ - "semver", - "calver", - "custom" - ], - "default": "semver", - "description": "Versioning scheme" - }, - "autoIncrement": { - "type": "string", - "enum": [ - "major", - "minor", - "patch", - "none" - ], - "default": "patch", - "description": "Auto-increment strategy" - }, - "prefix": { - "type": "string", - "default": "v", - "description": "Version tag prefix" - }, - "generateChangelog": { - "type": "boolean", - "default": true, - "description": "Generate changelog automatically" - }, - "changelogFormat": { - "type": "string", - "enum": [ - "conventional", - "keepachangelog", - "custom" - ], - "default": "conventional", - "description": "Changelog format" - }, - "tagReleases": { - "type": "boolean", - "default": true, - "description": "Create Git tags for releases" - } - }, - "additionalProperties": false - } + "VersionManagement": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ViewActionParams.json b/packages/spec/json-schema/ai/ViewActionParams.json index 9eb640951..2d8332633 100644 --- a/packages/spec/json-schema/ai/ViewActionParams.json +++ b/packages/spec/json-schema/ai/ViewActionParams.json @@ -1,74 +1,7 @@ { "$ref": "#/definitions/ViewActionParams", "definitions": { - "ViewActionParams": { - "type": "object", - "properties": { - "viewMode": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "pivot" - ] - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter conditions" - }, - "sort": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - "required": [ - "field", - "order" - ], - "additionalProperties": false - } - }, - "groupBy": { - "type": "string", - "description": "Field to group by" - }, - "columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Columns to show/hide" - }, - "recordId": { - "type": "string", - "description": "Record to expand/collapse" - }, - "exportFormat": { - "type": "string", - "enum": [ - "csv", - "xlsx", - "pdf", - "json" - ] - } - }, - "additionalProperties": false - } + "ViewActionParams": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/ViewActionType.json b/packages/spec/json-schema/ai/ViewActionType.json index 6885af89b..df877504d 100644 --- a/packages/spec/json-schema/ai/ViewActionType.json +++ b/packages/spec/json-schema/ai/ViewActionType.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/ViewActionType", "definitions": { - "ViewActionType": { - "type": "string", - "enum": [ - "change_view_mode", - "apply_filter", - "clear_filter", - "apply_sort", - "change_grouping", - "show_columns", - "expand_record", - "collapse_record", - "refresh_view", - "export_data" - ] - } + "ViewActionType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/WorkflowActionParams.json b/packages/spec/json-schema/ai/WorkflowActionParams.json index 99199bc40..9c6a92bee 100644 --- a/packages/spec/json-schema/ai/WorkflowActionParams.json +++ b/packages/spec/json-schema/ai/WorkflowActionParams.json @@ -1,61 +1,7 @@ { "$ref": "#/definitions/WorkflowActionParams", "definitions": { - "WorkflowActionParams": { - "type": "object", - "properties": { - "flowName": { - "type": "string", - "description": "Flow/workflow name" - }, - "approvalProcessName": { - "type": "string", - "description": "Approval process name" - }, - "webhookUrl": { - "type": "string", - "description": "Webhook URL" - }, - "reportName": { - "type": "string", - "description": "Report name" - }, - "emailTemplate": { - "type": "string", - "description": "Email template" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Email recipients" - }, - "subject": { - "type": "string", - "description": "Email subject" - }, - "message": { - "type": "string", - "description": "Notification/email message" - }, - "taskData": { - "type": "object", - "additionalProperties": {}, - "description": "Task creation data" - }, - "scheduleTime": { - "type": "string", - "description": "Schedule time (ISO 8601)" - }, - "contextData": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context data" - } - }, - "additionalProperties": false - } + "WorkflowActionParams": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/WorkflowActionType.json b/packages/spec/json-schema/ai/WorkflowActionType.json index 8b4606210..fe6ac0322 100644 --- a/packages/spec/json-schema/ai/WorkflowActionType.json +++ b/packages/spec/json-schema/ai/WorkflowActionType.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/WorkflowActionType", "definitions": { - "WorkflowActionType": { - "type": "string", - "enum": [ - "trigger_flow", - "trigger_approval", - "trigger_webhook", - "run_report", - "send_email", - "send_notification", - "schedule_task" - ] - } + "WorkflowActionType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/WorkflowFieldCondition.json b/packages/spec/json-schema/ai/WorkflowFieldCondition.json index d4d31c9a3..451e287d7 100644 --- a/packages/spec/json-schema/ai/WorkflowFieldCondition.json +++ b/packages/spec/json-schema/ai/WorkflowFieldCondition.json @@ -1,33 +1,7 @@ { "$ref": "#/definitions/WorkflowFieldCondition", "definitions": { - "WorkflowFieldCondition": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name to monitor" - }, - "operator": { - "type": "string", - "enum": [ - "changed", - "changed_to", - "changed_from", - "is", - "is_not" - ], - "default": "changed" - }, - "value": { - "description": "Value to compare against (for changed_to/changed_from/is/is_not)" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } + "WorkflowFieldCondition": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ai/WorkflowSchedule.json b/packages/spec/json-schema/ai/WorkflowSchedule.json index 679442059..b25e6c4a9 100644 --- a/packages/spec/json-schema/ai/WorkflowSchedule.json +++ b/packages/spec/json-schema/ai/WorkflowSchedule.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/WorkflowSchedule", "definitions": { - "WorkflowSchedule": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "cron", - "interval", - "daily", - "weekly", - "monthly" - ], - "default": "cron" - }, - "cron": { - "type": "string", - "description": "Cron expression (required if type is \"cron\")" - }, - "interval": { - "type": "number", - "description": "Interval in minutes (required if type is \"interval\")" - }, - "time": { - "type": "string", - "description": "Time of day for daily schedules (HH:MM format)" - }, - "dayOfWeek": { - "type": "integer", - "minimum": 0, - "maximum": 6, - "description": "Day of week for weekly (0=Sunday)" - }, - "dayOfMonth": { - "type": "integer", - "minimum": 1, - "maximum": 31, - "description": "Day of month for monthly" - }, - "timezone": { - "type": "string", - "default": "UTC" - } - }, - "additionalProperties": false - } + "WorkflowSchedule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/AckMessage.json b/packages/spec/json-schema/api/AckMessage.json index 35e184a08..aa4f13c40 100644 --- a/packages/spec/json-schema/api/AckMessage.json +++ b/packages/spec/json-schema/api/AckMessage.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/AckMessage", "definitions": { - "AckMessage": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "ack" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "ackMessageId": { - "type": "string", - "format": "uuid", - "description": "ID of the message being acknowledged" - }, - "success": { - "type": "boolean", - "description": "Whether the operation was successful" - }, - "error": { - "type": "string", - "description": "Error message if operation failed" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "ackMessageId", - "success" - ], - "additionalProperties": false - } + "AckMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ApiCapabilities.json b/packages/spec/json-schema/api/ApiCapabilities.json index 1aecc8acc..29df6e1b4 100644 --- a/packages/spec/json-schema/api/ApiCapabilities.json +++ b/packages/spec/json-schema/api/ApiCapabilities.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/ApiCapabilities", "definitions": { - "ApiCapabilities": { - "type": "object", - "properties": { - "graphql": { - "type": "boolean", - "default": false - }, - "search": { - "type": "boolean", - "default": false - }, - "websockets": { - "type": "boolean", - "default": false - }, - "files": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - } + "ApiCapabilities": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ApiEndpoint.json b/packages/spec/json-schema/api/ApiEndpoint.json index 810c4db7e..4cc5b6a4f 100644 --- a/packages/spec/json-schema/api/ApiEndpoint.json +++ b/packages/spec/json-schema/api/ApiEndpoint.json @@ -1,165 +1,7 @@ { "$ref": "#/definitions/ApiEndpoint", "definitions": { - "ApiEndpoint": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique endpoint ID" - }, - "path": { - "type": "string", - "pattern": "^\\/", - "description": "URL Path (e.g. /api/v1/customers)" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ], - "description": "HTTP Method" - }, - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "flow", - "script", - "object_operation", - "proxy" - ], - "description": "Implementation type" - }, - "target": { - "type": "string", - "description": "Target Flow ID, Script Name, or Proxy URL" - }, - "objectParams": { - "type": "object", - "properties": { - "object": { - "type": "string" - }, - "operation": { - "type": "string", - "enum": [ - "find", - "get", - "create", - "update", - "delete" - ] - } - }, - "additionalProperties": false, - "description": "For object_operation type" - }, - "inputMapping": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field/path" - }, - "target": { - "type": "string", - "description": "Target field/path" - }, - "transform": { - "type": "string", - "description": "Transformation function name" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Map Request Body to Internal Params" - }, - "outputMapping": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field/path" - }, - "target": { - "type": "string", - "description": "Target field/path" - }, - "transform": { - "type": "string", - "description": "Transformation function name" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Map Internal Result to Response Body" - }, - "authRequired": { - "type": "boolean", - "default": true, - "description": "Require authentication" - }, - "rateLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable rate limiting" - }, - "windowMs": { - "type": "integer", - "default": 60000, - "description": "Time window in milliseconds" - }, - "maxRequests": { - "type": "integer", - "default": 100, - "description": "Max requests per window" - } - }, - "additionalProperties": false, - "description": "Rate limiting policy" - }, - "cacheTtl": { - "type": "number", - "description": "Response cache TTL in seconds" - } - }, - "required": [ - "name", - "path", - "method", - "type", - "target" - ], - "additionalProperties": false - } + "ApiEndpoint": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ApiError.json b/packages/spec/json-schema/api/ApiError.json index 7b04ea1db..975bc833c 100644 --- a/packages/spec/json-schema/api/ApiError.json +++ b/packages/spec/json-schema/api/ApiError.json @@ -1,27 +1,7 @@ { "$ref": "#/definitions/ApiError", "definitions": { - "ApiError": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - } + "ApiError": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ApiMapping.json b/packages/spec/json-schema/api/ApiMapping.json index 5ac98316a..1bec59ee3 100644 --- a/packages/spec/json-schema/api/ApiMapping.json +++ b/packages/spec/json-schema/api/ApiMapping.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/ApiMapping", "definitions": { - "ApiMapping": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field/path" - }, - "target": { - "type": "string", - "description": "Target field/path" - }, - "transform": { - "type": "string", - "description": "Transformation function name" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - } + "ApiMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ApiRoutes.json b/packages/spec/json-schema/api/ApiRoutes.json index 0ff983338..e4e384bf8 100644 --- a/packages/spec/json-schema/api/ApiRoutes.json +++ b/packages/spec/json-schema/api/ApiRoutes.json @@ -1,41 +1,7 @@ { "$ref": "#/definitions/ApiRoutes", "definitions": { - "ApiRoutes": { - "type": "object", - "properties": { - "data": { - "type": "string", - "description": "e.g. /api/data" - }, - "metadata": { - "type": "string", - "description": "e.g. /api/meta" - }, - "auth": { - "type": "string", - "description": "e.g. /api/auth" - }, - "automation": { - "type": "string", - "description": "e.g. /api/automation" - }, - "storage": { - "type": "string", - "description": "e.g. /api/storage" - }, - "graphql": { - "type": "string", - "description": "e.g. /graphql" - } - }, - "required": [ - "data", - "metadata", - "auth" - ], - "additionalProperties": false - } + "ApiRoutes": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BaseResponse.json b/packages/spec/json-schema/api/BaseResponse.json index a41c5be87..8ee53b508 100644 --- a/packages/spec/json-schema/api/BaseResponse.json +++ b/packages/spec/json-schema/api/BaseResponse.json @@ -1,63 +1,7 @@ { "$ref": "#/definitions/BaseResponse", "definitions": { - "BaseResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Operation success status" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if success is false" - }, - "meta": { - "type": "object", - "properties": { - "timestamp": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "requestId": { - "type": "string" - }, - "traceId": { - "type": "string" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false, - "description": "Response metadata" - } - }, - "required": [ - "success" - ], - "additionalProperties": false - } + "BaseResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BatchConfig.json b/packages/spec/json-schema/api/BatchConfig.json index 8617dad95..f7dae6e1d 100644 --- a/packages/spec/json-schema/api/BatchConfig.json +++ b/packages/spec/json-schema/api/BatchConfig.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/BatchConfig", "definitions": { - "BatchConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable batch operations" - }, - "maxRecordsPerBatch": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "default": 200, - "description": "Maximum records per batch" - }, - "defaultOptions": { - "type": "object", - "properties": { - "atomic": { - "type": "boolean", - "default": true, - "description": "If true, rollback entire batch on any failure (transaction mode)" - }, - "returnRecords": { - "type": "boolean", - "default": false, - "description": "If true, return full record data in response" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "If true (and atomic=false), continue processing remaining records after errors" - }, - "validateOnly": { - "type": "boolean", - "default": false, - "description": "If true, validate records without persisting changes (dry-run mode)" - } - }, - "additionalProperties": false, - "description": "Default batch options" - } - }, - "additionalProperties": true - } + "BatchConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BatchDataRequest.json b/packages/spec/json-schema/api/BatchDataRequest.json index dac5504b2..a5c777a90 100644 --- a/packages/spec/json-schema/api/BatchDataRequest.json +++ b/packages/spec/json-schema/api/BatchDataRequest.json @@ -1,93 +1,7 @@ { "$ref": "#/definitions/BatchDataRequest", "definitions": { - "BatchDataRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "request": { - "type": "object", - "properties": { - "operation": { - "type": "string", - "enum": [ - "create", - "update", - "upsert", - "delete" - ], - "description": "Type of batch operation" - }, - "records": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID (required for update/delete)" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Record data (required for create/update/upsert)" - }, - "externalId": { - "type": "string", - "description": "External ID for upsert matching" - } - }, - "additionalProperties": false - }, - "minItems": 1, - "maxItems": 200, - "description": "Array of records to process (max 200 per batch)" - }, - "options": { - "type": "object", - "properties": { - "atomic": { - "type": "boolean", - "default": true, - "description": "If true, rollback entire batch on any failure (transaction mode)" - }, - "returnRecords": { - "type": "boolean", - "default": false, - "description": "If true, return full record data in response" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "If true (and atomic=false), continue processing remaining records after errors" - }, - "validateOnly": { - "type": "boolean", - "default": false, - "description": "If true, validate records without persisting changes (dry-run mode)" - } - }, - "additionalProperties": false, - "description": "Batch operation options" - } - }, - "required": [ - "operation", - "records" - ], - "additionalProperties": false, - "description": "Batch operation request" - } - }, - "required": [ - "object", - "request" - ], - "additionalProperties": false - } + "BatchDataRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BatchDataResponse.json b/packages/spec/json-schema/api/BatchDataResponse.json index d0a4d951c..cb0b502d1 100644 --- a/packages/spec/json-schema/api/BatchDataResponse.json +++ b/packages/spec/json-schema/api/BatchDataResponse.json @@ -1,144 +1,7 @@ { "$ref": "#/definitions/BatchDataResponse", "definitions": { - "BatchDataResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Operation success status" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if success is false" - }, - "meta": { - "type": "object", - "properties": { - "timestamp": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "requestId": { - "type": "string" - }, - "traceId": { - "type": "string" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false, - "description": "Response metadata" - }, - "operation": { - "type": "string", - "enum": [ - "create", - "update", - "upsert", - "delete" - ], - "description": "Operation type that was performed" - }, - "total": { - "type": "number", - "description": "Total number of records in the batch" - }, - "succeeded": { - "type": "number", - "description": "Number of records that succeeded" - }, - "failed": { - "type": "number", - "description": "Number of records that failed" - }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID if operation succeeded" - }, - "success": { - "type": "boolean", - "description": "Whether this record was processed successfully" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - }, - "description": "Array of errors if operation failed" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Full record data (if returnRecords=true)" - }, - "index": { - "type": "number", - "description": "Index of the record in the request array" - } - }, - "required": [ - "success" - ], - "additionalProperties": false - }, - "description": "Detailed results for each record" - } - }, - "required": [ - "success", - "total", - "succeeded", - "failed", - "results" - ], - "additionalProperties": false - } + "BatchDataResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BatchEndpointsConfig.json b/packages/spec/json-schema/api/BatchEndpointsConfig.json index 429d02212..ae6d5c838 100644 --- a/packages/spec/json-schema/api/BatchEndpointsConfig.json +++ b/packages/spec/json-schema/api/BatchEndpointsConfig.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/BatchEndpointsConfig", "definitions": { - "BatchEndpointsConfig": { - "type": "object", - "properties": { - "maxBatchSize": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "default": 200, - "description": "Maximum records per batch operation" - }, - "enableBatchEndpoint": { - "type": "boolean", - "default": true, - "description": "Enable POST /data/:object/batch endpoint" - }, - "operations": { - "type": "object", - "properties": { - "createMany": { - "type": "boolean", - "default": true, - "description": "Enable POST /data/:object/createMany" - }, - "updateMany": { - "type": "boolean", - "default": true, - "description": "Enable POST /data/:object/updateMany" - }, - "deleteMany": { - "type": "boolean", - "default": true, - "description": "Enable POST /data/:object/deleteMany" - }, - "upsertMany": { - "type": "boolean", - "default": true, - "description": "Enable POST /data/:object/upsertMany" - } - }, - "additionalProperties": false, - "description": "Enable/disable specific batch operations" - }, - "defaultAtomic": { - "type": "boolean", - "default": true, - "description": "Default atomic/transaction mode for batch operations" - } - }, - "additionalProperties": false - } + "BatchEndpointsConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BatchOperationResult.json b/packages/spec/json-schema/api/BatchOperationResult.json index 1d80b885e..fa9d7a690 100644 --- a/packages/spec/json-schema/api/BatchOperationResult.json +++ b/packages/spec/json-schema/api/BatchOperationResult.json @@ -1,57 +1,7 @@ { "$ref": "#/definitions/BatchOperationResult", "definitions": { - "BatchOperationResult": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID if operation succeeded" - }, - "success": { - "type": "boolean", - "description": "Whether this record was processed successfully" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - }, - "description": "Array of errors if operation failed" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Full record data (if returnRecords=true)" - }, - "index": { - "type": "number", - "description": "Index of the record in the request array" - } - }, - "required": [ - "success" - ], - "additionalProperties": false - } + "BatchOperationResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BatchOperationType.json b/packages/spec/json-schema/api/BatchOperationType.json index 9497b773f..bffea00fd 100644 --- a/packages/spec/json-schema/api/BatchOperationType.json +++ b/packages/spec/json-schema/api/BatchOperationType.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/BatchOperationType", "definitions": { - "BatchOperationType": { - "type": "string", - "enum": [ - "create", - "update", - "upsert", - "delete" - ] - } + "BatchOperationType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BatchOptions.json b/packages/spec/json-schema/api/BatchOptions.json index 7e8ac0ad1..15564c83b 100644 --- a/packages/spec/json-schema/api/BatchOptions.json +++ b/packages/spec/json-schema/api/BatchOptions.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/BatchOptions", "definitions": { - "BatchOptions": { - "type": "object", - "properties": { - "atomic": { - "type": "boolean", - "default": true, - "description": "If true, rollback entire batch on any failure (transaction mode)" - }, - "returnRecords": { - "type": "boolean", - "default": false, - "description": "If true, return full record data in response" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "If true (and atomic=false), continue processing remaining records after errors" - }, - "validateOnly": { - "type": "boolean", - "default": false, - "description": "If true, validate records without persisting changes (dry-run mode)" - } - }, - "additionalProperties": false - } + "BatchOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BatchRecord.json b/packages/spec/json-schema/api/BatchRecord.json index 9a5a8e480..e0e62585d 100644 --- a/packages/spec/json-schema/api/BatchRecord.json +++ b/packages/spec/json-schema/api/BatchRecord.json @@ -1,25 +1,7 @@ { "$ref": "#/definitions/BatchRecord", "definitions": { - "BatchRecord": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID (required for update/delete)" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Record data (required for create/update/upsert)" - }, - "externalId": { - "type": "string", - "description": "External ID for upsert matching" - } - }, - "additionalProperties": false - } + "BatchRecord": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BatchUpdateRequest.json b/packages/spec/json-schema/api/BatchUpdateRequest.json index 5d7559931..9f6c5c874 100644 --- a/packages/spec/json-schema/api/BatchUpdateRequest.json +++ b/packages/spec/json-schema/api/BatchUpdateRequest.json @@ -1,78 +1,7 @@ { "$ref": "#/definitions/BatchUpdateRequest", "definitions": { - "BatchUpdateRequest": { - "type": "object", - "properties": { - "operation": { - "type": "string", - "enum": [ - "create", - "update", - "upsert", - "delete" - ], - "description": "Type of batch operation" - }, - "records": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID (required for update/delete)" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Record data (required for create/update/upsert)" - }, - "externalId": { - "type": "string", - "description": "External ID for upsert matching" - } - }, - "additionalProperties": false - }, - "minItems": 1, - "maxItems": 200, - "description": "Array of records to process (max 200 per batch)" - }, - "options": { - "type": "object", - "properties": { - "atomic": { - "type": "boolean", - "default": true, - "description": "If true, rollback entire batch on any failure (transaction mode)" - }, - "returnRecords": { - "type": "boolean", - "default": false, - "description": "If true, return full record data in response" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "If true (and atomic=false), continue processing remaining records after errors" - }, - "validateOnly": { - "type": "boolean", - "default": false, - "description": "If true, validate records without persisting changes (dry-run mode)" - } - }, - "additionalProperties": false, - "description": "Batch operation options" - } - }, - "required": [ - "operation", - "records" - ], - "additionalProperties": false - } + "BatchUpdateRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BatchUpdateResponse.json b/packages/spec/json-schema/api/BatchUpdateResponse.json index 07f09666e..eccdb9bec 100644 --- a/packages/spec/json-schema/api/BatchUpdateResponse.json +++ b/packages/spec/json-schema/api/BatchUpdateResponse.json @@ -1,144 +1,7 @@ { "$ref": "#/definitions/BatchUpdateResponse", "definitions": { - "BatchUpdateResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Operation success status" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if success is false" - }, - "meta": { - "type": "object", - "properties": { - "timestamp": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "requestId": { - "type": "string" - }, - "traceId": { - "type": "string" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false, - "description": "Response metadata" - }, - "operation": { - "type": "string", - "enum": [ - "create", - "update", - "upsert", - "delete" - ], - "description": "Operation type that was performed" - }, - "total": { - "type": "number", - "description": "Total number of records in the batch" - }, - "succeeded": { - "type": "number", - "description": "Number of records that succeeded" - }, - "failed": { - "type": "number", - "description": "Number of records that failed" - }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID if operation succeeded" - }, - "success": { - "type": "boolean", - "description": "Whether this record was processed successfully" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - }, - "description": "Array of errors if operation failed" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Full record data (if returnRecords=true)" - }, - "index": { - "type": "number", - "description": "Index of the record in the request array" - } - }, - "required": [ - "success" - ], - "additionalProperties": false - }, - "description": "Detailed results for each record" - } - }, - "required": [ - "success", - "total", - "succeeded", - "failed", - "results" - ], - "additionalProperties": false - } + "BatchUpdateResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BulkRequest.json b/packages/spec/json-schema/api/BulkRequest.json index 07bef5177..aa8e6b4fc 100644 --- a/packages/spec/json-schema/api/BulkRequest.json +++ b/packages/spec/json-schema/api/BulkRequest.json @@ -1,29 +1,7 @@ { "$ref": "#/definitions/BulkRequest", "definitions": { - "BulkRequest": { - "type": "object", - "properties": { - "records": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "Key-value map of record data" - }, - "description": "Array of records to process" - }, - "allOrNone": { - "type": "boolean", - "default": true, - "description": "If true, rollback entire transaction on any failure" - } - }, - "required": [ - "records" - ], - "additionalProperties": false - } + "BulkRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/BulkResponse.json b/packages/spec/json-schema/api/BulkResponse.json index 87db05e07..9a36fb45a 100644 --- a/packages/spec/json-schema/api/BulkResponse.json +++ b/packages/spec/json-schema/api/BulkResponse.json @@ -1,108 +1,7 @@ { "$ref": "#/definitions/BulkResponse", "definitions": { - "BulkResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Operation success status" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if success is false" - }, - "meta": { - "type": "object", - "properties": { - "timestamp": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "requestId": { - "type": "string" - }, - "traceId": { - "type": "string" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false, - "description": "Response metadata" - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID if processed" - }, - "success": { - "type": "boolean" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - } - } - }, - "required": [ - "success" - ], - "additionalProperties": false - }, - "description": "Results for each item in the batch" - } - }, - "required": [ - "success", - "data" - ], - "additionalProperties": false - } + "BulkResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CacheControl.json b/packages/spec/json-schema/api/CacheControl.json index 5048b0ac9..ed5562291 100644 --- a/packages/spec/json-schema/api/CacheControl.json +++ b/packages/spec/json-schema/api/CacheControl.json @@ -1,42 +1,7 @@ { "$ref": "#/definitions/CacheControl", "definitions": { - "CacheControl": { - "type": "object", - "properties": { - "directives": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "public", - "private", - "no-cache", - "no-store", - "must-revalidate", - "max-age" - ] - }, - "description": "Cache control directives" - }, - "maxAge": { - "type": "number", - "description": "Maximum cache age in seconds" - }, - "staleWhileRevalidate": { - "type": "number", - "description": "Allow serving stale content while revalidating (seconds)" - }, - "staleIfError": { - "type": "number", - "description": "Allow serving stale content on error (seconds)" - } - }, - "required": [ - "directives" - ], - "additionalProperties": false - } + "CacheControl": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CacheDirective.json b/packages/spec/json-schema/api/CacheDirective.json index 3eb523129..ddb407f3c 100644 --- a/packages/spec/json-schema/api/CacheDirective.json +++ b/packages/spec/json-schema/api/CacheDirective.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/CacheDirective", "definitions": { - "CacheDirective": { - "type": "string", - "enum": [ - "public", - "private", - "no-cache", - "no-store", - "must-revalidate", - "max-age" - ] - } + "CacheDirective": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CacheInvalidationRequest.json b/packages/spec/json-schema/api/CacheInvalidationRequest.json index 203a39086..e3080aa68 100644 --- a/packages/spec/json-schema/api/CacheInvalidationRequest.json +++ b/packages/spec/json-schema/api/CacheInvalidationRequest.json @@ -1,43 +1,7 @@ { "$ref": "#/definitions/CacheInvalidationRequest", "definitions": { - "CacheInvalidationRequest": { - "type": "object", - "properties": { - "target": { - "type": "string", - "enum": [ - "all", - "object", - "field", - "permission", - "layout", - "custom" - ], - "description": "What to invalidate" - }, - "identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Specific resources to invalidate (e.g., object names)" - }, - "cascade": { - "type": "boolean", - "default": false, - "description": "If true, invalidate dependent resources" - }, - "pattern": { - "type": "string", - "description": "Pattern for custom invalidation (supports wildcards)" - } - }, - "required": [ - "target" - ], - "additionalProperties": false - } + "CacheInvalidationRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CacheInvalidationResponse.json b/packages/spec/json-schema/api/CacheInvalidationResponse.json index cdb542066..3bbbfc28b 100644 --- a/packages/spec/json-schema/api/CacheInvalidationResponse.json +++ b/packages/spec/json-schema/api/CacheInvalidationResponse.json @@ -1,31 +1,7 @@ { "$ref": "#/definitions/CacheInvalidationResponse", "definitions": { - "CacheInvalidationResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Whether invalidation succeeded" - }, - "invalidated": { - "type": "number", - "description": "Number of cache entries invalidated" - }, - "targets": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of invalidated resources" - } - }, - "required": [ - "success", - "invalidated" - ], - "additionalProperties": false - } + "CacheInvalidationResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CacheInvalidationTarget.json b/packages/spec/json-schema/api/CacheInvalidationTarget.json index 9c174cdbc..a382ad732 100644 --- a/packages/spec/json-schema/api/CacheInvalidationTarget.json +++ b/packages/spec/json-schema/api/CacheInvalidationTarget.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/CacheInvalidationTarget", "definitions": { - "CacheInvalidationTarget": { - "type": "string", - "enum": [ - "all", - "object", - "field", - "permission", - "layout", - "custom" - ] - } + "CacheInvalidationTarget": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CreateDataRequest.json b/packages/spec/json-schema/api/CreateDataRequest.json index 2af2fbc32..f8f24831f 100644 --- a/packages/spec/json-schema/api/CreateDataRequest.json +++ b/packages/spec/json-schema/api/CreateDataRequest.json @@ -1,25 +1,7 @@ { "$ref": "#/definitions/CreateDataRequest", "definitions": { - "CreateDataRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Record data to create" - } - }, - "required": [ - "object", - "data" - ], - "additionalProperties": false - } + "CreateDataRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CreateDataResponse.json b/packages/spec/json-schema/api/CreateDataResponse.json index 2144ae0b0..a93de65ec 100644 --- a/packages/spec/json-schema/api/CreateDataResponse.json +++ b/packages/spec/json-schema/api/CreateDataResponse.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/CreateDataResponse", "definitions": { - "CreateDataResponse": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "id": { - "type": "string", - "description": "Created record ID" - }, - "record": { - "type": "object", - "additionalProperties": {}, - "description": "Created record (with server-generated fields)" - } - }, - "required": [ - "object", - "id", - "record" - ], - "additionalProperties": false - } + "CreateDataResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CreateManyDataRequest.json b/packages/spec/json-schema/api/CreateManyDataRequest.json index 49f9d75cc..233b562f8 100644 --- a/packages/spec/json-schema/api/CreateManyDataRequest.json +++ b/packages/spec/json-schema/api/CreateManyDataRequest.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/CreateManyDataRequest", "definitions": { - "CreateManyDataRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "records": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - }, - "description": "Array of records to create" - } - }, - "required": [ - "object", - "records" - ], - "additionalProperties": false - } + "CreateManyDataRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CreateManyDataResponse.json b/packages/spec/json-schema/api/CreateManyDataResponse.json index 2c71ce1b9..6b98b5c20 100644 --- a/packages/spec/json-schema/api/CreateManyDataResponse.json +++ b/packages/spec/json-schema/api/CreateManyDataResponse.json @@ -1,33 +1,7 @@ { "$ref": "#/definitions/CreateManyDataResponse", "definitions": { - "CreateManyDataResponse": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "records": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - }, - "description": "Created records" - }, - "count": { - "type": "number", - "description": "Number of records created" - } - }, - "required": [ - "object", - "records", - "count" - ], - "additionalProperties": false - } + "CreateManyDataResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CreateRequest.json b/packages/spec/json-schema/api/CreateRequest.json index 25f5ec28d..8ad78d503 100644 --- a/packages/spec/json-schema/api/CreateRequest.json +++ b/packages/spec/json-schema/api/CreateRequest.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/CreateRequest", "definitions": { - "CreateRequest": { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Record data to insert" - } - }, - "required": [ - "data" - ], - "additionalProperties": false - } + "CreateRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CreateViewRequest.json b/packages/spec/json-schema/api/CreateViewRequest.json index 01f22609b..40d4c20aa 100644 --- a/packages/spec/json-schema/api/CreateViewRequest.json +++ b/packages/spec/json-schema/api/CreateViewRequest.json @@ -1,1042 +1,7 @@ { "$ref": "#/definitions/CreateViewRequest", "definitions": { - "CreateViewRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "View machine name" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string" - }, - "object": { - "type": "string", - "description": "Object name" - }, - "type": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "timeline", - "chart", - "pivot", - "custom" - ], - "description": "View type" - }, - "visibility": { - "type": "string", - "enum": [ - "private", - "shared", - "public", - "organization" - ], - "description": "View visibility" - }, - "query": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": {}, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - }, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Query configuration" - }, - "layout": { - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "label": { - "type": "string", - "description": "Custom column label" - }, - "width": { - "type": "number", - "description": "Column width in pixels" - }, - "sortable": { - "type": "boolean", - "default": true, - "description": "Whether column is sortable" - }, - "filterable": { - "type": "boolean", - "default": true, - "description": "Whether column is filterable" - }, - "visible": { - "type": "boolean", - "default": true, - "description": "Whether column is visible" - }, - "pinned": { - "type": "string", - "enum": [ - "left", - "right" - ], - "description": "Pin column to left or right" - }, - "formatter": { - "type": "string", - "description": "Custom formatter name" - }, - "aggregation": { - "type": "string", - "description": "Aggregation function for column (sum, avg, etc.)" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Column configuration for list views" - }, - "rowHeight": { - "type": "number", - "description": "Row height in pixels" - }, - "groupByField": { - "type": "string", - "description": "Field to group by (for kanban)" - }, - "cardFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to display on cards" - }, - "dateField": { - "type": "string", - "description": "Date field for calendar view" - }, - "startDateField": { - "type": "string", - "description": "Start date field for event ranges" - }, - "endDateField": { - "type": "string", - "description": "End date field for event ranges" - }, - "titleField": { - "type": "string", - "description": "Field to use as event title" - }, - "chartType": { - "type": "string", - "enum": [ - "bar", - "line", - "pie", - "scatter", - "area" - ], - "description": "Chart type" - }, - "xAxis": { - "type": "string", - "description": "X-axis field" - }, - "yAxis": { - "type": "string", - "description": "Y-axis field" - }, - "series": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Series fields for multi-series charts" - } - }, - "additionalProperties": false, - "description": "Layout configuration" - }, - "sharedWith": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Users/teams to share with" - }, - "isDefault": { - "type": "boolean", - "default": false, - "description": "Set as default view" - }, - "settings": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "name", - "label", - "object", - "type", - "visibility", - "query" - ], - "additionalProperties": false - } + "CreateViewRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CrudEndpointPattern.json b/packages/spec/json-schema/api/CrudEndpointPattern.json index 51ff876eb..ac8045b26 100644 --- a/packages/spec/json-schema/api/CrudEndpointPattern.json +++ b/packages/spec/json-schema/api/CrudEndpointPattern.json @@ -1,41 +1,7 @@ { "$ref": "#/definitions/CrudEndpointPattern", "definitions": { - "CrudEndpointPattern": { - "type": "object", - "properties": { - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ], - "description": "HTTP method" - }, - "path": { - "type": "string", - "description": "URL path pattern" - }, - "summary": { - "type": "string", - "description": "Operation summary" - }, - "description": { - "type": "string", - "description": "Operation description" - } - }, - "required": [ - "method", - "path" - ], - "additionalProperties": false - } + "CrudEndpointPattern": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CrudEndpointsConfig.json b/packages/spec/json-schema/api/CrudEndpointsConfig.json index b1aea50ad..a183d59b8 100644 --- a/packages/spec/json-schema/api/CrudEndpointsConfig.json +++ b/packages/spec/json-schema/api/CrudEndpointsConfig.json @@ -1,106 +1,7 @@ { "$ref": "#/definitions/CrudEndpointsConfig", "definitions": { - "CrudEndpointsConfig": { - "type": "object", - "properties": { - "operations": { - "type": "object", - "properties": { - "create": { - "type": "boolean", - "default": true, - "description": "Enable create operation" - }, - "read": { - "type": "boolean", - "default": true, - "description": "Enable read operation" - }, - "update": { - "type": "boolean", - "default": true, - "description": "Enable update operation" - }, - "delete": { - "type": "boolean", - "default": true, - "description": "Enable delete operation" - }, - "list": { - "type": "boolean", - "default": true, - "description": "Enable list operation" - } - }, - "additionalProperties": false, - "description": "Enable/disable operations" - }, - "patterns": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ], - "description": "HTTP method" - }, - "path": { - "type": "string", - "description": "URL path pattern" - }, - "summary": { - "type": "string", - "description": "Operation summary" - }, - "description": { - "type": "string", - "description": "Operation description" - } - }, - "required": [ - "method", - "path" - ], - "additionalProperties": false - }, - "propertyNames": { - "enum": [ - "create", - "read", - "update", - "delete", - "list" - ] - }, - "description": "Custom URL patterns for operations" - }, - "dataPrefix": { - "type": "string", - "default": "/data", - "description": "URL prefix for data endpoints" - }, - "objectParamStyle": { - "type": "string", - "enum": [ - "path", - "query" - ], - "default": "path", - "description": "How object name is passed (path param or query param)" - } - }, - "additionalProperties": false - } + "CrudEndpointsConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CrudOperation.json b/packages/spec/json-schema/api/CrudOperation.json index 6b25c19ea..fa3d7e74e 100644 --- a/packages/spec/json-schema/api/CrudOperation.json +++ b/packages/spec/json-schema/api/CrudOperation.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/CrudOperation", "definitions": { - "CrudOperation": { - "type": "string", - "enum": [ - "create", - "read", - "update", - "delete", - "list" - ] - } + "CrudOperation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CursorMessage.json b/packages/spec/json-schema/api/CursorMessage.json index 41e76989f..a86c0695f 100644 --- a/packages/spec/json-schema/api/CursorMessage.json +++ b/packages/spec/json-schema/api/CursorMessage.json @@ -1,139 +1,7 @@ { "$ref": "#/definitions/CursorMessage", "definitions": { - "CursorMessage": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "cursor" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "cursor": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier being edited" - }, - "position": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Line number (0-indexed)" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Column number (0-indexed)" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Cursor position in document" - }, - "selection": { - "type": "object", - "properties": { - "start": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0 - }, - "column": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false - }, - "end": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0 - }, - "column": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false - } - }, - "required": [ - "start", - "end" - ], - "additionalProperties": false, - "description": "Selection range (if text is selected)" - }, - "color": { - "type": "string", - "description": "Cursor color for visual representation" - }, - "userName": { - "type": "string", - "description": "Display name of user" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last cursor update" - } - }, - "required": [ - "userId", - "sessionId", - "documentId", - "lastUpdate" - ], - "additionalProperties": false, - "description": "Cursor position" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "cursor" - ], - "additionalProperties": false - } + "CursorMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/CursorPosition.json b/packages/spec/json-schema/api/CursorPosition.json index e53de95f5..a5a0b2535 100644 --- a/packages/spec/json-schema/api/CursorPosition.json +++ b/packages/spec/json-schema/api/CursorPosition.json @@ -1,112 +1,7 @@ { "$ref": "#/definitions/CursorPosition", "definitions": { - "CursorPosition": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier being edited" - }, - "position": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Line number (0-indexed)" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Column number (0-indexed)" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Cursor position in document" - }, - "selection": { - "type": "object", - "properties": { - "start": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0 - }, - "column": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false - }, - "end": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0 - }, - "column": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false - } - }, - "required": [ - "start", - "end" - ], - "additionalProperties": false, - "description": "Selection range (if text is selected)" - }, - "color": { - "type": "string", - "description": "Cursor color for visual representation" - }, - "userName": { - "type": "string", - "description": "Display name of user" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last cursor update" - } - }, - "required": [ - "userId", - "sessionId", - "documentId", - "lastUpdate" - ], - "additionalProperties": false - } + "CursorPosition": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/DeleteDataRequest.json b/packages/spec/json-schema/api/DeleteDataRequest.json index 61ffc5988..ccfa6dbdb 100644 --- a/packages/spec/json-schema/api/DeleteDataRequest.json +++ b/packages/spec/json-schema/api/DeleteDataRequest.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/DeleteDataRequest", "definitions": { - "DeleteDataRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "id": { - "type": "string", - "description": "Record ID to delete" - } - }, - "required": [ - "object", - "id" - ], - "additionalProperties": false - } + "DeleteDataRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/DeleteDataResponse.json b/packages/spec/json-schema/api/DeleteDataResponse.json index 250c32a2d..6fb234db0 100644 --- a/packages/spec/json-schema/api/DeleteDataResponse.json +++ b/packages/spec/json-schema/api/DeleteDataResponse.json @@ -1,29 +1,7 @@ { "$ref": "#/definitions/DeleteDataResponse", "definitions": { - "DeleteDataResponse": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "id": { - "type": "string", - "description": "Deleted record ID" - }, - "success": { - "type": "boolean", - "description": "Whether deletion succeeded" - } - }, - "required": [ - "object", - "id", - "success" - ], - "additionalProperties": false - } + "DeleteDataResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/DeleteManyDataRequest.json b/packages/spec/json-schema/api/DeleteManyDataRequest.json index 3ffc89cea..b87042579 100644 --- a/packages/spec/json-schema/api/DeleteManyDataRequest.json +++ b/packages/spec/json-schema/api/DeleteManyDataRequest.json @@ -1,54 +1,7 @@ { "$ref": "#/definitions/DeleteManyDataRequest", "definitions": { - "DeleteManyDataRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "ids": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of record IDs to delete" - }, - "options": { - "type": "object", - "properties": { - "atomic": { - "type": "boolean", - "default": true, - "description": "If true, rollback entire batch on any failure (transaction mode)" - }, - "returnRecords": { - "type": "boolean", - "default": false, - "description": "If true, return full record data in response" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "If true (and atomic=false), continue processing remaining records after errors" - }, - "validateOnly": { - "type": "boolean", - "default": false, - "description": "If true, validate records without persisting changes (dry-run mode)" - } - }, - "additionalProperties": false, - "description": "Delete options" - } - }, - "required": [ - "object", - "ids" - ], - "additionalProperties": false - } + "DeleteManyDataRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/DeleteManyDataResponse.json b/packages/spec/json-schema/api/DeleteManyDataResponse.json index bca369186..2fd06ff42 100644 --- a/packages/spec/json-schema/api/DeleteManyDataResponse.json +++ b/packages/spec/json-schema/api/DeleteManyDataResponse.json @@ -1,144 +1,7 @@ { "$ref": "#/definitions/DeleteManyDataResponse", "definitions": { - "DeleteManyDataResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Operation success status" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if success is false" - }, - "meta": { - "type": "object", - "properties": { - "timestamp": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "requestId": { - "type": "string" - }, - "traceId": { - "type": "string" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false, - "description": "Response metadata" - }, - "operation": { - "type": "string", - "enum": [ - "create", - "update", - "upsert", - "delete" - ], - "description": "Operation type that was performed" - }, - "total": { - "type": "number", - "description": "Total number of records in the batch" - }, - "succeeded": { - "type": "number", - "description": "Number of records that succeeded" - }, - "failed": { - "type": "number", - "description": "Number of records that failed" - }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID if operation succeeded" - }, - "success": { - "type": "boolean", - "description": "Whether this record was processed successfully" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - }, - "description": "Array of errors if operation failed" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Full record data (if returnRecords=true)" - }, - "index": { - "type": "number", - "description": "Index of the record in the request array" - } - }, - "required": [ - "success" - ], - "additionalProperties": false - }, - "description": "Detailed results for each record" - } - }, - "required": [ - "success", - "total", - "succeeded", - "failed", - "results" - ], - "additionalProperties": false - } + "DeleteManyDataResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/DeleteManyRequest.json b/packages/spec/json-schema/api/DeleteManyRequest.json index c3fee66fe..ccc82837a 100644 --- a/packages/spec/json-schema/api/DeleteManyRequest.json +++ b/packages/spec/json-schema/api/DeleteManyRequest.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/DeleteManyRequest", "definitions": { - "DeleteManyRequest": { - "type": "object", - "properties": { - "ids": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 200, - "description": "Array of record IDs to delete (max 200)" - }, - "options": { - "type": "object", - "properties": { - "atomic": { - "type": "boolean", - "default": true, - "description": "If true, rollback entire batch on any failure (transaction mode)" - }, - "returnRecords": { - "type": "boolean", - "default": false, - "description": "If true, return full record data in response" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "If true (and atomic=false), continue processing remaining records after errors" - }, - "validateOnly": { - "type": "boolean", - "default": false, - "description": "If true, validate records without persisting changes (dry-run mode)" - } - }, - "additionalProperties": false, - "description": "Delete options" - } - }, - "required": [ - "ids" - ], - "additionalProperties": false - } + "DeleteManyRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/DeleteResponse.json b/packages/spec/json-schema/api/DeleteResponse.json index 12a67a41d..e5f47aeaf 100644 --- a/packages/spec/json-schema/api/DeleteResponse.json +++ b/packages/spec/json-schema/api/DeleteResponse.json @@ -1,68 +1,7 @@ { "$ref": "#/definitions/DeleteResponse", "definitions": { - "DeleteResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Operation success status" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if success is false" - }, - "meta": { - "type": "object", - "properties": { - "timestamp": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "requestId": { - "type": "string" - }, - "traceId": { - "type": "string" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false, - "description": "Response metadata" - }, - "id": { - "type": "string", - "description": "ID of the deleted record" - } - }, - "required": [ - "success", - "id" - ], - "additionalProperties": false - } + "DeleteResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/DeleteViewRequest.json b/packages/spec/json-schema/api/DeleteViewRequest.json index 66d9d3468..92a149b4e 100644 --- a/packages/spec/json-schema/api/DeleteViewRequest.json +++ b/packages/spec/json-schema/api/DeleteViewRequest.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/DeleteViewRequest", "definitions": { - "DeleteViewRequest": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "View ID to delete" - } - }, - "required": [ - "id" - ], - "additionalProperties": false - } + "DeleteViewRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/DeleteViewResponse.json b/packages/spec/json-schema/api/DeleteViewResponse.json index 144ad3e4c..7b77784a2 100644 --- a/packages/spec/json-schema/api/DeleteViewResponse.json +++ b/packages/spec/json-schema/api/DeleteViewResponse.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/DeleteViewResponse", "definitions": { - "DeleteViewResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Whether deletion succeeded" - } - }, - "required": [ - "success" - ], - "additionalProperties": false - } + "DeleteViewResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/Discovery.json b/packages/spec/json-schema/api/Discovery.json index d7155fadf..c4f8a1545 100644 --- a/packages/spec/json-schema/api/Discovery.json +++ b/packages/spec/json-schema/api/Discovery.json @@ -1,114 +1,7 @@ { "$ref": "#/definitions/Discovery", "definitions": { - "Discovery": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - }, - "environment": { - "type": "string", - "enum": [ - "production", - "sandbox", - "development" - ] - }, - "routes": { - "type": "object", - "properties": { - "data": { - "type": "string", - "description": "e.g. /api/data" - }, - "metadata": { - "type": "string", - "description": "e.g. /api/meta" - }, - "auth": { - "type": "string", - "description": "e.g. /api/auth" - }, - "automation": { - "type": "string", - "description": "e.g. /api/automation" - }, - "storage": { - "type": "string", - "description": "e.g. /api/storage" - }, - "graphql": { - "type": "string", - "description": "e.g. /graphql" - } - }, - "required": [ - "data", - "metadata", - "auth" - ], - "additionalProperties": false - }, - "features": { - "type": "object", - "properties": { - "graphql": { - "type": "boolean", - "default": false - }, - "search": { - "type": "boolean", - "default": false - }, - "websockets": { - "type": "boolean", - "default": false - }, - "files": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - }, - "locale": { - "type": "object", - "properties": { - "default": { - "type": "string" - }, - "supported": { - "type": "array", - "items": { - "type": "string" - } - }, - "timezone": { - "type": "string" - } - }, - "required": [ - "default", - "supported", - "timezone" - ], - "additionalProperties": false - } - }, - "required": [ - "name", - "version", - "environment", - "routes", - "features", - "locale" - ], - "additionalProperties": false - } + "Discovery": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/DocumentState.json b/packages/spec/json-schema/api/DocumentState.json index 72991707e..c0a884793 100644 --- a/packages/spec/json-schema/api/DocumentState.json +++ b/packages/spec/json-schema/api/DocumentState.json @@ -1,49 +1,7 @@ { "$ref": "#/definitions/DocumentState", "definitions": { - "DocumentState": { - "type": "object", - "properties": { - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "version": { - "type": "integer", - "minimum": 0, - "description": "Current document version" - }, - "content": { - "type": "string", - "description": "Current document content" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last modification" - }, - "activeSessions": { - "type": "array", - "items": { - "type": "string", - "format": "uuid" - }, - "description": "Active editing session IDs" - }, - "checksum": { - "type": "string", - "description": "Content checksum for integrity verification" - } - }, - "required": [ - "documentId", - "version", - "content", - "lastModified", - "activeSessions" - ], - "additionalProperties": false - } + "DocumentState": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ETag.json b/packages/spec/json-schema/api/ETag.json index 116c725eb..a98f7a7b4 100644 --- a/packages/spec/json-schema/api/ETag.json +++ b/packages/spec/json-schema/api/ETag.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/ETag", "definitions": { - "ETag": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "ETag value (hash or version identifier)" - }, - "weak": { - "type": "boolean", - "default": false, - "description": "Whether this is a weak ETag" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - } + "ETag": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/EditMessage.json b/packages/spec/json-schema/api/EditMessage.json index 473001658..dbb675743 100644 --- a/packages/spec/json-schema/api/EditMessage.json +++ b/packages/spec/json-schema/api/EditMessage.json @@ -1,135 +1,7 @@ { "$ref": "#/definitions/EditMessage", "definitions": { - "EditMessage": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "edit" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "operation": { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "userId": { - "type": "string", - "description": "User who performed the edit" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "type": { - "type": "string", - "enum": [ - "insert", - "delete", - "replace" - ], - "description": "Type of edit operation" - }, - "position": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Line number (0-indexed)" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Column number (0-indexed)" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Starting position of the operation" - }, - "endPosition": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0 - }, - "column": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Ending position (for delete/replace operations)" - }, - "content": { - "type": "string", - "description": "Content to insert/replace" - }, - "version": { - "type": "integer", - "minimum": 0, - "description": "Document version before this operation" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when operation was created" - }, - "baseOperationId": { - "type": "string", - "format": "uuid", - "description": "Previous operation ID this builds upon (for OT)" - } - }, - "required": [ - "operationId", - "documentId", - "userId", - "sessionId", - "type", - "position", - "version", - "timestamp" - ], - "additionalProperties": false, - "description": "Edit operation" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "operation" - ], - "additionalProperties": false - } + "EditMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/EditOperation.json b/packages/spec/json-schema/api/EditOperation.json index d3856d757..869122bd3 100644 --- a/packages/spec/json-schema/api/EditOperation.json +++ b/packages/spec/json-schema/api/EditOperation.json @@ -1,108 +1,7 @@ { "$ref": "#/definitions/EditOperation", "definitions": { - "EditOperation": { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "userId": { - "type": "string", - "description": "User who performed the edit" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "type": { - "type": "string", - "enum": [ - "insert", - "delete", - "replace" - ], - "description": "Type of edit operation" - }, - "position": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Line number (0-indexed)" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Column number (0-indexed)" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Starting position of the operation" - }, - "endPosition": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0 - }, - "column": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Ending position (for delete/replace operations)" - }, - "content": { - "type": "string", - "description": "Content to insert/replace" - }, - "version": { - "type": "integer", - "minimum": 0, - "description": "Document version before this operation" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when operation was created" - }, - "baseOperationId": { - "type": "string", - "format": "uuid", - "description": "Previous operation ID this builds upon (for OT)" - } - }, - "required": [ - "operationId", - "documentId", - "userId", - "sessionId", - "type", - "position", - "version", - "timestamp" - ], - "additionalProperties": false - } + "EditOperation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/EditOperationType.json b/packages/spec/json-schema/api/EditOperationType.json index 2019f6972..0e7020813 100644 --- a/packages/spec/json-schema/api/EditOperationType.json +++ b/packages/spec/json-schema/api/EditOperationType.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/EditOperationType", "definitions": { - "EditOperationType": { - "type": "string", - "enum": [ - "insert", - "delete", - "replace" - ] - } + "EditOperationType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/EndpointRegistry.json b/packages/spec/json-schema/api/EndpointRegistry.json index f98c9427a..9e32d03ca 100644 --- a/packages/spec/json-schema/api/EndpointRegistry.json +++ b/packages/spec/json-schema/api/EndpointRegistry.json @@ -1,284 +1,7 @@ { "$ref": "#/definitions/EndpointRegistry", "definitions": { - "EndpointRegistry": { - "type": "object", - "properties": { - "endpoints": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique endpoint identifier" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ], - "description": "HTTP method" - }, - "path": { - "type": "string", - "description": "Full URL path" - }, - "object": { - "type": "string", - "description": "Object name (snake_case)" - }, - "operation": { - "anyOf": [ - { - "type": "string", - "enum": [ - "create", - "read", - "update", - "delete", - "list" - ] - }, - { - "type": "string" - } - ], - "description": "Operation type" - }, - "handler": { - "type": "string", - "description": "Handler function identifier" - }, - "metadata": { - "type": "object", - "properties": { - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "deprecated": { - "type": "boolean" - } - }, - "additionalProperties": false - } - }, - "required": [ - "id", - "method", - "path", - "object", - "operation", - "handler" - ], - "additionalProperties": false - }, - "description": "All generated endpoints" - }, - "total": { - "type": "integer", - "description": "Total number of endpoints" - }, - "byObject": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique endpoint identifier" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ], - "description": "HTTP method" - }, - "path": { - "type": "string", - "description": "Full URL path" - }, - "object": { - "type": "string", - "description": "Object name (snake_case)" - }, - "operation": { - "anyOf": [ - { - "type": "string", - "enum": [ - "create", - "read", - "update", - "delete", - "list" - ] - }, - { - "type": "string" - } - ], - "description": "Operation type" - }, - "handler": { - "type": "string", - "description": "Handler function identifier" - }, - "metadata": { - "type": "object", - "properties": { - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "deprecated": { - "type": "boolean" - } - }, - "additionalProperties": false - } - }, - "required": [ - "id", - "method", - "path", - "object", - "operation", - "handler" - ], - "additionalProperties": false - } - }, - "description": "Endpoints grouped by object" - }, - "byOperation": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique endpoint identifier" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ], - "description": "HTTP method" - }, - "path": { - "type": "string", - "description": "Full URL path" - }, - "object": { - "type": "string", - "description": "Object name (snake_case)" - }, - "operation": { - "anyOf": [ - { - "type": "string", - "enum": [ - "create", - "read", - "update", - "delete", - "list" - ] - }, - { - "type": "string" - } - ], - "description": "Operation type" - }, - "handler": { - "type": "string", - "description": "Handler function identifier" - }, - "metadata": { - "type": "object", - "properties": { - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "deprecated": { - "type": "boolean" - } - }, - "additionalProperties": false - } - }, - "required": [ - "id", - "method", - "path", - "object", - "operation", - "handler" - ], - "additionalProperties": false - } - }, - "description": "Endpoints grouped by operation" - } - }, - "required": [ - "endpoints", - "total" - ], - "additionalProperties": false - } + "EndpointRegistry": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/EnhancedApiError.json b/packages/spec/json-schema/api/EnhancedApiError.json index 1914271ec..bad9e9133 100644 --- a/packages/spec/json-schema/api/EnhancedApiError.json +++ b/packages/spec/json-schema/api/EnhancedApiError.json @@ -1,226 +1,7 @@ { "$ref": "#/definitions/EnhancedApiError", "definitions": { - "EnhancedApiError": { - "type": "object", - "properties": { - "code": { - "type": "string", - "enum": [ - "validation_error", - "invalid_field", - "missing_required_field", - "invalid_format", - "value_too_long", - "value_too_short", - "value_out_of_range", - "invalid_reference", - "duplicate_value", - "invalid_query", - "invalid_filter", - "invalid_sort", - "max_records_exceeded", - "unauthenticated", - "invalid_credentials", - "expired_token", - "invalid_token", - "session_expired", - "mfa_required", - "email_not_verified", - "permission_denied", - "insufficient_privileges", - "field_not_accessible", - "record_not_accessible", - "license_required", - "ip_restricted", - "time_restricted", - "resource_not_found", - "object_not_found", - "record_not_found", - "field_not_found", - "endpoint_not_found", - "resource_conflict", - "concurrent_modification", - "delete_restricted", - "duplicate_record", - "lock_conflict", - "rate_limit_exceeded", - "quota_exceeded", - "concurrent_limit_exceeded", - "internal_error", - "database_error", - "timeout", - "service_unavailable", - "not_implemented", - "external_service_error", - "integration_error", - "webhook_delivery_failed", - "batch_partial_failure", - "batch_complete_failure", - "transaction_failed" - ], - "description": "Machine-readable error code" - }, - "message": { - "type": "string", - "description": "Human-readable error message" - }, - "category": { - "type": "string", - "enum": [ - "validation", - "authentication", - "authorization", - "not_found", - "conflict", - "rate_limit", - "server", - "external", - "maintenance" - ], - "description": "Error category" - }, - "httpStatus": { - "type": "number", - "description": "HTTP status code" - }, - "retryable": { - "type": "boolean", - "default": false, - "description": "Whether the request can be retried" - }, - "retryStrategy": { - "type": "string", - "enum": [ - "no_retry", - "retry_immediate", - "retry_backoff", - "retry_after" - ], - "description": "Recommended retry strategy" - }, - "retryAfter": { - "type": "number", - "description": "Seconds to wait before retrying" - }, - "details": { - "description": "Additional error context" - }, - "fieldErrors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field path (supports dot notation)" - }, - "code": { - "type": "string", - "enum": [ - "validation_error", - "invalid_field", - "missing_required_field", - "invalid_format", - "value_too_long", - "value_too_short", - "value_out_of_range", - "invalid_reference", - "duplicate_value", - "invalid_query", - "invalid_filter", - "invalid_sort", - "max_records_exceeded", - "unauthenticated", - "invalid_credentials", - "expired_token", - "invalid_token", - "session_expired", - "mfa_required", - "email_not_verified", - "permission_denied", - "insufficient_privileges", - "field_not_accessible", - "record_not_accessible", - "license_required", - "ip_restricted", - "time_restricted", - "resource_not_found", - "object_not_found", - "record_not_found", - "field_not_found", - "endpoint_not_found", - "resource_conflict", - "concurrent_modification", - "delete_restricted", - "duplicate_record", - "lock_conflict", - "rate_limit_exceeded", - "quota_exceeded", - "concurrent_limit_exceeded", - "internal_error", - "database_error", - "timeout", - "service_unavailable", - "not_implemented", - "external_service_error", - "integration_error", - "webhook_delivery_failed", - "batch_partial_failure", - "batch_complete_failure", - "transaction_failed" - ], - "description": "Error code for this field" - }, - "message": { - "type": "string", - "description": "Human-readable error message" - }, - "value": { - "description": "The invalid value that was provided" - }, - "constraint": { - "description": "The constraint that was violated (e.g., max length)" - } - }, - "required": [ - "field", - "code", - "message" - ], - "additionalProperties": false - }, - "description": "Field-specific validation errors" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "When the error occurred" - }, - "requestId": { - "type": "string", - "description": "Request ID for tracking" - }, - "traceId": { - "type": "string", - "description": "Distributed trace ID" - }, - "documentation": { - "type": "string", - "format": "uri", - "description": "URL to error documentation" - }, - "helpText": { - "type": "string", - "description": "Suggested actions to resolve the error" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - } + "EnhancedApiError": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ErrorCategory.json b/packages/spec/json-schema/api/ErrorCategory.json index 699310f72..817349508 100644 --- a/packages/spec/json-schema/api/ErrorCategory.json +++ b/packages/spec/json-schema/api/ErrorCategory.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/ErrorCategory", "definitions": { - "ErrorCategory": { - "type": "string", - "enum": [ - "validation", - "authentication", - "authorization", - "not_found", - "conflict", - "rate_limit", - "server", - "external", - "maintenance" - ] - } + "ErrorCategory": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ErrorMessage.json b/packages/spec/json-schema/api/ErrorMessage.json index f91ac4703..e86e4c4d4 100644 --- a/packages/spec/json-schema/api/ErrorMessage.json +++ b/packages/spec/json-schema/api/ErrorMessage.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/ErrorMessage", "definitions": { - "ErrorMessage": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "error" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "code": { - "type": "string", - "description": "Error code" - }, - "message": { - "type": "string", - "description": "Error message" - }, - "details": { - "description": "Additional error details" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "code", - "message" - ], - "additionalProperties": false - } + "ErrorMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ErrorResponse.json b/packages/spec/json-schema/api/ErrorResponse.json index 0eb5099d8..dc2a7ee25 100644 --- a/packages/spec/json-schema/api/ErrorResponse.json +++ b/packages/spec/json-schema/api/ErrorResponse.json @@ -1,259 +1,7 @@ { "$ref": "#/definitions/ErrorResponse", "definitions": { - "ErrorResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "const": false, - "description": "Always false for error responses" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "enum": [ - "validation_error", - "invalid_field", - "missing_required_field", - "invalid_format", - "value_too_long", - "value_too_short", - "value_out_of_range", - "invalid_reference", - "duplicate_value", - "invalid_query", - "invalid_filter", - "invalid_sort", - "max_records_exceeded", - "unauthenticated", - "invalid_credentials", - "expired_token", - "invalid_token", - "session_expired", - "mfa_required", - "email_not_verified", - "permission_denied", - "insufficient_privileges", - "field_not_accessible", - "record_not_accessible", - "license_required", - "ip_restricted", - "time_restricted", - "resource_not_found", - "object_not_found", - "record_not_found", - "field_not_found", - "endpoint_not_found", - "resource_conflict", - "concurrent_modification", - "delete_restricted", - "duplicate_record", - "lock_conflict", - "rate_limit_exceeded", - "quota_exceeded", - "concurrent_limit_exceeded", - "internal_error", - "database_error", - "timeout", - "service_unavailable", - "not_implemented", - "external_service_error", - "integration_error", - "webhook_delivery_failed", - "batch_partial_failure", - "batch_complete_failure", - "transaction_failed" - ], - "description": "Machine-readable error code" - }, - "message": { - "type": "string", - "description": "Human-readable error message" - }, - "category": { - "type": "string", - "enum": [ - "validation", - "authentication", - "authorization", - "not_found", - "conflict", - "rate_limit", - "server", - "external", - "maintenance" - ], - "description": "Error category" - }, - "httpStatus": { - "type": "number", - "description": "HTTP status code" - }, - "retryable": { - "type": "boolean", - "default": false, - "description": "Whether the request can be retried" - }, - "retryStrategy": { - "type": "string", - "enum": [ - "no_retry", - "retry_immediate", - "retry_backoff", - "retry_after" - ], - "description": "Recommended retry strategy" - }, - "retryAfter": { - "type": "number", - "description": "Seconds to wait before retrying" - }, - "details": { - "description": "Additional error context" - }, - "fieldErrors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field path (supports dot notation)" - }, - "code": { - "type": "string", - "enum": [ - "validation_error", - "invalid_field", - "missing_required_field", - "invalid_format", - "value_too_long", - "value_too_short", - "value_out_of_range", - "invalid_reference", - "duplicate_value", - "invalid_query", - "invalid_filter", - "invalid_sort", - "max_records_exceeded", - "unauthenticated", - "invalid_credentials", - "expired_token", - "invalid_token", - "session_expired", - "mfa_required", - "email_not_verified", - "permission_denied", - "insufficient_privileges", - "field_not_accessible", - "record_not_accessible", - "license_required", - "ip_restricted", - "time_restricted", - "resource_not_found", - "object_not_found", - "record_not_found", - "field_not_found", - "endpoint_not_found", - "resource_conflict", - "concurrent_modification", - "delete_restricted", - "duplicate_record", - "lock_conflict", - "rate_limit_exceeded", - "quota_exceeded", - "concurrent_limit_exceeded", - "internal_error", - "database_error", - "timeout", - "service_unavailable", - "not_implemented", - "external_service_error", - "integration_error", - "webhook_delivery_failed", - "batch_partial_failure", - "batch_complete_failure", - "transaction_failed" - ], - "description": "Error code for this field" - }, - "message": { - "type": "string", - "description": "Human-readable error message" - }, - "value": { - "description": "The invalid value that was provided" - }, - "constraint": { - "description": "The constraint that was violated (e.g., max length)" - } - }, - "required": [ - "field", - "code", - "message" - ], - "additionalProperties": false - }, - "description": "Field-specific validation errors" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "When the error occurred" - }, - "requestId": { - "type": "string", - "description": "Request ID for tracking" - }, - "traceId": { - "type": "string", - "description": "Distributed trace ID" - }, - "documentation": { - "type": "string", - "format": "uri", - "description": "URL to error documentation" - }, - "helpText": { - "type": "string", - "description": "Suggested actions to resolve the error" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details" - }, - "meta": { - "type": "object", - "properties": { - "timestamp": { - "type": "string", - "format": "date-time" - }, - "requestId": { - "type": "string" - }, - "traceId": { - "type": "string" - } - }, - "additionalProperties": false, - "description": "Response metadata" - } - }, - "required": [ - "success", - "error" - ], - "additionalProperties": false - } + "ErrorResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/EventFilter.json b/packages/spec/json-schema/api/EventFilter.json index ca8e2b8d7..6fba8c68b 100644 --- a/packages/spec/json-schema/api/EventFilter.json +++ b/packages/spec/json-schema/api/EventFilter.json @@ -1,65 +1,7 @@ { "$ref": "#/definitions/EventFilter", "definitions": { - "EventFilter": { - "type": "object", - "properties": { - "conditions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field path to filter on (supports dot notation, e.g., \"user.email\")" - }, - "operator": { - "type": "string", - "enum": [ - "eq", - "ne", - "gt", - "gte", - "lt", - "lte", - "in", - "nin", - "contains", - "startsWith", - "endsWith", - "exists", - "regex" - ], - "description": "Comparison operator" - }, - "value": { - "description": "Value to compare against (not needed for \"exists\" operator)" - } - }, - "required": [ - "field", - "operator" - ], - "additionalProperties": false - }, - "description": "Array of filter conditions" - }, - "and": { - "type": "array", - "items": {}, - "description": "AND logical combination of filters" - }, - "or": { - "type": "array", - "items": {}, - "description": "OR logical combination of filters" - }, - "not": { - "description": "NOT logical negation of filter" - } - }, - "additionalProperties": false - } + "EventFilter": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/EventFilterCondition.json b/packages/spec/json-schema/api/EventFilterCondition.json index 636c512dd..fe81d1ae0 100644 --- a/packages/spec/json-schema/api/EventFilterCondition.json +++ b/packages/spec/json-schema/api/EventFilterCondition.json @@ -1,42 +1,7 @@ { "$ref": "#/definitions/EventFilterCondition", "definitions": { - "EventFilterCondition": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field path to filter on (supports dot notation, e.g., \"user.email\")" - }, - "operator": { - "type": "string", - "enum": [ - "eq", - "ne", - "gt", - "gte", - "lt", - "lte", - "in", - "nin", - "contains", - "startsWith", - "endsWith", - "exists", - "regex" - ], - "description": "Comparison operator" - }, - "value": { - "description": "Value to compare against (not needed for \"exists\" operator)" - } - }, - "required": [ - "field", - "operator" - ], - "additionalProperties": false - } + "EventFilterCondition": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/EventMessage.json b/packages/spec/json-schema/api/EventMessage.json index 4fcb8700d..83d998b75 100644 --- a/packages/spec/json-schema/api/EventMessage.json +++ b/packages/spec/json-schema/api/EventMessage.json @@ -1,55 +1,7 @@ { "$ref": "#/definitions/EventMessage", "definitions": { - "EventMessage": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "event" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "subscriptionId": { - "type": "string", - "format": "uuid", - "description": "Subscription ID this event belongs to" - }, - "eventName": { - "type": "string", - "minLength": 3, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Event name" - }, - "object": { - "type": "string", - "description": "Object name the event relates to" - }, - "payload": { - "description": "Event payload data" - }, - "userId": { - "type": "string", - "description": "User who triggered the event" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "subscriptionId", - "eventName" - ], - "additionalProperties": false - } + "EventMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/EventPattern.json b/packages/spec/json-schema/api/EventPattern.json index bfb7b203a..23e785f09 100644 --- a/packages/spec/json-schema/api/EventPattern.json +++ b/packages/spec/json-schema/api/EventPattern.json @@ -1,12 +1,7 @@ { "$ref": "#/definitions/EventPattern", "definitions": { - "EventPattern": { - "type": "string", - "minLength": 1, - "pattern": "^[a-z*][a-z0-9_.*]*$", - "description": "Event pattern (supports wildcards like \"record.*\" or \"*.created\")" - } + "EventPattern": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/EventSubscription.json b/packages/spec/json-schema/api/EventSubscription.json index 1b4336fb3..7c3bcb3a1 100644 --- a/packages/spec/json-schema/api/EventSubscription.json +++ b/packages/spec/json-schema/api/EventSubscription.json @@ -1,105 +1,7 @@ { "$ref": "#/definitions/EventSubscription", "definitions": { - "EventSubscription": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "string", - "format": "uuid", - "description": "Unique subscription identifier" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "pattern": "^[a-z*][a-z0-9_.*]*$", - "description": "Event pattern (supports wildcards like \"record.*\" or \"*.created\")" - }, - "description": "Event patterns to subscribe to (supports wildcards, e.g., \"record.*\", \"user.created\")" - }, - "objects": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Object names to filter events by (e.g., [\"account\", \"contact\"])" - }, - "filters": { - "type": "object", - "properties": { - "conditions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field path to filter on (supports dot notation, e.g., \"user.email\")" - }, - "operator": { - "type": "string", - "enum": [ - "eq", - "ne", - "gt", - "gte", - "lt", - "lte", - "in", - "nin", - "contains", - "startsWith", - "endsWith", - "exists", - "regex" - ], - "description": "Comparison operator" - }, - "value": { - "description": "Value to compare against (not needed for \"exists\" operator)" - } - }, - "required": [ - "field", - "operator" - ], - "additionalProperties": false - }, - "description": "Array of filter conditions" - }, - "and": { - "type": "array", - "items": {}, - "description": "AND logical combination of filters" - }, - "or": { - "type": "array", - "items": {}, - "description": "OR logical combination of filters" - }, - "not": { - "description": "NOT logical negation of filter" - } - }, - "additionalProperties": false, - "description": "Advanced filter conditions for event payloads" - }, - "channels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Channel names for scoped subscriptions" - } - }, - "required": [ - "subscriptionId", - "events" - ], - "additionalProperties": false - } + "EventSubscription": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ExportRequest.json b/packages/spec/json-schema/api/ExportRequest.json index 36abcf882..aac369234 100644 --- a/packages/spec/json-schema/api/ExportRequest.json +++ b/packages/spec/json-schema/api/ExportRequest.json @@ -1,860 +1,7 @@ { "$ref": "#/definitions/ExportRequest", "definitions": { - "ExportRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": {}, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - }, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - }, - "format": { - "type": "string", - "enum": [ - "csv", - "json", - "xlsx" - ], - "default": "csv" - } - }, - "required": [ - "object" - ], - "additionalProperties": false - } + "ExportRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/FieldError.json b/packages/spec/json-schema/api/FieldError.json index 82f18fbc4..a97720ea5 100644 --- a/packages/spec/json-schema/api/FieldError.json +++ b/packages/spec/json-schema/api/FieldError.json @@ -1,88 +1,7 @@ { "$ref": "#/definitions/FieldError", "definitions": { - "FieldError": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field path (supports dot notation)" - }, - "code": { - "type": "string", - "enum": [ - "validation_error", - "invalid_field", - "missing_required_field", - "invalid_format", - "value_too_long", - "value_too_short", - "value_out_of_range", - "invalid_reference", - "duplicate_value", - "invalid_query", - "invalid_filter", - "invalid_sort", - "max_records_exceeded", - "unauthenticated", - "invalid_credentials", - "expired_token", - "invalid_token", - "session_expired", - "mfa_required", - "email_not_verified", - "permission_denied", - "insufficient_privileges", - "field_not_accessible", - "record_not_accessible", - "license_required", - "ip_restricted", - "time_restricted", - "resource_not_found", - "object_not_found", - "record_not_found", - "field_not_found", - "endpoint_not_found", - "resource_conflict", - "concurrent_modification", - "delete_restricted", - "duplicate_record", - "lock_conflict", - "rate_limit_exceeded", - "quota_exceeded", - "concurrent_limit_exceeded", - "internal_error", - "database_error", - "timeout", - "service_unavailable", - "not_implemented", - "external_service_error", - "integration_error", - "webhook_delivery_failed", - "batch_partial_failure", - "batch_complete_failure", - "transaction_failed" - ], - "description": "Error code for this field" - }, - "message": { - "type": "string", - "description": "Human-readable error message" - }, - "value": { - "description": "The invalid value that was provided" - }, - "constraint": { - "description": "The constraint that was violated (e.g., max length)" - } - }, - "required": [ - "field", - "code", - "message" - ], - "additionalProperties": false - } + "FieldError": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/FilterOperator.json b/packages/spec/json-schema/api/FilterOperator.json index a9c7a7d7b..7fa994035 100644 --- a/packages/spec/json-schema/api/FilterOperator.json +++ b/packages/spec/json-schema/api/FilterOperator.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/FilterOperator", "definitions": { - "FilterOperator": { - "type": "string", - "enum": [ - "eq", - "ne", - "gt", - "gte", - "lt", - "lte", - "in", - "nin", - "contains", - "startsWith", - "endsWith", - "exists", - "regex" - ] - } + "FilterOperator": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/FindDataRequest.json b/packages/spec/json-schema/api/FindDataRequest.json index 5b82cc66f..4872ea80f 100644 --- a/packages/spec/json-schema/api/FindDataRequest.json +++ b/packages/spec/json-schema/api/FindDataRequest.json @@ -1,509 +1,7 @@ { "$ref": "#/definitions/FindDataRequest", "definitions": { - "FindDataRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (snake_case)" - }, - "query": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - }, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Query parameters (filter, sort, select, pagination)" - } - }, - "required": [ - "object" - ], - "additionalProperties": false - } + "FindDataRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/FindDataResponse.json b/packages/spec/json-schema/api/FindDataResponse.json index 83239803d..cc6dd5172 100644 --- a/packages/spec/json-schema/api/FindDataResponse.json +++ b/packages/spec/json-schema/api/FindDataResponse.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/FindDataResponse", "definitions": { - "FindDataResponse": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "records": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - }, - "description": "Array of records" - }, - "total": { - "type": "number", - "description": "Total count (if requested)" - }, - "hasMore": { - "type": "boolean", - "description": "Whether more records exist" - } - }, - "required": [ - "object", - "records" - ], - "additionalProperties": false - } + "FindDataResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GeneratedEndpoint.json b/packages/spec/json-schema/api/GeneratedEndpoint.json index 6718ec11c..45e25f592 100644 --- a/packages/spec/json-schema/api/GeneratedEndpoint.json +++ b/packages/spec/json-schema/api/GeneratedEndpoint.json @@ -1,88 +1,7 @@ { "$ref": "#/definitions/GeneratedEndpoint", "definitions": { - "GeneratedEndpoint": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique endpoint identifier" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ], - "description": "HTTP method" - }, - "path": { - "type": "string", - "description": "Full URL path" - }, - "object": { - "type": "string", - "description": "Object name (snake_case)" - }, - "operation": { - "anyOf": [ - { - "type": "string", - "enum": [ - "create", - "read", - "update", - "delete", - "list" - ] - }, - { - "type": "string" - } - ], - "description": "Operation type" - }, - "handler": { - "type": "string", - "description": "Handler function identifier" - }, - "metadata": { - "type": "object", - "properties": { - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "deprecated": { - "type": "boolean" - } - }, - "additionalProperties": false - } - }, - "required": [ - "id", - "method", - "path", - "object", - "operation", - "handler" - ], - "additionalProperties": false - } + "GeneratedEndpoint": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetDataRequest.json b/packages/spec/json-schema/api/GetDataRequest.json index 5bb379db5..a8ff2cf04 100644 --- a/packages/spec/json-schema/api/GetDataRequest.json +++ b/packages/spec/json-schema/api/GetDataRequest.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/GetDataRequest", "definitions": { - "GetDataRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "id": { - "type": "string", - "description": "Record ID" - } - }, - "required": [ - "object", - "id" - ], - "additionalProperties": false - } + "GetDataRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetDataResponse.json b/packages/spec/json-schema/api/GetDataResponse.json index 2cefd1b66..148b77075 100644 --- a/packages/spec/json-schema/api/GetDataResponse.json +++ b/packages/spec/json-schema/api/GetDataResponse.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/GetDataResponse", "definitions": { - "GetDataResponse": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "id": { - "type": "string", - "description": "Record ID" - }, - "record": { - "type": "object", - "additionalProperties": {}, - "description": "Record data" - } - }, - "required": [ - "object", - "id", - "record" - ], - "additionalProperties": false - } + "GetDataResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetDiscoveryRequest.json b/packages/spec/json-schema/api/GetDiscoveryRequest.json index 4165990e7..94778856a 100644 --- a/packages/spec/json-schema/api/GetDiscoveryRequest.json +++ b/packages/spec/json-schema/api/GetDiscoveryRequest.json @@ -1,11 +1,7 @@ { "$ref": "#/definitions/GetDiscoveryRequest", "definitions": { - "GetDiscoveryRequest": { - "type": "object", - "properties": {}, - "additionalProperties": false - } + "GetDiscoveryRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetDiscoveryResponse.json b/packages/spec/json-schema/api/GetDiscoveryResponse.json index a878c8a74..2ae889a99 100644 --- a/packages/spec/json-schema/api/GetDiscoveryResponse.json +++ b/packages/spec/json-schema/api/GetDiscoveryResponse.json @@ -1,38 +1,7 @@ { "$ref": "#/definitions/GetDiscoveryResponse", "definitions": { - "GetDiscoveryResponse": { - "type": "object", - "properties": { - "version": { - "type": "string", - "description": "API version (e.g., \"v1\", \"2024-01\")" - }, - "apiName": { - "type": "string", - "description": "API name" - }, - "capabilities": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Supported features/capabilities" - }, - "endpoints": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Available endpoint paths" - } - }, - "required": [ - "version", - "apiName" - ], - "additionalProperties": false - } + "GetDiscoveryResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetMetaItemCachedRequest.json b/packages/spec/json-schema/api/GetMetaItemCachedRequest.json index 4e7dd8acd..3719e5e35 100644 --- a/packages/spec/json-schema/api/GetMetaItemCachedRequest.json +++ b/packages/spec/json-schema/api/GetMetaItemCachedRequest.json @@ -1,77 +1,7 @@ { "$ref": "#/definitions/GetMetaItemCachedRequest", "definitions": { - "GetMetaItemCachedRequest": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Metadata type name" - }, - "name": { - "type": "string", - "description": "Item name" - }, - "cacheRequest": { - "type": "object", - "properties": { - "ifNoneMatch": { - "type": "string", - "description": "ETag value for conditional request (If-None-Match header)" - }, - "ifModifiedSince": { - "type": "string", - "format": "date-time", - "description": "Timestamp for conditional request (If-Modified-Since header)" - }, - "cacheControl": { - "type": "object", - "properties": { - "directives": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "public", - "private", - "no-cache", - "no-store", - "must-revalidate", - "max-age" - ] - }, - "description": "Cache control directives" - }, - "maxAge": { - "type": "number", - "description": "Maximum cache age in seconds" - }, - "staleWhileRevalidate": { - "type": "number", - "description": "Allow serving stale content while revalidating (seconds)" - }, - "staleIfError": { - "type": "number", - "description": "Allow serving stale content on error (seconds)" - } - }, - "required": [ - "directives" - ], - "additionalProperties": false, - "description": "Client cache control preferences" - } - }, - "additionalProperties": false, - "description": "Cache validation parameters" - } - }, - "required": [ - "type", - "name" - ], - "additionalProperties": false - } + "GetMetaItemCachedRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetMetaItemCachedResponse.json b/packages/spec/json-schema/api/GetMetaItemCachedResponse.json index 8995fa9ee..b445d4ebc 100644 --- a/packages/spec/json-schema/api/GetMetaItemCachedResponse.json +++ b/packages/spec/json-schema/api/GetMetaItemCachedResponse.json @@ -1,85 +1,7 @@ { "$ref": "#/definitions/GetMetaItemCachedResponse", "definitions": { - "GetMetaItemCachedResponse": { - "type": "object", - "properties": { - "data": { - "description": "Metadata payload (omitted for 304 Not Modified)" - }, - "etag": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "ETag value (hash or version identifier)" - }, - "weak": { - "type": "boolean", - "default": false, - "description": "Whether this is a weak ETag" - } - }, - "required": [ - "value" - ], - "additionalProperties": false, - "description": "ETag for this resource version" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "Last modification timestamp" - }, - "cacheControl": { - "type": "object", - "properties": { - "directives": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "public", - "private", - "no-cache", - "no-store", - "must-revalidate", - "max-age" - ] - }, - "description": "Cache control directives" - }, - "maxAge": { - "type": "number", - "description": "Maximum cache age in seconds" - }, - "staleWhileRevalidate": { - "type": "number", - "description": "Allow serving stale content while revalidating (seconds)" - }, - "staleIfError": { - "type": "number", - "description": "Allow serving stale content on error (seconds)" - } - }, - "required": [ - "directives" - ], - "additionalProperties": false, - "description": "Cache control directives" - }, - "notModified": { - "type": "boolean", - "default": false, - "description": "True if resource has not been modified (304 response)" - }, - "version": { - "type": "string", - "description": "Metadata version identifier" - } - }, - "additionalProperties": false - } + "GetMetaItemCachedResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetMetaItemRequest.json b/packages/spec/json-schema/api/GetMetaItemRequest.json index 39e72fb3b..4a0d3129c 100644 --- a/packages/spec/json-schema/api/GetMetaItemRequest.json +++ b/packages/spec/json-schema/api/GetMetaItemRequest.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/GetMetaItemRequest", "definitions": { - "GetMetaItemRequest": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Metadata type name" - }, - "name": { - "type": "string", - "description": "Item name (snake_case identifier)" - } - }, - "required": [ - "type", - "name" - ], - "additionalProperties": false - } + "GetMetaItemRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetMetaItemResponse.json b/packages/spec/json-schema/api/GetMetaItemResponse.json index 98095f61e..f02d266a2 100644 --- a/packages/spec/json-schema/api/GetMetaItemResponse.json +++ b/packages/spec/json-schema/api/GetMetaItemResponse.json @@ -1,27 +1,7 @@ { "$ref": "#/definitions/GetMetaItemResponse", "definitions": { - "GetMetaItemResponse": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Metadata type name" - }, - "name": { - "type": "string", - "description": "Item name" - }, - "item": { - "description": "Metadata item definition" - } - }, - "required": [ - "type", - "name" - ], - "additionalProperties": false - } + "GetMetaItemResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetMetaItemsRequest.json b/packages/spec/json-schema/api/GetMetaItemsRequest.json index 2f372f58c..acb9bd0e1 100644 --- a/packages/spec/json-schema/api/GetMetaItemsRequest.json +++ b/packages/spec/json-schema/api/GetMetaItemsRequest.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/GetMetaItemsRequest", "definitions": { - "GetMetaItemsRequest": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Metadata type name (e.g., \"object\", \"plugin\")" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "GetMetaItemsRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetMetaItemsResponse.json b/packages/spec/json-schema/api/GetMetaItemsResponse.json index d84c941bf..09db34c22 100644 --- a/packages/spec/json-schema/api/GetMetaItemsResponse.json +++ b/packages/spec/json-schema/api/GetMetaItemsResponse.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/GetMetaItemsResponse", "definitions": { - "GetMetaItemsResponse": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Metadata type name" - }, - "items": { - "type": "array", - "description": "Array of metadata items" - } - }, - "required": [ - "type", - "items" - ], - "additionalProperties": false - } + "GetMetaItemsResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetMetaTypesRequest.json b/packages/spec/json-schema/api/GetMetaTypesRequest.json index a4a542795..68de33f8a 100644 --- a/packages/spec/json-schema/api/GetMetaTypesRequest.json +++ b/packages/spec/json-schema/api/GetMetaTypesRequest.json @@ -1,11 +1,7 @@ { "$ref": "#/definitions/GetMetaTypesRequest", "definitions": { - "GetMetaTypesRequest": { - "type": "object", - "properties": {}, - "additionalProperties": false - } + "GetMetaTypesRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetMetaTypesResponse.json b/packages/spec/json-schema/api/GetMetaTypesResponse.json index 3353746e4..bcc1989a6 100644 --- a/packages/spec/json-schema/api/GetMetaTypesResponse.json +++ b/packages/spec/json-schema/api/GetMetaTypesResponse.json @@ -1,22 +1,7 @@ { "$ref": "#/definitions/GetMetaTypesResponse", "definitions": { - "GetMetaTypesResponse": { - "type": "object", - "properties": { - "types": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Available metadata type names (e.g., \"object\", \"plugin\", \"view\")" - } - }, - "required": [ - "types" - ], - "additionalProperties": false - } + "GetMetaTypesResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetUiViewRequest.json b/packages/spec/json-schema/api/GetUiViewRequest.json index 9ce61dcb4..4f4c682ab 100644 --- a/packages/spec/json-schema/api/GetUiViewRequest.json +++ b/packages/spec/json-schema/api/GetUiViewRequest.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/GetUiViewRequest", "definitions": { - "GetUiViewRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (snake_case)" - }, - "type": { - "type": "string", - "enum": [ - "list", - "form" - ], - "description": "View type" - } - }, - "required": [ - "object", - "type" - ], - "additionalProperties": false - } + "GetUiViewRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetUiViewResponse.json b/packages/spec/json-schema/api/GetUiViewResponse.json index fc37092a5..a2d52d0a9 100644 --- a/packages/spec/json-schema/api/GetUiViewResponse.json +++ b/packages/spec/json-schema/api/GetUiViewResponse.json @@ -1,31 +1,7 @@ { "$ref": "#/definitions/GetUiViewResponse", "definitions": { - "GetUiViewResponse": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "type": { - "type": "string", - "enum": [ - "list", - "form" - ], - "description": "View type" - }, - "view": { - "description": "View definition" - } - }, - "required": [ - "object", - "type" - ], - "additionalProperties": false - } + "GetUiViewResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetViewRequest.json b/packages/spec/json-schema/api/GetViewRequest.json index e5944956b..1ad01319a 100644 --- a/packages/spec/json-schema/api/GetViewRequest.json +++ b/packages/spec/json-schema/api/GetViewRequest.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/GetViewRequest", "definitions": { - "GetViewRequest": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "View ID" - } - }, - "required": [ - "id" - ], - "additionalProperties": false - } + "GetViewRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GetViewResponse.json b/packages/spec/json-schema/api/GetViewResponse.json index 807ca1ffc..75ee1abeb 100644 --- a/packages/spec/json-schema/api/GetViewResponse.json +++ b/packages/spec/json-schema/api/GetViewResponse.json @@ -1,1103 +1,7 @@ { "$ref": "#/definitions/GetViewResponse", "definitions": { - "GetViewResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - }, - "data": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique view identifier" - }, - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "View machine name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string", - "description": "View description" - }, - "object": { - "type": "string", - "description": "Object/table this view is for" - }, - "type": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "timeline", - "chart", - "pivot", - "custom" - ], - "description": "View type" - }, - "visibility": { - "type": "string", - "enum": [ - "private", - "shared", - "public", - "organization" - ], - "description": "Who can access this view" - }, - "query": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": {}, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - }, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Query configuration (filters, sorting, etc.)" - }, - "layout": { - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "label": { - "type": "string", - "description": "Custom column label" - }, - "width": { - "type": "number", - "description": "Column width in pixels" - }, - "sortable": { - "type": "boolean", - "default": true, - "description": "Whether column is sortable" - }, - "filterable": { - "type": "boolean", - "default": true, - "description": "Whether column is filterable" - }, - "visible": { - "type": "boolean", - "default": true, - "description": "Whether column is visible" - }, - "pinned": { - "type": "string", - "enum": [ - "left", - "right" - ], - "description": "Pin column to left or right" - }, - "formatter": { - "type": "string", - "description": "Custom formatter name" - }, - "aggregation": { - "type": "string", - "description": "Aggregation function for column (sum, avg, etc.)" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Column configuration for list views" - }, - "rowHeight": { - "type": "number", - "description": "Row height in pixels" - }, - "groupByField": { - "type": "string", - "description": "Field to group by (for kanban)" - }, - "cardFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to display on cards" - }, - "dateField": { - "type": "string", - "description": "Date field for calendar view" - }, - "startDateField": { - "type": "string", - "description": "Start date field for event ranges" - }, - "endDateField": { - "type": "string", - "description": "End date field for event ranges" - }, - "titleField": { - "type": "string", - "description": "Field to use as event title" - }, - "chartType": { - "type": "string", - "enum": [ - "bar", - "line", - "pie", - "scatter", - "area" - ], - "description": "Chart type" - }, - "xAxis": { - "type": "string", - "description": "X-axis field" - }, - "yAxis": { - "type": "string", - "description": "Y-axis field" - }, - "series": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Series fields for multi-series charts" - } - }, - "additionalProperties": false, - "description": "Layout configuration" - }, - "sharedWith": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User/team IDs this view is shared with" - }, - "isDefault": { - "type": "boolean", - "default": false, - "description": "Is this the default view for this object?" - }, - "isSystem": { - "type": "boolean", - "default": false, - "description": "Is this a system-defined view?" - }, - "createdBy": { - "type": "string", - "description": "User ID who created this view" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "When the view was created" - }, - "updatedBy": { - "type": "string", - "description": "User ID who last updated this view" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "When the view was last updated" - }, - "settings": { - "type": "object", - "additionalProperties": {}, - "description": "Additional view-specific settings" - } - }, - "required": [ - "id", - "name", - "label", - "object", - "type", - "visibility", - "query", - "createdBy", - "createdAt" - ], - "additionalProperties": false, - "description": "The saved view" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - } - }, - "required": [ - "success" - ], - "additionalProperties": false - } + "GetViewResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLConfig.json b/packages/spec/json-schema/api/GraphQLConfig.json index 979bb4874..21a6e6457 100644 --- a/packages/spec/json-schema/api/GraphQLConfig.json +++ b/packages/spec/json-schema/api/GraphQLConfig.json @@ -1,1389 +1,7 @@ { "$ref": "#/definitions/GraphQLConfig", "definitions": { - "GraphQLConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable GraphQL API" - }, - "path": { - "type": "string", - "default": "/graphql", - "description": "GraphQL endpoint path" - }, - "playground": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable GraphQL Playground" - }, - "path": { - "type": "string", - "default": "/playground", - "description": "Playground path" - } - }, - "additionalProperties": false, - "description": "GraphQL Playground configuration" - }, - "schema": { - "type": "object", - "properties": { - "autoGenerateTypes": { - "type": "boolean", - "default": true, - "description": "Auto-generate types from Objects" - }, - "types": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "GraphQL type name (PascalCase recommended)" - }, - "object": { - "type": "string", - "description": "Source ObjectQL object name" - }, - "description": { - "type": "string", - "description": "Type description" - }, - "fields": { - "type": "object", - "properties": { - "include": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to exclude (e.g., sensitive fields)" - }, - "mappings": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "graphqlName": { - "type": "string", - "description": "Custom GraphQL field name" - }, - "graphqlType": { - "type": "string", - "description": "Override GraphQL type" - }, - "description": { - "type": "string", - "description": "Field description" - }, - "deprecationReason": { - "type": "string", - "description": "Why field is deprecated" - }, - "nullable": { - "type": "boolean", - "description": "Override nullable" - } - }, - "additionalProperties": false - }, - "description": "Field-level customizations" - } - }, - "additionalProperties": false, - "description": "Field configuration" - }, - "interfaces": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GraphQL interface names" - }, - "isInterface": { - "type": "boolean", - "default": false, - "description": "Define as GraphQL interface" - }, - "directives": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Directive name" - }, - "args": { - "type": "object", - "additionalProperties": {}, - "description": "Directive arguments" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "GraphQL directives" - } - }, - "required": [ - "name", - "object" - ], - "additionalProperties": false - }, - "description": "Type configurations" - }, - "queries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Query field name (camelCase recommended)" - }, - "object": { - "type": "string", - "description": "Source ObjectQL object name" - }, - "type": { - "type": "string", - "enum": [ - "get", - "list", - "search" - ], - "description": "Query type" - }, - "description": { - "type": "string", - "description": "Query description" - }, - "args": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "GraphQL type (e.g., \"ID!\", \"String\", \"Int\")" - }, - "description": { - "type": "string", - "description": "Argument description" - }, - "defaultValue": { - "description": "Default value" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "description": "Query arguments" - }, - "filtering": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Allow filtering" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filterable fields" - }, - "operators": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "eq", - "ne", - "gt", - "gte", - "lt", - "lte", - "in", - "notIn", - "contains", - "startsWith", - "endsWith", - "isNull", - "isNotNull" - ] - }, - "description": "Allowed filter operators" - } - }, - "additionalProperties": false, - "description": "Filtering capabilities" - }, - "sorting": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Allow sorting" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Sortable fields" - }, - "defaultSort": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "direction": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] - } - }, - "required": [ - "field", - "direction" - ], - "additionalProperties": false, - "description": "Default sort order" - } - }, - "additionalProperties": false, - "description": "Sorting capabilities" - }, - "pagination": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable pagination" - }, - "type": { - "type": "string", - "enum": [ - "offset", - "cursor", - "relay" - ], - "default": "offset", - "description": "Pagination style" - }, - "defaultLimit": { - "type": "integer", - "minimum": 1, - "default": 20, - "description": "Default page size" - }, - "maxLimit": { - "type": "integer", - "minimum": 1, - "default": 100, - "description": "Maximum page size" - } - }, - "additionalProperties": false, - "description": "Pagination configuration" - }, - "fields": { - "type": "object", - "properties": { - "required": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required fields (always returned)" - }, - "selectable": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Selectable fields" - } - }, - "additionalProperties": false, - "description": "Field selection configuration" - }, - "authRequired": { - "type": "boolean", - "default": true, - "description": "Require authentication" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required permissions" - }, - "cache": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable caching" - }, - "ttl": { - "type": "integer", - "minimum": 0, - "description": "Cache TTL in seconds" - }, - "key": { - "type": "string", - "description": "Cache key template" - } - }, - "additionalProperties": false, - "description": "Query caching" - } - }, - "required": [ - "name", - "object", - "type" - ], - "additionalProperties": false - }, - "description": "Query configurations" - }, - "mutations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Mutation field name (camelCase recommended)" - }, - "object": { - "type": "string", - "description": "Source ObjectQL object name" - }, - "type": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "upsert", - "custom" - ], - "description": "Mutation type" - }, - "description": { - "type": "string", - "description": "Mutation description" - }, - "input": { - "type": "object", - "properties": { - "typeName": { - "type": "string", - "description": "Custom input type name" - }, - "fields": { - "type": "object", - "properties": { - "include": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to exclude" - }, - "required": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required input fields" - } - }, - "additionalProperties": false, - "description": "Input field configuration" - }, - "validation": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable input validation" - }, - "rules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Custom validation rules" - } - }, - "additionalProperties": false, - "description": "Input validation" - } - }, - "additionalProperties": false, - "description": "Input configuration" - }, - "output": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "object", - "payload", - "boolean", - "custom" - ], - "default": "object", - "description": "Output type" - }, - "includeEnvelope": { - "type": "boolean", - "default": false, - "description": "Wrap in success/error payload" - }, - "customType": { - "type": "string", - "description": "Custom output type name" - } - }, - "additionalProperties": false, - "description": "Output configuration" - }, - "transaction": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Use database transaction" - }, - "isolationLevel": { - "type": "string", - "enum": [ - "read_uncommitted", - "read_committed", - "repeatable_read", - "serializable" - ], - "description": "Transaction isolation level" - } - }, - "additionalProperties": false, - "description": "Transaction configuration" - }, - "authRequired": { - "type": "boolean", - "default": true, - "description": "Require authentication" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required permissions" - }, - "hooks": { - "type": "object", - "properties": { - "before": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Pre-mutation hooks" - }, - "after": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Post-mutation hooks" - } - }, - "additionalProperties": false, - "description": "Lifecycle hooks" - } - }, - "required": [ - "name", - "object", - "type" - ], - "additionalProperties": false - }, - "description": "Mutation configurations" - }, - "subscriptions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Subscription field name (camelCase recommended)" - }, - "object": { - "type": "string", - "description": "Source ObjectQL object name" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "created", - "updated", - "deleted", - "custom" - ] - }, - "description": "Events to subscribe to" - }, - "description": { - "type": "string", - "description": "Subscription description" - }, - "filter": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Allow filtering subscriptions" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filterable fields" - } - }, - "additionalProperties": false, - "description": "Subscription filtering" - }, - "payload": { - "type": "object", - "properties": { - "includeEntity": { - "type": "boolean", - "default": true, - "description": "Include entity in payload" - }, - "includePreviousValues": { - "type": "boolean", - "default": false, - "description": "Include previous field values" - }, - "includeMeta": { - "type": "boolean", - "default": true, - "description": "Include metadata (timestamp, user, etc.)" - } - }, - "additionalProperties": false, - "description": "Payload configuration" - }, - "authRequired": { - "type": "boolean", - "default": true, - "description": "Require authentication" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required permissions" - }, - "rateLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable rate limiting" - }, - "maxSubscriptionsPerUser": { - "type": "integer", - "minimum": 1, - "default": 10, - "description": "Max concurrent subscriptions per user" - }, - "throttleMs": { - "type": "integer", - "minimum": 0, - "description": "Throttle interval in milliseconds" - } - }, - "additionalProperties": false, - "description": "Subscription rate limiting" - } - }, - "required": [ - "name", - "object", - "events" - ], - "additionalProperties": false - }, - "description": "Subscription configurations" - }, - "resolvers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "Resolver path (Type.field)" - }, - "type": { - "type": "string", - "enum": [ - "datasource", - "computed", - "script", - "proxy" - ], - "description": "Resolver implementation type" - }, - "implementation": { - "type": "object", - "properties": { - "datasource": { - "type": "string", - "description": "Datasource ID" - }, - "query": { - "type": "string", - "description": "Query/SQL to execute" - }, - "expression": { - "type": "string", - "description": "Computation expression" - }, - "dependencies": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Dependent fields" - }, - "script": { - "type": "string", - "description": "Script ID or inline code" - }, - "url": { - "type": "string", - "description": "Proxy URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "description": "HTTP method" - } - }, - "additionalProperties": false, - "description": "Implementation configuration" - }, - "cache": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable resolver caching" - }, - "ttl": { - "type": "integer", - "minimum": 0, - "description": "Cache TTL in seconds" - }, - "keyArgs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Arguments to include in cache key" - } - }, - "additionalProperties": false, - "description": "Resolver caching" - } - }, - "required": [ - "path", - "type" - ], - "additionalProperties": false - }, - "description": "Custom resolver configurations" - }, - "directives": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z][a-zA-Z0-9]*$", - "description": "Directive name (camelCase)" - }, - "description": { - "type": "string", - "description": "Directive description" - }, - "locations": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "QUERY", - "MUTATION", - "SUBSCRIPTION", - "FIELD", - "FRAGMENT_DEFINITION", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT", - "VARIABLE_DEFINITION", - "SCHEMA", - "SCALAR", - "OBJECT", - "FIELD_DEFINITION", - "ARGUMENT_DEFINITION", - "INTERFACE", - "UNION", - "ENUM", - "ENUM_VALUE", - "INPUT_OBJECT", - "INPUT_FIELD_DEFINITION" - ] - }, - "description": "Directive locations" - }, - "args": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Argument type" - }, - "description": { - "type": "string", - "description": "Argument description" - }, - "defaultValue": { - "description": "Default value" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "description": "Directive arguments" - }, - "repeatable": { - "type": "boolean", - "default": false, - "description": "Can be applied multiple times" - }, - "implementation": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "auth", - "validation", - "transform", - "cache", - "deprecation", - "custom" - ], - "description": "Directive type" - }, - "handler": { - "type": "string", - "description": "Handler function name or script" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Directive implementation" - } - }, - "required": [ - "name", - "locations" - ], - "additionalProperties": false - }, - "description": "Custom directive configurations" - } - }, - "additionalProperties": false, - "description": "Schema generation configuration" - }, - "dataLoaders": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "DataLoader name" - }, - "source": { - "type": "string", - "description": "Source object or datasource" - }, - "batchFunction": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "findByIds", - "query", - "script", - "custom" - ], - "description": "Batch function type" - }, - "keyField": { - "type": "string", - "description": "Field to batch on (e.g., \"id\")" - }, - "query": { - "type": "string", - "description": "Query template" - }, - "script": { - "type": "string", - "description": "Script ID" - }, - "maxBatchSize": { - "type": "integer", - "minimum": 1, - "default": 100, - "description": "Maximum batch size" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Batch function configuration" - }, - "cache": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable per-request caching" - }, - "keyFn": { - "type": "string", - "description": "Custom cache key function" - } - }, - "additionalProperties": false, - "description": "DataLoader caching" - }, - "options": { - "type": "object", - "properties": { - "batch": { - "type": "boolean", - "default": true, - "description": "Enable batching" - }, - "cache": { - "type": "boolean", - "default": true, - "description": "Enable caching" - }, - "maxCacheSize": { - "type": "integer", - "minimum": 0, - "description": "Max cache entries" - } - }, - "additionalProperties": false, - "description": "DataLoader options" - } - }, - "required": [ - "name", - "source", - "batchFunction" - ], - "additionalProperties": false - }, - "description": "DataLoader configurations" - }, - "security": { - "type": "object", - "properties": { - "depthLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable query depth limiting" - }, - "maxDepth": { - "type": "integer", - "minimum": 1, - "default": 10, - "description": "Maximum query depth" - }, - "ignoreFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields excluded from depth calculation" - }, - "onDepthExceeded": { - "type": "string", - "enum": [ - "reject", - "log", - "warn" - ], - "default": "reject", - "description": "Action when depth exceeded" - }, - "errorMessage": { - "type": "string", - "description": "Custom error message for depth violations" - } - }, - "additionalProperties": false, - "description": "Query depth limiting" - }, - "complexity": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable query complexity limiting" - }, - "maxComplexity": { - "type": "integer", - "minimum": 1, - "default": 1000, - "description": "Maximum query complexity" - }, - "defaultFieldComplexity": { - "type": "integer", - "minimum": 0, - "default": 1, - "description": "Default complexity per field" - }, - "fieldComplexity": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "integer", - "minimum": 0 - }, - { - "type": "object", - "properties": { - "base": { - "type": "integer", - "minimum": 0, - "description": "Base complexity" - }, - "multiplier": { - "type": "string", - "description": "Argument multiplier (e.g., \"limit\")" - }, - "calculator": { - "type": "string", - "description": "Custom calculator function" - } - }, - "required": [ - "base" - ], - "additionalProperties": false - } - ] - }, - "description": "Per-field complexity configuration" - }, - "listMultiplier": { - "type": "number", - "minimum": 0, - "default": 10, - "description": "Multiplier for list fields" - }, - "onComplexityExceeded": { - "type": "string", - "enum": [ - "reject", - "log", - "warn" - ], - "default": "reject", - "description": "Action when complexity exceeded" - }, - "errorMessage": { - "type": "string", - "description": "Custom error message for complexity violations" - } - }, - "additionalProperties": false, - "description": "Query complexity calculation" - }, - "rateLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable rate limiting" - }, - "strategy": { - "type": "string", - "enum": [ - "token_bucket", - "fixed_window", - "sliding_window", - "cost_based" - ], - "default": "token_bucket", - "description": "Rate limiting strategy" - }, - "global": { - "type": "object", - "properties": { - "maxRequests": { - "type": "integer", - "minimum": 1, - "default": 1000, - "description": "Maximum requests per window" - }, - "windowMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Time window in milliseconds" - } - }, - "additionalProperties": false, - "description": "Global rate limits" - }, - "perUser": { - "type": "object", - "properties": { - "maxRequests": { - "type": "integer", - "minimum": 1, - "default": 100, - "description": "Maximum requests per user per window" - }, - "windowMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Time window in milliseconds" - } - }, - "additionalProperties": false, - "description": "Per-user rate limits" - }, - "costBased": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable cost-based rate limiting" - }, - "maxCost": { - "type": "integer", - "minimum": 1, - "default": 10000, - "description": "Maximum cost per window" - }, - "windowMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Time window in milliseconds" - }, - "useComplexityAsCost": { - "type": "boolean", - "default": true, - "description": "Use query complexity as cost" - } - }, - "additionalProperties": false, - "description": "Cost-based rate limiting" - }, - "operations": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "maxRequests": { - "type": "integer", - "minimum": 1, - "description": "Max requests for this operation" - }, - "windowMs": { - "type": "integer", - "minimum": 1000, - "description": "Time window" - } - }, - "required": [ - "maxRequests", - "windowMs" - ], - "additionalProperties": false - }, - "description": "Per-operation rate limits" - }, - "onLimitExceeded": { - "type": "string", - "enum": [ - "reject", - "queue", - "log" - ], - "default": "reject", - "description": "Action when rate limit exceeded" - }, - "errorMessage": { - "type": "string", - "description": "Custom error message for rate limit violations" - }, - "includeHeaders": { - "type": "boolean", - "default": true, - "description": "Include rate limit headers in response" - } - }, - "additionalProperties": false, - "description": "Rate limiting" - }, - "persistedQueries": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable persisted queries" - }, - "mode": { - "type": "string", - "enum": [ - "optional", - "required" - ], - "default": "optional", - "description": "Persisted query mode (optional: allow both, required: only persisted)" - }, - "store": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "memory", - "redis", - "database", - "file" - ], - "default": "memory", - "description": "Query store type" - }, - "connection": { - "type": "string", - "description": "Store connection string or path" - }, - "ttl": { - "type": "integer", - "minimum": 0, - "description": "TTL in seconds for stored queries" - } - }, - "additionalProperties": false, - "description": "Query store configuration" - }, - "apq": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable Automatic Persisted Queries" - }, - "hashAlgorithm": { - "type": "string", - "enum": [ - "sha256", - "sha1", - "md5" - ], - "default": "sha256", - "description": "Hash algorithm for query IDs" - }, - "cache": { - "type": "object", - "properties": { - "ttl": { - "type": "integer", - "minimum": 0, - "default": 3600, - "description": "Cache TTL in seconds" - }, - "maxSize": { - "type": "integer", - "minimum": 1, - "description": "Maximum number of cached queries" - } - }, - "additionalProperties": false, - "description": "APQ cache configuration" - } - }, - "additionalProperties": false, - "description": "Automatic Persisted Queries configuration" - }, - "allowlist": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable query allow list (reject queries not in list)" - }, - "queries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Query ID or hash" - }, - "operation": { - "type": "string", - "description": "Operation name" - }, - "query": { - "type": "string", - "description": "Query string" - } - }, - "required": [ - "id" - ], - "additionalProperties": false - }, - "description": "Allowed queries" - }, - "source": { - "type": "string", - "description": "External allow list source (file path or URL)" - } - }, - "additionalProperties": false, - "description": "Query allow list configuration" - }, - "security": { - "type": "object", - "properties": { - "maxQuerySize": { - "type": "integer", - "minimum": 1, - "description": "Maximum query string size in bytes" - }, - "rejectIntrospection": { - "type": "boolean", - "default": false, - "description": "Reject introspection queries" - } - }, - "additionalProperties": false, - "description": "Security configuration" - } - }, - "additionalProperties": false, - "description": "Persisted queries" - } - }, - "additionalProperties": false, - "description": "Security configuration" - } - }, - "additionalProperties": false - } + "GraphQLConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLDataLoaderConfig.json b/packages/spec/json-schema/api/GraphQLDataLoaderConfig.json index 8a5f640c6..6ef7ed029 100644 --- a/packages/spec/json-schema/api/GraphQLDataLoaderConfig.json +++ b/packages/spec/json-schema/api/GraphQLDataLoaderConfig.json @@ -1,101 +1,7 @@ { "$ref": "#/definitions/GraphQLDataLoaderConfig", "definitions": { - "GraphQLDataLoaderConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "DataLoader name" - }, - "source": { - "type": "string", - "description": "Source object or datasource" - }, - "batchFunction": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "findByIds", - "query", - "script", - "custom" - ], - "description": "Batch function type" - }, - "keyField": { - "type": "string", - "description": "Field to batch on (e.g., \"id\")" - }, - "query": { - "type": "string", - "description": "Query template" - }, - "script": { - "type": "string", - "description": "Script ID" - }, - "maxBatchSize": { - "type": "integer", - "minimum": 1, - "default": 100, - "description": "Maximum batch size" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Batch function configuration" - }, - "cache": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable per-request caching" - }, - "keyFn": { - "type": "string", - "description": "Custom cache key function" - } - }, - "additionalProperties": false, - "description": "DataLoader caching" - }, - "options": { - "type": "object", - "properties": { - "batch": { - "type": "boolean", - "default": true, - "description": "Enable batching" - }, - "cache": { - "type": "boolean", - "default": true, - "description": "Enable caching" - }, - "maxCacheSize": { - "type": "integer", - "minimum": 0, - "description": "Max cache entries" - } - }, - "additionalProperties": false, - "description": "DataLoader options" - } - }, - "required": [ - "name", - "source", - "batchFunction" - ], - "additionalProperties": false - } + "GraphQLDataLoaderConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLDirectiveConfig.json b/packages/spec/json-schema/api/GraphQLDirectiveConfig.json index 9ac1bdb2d..0cc490d3d 100644 --- a/packages/spec/json-schema/api/GraphQLDirectiveConfig.json +++ b/packages/spec/json-schema/api/GraphQLDirectiveConfig.json @@ -1,108 +1,7 @@ { "$ref": "#/definitions/GraphQLDirectiveConfig", "definitions": { - "GraphQLDirectiveConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z][a-zA-Z0-9]*$", - "description": "Directive name (camelCase)" - }, - "description": { - "type": "string", - "description": "Directive description" - }, - "locations": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "QUERY", - "MUTATION", - "SUBSCRIPTION", - "FIELD", - "FRAGMENT_DEFINITION", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT", - "VARIABLE_DEFINITION", - "SCHEMA", - "SCALAR", - "OBJECT", - "FIELD_DEFINITION", - "ARGUMENT_DEFINITION", - "INTERFACE", - "UNION", - "ENUM", - "ENUM_VALUE", - "INPUT_OBJECT", - "INPUT_FIELD_DEFINITION" - ] - }, - "description": "Directive locations" - }, - "args": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Argument type" - }, - "description": { - "type": "string", - "description": "Argument description" - }, - "defaultValue": { - "description": "Default value" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "description": "Directive arguments" - }, - "repeatable": { - "type": "boolean", - "default": false, - "description": "Can be applied multiple times" - }, - "implementation": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "auth", - "validation", - "transform", - "cache", - "deprecation", - "custom" - ], - "description": "Directive type" - }, - "handler": { - "type": "string", - "description": "Handler function name or script" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Directive implementation" - } - }, - "required": [ - "name", - "locations" - ], - "additionalProperties": false - } + "GraphQLDirectiveConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLDirectiveLocation.json b/packages/spec/json-schema/api/GraphQLDirectiveLocation.json index 0cf630e27..71e8f3219 100644 --- a/packages/spec/json-schema/api/GraphQLDirectiveLocation.json +++ b/packages/spec/json-schema/api/GraphQLDirectiveLocation.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/GraphQLDirectiveLocation", "definitions": { - "GraphQLDirectiveLocation": { - "type": "string", - "enum": [ - "QUERY", - "MUTATION", - "SUBSCRIPTION", - "FIELD", - "FRAGMENT_DEFINITION", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT", - "VARIABLE_DEFINITION", - "SCHEMA", - "SCALAR", - "OBJECT", - "FIELD_DEFINITION", - "ARGUMENT_DEFINITION", - "INTERFACE", - "UNION", - "ENUM", - "ENUM_VALUE", - "INPUT_OBJECT", - "INPUT_FIELD_DEFINITION" - ] - } + "GraphQLDirectiveLocation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLMutationConfig.json b/packages/spec/json-schema/api/GraphQLMutationConfig.json index 5777879b8..aa6fd2353 100644 --- a/packages/spec/json-schema/api/GraphQLMutationConfig.json +++ b/packages/spec/json-schema/api/GraphQLMutationConfig.json @@ -1,180 +1,7 @@ { "$ref": "#/definitions/GraphQLMutationConfig", "definitions": { - "GraphQLMutationConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Mutation field name (camelCase recommended)" - }, - "object": { - "type": "string", - "description": "Source ObjectQL object name" - }, - "type": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "upsert", - "custom" - ], - "description": "Mutation type" - }, - "description": { - "type": "string", - "description": "Mutation description" - }, - "input": { - "type": "object", - "properties": { - "typeName": { - "type": "string", - "description": "Custom input type name" - }, - "fields": { - "type": "object", - "properties": { - "include": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to exclude" - }, - "required": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required input fields" - } - }, - "additionalProperties": false, - "description": "Input field configuration" - }, - "validation": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable input validation" - }, - "rules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Custom validation rules" - } - }, - "additionalProperties": false, - "description": "Input validation" - } - }, - "additionalProperties": false, - "description": "Input configuration" - }, - "output": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "object", - "payload", - "boolean", - "custom" - ], - "default": "object", - "description": "Output type" - }, - "includeEnvelope": { - "type": "boolean", - "default": false, - "description": "Wrap in success/error payload" - }, - "customType": { - "type": "string", - "description": "Custom output type name" - } - }, - "additionalProperties": false, - "description": "Output configuration" - }, - "transaction": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Use database transaction" - }, - "isolationLevel": { - "type": "string", - "enum": [ - "read_uncommitted", - "read_committed", - "repeatable_read", - "serializable" - ], - "description": "Transaction isolation level" - } - }, - "additionalProperties": false, - "description": "Transaction configuration" - }, - "authRequired": { - "type": "boolean", - "default": true, - "description": "Require authentication" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required permissions" - }, - "hooks": { - "type": "object", - "properties": { - "before": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Pre-mutation hooks" - }, - "after": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Post-mutation hooks" - } - }, - "additionalProperties": false, - "description": "Lifecycle hooks" - } - }, - "required": [ - "name", - "object", - "type" - ], - "additionalProperties": false - } + "GraphQLMutationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLPersistedQuery.json b/packages/spec/json-schema/api/GraphQLPersistedQuery.json index cbfe6062c..002dbce63 100644 --- a/packages/spec/json-schema/api/GraphQLPersistedQuery.json +++ b/packages/spec/json-schema/api/GraphQLPersistedQuery.json @@ -1,151 +1,7 @@ { "$ref": "#/definitions/GraphQLPersistedQuery", "definitions": { - "GraphQLPersistedQuery": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable persisted queries" - }, - "mode": { - "type": "string", - "enum": [ - "optional", - "required" - ], - "default": "optional", - "description": "Persisted query mode (optional: allow both, required: only persisted)" - }, - "store": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "memory", - "redis", - "database", - "file" - ], - "default": "memory", - "description": "Query store type" - }, - "connection": { - "type": "string", - "description": "Store connection string or path" - }, - "ttl": { - "type": "integer", - "minimum": 0, - "description": "TTL in seconds for stored queries" - } - }, - "additionalProperties": false, - "description": "Query store configuration" - }, - "apq": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable Automatic Persisted Queries" - }, - "hashAlgorithm": { - "type": "string", - "enum": [ - "sha256", - "sha1", - "md5" - ], - "default": "sha256", - "description": "Hash algorithm for query IDs" - }, - "cache": { - "type": "object", - "properties": { - "ttl": { - "type": "integer", - "minimum": 0, - "default": 3600, - "description": "Cache TTL in seconds" - }, - "maxSize": { - "type": "integer", - "minimum": 1, - "description": "Maximum number of cached queries" - } - }, - "additionalProperties": false, - "description": "APQ cache configuration" - } - }, - "additionalProperties": false, - "description": "Automatic Persisted Queries configuration" - }, - "allowlist": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable query allow list (reject queries not in list)" - }, - "queries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Query ID or hash" - }, - "operation": { - "type": "string", - "description": "Operation name" - }, - "query": { - "type": "string", - "description": "Query string" - } - }, - "required": [ - "id" - ], - "additionalProperties": false - }, - "description": "Allowed queries" - }, - "source": { - "type": "string", - "description": "External allow list source (file path or URL)" - } - }, - "additionalProperties": false, - "description": "Query allow list configuration" - }, - "security": { - "type": "object", - "properties": { - "maxQuerySize": { - "type": "integer", - "minimum": 1, - "description": "Maximum query string size in bytes" - }, - "rejectIntrospection": { - "type": "boolean", - "default": false, - "description": "Reject introspection queries" - } - }, - "additionalProperties": false, - "description": "Security configuration" - } - }, - "additionalProperties": false - } + "GraphQLPersistedQuery": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLQueryComplexity.json b/packages/spec/json-schema/api/GraphQLQueryComplexity.json index 34ba299a5..4ce55acbb 100644 --- a/packages/spec/json-schema/api/GraphQLQueryComplexity.json +++ b/packages/spec/json-schema/api/GraphQLQueryComplexity.json @@ -1,83 +1,7 @@ { "$ref": "#/definitions/GraphQLQueryComplexity", "definitions": { - "GraphQLQueryComplexity": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable query complexity limiting" - }, - "maxComplexity": { - "type": "integer", - "minimum": 1, - "default": 1000, - "description": "Maximum query complexity" - }, - "defaultFieldComplexity": { - "type": "integer", - "minimum": 0, - "default": 1, - "description": "Default complexity per field" - }, - "fieldComplexity": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "integer", - "minimum": 0 - }, - { - "type": "object", - "properties": { - "base": { - "type": "integer", - "minimum": 0, - "description": "Base complexity" - }, - "multiplier": { - "type": "string", - "description": "Argument multiplier (e.g., \"limit\")" - }, - "calculator": { - "type": "string", - "description": "Custom calculator function" - } - }, - "required": [ - "base" - ], - "additionalProperties": false - } - ] - }, - "description": "Per-field complexity configuration" - }, - "listMultiplier": { - "type": "number", - "minimum": 0, - "default": 10, - "description": "Multiplier for list fields" - }, - "onComplexityExceeded": { - "type": "string", - "enum": [ - "reject", - "log", - "warn" - ], - "default": "reject", - "description": "Action when complexity exceeded" - }, - "errorMessage": { - "type": "string", - "description": "Custom error message for complexity violations" - } - }, - "additionalProperties": false - } + "GraphQLQueryComplexity": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLQueryConfig.json b/packages/spec/json-schema/api/GraphQLQueryConfig.json index e9cad9ea4..2450ba812 100644 --- a/packages/spec/json-schema/api/GraphQLQueryConfig.json +++ b/packages/spec/json-schema/api/GraphQLQueryConfig.json @@ -1,231 +1,7 @@ { "$ref": "#/definitions/GraphQLQueryConfig", "definitions": { - "GraphQLQueryConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Query field name (camelCase recommended)" - }, - "object": { - "type": "string", - "description": "Source ObjectQL object name" - }, - "type": { - "type": "string", - "enum": [ - "get", - "list", - "search" - ], - "description": "Query type" - }, - "description": { - "type": "string", - "description": "Query description" - }, - "args": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "GraphQL type (e.g., \"ID!\", \"String\", \"Int\")" - }, - "description": { - "type": "string", - "description": "Argument description" - }, - "defaultValue": { - "description": "Default value" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "description": "Query arguments" - }, - "filtering": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Allow filtering" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filterable fields" - }, - "operators": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "eq", - "ne", - "gt", - "gte", - "lt", - "lte", - "in", - "notIn", - "contains", - "startsWith", - "endsWith", - "isNull", - "isNotNull" - ] - }, - "description": "Allowed filter operators" - } - }, - "additionalProperties": false, - "description": "Filtering capabilities" - }, - "sorting": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Allow sorting" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Sortable fields" - }, - "defaultSort": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "direction": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] - } - }, - "required": [ - "field", - "direction" - ], - "additionalProperties": false, - "description": "Default sort order" - } - }, - "additionalProperties": false, - "description": "Sorting capabilities" - }, - "pagination": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable pagination" - }, - "type": { - "type": "string", - "enum": [ - "offset", - "cursor", - "relay" - ], - "default": "offset", - "description": "Pagination style" - }, - "defaultLimit": { - "type": "integer", - "minimum": 1, - "default": 20, - "description": "Default page size" - }, - "maxLimit": { - "type": "integer", - "minimum": 1, - "default": 100, - "description": "Maximum page size" - } - }, - "additionalProperties": false, - "description": "Pagination configuration" - }, - "fields": { - "type": "object", - "properties": { - "required": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required fields (always returned)" - }, - "selectable": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Selectable fields" - } - }, - "additionalProperties": false, - "description": "Field selection configuration" - }, - "authRequired": { - "type": "boolean", - "default": true, - "description": "Require authentication" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required permissions" - }, - "cache": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable caching" - }, - "ttl": { - "type": "integer", - "minimum": 0, - "description": "Cache TTL in seconds" - }, - "key": { - "type": "string", - "description": "Cache key template" - } - }, - "additionalProperties": false, - "description": "Query caching" - } - }, - "required": [ - "name", - "object", - "type" - ], - "additionalProperties": false - } + "GraphQLQueryConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLQueryDepthLimit.json b/packages/spec/json-schema/api/GraphQLQueryDepthLimit.json index f15b683e2..b7335f2e4 100644 --- a/packages/spec/json-schema/api/GraphQLQueryDepthLimit.json +++ b/packages/spec/json-schema/api/GraphQLQueryDepthLimit.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/GraphQLQueryDepthLimit", "definitions": { - "GraphQLQueryDepthLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable query depth limiting" - }, - "maxDepth": { - "type": "integer", - "minimum": 1, - "default": 10, - "description": "Maximum query depth" - }, - "ignoreFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields excluded from depth calculation" - }, - "onDepthExceeded": { - "type": "string", - "enum": [ - "reject", - "log", - "warn" - ], - "default": "reject", - "description": "Action when depth exceeded" - }, - "errorMessage": { - "type": "string", - "description": "Custom error message for depth violations" - } - }, - "additionalProperties": false - } + "GraphQLQueryDepthLimit": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLRateLimit.json b/packages/spec/json-schema/api/GraphQLRateLimit.json index 2c053e622..b33580b0f 100644 --- a/packages/spec/json-schema/api/GraphQLRateLimit.json +++ b/packages/spec/json-schema/api/GraphQLRateLimit.json @@ -1,138 +1,7 @@ { "$ref": "#/definitions/GraphQLRateLimit", "definitions": { - "GraphQLRateLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable rate limiting" - }, - "strategy": { - "type": "string", - "enum": [ - "token_bucket", - "fixed_window", - "sliding_window", - "cost_based" - ], - "default": "token_bucket", - "description": "Rate limiting strategy" - }, - "global": { - "type": "object", - "properties": { - "maxRequests": { - "type": "integer", - "minimum": 1, - "default": 1000, - "description": "Maximum requests per window" - }, - "windowMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Time window in milliseconds" - } - }, - "additionalProperties": false, - "description": "Global rate limits" - }, - "perUser": { - "type": "object", - "properties": { - "maxRequests": { - "type": "integer", - "minimum": 1, - "default": 100, - "description": "Maximum requests per user per window" - }, - "windowMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Time window in milliseconds" - } - }, - "additionalProperties": false, - "description": "Per-user rate limits" - }, - "costBased": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable cost-based rate limiting" - }, - "maxCost": { - "type": "integer", - "minimum": 1, - "default": 10000, - "description": "Maximum cost per window" - }, - "windowMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Time window in milliseconds" - }, - "useComplexityAsCost": { - "type": "boolean", - "default": true, - "description": "Use query complexity as cost" - } - }, - "additionalProperties": false, - "description": "Cost-based rate limiting" - }, - "operations": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "maxRequests": { - "type": "integer", - "minimum": 1, - "description": "Max requests for this operation" - }, - "windowMs": { - "type": "integer", - "minimum": 1000, - "description": "Time window" - } - }, - "required": [ - "maxRequests", - "windowMs" - ], - "additionalProperties": false - }, - "description": "Per-operation rate limits" - }, - "onLimitExceeded": { - "type": "string", - "enum": [ - "reject", - "queue", - "log" - ], - "default": "reject", - "description": "Action when rate limit exceeded" - }, - "errorMessage": { - "type": "string", - "description": "Custom error message for rate limit violations" - }, - "includeHeaders": { - "type": "boolean", - "default": true, - "description": "Include rate limit headers in response" - } - }, - "additionalProperties": false - } + "GraphQLRateLimit": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLResolverConfig.json b/packages/spec/json-schema/api/GraphQLResolverConfig.json index d0a411372..bf90429ca 100644 --- a/packages/spec/json-schema/api/GraphQLResolverConfig.json +++ b/packages/spec/json-schema/api/GraphQLResolverConfig.json @@ -1,98 +1,7 @@ { "$ref": "#/definitions/GraphQLResolverConfig", "definitions": { - "GraphQLResolverConfig": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "Resolver path (Type.field)" - }, - "type": { - "type": "string", - "enum": [ - "datasource", - "computed", - "script", - "proxy" - ], - "description": "Resolver implementation type" - }, - "implementation": { - "type": "object", - "properties": { - "datasource": { - "type": "string", - "description": "Datasource ID" - }, - "query": { - "type": "string", - "description": "Query/SQL to execute" - }, - "expression": { - "type": "string", - "description": "Computation expression" - }, - "dependencies": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Dependent fields" - }, - "script": { - "type": "string", - "description": "Script ID or inline code" - }, - "url": { - "type": "string", - "description": "Proxy URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "description": "HTTP method" - } - }, - "additionalProperties": false, - "description": "Implementation configuration" - }, - "cache": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable resolver caching" - }, - "ttl": { - "type": "integer", - "minimum": 0, - "description": "Cache TTL in seconds" - }, - "keyArgs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Arguments to include in cache key" - } - }, - "additionalProperties": false, - "description": "Resolver caching" - } - }, - "required": [ - "path", - "type" - ], - "additionalProperties": false - } + "GraphQLResolverConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLScalarType.json b/packages/spec/json-schema/api/GraphQLScalarType.json index 836231b7a..0250d8591 100644 --- a/packages/spec/json-schema/api/GraphQLScalarType.json +++ b/packages/spec/json-schema/api/GraphQLScalarType.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/GraphQLScalarType", "definitions": { - "GraphQLScalarType": { - "type": "string", - "enum": [ - "ID", - "String", - "Int", - "Float", - "Boolean", - "DateTime", - "Date", - "Time", - "JSON", - "JSONObject", - "Upload", - "URL", - "Email", - "PhoneNumber", - "Currency", - "Decimal", - "BigInt", - "Long", - "UUID", - "Base64", - "Void" - ] - } + "GraphQLScalarType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLSubscriptionConfig.json b/packages/spec/json-schema/api/GraphQLSubscriptionConfig.json index 4ded12bbf..3f706dc63 100644 --- a/packages/spec/json-schema/api/GraphQLSubscriptionConfig.json +++ b/packages/spec/json-schema/api/GraphQLSubscriptionConfig.json @@ -1,118 +1,7 @@ { "$ref": "#/definitions/GraphQLSubscriptionConfig", "definitions": { - "GraphQLSubscriptionConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Subscription field name (camelCase recommended)" - }, - "object": { - "type": "string", - "description": "Source ObjectQL object name" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "created", - "updated", - "deleted", - "custom" - ] - }, - "description": "Events to subscribe to" - }, - "description": { - "type": "string", - "description": "Subscription description" - }, - "filter": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Allow filtering subscriptions" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filterable fields" - } - }, - "additionalProperties": false, - "description": "Subscription filtering" - }, - "payload": { - "type": "object", - "properties": { - "includeEntity": { - "type": "boolean", - "default": true, - "description": "Include entity in payload" - }, - "includePreviousValues": { - "type": "boolean", - "default": false, - "description": "Include previous field values" - }, - "includeMeta": { - "type": "boolean", - "default": true, - "description": "Include metadata (timestamp, user, etc.)" - } - }, - "additionalProperties": false, - "description": "Payload configuration" - }, - "authRequired": { - "type": "boolean", - "default": true, - "description": "Require authentication" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required permissions" - }, - "rateLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable rate limiting" - }, - "maxSubscriptionsPerUser": { - "type": "integer", - "minimum": 1, - "default": 10, - "description": "Max concurrent subscriptions per user" - }, - "throttleMs": { - "type": "integer", - "minimum": 0, - "description": "Throttle interval in milliseconds" - } - }, - "additionalProperties": false, - "description": "Subscription rate limiting" - } - }, - "required": [ - "name", - "object", - "events" - ], - "additionalProperties": false - } + "GraphQLSubscriptionConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/GraphQLTypeConfig.json b/packages/spec/json-schema/api/GraphQLTypeConfig.json index f79f34e66..1db890af0 100644 --- a/packages/spec/json-schema/api/GraphQLTypeConfig.json +++ b/packages/spec/json-schema/api/GraphQLTypeConfig.json @@ -1,113 +1,7 @@ { "$ref": "#/definitions/GraphQLTypeConfig", "definitions": { - "GraphQLTypeConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "GraphQL type name (PascalCase recommended)" - }, - "object": { - "type": "string", - "description": "Source ObjectQL object name" - }, - "description": { - "type": "string", - "description": "Type description" - }, - "fields": { - "type": "object", - "properties": { - "include": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to exclude (e.g., sensitive fields)" - }, - "mappings": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "graphqlName": { - "type": "string", - "description": "Custom GraphQL field name" - }, - "graphqlType": { - "type": "string", - "description": "Override GraphQL type" - }, - "description": { - "type": "string", - "description": "Field description" - }, - "deprecationReason": { - "type": "string", - "description": "Why field is deprecated" - }, - "nullable": { - "type": "boolean", - "description": "Override nullable" - } - }, - "additionalProperties": false - }, - "description": "Field-level customizations" - } - }, - "additionalProperties": false, - "description": "Field configuration" - }, - "interfaces": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GraphQL interface names" - }, - "isInterface": { - "type": "boolean", - "default": false, - "description": "Define as GraphQL interface" - }, - "directives": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Directive name" - }, - "args": { - "type": "object", - "additionalProperties": {}, - "description": "Directive arguments" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "GraphQL directives" - } - }, - "required": [ - "name", - "object" - ], - "additionalProperties": false - } + "GraphQLTypeConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/HttpMethod.json b/packages/spec/json-schema/api/HttpMethod.json index 00e5b835d..8b4b271a0 100644 --- a/packages/spec/json-schema/api/HttpMethod.json +++ b/packages/spec/json-schema/api/HttpMethod.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/HttpMethod", "definitions": { - "HttpMethod": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ] - } + "HttpMethod": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ListRecordResponse.json b/packages/spec/json-schema/api/ListRecordResponse.json index 637f904cf..e078eab55 100644 --- a/packages/spec/json-schema/api/ListRecordResponse.json +++ b/packages/spec/json-schema/api/ListRecordResponse.json @@ -1,103 +1,7 @@ { "$ref": "#/definitions/ListRecordResponse", "definitions": { - "ListRecordResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Operation success status" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if success is false" - }, - "meta": { - "type": "object", - "properties": { - "timestamp": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "requestId": { - "type": "string" - }, - "traceId": { - "type": "string" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false, - "description": "Response metadata" - }, - "data": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {}, - "description": "Key-value map of record data" - }, - "description": "Array of matching records" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "number", - "description": "Total matching records count" - }, - "limit": { - "type": "number", - "description": "Page size" - }, - "offset": { - "type": "number", - "description": "Page offset" - }, - "hasMore": { - "type": "boolean", - "description": "Are there more pages?" - } - }, - "required": [ - "total", - "limit", - "offset", - "hasMore" - ], - "additionalProperties": false, - "description": "Pagination info" - } - }, - "required": [ - "success", - "data", - "pagination" - ], - "additionalProperties": false - } + "ListRecordResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ListViewsRequest.json b/packages/spec/json-schema/api/ListViewsRequest.json index 1edd30a69..2da14886d 100644 --- a/packages/spec/json-schema/api/ListViewsRequest.json +++ b/packages/spec/json-schema/api/ListViewsRequest.json @@ -1,58 +1,7 @@ { "$ref": "#/definitions/ListViewsRequest", "definitions": { - "ListViewsRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Filter by object name" - }, - "type": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "timeline", - "chart", - "pivot", - "custom" - ], - "description": "Filter by view type" - }, - "visibility": { - "type": "string", - "enum": [ - "private", - "shared", - "public", - "organization" - ], - "description": "Filter by visibility" - }, - "createdBy": { - "type": "string", - "description": "Filter by creator user ID" - }, - "isDefault": { - "type": "boolean", - "description": "Filter for default views" - }, - "limit": { - "type": "number", - "default": 50, - "description": "Max results" - }, - "offset": { - "type": "number", - "default": 0, - "description": "Offset for pagination" - } - }, - "additionalProperties": false - } + "ListViewsRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ListViewsResponse.json b/packages/spec/json-schema/api/ListViewsResponse.json index 55612f116..fdf95702f 100644 --- a/packages/spec/json-schema/api/ListViewsResponse.json +++ b/packages/spec/json-schema/api/ListViewsResponse.json @@ -1,1132 +1,7 @@ { "$ref": "#/definitions/ListViewsResponse", "definitions": { - "ListViewsResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique view identifier" - }, - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "View machine name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string", - "description": "View description" - }, - "object": { - "type": "string", - "description": "Object/table this view is for" - }, - "type": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "timeline", - "chart", - "pivot", - "custom" - ], - "description": "View type" - }, - "visibility": { - "type": "string", - "enum": [ - "private", - "shared", - "public", - "organization" - ], - "description": "Who can access this view" - }, - "query": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": {}, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - }, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Query configuration (filters, sorting, etc.)" - }, - "layout": { - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "label": { - "type": "string", - "description": "Custom column label" - }, - "width": { - "type": "number", - "description": "Column width in pixels" - }, - "sortable": { - "type": "boolean", - "default": true, - "description": "Whether column is sortable" - }, - "filterable": { - "type": "boolean", - "default": true, - "description": "Whether column is filterable" - }, - "visible": { - "type": "boolean", - "default": true, - "description": "Whether column is visible" - }, - "pinned": { - "type": "string", - "enum": [ - "left", - "right" - ], - "description": "Pin column to left or right" - }, - "formatter": { - "type": "string", - "description": "Custom formatter name" - }, - "aggregation": { - "type": "string", - "description": "Aggregation function for column (sum, avg, etc.)" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Column configuration for list views" - }, - "rowHeight": { - "type": "number", - "description": "Row height in pixels" - }, - "groupByField": { - "type": "string", - "description": "Field to group by (for kanban)" - }, - "cardFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to display on cards" - }, - "dateField": { - "type": "string", - "description": "Date field for calendar view" - }, - "startDateField": { - "type": "string", - "description": "Start date field for event ranges" - }, - "endDateField": { - "type": "string", - "description": "End date field for event ranges" - }, - "titleField": { - "type": "string", - "description": "Field to use as event title" - }, - "chartType": { - "type": "string", - "enum": [ - "bar", - "line", - "pie", - "scatter", - "area" - ], - "description": "Chart type" - }, - "xAxis": { - "type": "string", - "description": "X-axis field" - }, - "yAxis": { - "type": "string", - "description": "Y-axis field" - }, - "series": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Series fields for multi-series charts" - } - }, - "additionalProperties": false, - "description": "Layout configuration" - }, - "sharedWith": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User/team IDs this view is shared with" - }, - "isDefault": { - "type": "boolean", - "default": false, - "description": "Is this the default view for this object?" - }, - "isSystem": { - "type": "boolean", - "default": false, - "description": "Is this a system-defined view?" - }, - "createdBy": { - "type": "string", - "description": "User ID who created this view" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "When the view was created" - }, - "updatedBy": { - "type": "string", - "description": "User ID who last updated this view" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "When the view was last updated" - }, - "settings": { - "type": "object", - "additionalProperties": {}, - "description": "Additional view-specific settings" - } - }, - "required": [ - "id", - "name", - "label", - "object", - "type", - "visibility", - "query", - "createdBy", - "createdAt" - ], - "additionalProperties": false - }, - "description": "Array of saved views" - }, - "pagination": { - "type": "object", - "properties": { - "total": { - "type": "number" - }, - "limit": { - "type": "number" - }, - "offset": { - "type": "number" - }, - "hasMore": { - "type": "boolean" - } - }, - "required": [ - "total", - "limit", - "offset", - "hasMore" - ], - "additionalProperties": false - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - } - }, - "required": [ - "success", - "data", - "pagination" - ], - "additionalProperties": false - } + "ListViewsResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/MetadataCacheRequest.json b/packages/spec/json-schema/api/MetadataCacheRequest.json index 84a7d4045..20795c245 100644 --- a/packages/spec/json-schema/api/MetadataCacheRequest.json +++ b/packages/spec/json-schema/api/MetadataCacheRequest.json @@ -1,58 +1,7 @@ { "$ref": "#/definitions/MetadataCacheRequest", "definitions": { - "MetadataCacheRequest": { - "type": "object", - "properties": { - "ifNoneMatch": { - "type": "string", - "description": "ETag value for conditional request (If-None-Match header)" - }, - "ifModifiedSince": { - "type": "string", - "format": "date-time", - "description": "Timestamp for conditional request (If-Modified-Since header)" - }, - "cacheControl": { - "type": "object", - "properties": { - "directives": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "public", - "private", - "no-cache", - "no-store", - "must-revalidate", - "max-age" - ] - }, - "description": "Cache control directives" - }, - "maxAge": { - "type": "number", - "description": "Maximum cache age in seconds" - }, - "staleWhileRevalidate": { - "type": "number", - "description": "Allow serving stale content while revalidating (seconds)" - }, - "staleIfError": { - "type": "number", - "description": "Allow serving stale content on error (seconds)" - } - }, - "required": [ - "directives" - ], - "additionalProperties": false, - "description": "Client cache control preferences" - } - }, - "additionalProperties": false - } + "MetadataCacheRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/MetadataCacheResponse.json b/packages/spec/json-schema/api/MetadataCacheResponse.json index ff648f2ec..42bea84dd 100644 --- a/packages/spec/json-schema/api/MetadataCacheResponse.json +++ b/packages/spec/json-schema/api/MetadataCacheResponse.json @@ -1,85 +1,7 @@ { "$ref": "#/definitions/MetadataCacheResponse", "definitions": { - "MetadataCacheResponse": { - "type": "object", - "properties": { - "data": { - "description": "Metadata payload (omitted for 304 Not Modified)" - }, - "etag": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "ETag value (hash or version identifier)" - }, - "weak": { - "type": "boolean", - "default": false, - "description": "Whether this is a weak ETag" - } - }, - "required": [ - "value" - ], - "additionalProperties": false, - "description": "ETag for this resource version" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "Last modification timestamp" - }, - "cacheControl": { - "type": "object", - "properties": { - "directives": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "public", - "private", - "no-cache", - "no-store", - "must-revalidate", - "max-age" - ] - }, - "description": "Cache control directives" - }, - "maxAge": { - "type": "number", - "description": "Maximum cache age in seconds" - }, - "staleWhileRevalidate": { - "type": "number", - "description": "Allow serving stale content while revalidating (seconds)" - }, - "staleIfError": { - "type": "number", - "description": "Allow serving stale content on error (seconds)" - } - }, - "required": [ - "directives" - ], - "additionalProperties": false, - "description": "Cache control directives" - }, - "notModified": { - "type": "boolean", - "default": false, - "description": "True if resource has not been modified (304 response)" - }, - "version": { - "type": "string", - "description": "Metadata version identifier" - } - }, - "additionalProperties": false - } + "MetadataCacheResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/MetadataEndpointsConfig.json b/packages/spec/json-schema/api/MetadataEndpointsConfig.json index 690db2f51..7e7c6273f 100644 --- a/packages/spec/json-schema/api/MetadataEndpointsConfig.json +++ b/packages/spec/json-schema/api/MetadataEndpointsConfig.json @@ -1,54 +1,7 @@ { "$ref": "#/definitions/MetadataEndpointsConfig", "definitions": { - "MetadataEndpointsConfig": { - "type": "object", - "properties": { - "prefix": { - "type": "string", - "default": "/meta", - "description": "URL prefix for metadata endpoints" - }, - "enableCache": { - "type": "boolean", - "default": true, - "description": "Enable HTTP cache headers (ETag, Last-Modified)" - }, - "cacheTtl": { - "type": "integer", - "default": 3600, - "description": "Cache TTL in seconds" - }, - "endpoints": { - "type": "object", - "properties": { - "types": { - "type": "boolean", - "default": true, - "description": "GET /meta - List all metadata types" - }, - "items": { - "type": "boolean", - "default": true, - "description": "GET /meta/:type - List items of type" - }, - "item": { - "type": "boolean", - "default": true, - "description": "GET /meta/:type/:name - Get specific item" - }, - "schema": { - "type": "boolean", - "default": true, - "description": "GET /meta/:type/:name/schema - Get JSON schema" - } - }, - "additionalProperties": false, - "description": "Enable/disable specific endpoints" - } - }, - "additionalProperties": false - } + "MetadataEndpointsConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ModificationResult.json b/packages/spec/json-schema/api/ModificationResult.json index 0b896e209..035e0e027 100644 --- a/packages/spec/json-schema/api/ModificationResult.json +++ b/packages/spec/json-schema/api/ModificationResult.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/ModificationResult", "definitions": { - "ModificationResult": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID if processed" - }, - "success": { - "type": "boolean" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - } - } - }, - "required": [ - "success" - ], - "additionalProperties": false - } + "ModificationResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ODataConfig.json b/packages/spec/json-schema/api/ODataConfig.json index 92b15f12e..5aa5aefb1 100644 --- a/packages/spec/json-schema/api/ODataConfig.json +++ b/packages/spec/json-schema/api/ODataConfig.json @@ -1,132 +1,7 @@ { "$ref": "#/definitions/ODataConfig", "definitions": { - "ODataConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable OData API" - }, - "path": { - "type": "string", - "default": "/odata", - "description": "OData endpoint path" - }, - "metadata": { - "type": "object", - "properties": { - "namespace": { - "type": "string", - "description": "Service namespace" - }, - "entityTypes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Entity type name" - }, - "key": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Key fields" - }, - "properties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "description": "OData type (Edm.String, Edm.Int32, etc.)" - }, - "nullable": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "navigationProperties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "partner": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - } - }, - "required": [ - "name", - "key", - "properties" - ], - "additionalProperties": false - }, - "description": "Entity types" - }, - "entitySets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Entity set name" - }, - "entityType": { - "type": "string", - "description": "Entity type" - } - }, - "required": [ - "name", - "entityType" - ], - "additionalProperties": false - }, - "description": "Entity sets" - } - }, - "required": [ - "namespace", - "entityTypes", - "entitySets" - ], - "additionalProperties": false, - "description": "OData metadata configuration" - } - }, - "additionalProperties": true - } + "ODataConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ODataError.json b/packages/spec/json-schema/api/ODataError.json index 71eec6c17..8797a895a 100644 --- a/packages/spec/json-schema/api/ODataError.json +++ b/packages/spec/json-schema/api/ODataError.json @@ -1,65 +1,7 @@ { "$ref": "#/definitions/ODataError", "definitions": { - "ODataError": { - "type": "object", - "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code" - }, - "message": { - "type": "string", - "description": "Error message" - }, - "target": { - "type": "string", - "description": "Error target" - }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "target": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - }, - "description": "Error details" - }, - "innererror": { - "type": "object", - "additionalProperties": {}, - "description": "Inner error details" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - } - }, - "required": [ - "error" - ], - "additionalProperties": false - } + "ODataError": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ODataFilterFunction.json b/packages/spec/json-schema/api/ODataFilterFunction.json index 91ebdb270..b71813f6a 100644 --- a/packages/spec/json-schema/api/ODataFilterFunction.json +++ b/packages/spec/json-schema/api/ODataFilterFunction.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/ODataFilterFunction", "definitions": { - "ODataFilterFunction": { - "type": "string", - "enum": [ - "contains", - "startswith", - "endswith", - "length", - "indexof", - "substring", - "tolower", - "toupper", - "trim", - "concat", - "year", - "month", - "day", - "hour", - "minute", - "second", - "date", - "time", - "now", - "maxdatetime", - "mindatetime", - "round", - "floor", - "ceiling", - "cast", - "isof", - "any", - "all" - ] - } + "ODataFilterFunction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ODataFilterOperator.json b/packages/spec/json-schema/api/ODataFilterOperator.json index 00f25741e..bf7a8e71d 100644 --- a/packages/spec/json-schema/api/ODataFilterOperator.json +++ b/packages/spec/json-schema/api/ODataFilterOperator.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/ODataFilterOperator", "definitions": { - "ODataFilterOperator": { - "type": "string", - "enum": [ - "eq", - "ne", - "lt", - "le", - "gt", - "ge", - "and", - "or", - "not", - "(", - ")", - "in", - "has" - ] - } + "ODataFilterOperator": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ODataMetadata.json b/packages/spec/json-schema/api/ODataMetadata.json index 9fe10e91e..4cc321e29 100644 --- a/packages/spec/json-schema/api/ODataMetadata.json +++ b/packages/spec/json-schema/api/ODataMetadata.json @@ -1,115 +1,7 @@ { "$ref": "#/definitions/ODataMetadata", "definitions": { - "ODataMetadata": { - "type": "object", - "properties": { - "namespace": { - "type": "string", - "description": "Service namespace" - }, - "entityTypes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Entity type name" - }, - "key": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Key fields" - }, - "properties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "description": "OData type (Edm.String, Edm.Int32, etc.)" - }, - "nullable": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "navigationProperties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "partner": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - } - }, - "required": [ - "name", - "key", - "properties" - ], - "additionalProperties": false - }, - "description": "Entity types" - }, - "entitySets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Entity set name" - }, - "entityType": { - "type": "string", - "description": "Entity type" - } - }, - "required": [ - "name", - "entityType" - ], - "additionalProperties": false - }, - "description": "Entity sets" - } - }, - "required": [ - "namespace", - "entityTypes", - "entitySets" - ], - "additionalProperties": false - } + "ODataMetadata": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ODataQuery.json b/packages/spec/json-schema/api/ODataQuery.json index 204a0657e..597bc742a 100644 --- a/packages/spec/json-schema/api/ODataQuery.json +++ b/packages/spec/json-schema/api/ODataQuery.json @@ -1,89 +1,7 @@ { "$ref": "#/definitions/ODataQuery", "definitions": { - "ODataQuery": { - "type": "object", - "properties": { - "$select": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Fields to select" - }, - "$filter": { - "type": "string", - "description": "Filter expression (OData filter syntax)" - }, - "$orderby": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Sort order" - }, - "$top": { - "type": "integer", - "minimum": 0, - "description": "Max results to return" - }, - "$skip": { - "type": "integer", - "minimum": 0, - "description": "Results to skip" - }, - "$expand": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Navigation properties to expand" - }, - "$count": { - "type": "boolean", - "description": "Include total count" - }, - "$search": { - "type": "string", - "description": "Search expression" - }, - "$format": { - "type": "string", - "enum": [ - "json", - "xml", - "atom" - ], - "description": "Response format" - }, - "$apply": { - "type": "string", - "description": "Aggregation expression" - } - }, - "additionalProperties": false - } + "ODataQuery": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ODataResponse.json b/packages/spec/json-schema/api/ODataResponse.json index fde26cca3..249b24fa1 100644 --- a/packages/spec/json-schema/api/ODataResponse.json +++ b/packages/spec/json-schema/api/ODataResponse.json @@ -1,37 +1,7 @@ { "$ref": "#/definitions/ODataResponse", "definitions": { - "ODataResponse": { - "type": "object", - "properties": { - "@odata.context": { - "type": "string", - "format": "uri", - "description": "Metadata context URL" - }, - "@odata.count": { - "type": "integer", - "description": "Total results count" - }, - "@odata.nextLink": { - "type": "string", - "format": "uri", - "description": "Next page URL" - }, - "value": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - }, - "description": "Results array" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - } + "ODataResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ObjectStackProtocol.json b/packages/spec/json-schema/api/ObjectStackProtocol.json index 92fb910a5..551909c01 100644 --- a/packages/spec/json-schema/api/ObjectStackProtocol.json +++ b/packages/spec/json-schema/api/ObjectStackProtocol.json @@ -1,11 +1,7 @@ { "$ref": "#/definitions/ObjectStackProtocol", "definitions": { - "ObjectStackProtocol": { - "type": "object", - "properties": {}, - "additionalProperties": false - } + "ObjectStackProtocol": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/PingMessage.json b/packages/spec/json-schema/api/PingMessage.json index b6173c4a3..ee61e39e3 100644 --- a/packages/spec/json-schema/api/PingMessage.json +++ b/packages/spec/json-schema/api/PingMessage.json @@ -1,31 +1,7 @@ { "$ref": "#/definitions/PingMessage", "definitions": { - "PingMessage": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "ping" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - } - }, - "required": [ - "messageId", - "type", - "timestamp" - ], - "additionalProperties": false - } + "PingMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/PongMessage.json b/packages/spec/json-schema/api/PongMessage.json index 572edd427..63befe9c2 100644 --- a/packages/spec/json-schema/api/PongMessage.json +++ b/packages/spec/json-schema/api/PongMessage.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/PongMessage", "definitions": { - "PongMessage": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "pong" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "pingMessageId": { - "type": "string", - "format": "uuid", - "description": "ID of ping message being responded to" - } - }, - "required": [ - "messageId", - "type", - "timestamp" - ], - "additionalProperties": false - } + "PongMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/Presence.json b/packages/spec/json-schema/api/Presence.json index 92a273202..670784371 100644 --- a/packages/spec/json-schema/api/Presence.json +++ b/packages/spec/json-schema/api/Presence.json @@ -1,40 +1,7 @@ { "$ref": "#/definitions/Presence", "definitions": { - "Presence": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "status": { - "type": "string", - "enum": [ - "online", - "away", - "offline" - ], - "description": "Current presence status" - }, - "lastSeen": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last activity" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom presence data (e.g., current page, custom status)" - } - }, - "required": [ - "userId", - "status", - "lastSeen" - ], - "additionalProperties": false - } + "Presence": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/PresenceMessage.json b/packages/spec/json-schema/api/PresenceMessage.json index 5dd125edb..7437a93ed 100644 --- a/packages/spec/json-schema/api/PresenceMessage.json +++ b/packages/spec/json-schema/api/PresenceMessage.json @@ -1,92 +1,7 @@ { "$ref": "#/definitions/PresenceMessage", "definitions": { - "PresenceMessage": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "presence" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "presence": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Unique session identifier" - }, - "status": { - "type": "string", - "enum": [ - "online", - "away", - "busy", - "offline" - ], - "description": "Current presence status" - }, - "lastSeen": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last activity" - }, - "currentLocation": { - "type": "string", - "description": "Current page/route user is viewing" - }, - "device": { - "type": "string", - "enum": [ - "desktop", - "mobile", - "tablet", - "other" - ], - "description": "Device type" - }, - "customStatus": { - "type": "string", - "description": "Custom user status message" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional custom presence data" - } - }, - "required": [ - "userId", - "sessionId", - "status", - "lastSeen" - ], - "additionalProperties": false, - "description": "Presence state" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "presence" - ], - "additionalProperties": false - } + "PresenceMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/PresenceState.json b/packages/spec/json-schema/api/PresenceState.json index e3144d289..50cc417fd 100644 --- a/packages/spec/json-schema/api/PresenceState.json +++ b/packages/spec/json-schema/api/PresenceState.json @@ -1,65 +1,7 @@ { "$ref": "#/definitions/PresenceState", "definitions": { - "PresenceState": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Unique session identifier" - }, - "status": { - "type": "string", - "enum": [ - "online", - "away", - "busy", - "offline" - ], - "description": "Current presence status" - }, - "lastSeen": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last activity" - }, - "currentLocation": { - "type": "string", - "description": "Current page/route user is viewing" - }, - "device": { - "type": "string", - "enum": [ - "desktop", - "mobile", - "tablet", - "other" - ], - "description": "Device type" - }, - "customStatus": { - "type": "string", - "description": "Custom user status message" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional custom presence data" - } - }, - "required": [ - "userId", - "sessionId", - "status", - "lastSeen" - ], - "additionalProperties": false - } + "PresenceState": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/PresenceStatus.json b/packages/spec/json-schema/api/PresenceStatus.json index 7248409fe..996243184 100644 --- a/packages/spec/json-schema/api/PresenceStatus.json +++ b/packages/spec/json-schema/api/PresenceStatus.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/PresenceStatus", "definitions": { - "PresenceStatus": { - "type": "string", - "enum": [ - "online", - "away", - "offline" - ] - } + "PresenceStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/PresenceUpdate.json b/packages/spec/json-schema/api/PresenceUpdate.json index 123b6bf71..a7c0eee19 100644 --- a/packages/spec/json-schema/api/PresenceUpdate.json +++ b/packages/spec/json-schema/api/PresenceUpdate.json @@ -1,35 +1,7 @@ { "$ref": "#/definitions/PresenceUpdate", "definitions": { - "PresenceUpdate": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "online", - "away", - "busy", - "offline" - ], - "description": "Updated presence status" - }, - "currentLocation": { - "type": "string", - "description": "Updated current location" - }, - "customStatus": { - "type": "string", - "description": "Updated custom status message" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Updated metadata" - } - }, - "additionalProperties": false - } + "PresenceUpdate": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RateLimit.json b/packages/spec/json-schema/api/RateLimit.json index b6dbf9a9a..c281bd077 100644 --- a/packages/spec/json-schema/api/RateLimit.json +++ b/packages/spec/json-schema/api/RateLimit.json @@ -1,27 +1,7 @@ { "$ref": "#/definitions/RateLimit", "definitions": { - "RateLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable rate limiting" - }, - "windowMs": { - "type": "integer", - "default": 60000, - "description": "Time window in milliseconds" - }, - "maxRequests": { - "type": "integer", - "default": 100, - "description": "Max requests per window" - } - }, - "additionalProperties": false - } + "RateLimit": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RealtimeAction.json b/packages/spec/json-schema/api/RealtimeAction.json index 91ddffd79..e2d4c1209 100644 --- a/packages/spec/json-schema/api/RealtimeAction.json +++ b/packages/spec/json-schema/api/RealtimeAction.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/RealtimeAction", "definitions": { - "RealtimeAction": { - "type": "string", - "enum": [ - "created", - "updated", - "deleted" - ] - } + "RealtimeAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RealtimeConfig.json b/packages/spec/json-schema/api/RealtimeConfig.json index 087ce8e7d..eadad73bc 100644 --- a/packages/spec/json-schema/api/RealtimeConfig.json +++ b/packages/spec/json-schema/api/RealtimeConfig.json @@ -1,90 +1,7 @@ { "$ref": "#/definitions/RealtimeConfig", "definitions": { - "RealtimeConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable realtime synchronization" - }, - "transport": { - "type": "string", - "enum": [ - "websocket", - "sse", - "polling" - ], - "default": "websocket", - "description": "Transport protocol" - }, - "subscriptions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid", - "description": "Unique subscription identifier" - }, - "events": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "field.changed" - ], - "description": "Type of event to subscribe to" - }, - "object": { - "type": "string", - "description": "Object name to subscribe to" - }, - "filters": { - "description": "Filter conditions" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "description": "Array of events to subscribe to" - }, - "transport": { - "type": "string", - "enum": [ - "websocket", - "sse", - "polling" - ], - "description": "Transport protocol to use" - }, - "channel": { - "type": "string", - "description": "Optional channel name for grouping subscriptions" - } - }, - "required": [ - "id", - "events", - "transport" - ], - "additionalProperties": false - }, - "description": "Default subscriptions" - } - }, - "additionalProperties": true - } + "RealtimeConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RealtimeEvent.json b/packages/spec/json-schema/api/RealtimeEvent.json index 7650cf162..8f430dd85 100644 --- a/packages/spec/json-schema/api/RealtimeEvent.json +++ b/packages/spec/json-schema/api/RealtimeEvent.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/RealtimeEvent", "definitions": { - "RealtimeEvent": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid", - "description": "Unique event identifier" - }, - "type": { - "type": "string", - "description": "Event type (e.g., record.created, record.updated)" - }, - "object": { - "type": "string", - "description": "Object name the event relates to" - }, - "action": { - "type": "string", - "enum": [ - "created", - "updated", - "deleted" - ], - "description": "Action performed" - }, - "payload": { - "description": "Event payload data" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when event occurred" - }, - "userId": { - "type": "string", - "description": "User who triggered the event" - } - }, - "required": [ - "id", - "type", - "timestamp" - ], - "additionalProperties": false - } + "RealtimeEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RealtimeEventType.json b/packages/spec/json-schema/api/RealtimeEventType.json index e1b8eeb83..c7421226e 100644 --- a/packages/spec/json-schema/api/RealtimeEventType.json +++ b/packages/spec/json-schema/api/RealtimeEventType.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/RealtimeEventType", "definitions": { - "RealtimeEventType": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "field.changed" - ] - } + "RealtimeEventType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RecordData.json b/packages/spec/json-schema/api/RecordData.json index 4fa6a0f7a..696dc0b51 100644 --- a/packages/spec/json-schema/api/RecordData.json +++ b/packages/spec/json-schema/api/RecordData.json @@ -1,11 +1,7 @@ { "$ref": "#/definitions/RecordData", "definitions": { - "RecordData": { - "type": "object", - "additionalProperties": {}, - "description": "Key-value map of record data" - } + "RecordData": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RestApiConfig.json b/packages/spec/json-schema/api/RestApiConfig.json index a4b2bde50..e482cf4b8 100644 --- a/packages/spec/json-schema/api/RestApiConfig.json +++ b/packages/spec/json-schema/api/RestApiConfig.json @@ -1,127 +1,7 @@ { "$ref": "#/definitions/RestApiConfig", "definitions": { - "RestApiConfig": { - "type": "object", - "properties": { - "version": { - "type": "string", - "default": "v1", - "description": "API version (e.g., v1, v2, 2024-01)" - }, - "basePath": { - "type": "string", - "default": "/api", - "description": "Base URL path for API" - }, - "apiPath": { - "type": "string", - "description": "Full API path (defaults to {basePath}/{version})" - }, - "enableCrud": { - "type": "boolean", - "default": true, - "description": "Enable automatic CRUD endpoint generation" - }, - "enableMetadata": { - "type": "boolean", - "default": true, - "description": "Enable metadata API endpoints" - }, - "enableBatch": { - "type": "boolean", - "default": true, - "description": "Enable batch operation endpoints" - }, - "enableDiscovery": { - "type": "boolean", - "default": true, - "description": "Enable API discovery endpoint" - }, - "documentation": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable API documentation" - }, - "title": { - "type": "string", - "default": "ObjectStack API", - "description": "API documentation title" - }, - "description": { - "type": "string", - "description": "API description" - }, - "version": { - "type": "string", - "description": "Documentation version" - }, - "termsOfService": { - "type": "string", - "description": "Terms of service URL" - }, - "contact": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "email": { - "type": "string" - } - }, - "additionalProperties": false - }, - "license": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "additionalProperties": false, - "description": "OpenAPI/Swagger documentation config" - }, - "responseFormat": { - "type": "object", - "properties": { - "envelope": { - "type": "boolean", - "default": true, - "description": "Wrap responses in standard envelope" - }, - "includeMetadata": { - "type": "boolean", - "default": true, - "description": "Include response metadata (timestamp, requestId)" - }, - "includePagination": { - "type": "boolean", - "default": true, - "description": "Include pagination info in list responses" - } - }, - "additionalProperties": false, - "description": "Response format options" - } - }, - "additionalProperties": false - } + "RestApiConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RestServerConfig.json b/packages/spec/json-schema/api/RestServerConfig.json index c88f373e4..f14a960dd 100644 --- a/packages/spec/json-schema/api/RestServerConfig.json +++ b/packages/spec/json-schema/api/RestServerConfig.json @@ -1,401 +1,7 @@ { "$ref": "#/definitions/RestServerConfig", "definitions": { - "RestServerConfig": { - "type": "object", - "properties": { - "api": { - "type": "object", - "properties": { - "version": { - "type": "string", - "default": "v1", - "description": "API version (e.g., v1, v2, 2024-01)" - }, - "basePath": { - "type": "string", - "default": "/api", - "description": "Base URL path for API" - }, - "apiPath": { - "type": "string", - "description": "Full API path (defaults to {basePath}/{version})" - }, - "enableCrud": { - "type": "boolean", - "default": true, - "description": "Enable automatic CRUD endpoint generation" - }, - "enableMetadata": { - "type": "boolean", - "default": true, - "description": "Enable metadata API endpoints" - }, - "enableBatch": { - "type": "boolean", - "default": true, - "description": "Enable batch operation endpoints" - }, - "enableDiscovery": { - "type": "boolean", - "default": true, - "description": "Enable API discovery endpoint" - }, - "documentation": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable API documentation" - }, - "title": { - "type": "string", - "default": "ObjectStack API", - "description": "API documentation title" - }, - "description": { - "type": "string", - "description": "API description" - }, - "version": { - "type": "string", - "description": "Documentation version" - }, - "termsOfService": { - "type": "string", - "description": "Terms of service URL" - }, - "contact": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "email": { - "type": "string" - } - }, - "additionalProperties": false - }, - "license": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "additionalProperties": false, - "description": "OpenAPI/Swagger documentation config" - }, - "responseFormat": { - "type": "object", - "properties": { - "envelope": { - "type": "boolean", - "default": true, - "description": "Wrap responses in standard envelope" - }, - "includeMetadata": { - "type": "boolean", - "default": true, - "description": "Include response metadata (timestamp, requestId)" - }, - "includePagination": { - "type": "boolean", - "default": true, - "description": "Include pagination info in list responses" - } - }, - "additionalProperties": false, - "description": "Response format options" - } - }, - "additionalProperties": false, - "description": "REST API configuration" - }, - "crud": { - "type": "object", - "properties": { - "operations": { - "type": "object", - "properties": { - "create": { - "type": "boolean", - "default": true, - "description": "Enable create operation" - }, - "read": { - "type": "boolean", - "default": true, - "description": "Enable read operation" - }, - "update": { - "type": "boolean", - "default": true, - "description": "Enable update operation" - }, - "delete": { - "type": "boolean", - "default": true, - "description": "Enable delete operation" - }, - "list": { - "type": "boolean", - "default": true, - "description": "Enable list operation" - } - }, - "additionalProperties": false, - "description": "Enable/disable operations" - }, - "patterns": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ], - "description": "HTTP method" - }, - "path": { - "type": "string", - "description": "URL path pattern" - }, - "summary": { - "type": "string", - "description": "Operation summary" - }, - "description": { - "type": "string", - "description": "Operation description" - } - }, - "required": [ - "method", - "path" - ], - "additionalProperties": false - }, - "propertyNames": { - "enum": [ - "create", - "read", - "update", - "delete", - "list" - ] - }, - "description": "Custom URL patterns for operations" - }, - "dataPrefix": { - "type": "string", - "default": "/data", - "description": "URL prefix for data endpoints" - }, - "objectParamStyle": { - "type": "string", - "enum": [ - "path", - "query" - ], - "default": "path", - "description": "How object name is passed (path param or query param)" - } - }, - "additionalProperties": false, - "description": "CRUD endpoints configuration" - }, - "metadata": { - "type": "object", - "properties": { - "prefix": { - "type": "string", - "default": "/meta", - "description": "URL prefix for metadata endpoints" - }, - "enableCache": { - "type": "boolean", - "default": true, - "description": "Enable HTTP cache headers (ETag, Last-Modified)" - }, - "cacheTtl": { - "type": "integer", - "default": 3600, - "description": "Cache TTL in seconds" - }, - "endpoints": { - "type": "object", - "properties": { - "types": { - "type": "boolean", - "default": true, - "description": "GET /meta - List all metadata types" - }, - "items": { - "type": "boolean", - "default": true, - "description": "GET /meta/:type - List items of type" - }, - "item": { - "type": "boolean", - "default": true, - "description": "GET /meta/:type/:name - Get specific item" - }, - "schema": { - "type": "boolean", - "default": true, - "description": "GET /meta/:type/:name/schema - Get JSON schema" - } - }, - "additionalProperties": false, - "description": "Enable/disable specific endpoints" - } - }, - "additionalProperties": false, - "description": "Metadata endpoints configuration" - }, - "batch": { - "type": "object", - "properties": { - "maxBatchSize": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "default": 200, - "description": "Maximum records per batch operation" - }, - "enableBatchEndpoint": { - "type": "boolean", - "default": true, - "description": "Enable POST /data/:object/batch endpoint" - }, - "operations": { - "type": "object", - "properties": { - "createMany": { - "type": "boolean", - "default": true, - "description": "Enable POST /data/:object/createMany" - }, - "updateMany": { - "type": "boolean", - "default": true, - "description": "Enable POST /data/:object/updateMany" - }, - "deleteMany": { - "type": "boolean", - "default": true, - "description": "Enable POST /data/:object/deleteMany" - }, - "upsertMany": { - "type": "boolean", - "default": true, - "description": "Enable POST /data/:object/upsertMany" - } - }, - "additionalProperties": false, - "description": "Enable/disable specific batch operations" - }, - "defaultAtomic": { - "type": "boolean", - "default": true, - "description": "Default atomic/transaction mode for batch operations" - } - }, - "additionalProperties": false, - "description": "Batch endpoints configuration" - }, - "routes": { - "type": "object", - "properties": { - "includeObjects": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Specific objects to generate routes for (empty = all)" - }, - "excludeObjects": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Objects to exclude from route generation" - }, - "nameTransform": { - "type": "string", - "enum": [ - "none", - "plural", - "kebab-case", - "camelCase" - ], - "default": "none", - "description": "Transform object names in URLs" - }, - "overrides": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable/disable routes for this object" - }, - "basePath": { - "type": "string", - "description": "Custom base path" - }, - "operations": { - "type": "object", - "additionalProperties": { - "type": "boolean" - }, - "propertyNames": { - "enum": [ - "create", - "read", - "update", - "delete", - "list" - ] - }, - "description": "Enable/disable specific operations" - } - }, - "additionalProperties": false - }, - "description": "Per-object route customization" - } - }, - "additionalProperties": false, - "description": "Route generation configuration" - } - }, - "additionalProperties": false - } + "RestServerConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RetryStrategy.json b/packages/spec/json-schema/api/RetryStrategy.json index da1636a6a..595a0b773 100644 --- a/packages/spec/json-schema/api/RetryStrategy.json +++ b/packages/spec/json-schema/api/RetryStrategy.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/RetryStrategy", "definitions": { - "RetryStrategy": { - "type": "string", - "enum": [ - "no_retry", - "retry_immediate", - "retry_backoff", - "retry_after" - ] - } + "RetryStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RouteCategory.json b/packages/spec/json-schema/api/RouteCategory.json index f5bede9ec..683ad31cf 100644 --- a/packages/spec/json-schema/api/RouteCategory.json +++ b/packages/spec/json-schema/api/RouteCategory.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/RouteCategory", "definitions": { - "RouteCategory": { - "type": "string", - "enum": [ - "system", - "api", - "auth", - "static", - "webhook", - "plugin" - ] - } + "RouteCategory": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RouteDefinition.json b/packages/spec/json-schema/api/RouteDefinition.json index 3e04a5cdf..0c07b40c9 100644 --- a/packages/spec/json-schema/api/RouteDefinition.json +++ b/packages/spec/json-schema/api/RouteDefinition.json @@ -1,77 +1,7 @@ { "$ref": "#/definitions/RouteDefinition", "definitions": { - "RouteDefinition": { - "type": "object", - "properties": { - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ] - }, - "path": { - "type": "string", - "description": "URL Path pattern" - }, - "category": { - "type": "string", - "enum": [ - "system", - "api", - "auth", - "static", - "webhook", - "plugin" - ], - "default": "api" - }, - "handler": { - "type": "string", - "description": "Unique handler identifier" - }, - "summary": { - "type": "string", - "description": "OpenAPI summary" - }, - "description": { - "type": "string", - "description": "OpenAPI description" - }, - "public": { - "type": "boolean", - "default": false, - "description": "Is publicly accessible" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required permissions" - }, - "timeout": { - "type": "integer", - "description": "Execution timeout in ms" - }, - "rateLimit": { - "type": "string", - "description": "Rate limit policy name" - } - }, - "required": [ - "method", - "path", - "handler" - ], - "additionalProperties": false - } + "RouteDefinition": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RouteGenerationConfig.json b/packages/spec/json-schema/api/RouteGenerationConfig.json index 277c383d9..be11eb46a 100644 --- a/packages/spec/json-schema/api/RouteGenerationConfig.json +++ b/packages/spec/json-schema/api/RouteGenerationConfig.json @@ -1,71 +1,7 @@ { "$ref": "#/definitions/RouteGenerationConfig", "definitions": { - "RouteGenerationConfig": { - "type": "object", - "properties": { - "includeObjects": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Specific objects to generate routes for (empty = all)" - }, - "excludeObjects": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Objects to exclude from route generation" - }, - "nameTransform": { - "type": "string", - "enum": [ - "none", - "plural", - "kebab-case", - "camelCase" - ], - "default": "none", - "description": "Transform object names in URLs" - }, - "overrides": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable/disable routes for this object" - }, - "basePath": { - "type": "string", - "description": "Custom base path" - }, - "operations": { - "type": "object", - "additionalProperties": { - "type": "boolean" - }, - "propertyNames": { - "enum": [ - "create", - "read", - "update", - "delete", - "list" - ] - }, - "description": "Enable/disable specific operations" - } - }, - "additionalProperties": false - }, - "description": "Per-object route customization" - } - }, - "additionalProperties": false - } + "RouteGenerationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/RouterConfig.json b/packages/spec/json-schema/api/RouterConfig.json index 7cce7adc7..3fc4520c0 100644 --- a/packages/spec/json-schema/api/RouterConfig.json +++ b/packages/spec/json-schema/api/RouterConfig.json @@ -1,130 +1,7 @@ { "$ref": "#/definitions/RouterConfig", "definitions": { - "RouterConfig": { - "type": "object", - "properties": { - "basePath": { - "type": "string", - "default": "/api", - "description": "Global API prefix" - }, - "mounts": { - "type": "object", - "properties": { - "data": { - "type": "string", - "default": "/data", - "description": "Data Protocol (CRUD)" - }, - "metadata": { - "type": "string", - "default": "/meta", - "description": "Metadata Protocol (Schemas)" - }, - "auth": { - "type": "string", - "default": "/auth", - "description": "Auth Protocol" - }, - "automation": { - "type": "string", - "default": "/automation", - "description": "Automation Protocol" - }, - "storage": { - "type": "string", - "default": "/storage", - "description": "Storage Protocol" - }, - "graphql": { - "type": "string", - "default": "/graphql", - "description": "GraphQL Endpoint" - } - }, - "additionalProperties": false, - "default": {} - }, - "cors": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable CORS" - }, - "origins": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "default": "*", - "description": "Allowed origins (* for all)" - }, - "methods": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ] - }, - "description": "Allowed HTTP methods" - }, - "credentials": { - "type": "boolean", - "default": false, - "description": "Allow credentials (cookies, authorization headers)" - }, - "maxAge": { - "type": "integer", - "description": "Preflight cache duration in seconds" - } - }, - "additionalProperties": false - }, - "staticMounts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "URL path to serve from" - }, - "directory": { - "type": "string", - "description": "Physical directory to serve" - }, - "cacheControl": { - "type": "string", - "description": "Cache-Control header value" - } - }, - "required": [ - "path", - "directory" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false - } + "RouterConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/SavedView.json b/packages/spec/json-schema/api/SavedView.json index bb7b3c222..5837ed408 100644 --- a/packages/spec/json-schema/api/SavedView.json +++ b/packages/spec/json-schema/api/SavedView.json @@ -1,1074 +1,7 @@ { "$ref": "#/definitions/SavedView", "definitions": { - "SavedView": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique view identifier" - }, - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "View machine name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string", - "description": "View description" - }, - "object": { - "type": "string", - "description": "Object/table this view is for" - }, - "type": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "timeline", - "chart", - "pivot", - "custom" - ], - "description": "View type" - }, - "visibility": { - "type": "string", - "enum": [ - "private", - "shared", - "public", - "organization" - ], - "description": "Who can access this view" - }, - "query": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": {}, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - }, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Query configuration (filters, sorting, etc.)" - }, - "layout": { - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "label": { - "type": "string", - "description": "Custom column label" - }, - "width": { - "type": "number", - "description": "Column width in pixels" - }, - "sortable": { - "type": "boolean", - "default": true, - "description": "Whether column is sortable" - }, - "filterable": { - "type": "boolean", - "default": true, - "description": "Whether column is filterable" - }, - "visible": { - "type": "boolean", - "default": true, - "description": "Whether column is visible" - }, - "pinned": { - "type": "string", - "enum": [ - "left", - "right" - ], - "description": "Pin column to left or right" - }, - "formatter": { - "type": "string", - "description": "Custom formatter name" - }, - "aggregation": { - "type": "string", - "description": "Aggregation function for column (sum, avg, etc.)" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Column configuration for list views" - }, - "rowHeight": { - "type": "number", - "description": "Row height in pixels" - }, - "groupByField": { - "type": "string", - "description": "Field to group by (for kanban)" - }, - "cardFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to display on cards" - }, - "dateField": { - "type": "string", - "description": "Date field for calendar view" - }, - "startDateField": { - "type": "string", - "description": "Start date field for event ranges" - }, - "endDateField": { - "type": "string", - "description": "End date field for event ranges" - }, - "titleField": { - "type": "string", - "description": "Field to use as event title" - }, - "chartType": { - "type": "string", - "enum": [ - "bar", - "line", - "pie", - "scatter", - "area" - ], - "description": "Chart type" - }, - "xAxis": { - "type": "string", - "description": "X-axis field" - }, - "yAxis": { - "type": "string", - "description": "Y-axis field" - }, - "series": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Series fields for multi-series charts" - } - }, - "additionalProperties": false, - "description": "Layout configuration" - }, - "sharedWith": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User/team IDs this view is shared with" - }, - "isDefault": { - "type": "boolean", - "default": false, - "description": "Is this the default view for this object?" - }, - "isSystem": { - "type": "boolean", - "default": false, - "description": "Is this a system-defined view?" - }, - "createdBy": { - "type": "string", - "description": "User ID who created this view" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "When the view was created" - }, - "updatedBy": { - "type": "string", - "description": "User ID who last updated this view" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "When the view was last updated" - }, - "settings": { - "type": "object", - "additionalProperties": {}, - "description": "Additional view-specific settings" - } - }, - "required": [ - "id", - "name", - "label", - "object", - "type", - "visibility", - "query", - "createdBy", - "createdAt" - ], - "additionalProperties": false - } + "SavedView": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/SimpleCursorPosition.json b/packages/spec/json-schema/api/SimpleCursorPosition.json index 95ed09641..ee239fbb6 100644 --- a/packages/spec/json-schema/api/SimpleCursorPosition.json +++ b/packages/spec/json-schema/api/SimpleCursorPosition.json @@ -1,53 +1,7 @@ { "$ref": "#/definitions/SimpleCursorPosition", "definitions": { - "SimpleCursorPosition": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "recordId": { - "type": "string", - "description": "Record identifier being edited" - }, - "fieldName": { - "type": "string", - "description": "Field name being edited" - }, - "position": { - "type": "number", - "description": "Cursor position (character offset from start)" - }, - "selection": { - "type": "object", - "properties": { - "start": { - "type": "number", - "description": "Selection start position" - }, - "end": { - "type": "number", - "description": "Selection end position" - } - }, - "required": [ - "start", - "end" - ], - "additionalProperties": false, - "description": "Text selection range (if text is selected)" - } - }, - "required": [ - "userId", - "recordId", - "fieldName", - "position" - ], - "additionalProperties": false - } + "SimpleCursorPosition": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/SimplePresenceState.json b/packages/spec/json-schema/api/SimplePresenceState.json index ddb406f6e..1e472caec 100644 --- a/packages/spec/json-schema/api/SimplePresenceState.json +++ b/packages/spec/json-schema/api/SimplePresenceState.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/SimplePresenceState", "definitions": { - "SimplePresenceState": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "userName": { - "type": "string", - "description": "User display name" - }, - "status": { - "type": "string", - "enum": [ - "online", - "away", - "offline" - ], - "description": "User presence status" - }, - "lastSeen": { - "type": "number", - "description": "Unix timestamp of last activity in milliseconds" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional presence metadata (e.g., current page, custom status)" - } - }, - "required": [ - "userId", - "userName", - "status", - "lastSeen" - ], - "additionalProperties": false - } + "SimplePresenceState": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/SingleRecordResponse.json b/packages/spec/json-schema/api/SingleRecordResponse.json index 728dc3c11..811803c1d 100644 --- a/packages/spec/json-schema/api/SingleRecordResponse.json +++ b/packages/spec/json-schema/api/SingleRecordResponse.json @@ -1,69 +1,7 @@ { "$ref": "#/definitions/SingleRecordResponse", "definitions": { - "SingleRecordResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Operation success status" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if success is false" - }, - "meta": { - "type": "object", - "properties": { - "timestamp": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "requestId": { - "type": "string" - }, - "traceId": { - "type": "string" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false, - "description": "Response metadata" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "The requested or modified record" - } - }, - "required": [ - "success", - "data" - ], - "additionalProperties": false - } + "SingleRecordResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/StandardErrorCode.json b/packages/spec/json-schema/api/StandardErrorCode.json index d0c67c499..e485faf4d 100644 --- a/packages/spec/json-schema/api/StandardErrorCode.json +++ b/packages/spec/json-schema/api/StandardErrorCode.json @@ -1,62 +1,7 @@ { "$ref": "#/definitions/StandardErrorCode", "definitions": { - "StandardErrorCode": { - "type": "string", - "enum": [ - "validation_error", - "invalid_field", - "missing_required_field", - "invalid_format", - "value_too_long", - "value_too_short", - "value_out_of_range", - "invalid_reference", - "duplicate_value", - "invalid_query", - "invalid_filter", - "invalid_sort", - "max_records_exceeded", - "unauthenticated", - "invalid_credentials", - "expired_token", - "invalid_token", - "session_expired", - "mfa_required", - "email_not_verified", - "permission_denied", - "insufficient_privileges", - "field_not_accessible", - "record_not_accessible", - "license_required", - "ip_restricted", - "time_restricted", - "resource_not_found", - "object_not_found", - "record_not_found", - "field_not_found", - "endpoint_not_found", - "resource_conflict", - "concurrent_modification", - "delete_restricted", - "duplicate_record", - "lock_conflict", - "rate_limit_exceeded", - "quota_exceeded", - "concurrent_limit_exceeded", - "internal_error", - "database_error", - "timeout", - "service_unavailable", - "not_implemented", - "external_service_error", - "integration_error", - "webhook_delivery_failed", - "batch_partial_failure", - "batch_complete_failure", - "transaction_failed" - ] - } + "StandardErrorCode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/SubscribeMessage.json b/packages/spec/json-schema/api/SubscribeMessage.json index 6ca6fcded..6f75e22e0 100644 --- a/packages/spec/json-schema/api/SubscribeMessage.json +++ b/packages/spec/json-schema/api/SubscribeMessage.json @@ -1,132 +1,7 @@ { "$ref": "#/definitions/SubscribeMessage", "definitions": { - "SubscribeMessage": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "subscribe" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "subscription": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "string", - "format": "uuid", - "description": "Unique subscription identifier" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "pattern": "^[a-z*][a-z0-9_.*]*$", - "description": "Event pattern (supports wildcards like \"record.*\" or \"*.created\")" - }, - "description": "Event patterns to subscribe to (supports wildcards, e.g., \"record.*\", \"user.created\")" - }, - "objects": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Object names to filter events by (e.g., [\"account\", \"contact\"])" - }, - "filters": { - "type": "object", - "properties": { - "conditions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field path to filter on (supports dot notation, e.g., \"user.email\")" - }, - "operator": { - "type": "string", - "enum": [ - "eq", - "ne", - "gt", - "gte", - "lt", - "lte", - "in", - "nin", - "contains", - "startsWith", - "endsWith", - "exists", - "regex" - ], - "description": "Comparison operator" - }, - "value": { - "description": "Value to compare against (not needed for \"exists\" operator)" - } - }, - "required": [ - "field", - "operator" - ], - "additionalProperties": false - }, - "description": "Array of filter conditions" - }, - "and": { - "type": "array", - "items": {}, - "description": "AND logical combination of filters" - }, - "or": { - "type": "array", - "items": {}, - "description": "OR logical combination of filters" - }, - "not": { - "description": "NOT logical negation of filter" - } - }, - "additionalProperties": false, - "description": "Advanced filter conditions for event payloads" - }, - "channels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Channel names for scoped subscriptions" - } - }, - "required": [ - "subscriptionId", - "events" - ], - "additionalProperties": false, - "description": "Subscription configuration" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "subscription" - ], - "additionalProperties": false - } + "SubscribeMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/Subscription.json b/packages/spec/json-schema/api/Subscription.json index f8d9a6a73..f04985447 100644 --- a/packages/spec/json-schema/api/Subscription.json +++ b/packages/spec/json-schema/api/Subscription.json @@ -1,65 +1,7 @@ { "$ref": "#/definitions/Subscription", "definitions": { - "Subscription": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid", - "description": "Unique subscription identifier" - }, - "events": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "field.changed" - ], - "description": "Type of event to subscribe to" - }, - "object": { - "type": "string", - "description": "Object name to subscribe to" - }, - "filters": { - "description": "Filter conditions" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "description": "Array of events to subscribe to" - }, - "transport": { - "type": "string", - "enum": [ - "websocket", - "sse", - "polling" - ], - "description": "Transport protocol to use" - }, - "channel": { - "type": "string", - "description": "Optional channel name for grouping subscriptions" - } - }, - "required": [ - "id", - "events", - "transport" - ], - "additionalProperties": false - } + "Subscription": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/SubscriptionEvent.json b/packages/spec/json-schema/api/SubscriptionEvent.json index 58a0d0303..467d16459 100644 --- a/packages/spec/json-schema/api/SubscriptionEvent.json +++ b/packages/spec/json-schema/api/SubscriptionEvent.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/SubscriptionEvent", "definitions": { - "SubscriptionEvent": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "field.changed" - ], - "description": "Type of event to subscribe to" - }, - "object": { - "type": "string", - "description": "Object name to subscribe to" - }, - "filters": { - "description": "Filter conditions" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "SubscriptionEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/TransportProtocol.json b/packages/spec/json-schema/api/TransportProtocol.json index 83009868f..bc2392716 100644 --- a/packages/spec/json-schema/api/TransportProtocol.json +++ b/packages/spec/json-schema/api/TransportProtocol.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/TransportProtocol", "definitions": { - "TransportProtocol": { - "type": "string", - "enum": [ - "websocket", - "sse", - "polling" - ] - } + "TransportProtocol": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/UnsubscribeMessage.json b/packages/spec/json-schema/api/UnsubscribeMessage.json index 87d4d1dea..b63cc2294 100644 --- a/packages/spec/json-schema/api/UnsubscribeMessage.json +++ b/packages/spec/json-schema/api/UnsubscribeMessage.json @@ -1,47 +1,7 @@ { "$ref": "#/definitions/UnsubscribeMessage", "definitions": { - "UnsubscribeMessage": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "unsubscribe" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "request": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "string", - "format": "uuid", - "description": "Subscription ID to unsubscribe from" - } - }, - "required": [ - "subscriptionId" - ], - "additionalProperties": false, - "description": "Unsubscribe request" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "request" - ], - "additionalProperties": false - } + "UnsubscribeMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/UnsubscribeRequest.json b/packages/spec/json-schema/api/UnsubscribeRequest.json index 8bb1c3493..aa7819b7a 100644 --- a/packages/spec/json-schema/api/UnsubscribeRequest.json +++ b/packages/spec/json-schema/api/UnsubscribeRequest.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/UnsubscribeRequest", "definitions": { - "UnsubscribeRequest": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "string", - "format": "uuid", - "description": "Subscription ID to unsubscribe from" - } - }, - "required": [ - "subscriptionId" - ], - "additionalProperties": false - } + "UnsubscribeRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/UpdateDataRequest.json b/packages/spec/json-schema/api/UpdateDataRequest.json index 01700bbf8..bf77e31ec 100644 --- a/packages/spec/json-schema/api/UpdateDataRequest.json +++ b/packages/spec/json-schema/api/UpdateDataRequest.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/UpdateDataRequest", "definitions": { - "UpdateDataRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "id": { - "type": "string", - "description": "Record ID to update" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Fields to update" - } - }, - "required": [ - "object", - "id", - "data" - ], - "additionalProperties": false - } + "UpdateDataRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/UpdateDataResponse.json b/packages/spec/json-schema/api/UpdateDataResponse.json index 0ee476f3d..71e76ca78 100644 --- a/packages/spec/json-schema/api/UpdateDataResponse.json +++ b/packages/spec/json-schema/api/UpdateDataResponse.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/UpdateDataResponse", "definitions": { - "UpdateDataResponse": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "id": { - "type": "string", - "description": "Updated record ID" - }, - "record": { - "type": "object", - "additionalProperties": {}, - "description": "Updated record" - } - }, - "required": [ - "object", - "id", - "record" - ], - "additionalProperties": false - } + "UpdateDataResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/UpdateManyDataRequest.json b/packages/spec/json-schema/api/UpdateManyDataRequest.json index e78adbb98..4c5617e7c 100644 --- a/packages/spec/json-schema/api/UpdateManyDataRequest.json +++ b/packages/spec/json-schema/api/UpdateManyDataRequest.json @@ -1,70 +1,7 @@ { "$ref": "#/definitions/UpdateManyDataRequest", "definitions": { - "UpdateManyDataRequest": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name" - }, - "records": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Fields to update" - } - }, - "required": [ - "id", - "data" - ], - "additionalProperties": false - }, - "description": "Array of updates" - }, - "options": { - "type": "object", - "properties": { - "atomic": { - "type": "boolean", - "default": true, - "description": "If true, rollback entire batch on any failure (transaction mode)" - }, - "returnRecords": { - "type": "boolean", - "default": false, - "description": "If true, return full record data in response" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "If true (and atomic=false), continue processing remaining records after errors" - }, - "validateOnly": { - "type": "boolean", - "default": false, - "description": "If true, validate records without persisting changes (dry-run mode)" - } - }, - "additionalProperties": false, - "description": "Update options" - } - }, - "required": [ - "object", - "records" - ], - "additionalProperties": false - } + "UpdateManyDataRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/UpdateManyDataResponse.json b/packages/spec/json-schema/api/UpdateManyDataResponse.json index 24b3ee3a2..6ef1b2744 100644 --- a/packages/spec/json-schema/api/UpdateManyDataResponse.json +++ b/packages/spec/json-schema/api/UpdateManyDataResponse.json @@ -1,144 +1,7 @@ { "$ref": "#/definitions/UpdateManyDataResponse", "definitions": { - "UpdateManyDataResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Operation success status" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false, - "description": "Error details if success is false" - }, - "meta": { - "type": "object", - "properties": { - "timestamp": { - "type": "string" - }, - "duration": { - "type": "number" - }, - "requestId": { - "type": "string" - }, - "traceId": { - "type": "string" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false, - "description": "Response metadata" - }, - "operation": { - "type": "string", - "enum": [ - "create", - "update", - "upsert", - "delete" - ], - "description": "Operation type that was performed" - }, - "total": { - "type": "number", - "description": "Total number of records in the batch" - }, - "succeeded": { - "type": "number", - "description": "Number of records that succeeded" - }, - "failed": { - "type": "number", - "description": "Number of records that failed" - }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID if operation succeeded" - }, - "success": { - "type": "boolean", - "description": "Whether this record was processed successfully" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error code (e.g. validation_error)" - }, - "message": { - "type": "string", - "description": "Readable error message" - }, - "details": { - "description": "Additional error context (e.g. field validation errors)" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - }, - "description": "Array of errors if operation failed" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Full record data (if returnRecords=true)" - }, - "index": { - "type": "number", - "description": "Index of the record in the request array" - } - }, - "required": [ - "success" - ], - "additionalProperties": false - }, - "description": "Detailed results for each record" - } - }, - "required": [ - "success", - "total", - "succeeded", - "failed", - "results" - ], - "additionalProperties": false - } + "UpdateManyDataResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/UpdateManyRequest.json b/packages/spec/json-schema/api/UpdateManyRequest.json index bfd63c1b4..e479e6669 100644 --- a/packages/spec/json-schema/api/UpdateManyRequest.json +++ b/packages/spec/json-schema/api/UpdateManyRequest.json @@ -1,67 +1,7 @@ { "$ref": "#/definitions/UpdateManyRequest", "definitions": { - "UpdateManyRequest": { - "type": "object", - "properties": { - "records": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Record ID (required for update/delete)" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Record data (required for create/update/upsert)" - }, - "externalId": { - "type": "string", - "description": "External ID for upsert matching" - } - }, - "additionalProperties": false - }, - "minItems": 1, - "maxItems": 200, - "description": "Array of records to update (max 200 per batch)" - }, - "options": { - "type": "object", - "properties": { - "atomic": { - "type": "boolean", - "default": true, - "description": "If true, rollback entire batch on any failure (transaction mode)" - }, - "returnRecords": { - "type": "boolean", - "default": false, - "description": "If true, return full record data in response" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "If true (and atomic=false), continue processing remaining records after errors" - }, - "validateOnly": { - "type": "boolean", - "default": false, - "description": "If true, validate records without persisting changes (dry-run mode)" - } - }, - "additionalProperties": false, - "description": "Update options" - } - }, - "required": [ - "records" - ], - "additionalProperties": false - } + "UpdateManyRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/UpdateRequest.json b/packages/spec/json-schema/api/UpdateRequest.json index a83d4919c..a49deffc0 100644 --- a/packages/spec/json-schema/api/UpdateRequest.json +++ b/packages/spec/json-schema/api/UpdateRequest.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/UpdateRequest", "definitions": { - "UpdateRequest": { - "type": "object", - "properties": { - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Partial record data to update" - } - }, - "required": [ - "data" - ], - "additionalProperties": false - } + "UpdateRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/UpdateViewRequest.json b/packages/spec/json-schema/api/UpdateViewRequest.json index 392206f21..ea28882e6 100644 --- a/packages/spec/json-schema/api/UpdateViewRequest.json +++ b/packages/spec/json-schema/api/UpdateViewRequest.json @@ -1,1041 +1,7 @@ { "$ref": "#/definitions/UpdateViewRequest", "definitions": { - "UpdateViewRequest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "View machine name" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string" - }, - "object": { - "type": "string", - "description": "Object name" - }, - "type": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "timeline", - "chart", - "pivot", - "custom" - ], - "description": "View type" - }, - "visibility": { - "type": "string", - "enum": [ - "private", - "shared", - "public", - "organization" - ], - "description": "View visibility" - }, - "query": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": {}, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - }, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Query configuration" - }, - "layout": { - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "label": { - "type": "string", - "description": "Custom column label" - }, - "width": { - "type": "number", - "description": "Column width in pixels" - }, - "sortable": { - "type": "boolean", - "default": true, - "description": "Whether column is sortable" - }, - "filterable": { - "type": "boolean", - "default": true, - "description": "Whether column is filterable" - }, - "visible": { - "type": "boolean", - "default": true, - "description": "Whether column is visible" - }, - "pinned": { - "type": "string", - "enum": [ - "left", - "right" - ], - "description": "Pin column to left or right" - }, - "formatter": { - "type": "string", - "description": "Custom formatter name" - }, - "aggregation": { - "type": "string", - "description": "Aggregation function for column (sum, avg, etc.)" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Column configuration for list views" - }, - "rowHeight": { - "type": "number", - "description": "Row height in pixels" - }, - "groupByField": { - "type": "string", - "description": "Field to group by (for kanban)" - }, - "cardFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to display on cards" - }, - "dateField": { - "type": "string", - "description": "Date field for calendar view" - }, - "startDateField": { - "type": "string", - "description": "Start date field for event ranges" - }, - "endDateField": { - "type": "string", - "description": "End date field for event ranges" - }, - "titleField": { - "type": "string", - "description": "Field to use as event title" - }, - "chartType": { - "type": "string", - "enum": [ - "bar", - "line", - "pie", - "scatter", - "area" - ], - "description": "Chart type" - }, - "xAxis": { - "type": "string", - "description": "X-axis field" - }, - "yAxis": { - "type": "string", - "description": "Y-axis field" - }, - "series": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Series fields for multi-series charts" - } - }, - "additionalProperties": false, - "description": "Layout configuration" - }, - "sharedWith": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Users/teams to share with" - }, - "isDefault": { - "type": "boolean", - "default": false, - "description": "Set as default view" - }, - "settings": { - "type": "object", - "additionalProperties": {} - }, - "id": { - "type": "string", - "description": "View ID to update" - } - }, - "required": [ - "id" - ], - "additionalProperties": false - } + "UpdateViewRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ViewColumn.json b/packages/spec/json-schema/api/ViewColumn.json index c88b78ab8..60ed81fa6 100644 --- a/packages/spec/json-schema/api/ViewColumn.json +++ b/packages/spec/json-schema/api/ViewColumn.json @@ -1,58 +1,7 @@ { "$ref": "#/definitions/ViewColumn", "definitions": { - "ViewColumn": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "label": { - "type": "string", - "description": "Custom column label" - }, - "width": { - "type": "number", - "description": "Column width in pixels" - }, - "sortable": { - "type": "boolean", - "default": true, - "description": "Whether column is sortable" - }, - "filterable": { - "type": "boolean", - "default": true, - "description": "Whether column is filterable" - }, - "visible": { - "type": "boolean", - "default": true, - "description": "Whether column is visible" - }, - "pinned": { - "type": "string", - "enum": [ - "left", - "right" - ], - "description": "Pin column to left or right" - }, - "formatter": { - "type": "string", - "description": "Custom formatter name" - }, - "aggregation": { - "type": "string", - "description": "Aggregation function for column (sum, avg, etc.)" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } + "ViewColumn": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ViewLayout.json b/packages/spec/json-schema/api/ViewLayout.json index 1de9023a9..3c130def3 100644 --- a/packages/spec/json-schema/api/ViewLayout.json +++ b/packages/spec/json-schema/api/ViewLayout.json @@ -1,125 +1,7 @@ { "$ref": "#/definitions/ViewLayout", "definitions": { - "ViewLayout": { - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "label": { - "type": "string", - "description": "Custom column label" - }, - "width": { - "type": "number", - "description": "Column width in pixels" - }, - "sortable": { - "type": "boolean", - "default": true, - "description": "Whether column is sortable" - }, - "filterable": { - "type": "boolean", - "default": true, - "description": "Whether column is filterable" - }, - "visible": { - "type": "boolean", - "default": true, - "description": "Whether column is visible" - }, - "pinned": { - "type": "string", - "enum": [ - "left", - "right" - ], - "description": "Pin column to left or right" - }, - "formatter": { - "type": "string", - "description": "Custom formatter name" - }, - "aggregation": { - "type": "string", - "description": "Aggregation function for column (sum, avg, etc.)" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Column configuration for list views" - }, - "rowHeight": { - "type": "number", - "description": "Row height in pixels" - }, - "groupByField": { - "type": "string", - "description": "Field to group by (for kanban)" - }, - "cardFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to display on cards" - }, - "dateField": { - "type": "string", - "description": "Date field for calendar view" - }, - "startDateField": { - "type": "string", - "description": "Start date field for event ranges" - }, - "endDateField": { - "type": "string", - "description": "End date field for event ranges" - }, - "titleField": { - "type": "string", - "description": "Field to use as event title" - }, - "chartType": { - "type": "string", - "enum": [ - "bar", - "line", - "pie", - "scatter", - "area" - ], - "description": "Chart type" - }, - "xAxis": { - "type": "string", - "description": "X-axis field" - }, - "yAxis": { - "type": "string", - "description": "Y-axis field" - }, - "series": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Series fields for multi-series charts" - } - }, - "additionalProperties": false - } + "ViewLayout": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ViewResponse.json b/packages/spec/json-schema/api/ViewResponse.json index 794bd3f43..52d96e51f 100644 --- a/packages/spec/json-schema/api/ViewResponse.json +++ b/packages/spec/json-schema/api/ViewResponse.json @@ -1,1103 +1,7 @@ { "$ref": "#/definitions/ViewResponse", "definitions": { - "ViewResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - }, - "data": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique view identifier" - }, - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "View machine name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string", - "description": "View description" - }, - "object": { - "type": "string", - "description": "Object/table this view is for" - }, - "type": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "timeline", - "chart", - "pivot", - "custom" - ], - "description": "View type" - }, - "visibility": { - "type": "string", - "enum": [ - "private", - "shared", - "public", - "organization" - ], - "description": "Who can access this view" - }, - "query": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": {}, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - }, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Query configuration (filters, sorting, etc.)" - }, - "layout": { - "type": "object", - "properties": { - "columns": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "label": { - "type": "string", - "description": "Custom column label" - }, - "width": { - "type": "number", - "description": "Column width in pixels" - }, - "sortable": { - "type": "boolean", - "default": true, - "description": "Whether column is sortable" - }, - "filterable": { - "type": "boolean", - "default": true, - "description": "Whether column is filterable" - }, - "visible": { - "type": "boolean", - "default": true, - "description": "Whether column is visible" - }, - "pinned": { - "type": "string", - "enum": [ - "left", - "right" - ], - "description": "Pin column to left or right" - }, - "formatter": { - "type": "string", - "description": "Custom formatter name" - }, - "aggregation": { - "type": "string", - "description": "Aggregation function for column (sum, avg, etc.)" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Column configuration for list views" - }, - "rowHeight": { - "type": "number", - "description": "Row height in pixels" - }, - "groupByField": { - "type": "string", - "description": "Field to group by (for kanban)" - }, - "cardFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to display on cards" - }, - "dateField": { - "type": "string", - "description": "Date field for calendar view" - }, - "startDateField": { - "type": "string", - "description": "Start date field for event ranges" - }, - "endDateField": { - "type": "string", - "description": "End date field for event ranges" - }, - "titleField": { - "type": "string", - "description": "Field to use as event title" - }, - "chartType": { - "type": "string", - "enum": [ - "bar", - "line", - "pie", - "scatter", - "area" - ], - "description": "Chart type" - }, - "xAxis": { - "type": "string", - "description": "X-axis field" - }, - "yAxis": { - "type": "string", - "description": "Y-axis field" - }, - "series": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Series fields for multi-series charts" - } - }, - "additionalProperties": false, - "description": "Layout configuration" - }, - "sharedWith": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User/team IDs this view is shared with" - }, - "isDefault": { - "type": "boolean", - "default": false, - "description": "Is this the default view for this object?" - }, - "isSystem": { - "type": "boolean", - "default": false, - "description": "Is this a system-defined view?" - }, - "createdBy": { - "type": "string", - "description": "User ID who created this view" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "When the view was created" - }, - "updatedBy": { - "type": "string", - "description": "User ID who last updated this view" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "When the view was last updated" - }, - "settings": { - "type": "object", - "additionalProperties": {}, - "description": "Additional view-specific settings" - } - }, - "required": [ - "id", - "name", - "label", - "object", - "type", - "visibility", - "query", - "createdBy", - "createdAt" - ], - "additionalProperties": false, - "description": "The saved view" - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "additionalProperties": false - } - }, - "required": [ - "success" - ], - "additionalProperties": false - } + "ViewResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ViewType.json b/packages/spec/json-schema/api/ViewType.json index 0ac384fcf..7610cfd65 100644 --- a/packages/spec/json-schema/api/ViewType.json +++ b/packages/spec/json-schema/api/ViewType.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/ViewType", "definitions": { - "ViewType": { - "type": "string", - "enum": [ - "list", - "kanban", - "calendar", - "gantt", - "timeline", - "chart", - "pivot", - "custom" - ] - } + "ViewType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/ViewVisibility.json b/packages/spec/json-schema/api/ViewVisibility.json index 679625540..38127bffe 100644 --- a/packages/spec/json-schema/api/ViewVisibility.json +++ b/packages/spec/json-schema/api/ViewVisibility.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/ViewVisibility", "definitions": { - "ViewVisibility": { - "type": "string", - "enum": [ - "private", - "shared", - "public", - "organization" - ] - } + "ViewVisibility": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/WebSocketConfig.json b/packages/spec/json-schema/api/WebSocketConfig.json index cf7150cf6..374ba67af 100644 --- a/packages/spec/json-schema/api/WebSocketConfig.json +++ b/packages/spec/json-schema/api/WebSocketConfig.json @@ -1,63 +1,7 @@ { "$ref": "#/definitions/WebSocketConfig", "definitions": { - "WebSocketConfig": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "description": "WebSocket server URL" - }, - "protocols": { - "type": "array", - "items": { - "type": "string" - }, - "description": "WebSocket sub-protocols" - }, - "reconnect": { - "type": "boolean", - "default": true, - "description": "Enable automatic reconnection" - }, - "reconnectInterval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Reconnection interval in milliseconds" - }, - "maxReconnectAttempts": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5, - "description": "Maximum reconnection attempts" - }, - "pingInterval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000, - "description": "Ping interval in milliseconds" - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5000, - "description": "Message timeout in milliseconds" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom headers for WebSocket handshake" - } - }, - "required": [ - "url" - ], - "additionalProperties": false - } + "WebSocketConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/WebSocketEvent.json b/packages/spec/json-schema/api/WebSocketEvent.json index 1fd12a244..1395da9a9 100644 --- a/packages/spec/json-schema/api/WebSocketEvent.json +++ b/packages/spec/json-schema/api/WebSocketEvent.json @@ -1,40 +1,7 @@ { "$ref": "#/definitions/WebSocketEvent", "definitions": { - "WebSocketEvent": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "subscribe", - "unsubscribe", - "data-change", - "presence-update", - "cursor-update", - "error" - ], - "description": "Event type" - }, - "channel": { - "type": "string", - "description": "Channel identifier (e.g., \"record.account.123\", \"user.456\")" - }, - "payload": { - "description": "Event payload data" - }, - "timestamp": { - "type": "number", - "description": "Unix timestamp in milliseconds" - } - }, - "required": [ - "type", - "channel", - "timestamp" - ], - "additionalProperties": false - } + "WebSocketEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/WebSocketMessage.json b/packages/spec/json-schema/api/WebSocketMessage.json index 0cae16371..772a866a8 100644 --- a/packages/spec/json-schema/api/WebSocketMessage.json +++ b/packages/spec/json-schema/api/WebSocketMessage.json @@ -1,707 +1,7 @@ { "$ref": "#/definitions/WebSocketMessage", "definitions": { - "WebSocketMessage": { - "anyOf": [ - { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "subscribe" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "subscription": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "string", - "format": "uuid", - "description": "Unique subscription identifier" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "pattern": "^[a-z*][a-z0-9_.*]*$", - "description": "Event pattern (supports wildcards like \"record.*\" or \"*.created\")" - }, - "description": "Event patterns to subscribe to (supports wildcards, e.g., \"record.*\", \"user.created\")" - }, - "objects": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Object names to filter events by (e.g., [\"account\", \"contact\"])" - }, - "filters": { - "type": "object", - "properties": { - "conditions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field path to filter on (supports dot notation, e.g., \"user.email\")" - }, - "operator": { - "type": "string", - "enum": [ - "eq", - "ne", - "gt", - "gte", - "lt", - "lte", - "in", - "nin", - "contains", - "startsWith", - "endsWith", - "exists", - "regex" - ], - "description": "Comparison operator" - }, - "value": { - "description": "Value to compare against (not needed for \"exists\" operator)" - } - }, - "required": [ - "field", - "operator" - ], - "additionalProperties": false - }, - "description": "Array of filter conditions" - }, - "and": { - "type": "array", - "items": {}, - "description": "AND logical combination of filters" - }, - "or": { - "type": "array", - "items": {}, - "description": "OR logical combination of filters" - }, - "not": { - "description": "NOT logical negation of filter" - } - }, - "additionalProperties": false, - "description": "Advanced filter conditions for event payloads" - }, - "channels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Channel names for scoped subscriptions" - } - }, - "required": [ - "subscriptionId", - "events" - ], - "additionalProperties": false, - "description": "Subscription configuration" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "subscription" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "unsubscribe" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "request": { - "type": "object", - "properties": { - "subscriptionId": { - "type": "string", - "format": "uuid", - "description": "Subscription ID to unsubscribe from" - } - }, - "required": [ - "subscriptionId" - ], - "additionalProperties": false, - "description": "Unsubscribe request" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "request" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "event" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "subscriptionId": { - "type": "string", - "format": "uuid", - "description": "Subscription ID this event belongs to" - }, - "eventName": { - "type": "string", - "minLength": 3, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Event name" - }, - "object": { - "type": "string", - "description": "Object name the event relates to" - }, - "payload": { - "description": "Event payload data" - }, - "userId": { - "type": "string", - "description": "User who triggered the event" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "subscriptionId", - "eventName" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "presence" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "presence": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Unique session identifier" - }, - "status": { - "type": "string", - "enum": [ - "online", - "away", - "busy", - "offline" - ], - "description": "Current presence status" - }, - "lastSeen": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last activity" - }, - "currentLocation": { - "type": "string", - "description": "Current page/route user is viewing" - }, - "device": { - "type": "string", - "enum": [ - "desktop", - "mobile", - "tablet", - "other" - ], - "description": "Device type" - }, - "customStatus": { - "type": "string", - "description": "Custom user status message" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional custom presence data" - } - }, - "required": [ - "userId", - "sessionId", - "status", - "lastSeen" - ], - "additionalProperties": false, - "description": "Presence state" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "presence" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "cursor" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "cursor": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier being edited" - }, - "position": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Line number (0-indexed)" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Column number (0-indexed)" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Cursor position in document" - }, - "selection": { - "type": "object", - "properties": { - "start": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0 - }, - "column": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false - }, - "end": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0 - }, - "column": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false - } - }, - "required": [ - "start", - "end" - ], - "additionalProperties": false, - "description": "Selection range (if text is selected)" - }, - "color": { - "type": "string", - "description": "Cursor color for visual representation" - }, - "userName": { - "type": "string", - "description": "Display name of user" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last cursor update" - } - }, - "required": [ - "userId", - "sessionId", - "documentId", - "lastUpdate" - ], - "additionalProperties": false, - "description": "Cursor position" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "cursor" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "edit" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "operation": { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "userId": { - "type": "string", - "description": "User who performed the edit" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "type": { - "type": "string", - "enum": [ - "insert", - "delete", - "replace" - ], - "description": "Type of edit operation" - }, - "position": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Line number (0-indexed)" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Column number (0-indexed)" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Starting position of the operation" - }, - "endPosition": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0 - }, - "column": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Ending position (for delete/replace operations)" - }, - "content": { - "type": "string", - "description": "Content to insert/replace" - }, - "version": { - "type": "integer", - "minimum": 0, - "description": "Document version before this operation" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when operation was created" - }, - "baseOperationId": { - "type": "string", - "format": "uuid", - "description": "Previous operation ID this builds upon (for OT)" - } - }, - "required": [ - "operationId", - "documentId", - "userId", - "sessionId", - "type", - "position", - "version", - "timestamp" - ], - "additionalProperties": false, - "description": "Edit operation" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "operation" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "ack" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "ackMessageId": { - "type": "string", - "format": "uuid", - "description": "ID of the message being acknowledged" - }, - "success": { - "type": "boolean", - "description": "Whether the operation was successful" - }, - "error": { - "type": "string", - "description": "Error message if operation failed" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "ackMessageId", - "success" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "error" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "code": { - "type": "string", - "description": "Error code" - }, - "message": { - "type": "string", - "description": "Error message" - }, - "details": { - "description": "Additional error details" - } - }, - "required": [ - "messageId", - "type", - "timestamp", - "code", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "ping" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - } - }, - "required": [ - "messageId", - "type", - "timestamp" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "format": "uuid", - "description": "Unique message identifier" - }, - "type": { - "type": "string", - "const": "pong" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when message was sent" - }, - "pingMessageId": { - "type": "string", - "format": "uuid", - "description": "ID of ping message being responded to" - } - }, - "required": [ - "messageId", - "type", - "timestamp" - ], - "additionalProperties": false - } - ] - } + "WebSocketMessage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/WebSocketMessageType.json b/packages/spec/json-schema/api/WebSocketMessageType.json index 9e0fe0785..785bdc8f2 100644 --- a/packages/spec/json-schema/api/WebSocketMessageType.json +++ b/packages/spec/json-schema/api/WebSocketMessageType.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/WebSocketMessageType", "definitions": { - "WebSocketMessageType": { - "type": "string", - "enum": [ - "subscribe", - "unsubscribe", - "event", - "ping", - "pong", - "ack", - "error", - "presence", - "cursor", - "edit" - ] - } + "WebSocketMessageType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/WebSocketPresenceStatus.json b/packages/spec/json-schema/api/WebSocketPresenceStatus.json index b35b753db..b690d674a 100644 --- a/packages/spec/json-schema/api/WebSocketPresenceStatus.json +++ b/packages/spec/json-schema/api/WebSocketPresenceStatus.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/WebSocketPresenceStatus", "definitions": { - "WebSocketPresenceStatus": { - "type": "string", - "enum": [ - "online", - "away", - "busy", - "offline" - ] - } + "WebSocketPresenceStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/api/WebSocketServerConfig.json b/packages/spec/json-schema/api/WebSocketServerConfig.json index 8e99ad524..bae6f4468 100644 --- a/packages/spec/json-schema/api/WebSocketServerConfig.json +++ b/packages/spec/json-schema/api/WebSocketServerConfig.json @@ -1,42 +1,7 @@ { "$ref": "#/definitions/WebSocketServerConfig", "definitions": { - "WebSocketServerConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable WebSocket server" - }, - "path": { - "type": "string", - "default": "/ws", - "description": "WebSocket endpoint path" - }, - "heartbeatInterval": { - "type": "number", - "default": 30000, - "description": "Heartbeat interval in milliseconds" - }, - "reconnectAttempts": { - "type": "number", - "default": 5, - "description": "Maximum reconnection attempts for clients" - }, - "presence": { - "type": "boolean", - "default": false, - "description": "Enable presence tracking" - }, - "cursorSharing": { - "type": "boolean", - "default": false, - "description": "Enable collaborative cursor sharing" - } - }, - "additionalProperties": false - } + "WebSocketServerConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/APIKey.json b/packages/spec/json-schema/auth/APIKey.json index a1f8520b4..9db06ce3e 100644 --- a/packages/spec/json-schema/auth/APIKey.json +++ b/packages/spec/json-schema/auth/APIKey.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/APIKey", "definitions": { - "APIKey": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "api-key", - "description": "Authentication type" - }, - "key": { - "type": "string", - "description": "API key value" - }, - "headerName": { - "type": "string", - "default": "X-API-Key", - "description": "HTTP header name for API key" - }, - "paramName": { - "type": "string", - "description": "Query parameter name (alternative to header)" - } - }, - "required": [ - "type", - "key" - ], - "additionalProperties": false - } + "APIKey": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/Account.json b/packages/spec/json-schema/auth/Account.json index 08ffc535a..8c8b8de44 100644 --- a/packages/spec/json-schema/auth/Account.json +++ b/packages/spec/json-schema/auth/Account.json @@ -1,87 +1,7 @@ { "$ref": "#/definitions/Account", "definitions": { - "Account": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique account identifier" - }, - "userId": { - "type": "string", - "description": "Associated user ID" - }, - "type": { - "type": "string", - "enum": [ - "oauth", - "oidc", - "email", - "credentials", - "saml", - "ldap" - ], - "description": "Account type" - }, - "provider": { - "type": "string", - "description": "Provider name" - }, - "providerAccountId": { - "type": "string", - "description": "Provider account ID" - }, - "refreshToken": { - "type": "string", - "description": "OAuth refresh token" - }, - "accessToken": { - "type": "string", - "description": "OAuth access token" - }, - "expiresAt": { - "type": "number", - "description": "Token expiry timestamp (Unix)" - }, - "tokenType": { - "type": "string", - "description": "OAuth token type" - }, - "scope": { - "type": "string", - "description": "OAuth scope" - }, - "idToken": { - "type": "string", - "description": "OAuth ID token" - }, - "sessionState": { - "type": "string", - "description": "Session state" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Account creation timestamp" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - } - }, - "required": [ - "id", - "userId", - "type", - "provider", - "providerAccountId", - "createdAt", - "updatedAt" - ], - "additionalProperties": false - } + "Account": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/AccountLinkingConfig.json b/packages/spec/json-schema/auth/AccountLinkingConfig.json index f635ac7cc..0cfec4c9b 100644 --- a/packages/spec/json-schema/auth/AccountLinkingConfig.json +++ b/packages/spec/json-schema/auth/AccountLinkingConfig.json @@ -1,27 +1,7 @@ { "$ref": "#/definitions/AccountLinkingConfig", "definitions": { - "AccountLinkingConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Allow account linking" - }, - "autoLink": { - "type": "boolean", - "default": false, - "description": "Automatically link accounts with same email" - }, - "requireVerification": { - "type": "boolean", - "default": true, - "description": "Require email verification before linking" - } - }, - "additionalProperties": false - } + "AccountLinkingConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/ApplicationAuthConfig.json b/packages/spec/json-schema/auth/ApplicationAuthConfig.json index 18e807153..84db28224 100644 --- a/packages/spec/json-schema/auth/ApplicationAuthConfig.json +++ b/packages/spec/json-schema/auth/ApplicationAuthConfig.json @@ -1,841 +1,7 @@ { "$ref": "#/definitions/ApplicationAuthConfig", "definitions": { - "ApplicationAuthConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Configuration name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "driver": { - "type": "string", - "default": "better-auth", - "description": "The underlying authentication implementation driver" - }, - "strategies": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "email_password", - "magic_link", - "oauth", - "passkey", - "otp", - "anonymous" - ] - }, - "minItems": 1, - "description": "Enabled authentication strategies" - }, - "baseUrl": { - "type": "string", - "format": "uri", - "description": "Application base URL" - }, - "secret": { - "type": "string", - "minLength": 32, - "description": "Secret key for signing (min 32 chars)" - }, - "emailPassword": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "requireEmailVerification": { - "type": "boolean", - "default": true, - "description": "Require email verification before login" - }, - "minPasswordLength": { - "type": "number", - "minimum": 6, - "maximum": 128, - "default": 8, - "description": "Minimum password length" - }, - "requirePasswordComplexity": { - "type": "boolean", - "default": true, - "description": "Require uppercase, lowercase, numbers, symbols" - }, - "allowPasswordReset": { - "type": "boolean", - "default": true, - "description": "Enable password reset functionality" - }, - "passwordResetExpiry": { - "type": "number", - "default": 3600, - "description": "Password reset token expiry in seconds" - } - }, - "additionalProperties": false - }, - "magicLink": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "expiryTime": { - "type": "number", - "default": 900, - "description": "Magic link expiry time in seconds (default 15 min)" - } - }, - "additionalProperties": false - }, - "passkey": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "rpName": { - "type": "string", - "description": "Relying Party name" - }, - "rpId": { - "type": "string", - "description": "Relying Party ID (defaults to domain)" - }, - "allowedOrigins": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - }, - "description": "Allowed origins for WebAuthn" - }, - "userVerification": { - "type": "string", - "enum": [ - "required", - "preferred", - "discouraged" - ], - "default": "preferred" - }, - "attestation": { - "type": "string", - "enum": [ - "none", - "indirect", - "direct", - "enterprise" - ], - "default": "none" - } - }, - "required": [ - "rpName" - ], - "additionalProperties": false - }, - "oauth": { - "type": "object", - "properties": { - "providers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "google", - "github", - "facebook", - "twitter", - "linkedin", - "microsoft", - "apple", - "discord", - "gitlab", - "custom" - ], - "description": "OAuth provider type" - }, - "clientId": { - "type": "string", - "description": "OAuth client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth callback URL" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Whether this provider is enabled" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "provider", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - "minItems": 1 - } - }, - "required": [ - "providers" - ], - "additionalProperties": false - }, - "session": { - "type": "object", - "properties": { - "expiresIn": { - "type": "number", - "default": 604800, - "description": "Session expiry in seconds (default 7 days)" - }, - "updateAge": { - "type": "number", - "default": 86400, - "description": "Session update interval in seconds (default 1 day)" - }, - "cookieName": { - "type": "string", - "default": "session_token", - "description": "Session cookie name" - }, - "cookieSecure": { - "type": "boolean", - "default": true, - "description": "Use secure cookies (HTTPS only)" - }, - "cookieSameSite": { - "type": "string", - "enum": [ - "strict", - "lax", - "none" - ], - "default": "lax", - "description": "SameSite cookie attribute" - }, - "cookieDomain": { - "type": "string", - "description": "Cookie domain" - }, - "cookiePath": { - "type": "string", - "default": "/", - "description": "Cookie path" - }, - "cookieHttpOnly": { - "type": "boolean", - "default": true, - "description": "HttpOnly cookie attribute" - } - }, - "additionalProperties": false, - "default": {} - }, - "rateLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "maxAttempts": { - "type": "number", - "default": 5, - "description": "Maximum login attempts" - }, - "windowMs": { - "type": "number", - "default": 900000, - "description": "Time window in milliseconds (default 15 min)" - }, - "blockDuration": { - "type": "number", - "default": 900000, - "description": "Block duration after max attempts in ms" - }, - "skipSuccessfulRequests": { - "type": "boolean", - "default": false, - "description": "Only count failed requests" - } - }, - "additionalProperties": false, - "default": {} - }, - "csrf": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "tokenLength": { - "type": "number", - "default": 32, - "description": "CSRF token length" - }, - "cookieName": { - "type": "string", - "default": "csrf_token", - "description": "CSRF cookie name" - }, - "headerName": { - "type": "string", - "default": "X-CSRF-Token", - "description": "CSRF header name" - } - }, - "additionalProperties": false, - "default": {} - }, - "accountLinking": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Allow account linking" - }, - "autoLink": { - "type": "boolean", - "default": false, - "description": "Automatically link accounts with same email" - }, - "requireVerification": { - "type": "boolean", - "default": true, - "description": "Require email verification before linking" - } - }, - "additionalProperties": false, - "default": {} - }, - "twoFactor": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "issuer": { - "type": "string", - "description": "TOTP issuer name" - }, - "qrCodeSize": { - "type": "number", - "default": 200, - "description": "QR code size in pixels" - }, - "backupCodes": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "count": { - "type": "number", - "default": 10, - "description": "Number of backup codes to generate" - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "organization": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable organization/multi-tenant features" - }, - "allowUserToCreateOrg": { - "type": "boolean", - "default": true, - "description": "Allow users to create organizations" - }, - "defaultRole": { - "type": "string", - "default": "member", - "description": "Default role for new members" - }, - "creatorRole": { - "type": "string", - "default": "owner", - "description": "Role assigned to organization creator" - } - }, - "additionalProperties": false, - "description": "Organization/multi-tenant configuration" - }, - "enterprise": { - "type": "object", - "properties": { - "oidc": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "issuer": { - "type": "string", - "format": "uri", - "description": "OIDC Issuer URL (.well-known/openid-configuration)" - }, - "clientId": { - "type": "string", - "description": "OIDC client ID" - }, - "clientSecret": { - "type": "string", - "description": "OIDC client secret" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "openid", - "profile", - "email" - ], - "description": "OIDC scopes" - }, - "attributeMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map IdP claims to User fields" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "issuer", - "clientId", - "clientSecret" - ], - "additionalProperties": false, - "description": "OpenID Connect configuration" - }, - "saml": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "IdP SSO URL" - }, - "cert": { - "type": "string", - "description": "IdP Public Certificate (PEM format)" - }, - "issuer": { - "type": "string", - "description": "Entity ID of the IdP" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha256", - "sha512" - ], - "default": "sha256", - "description": "Signature algorithm" - }, - "attributeMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map SAML attributes to User fields" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "entryPoint", - "cert", - "issuer" - ], - "additionalProperties": false, - "description": "SAML 2.0 configuration" - }, - "ldap": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "url": { - "type": "string", - "format": "uri", - "description": "LDAP Server URL (ldap:// or ldaps://)" - }, - "bindDn": { - "type": "string", - "description": "Bind DN for LDAP authentication" - }, - "bindCredentials": { - "type": "string", - "description": "Bind credentials" - }, - "searchBase": { - "type": "string", - "description": "Search base DN" - }, - "searchFilter": { - "type": "string", - "description": "Search filter" - }, - "groupSearchBase": { - "type": "string", - "description": "Group search base DN" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "url", - "bindDn", - "bindCredentials", - "searchBase", - "searchFilter" - ], - "additionalProperties": false, - "description": "LDAP/Active Directory configuration" - } - }, - "additionalProperties": false - }, - "userFieldMapping": { - "type": "object", - "properties": { - "id": { - "type": "string", - "default": "id", - "description": "User ID field" - }, - "email": { - "type": "string", - "default": "email", - "description": "Email field" - }, - "name": { - "type": "string", - "default": "name", - "description": "Name field" - }, - "image": { - "type": "string", - "default": "image", - "description": "Profile image field" - }, - "emailVerified": { - "type": "string", - "default": "email_verified", - "description": "Email verification status field" - }, - "createdAt": { - "type": "string", - "default": "created_at", - "description": "Created timestamp field" - }, - "updatedAt": { - "type": "string", - "default": "updated_at", - "description": "Updated timestamp field" - } - }, - "additionalProperties": false, - "default": {} - }, - "database": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "prisma", - "drizzle", - "kysely", - "custom" - ], - "description": "Database adapter type" - }, - "connectionString": { - "type": "string", - "description": "Database connection string" - }, - "tablePrefix": { - "type": "string", - "default": "auth_", - "description": "Prefix for auth tables" - }, - "schema": { - "type": "string", - "description": "Database schema name" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "mapping": { - "type": "object", - "properties": { - "user": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "User field mapping (e.g., { \"emailVerified\": \"email_verified\" })" - }, - "session": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "default": { - "sessionToken": "token", - "expires": "expiresAt" - }, - "description": "Session field mapping" - }, - "account": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "default": { - "providerAccountId": "accountId", - "provider": "providerId" - }, - "description": "Account field mapping" - }, - "verificationToken": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "VerificationToken field mapping" - } - }, - "additionalProperties": false - }, - "plugins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Plugin name" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "options": { - "type": "object", - "additionalProperties": {}, - "description": "Plugin-specific options" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "default": [] - }, - "hooks": { - "type": "object", - "properties": {}, - "additionalProperties": false, - "description": "Authentication lifecycle hooks" - }, - "security": { - "type": "object", - "properties": { - "allowedOrigins": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS allowed origins" - }, - "trustProxy": { - "type": "boolean", - "default": false, - "description": "Trust proxy headers" - }, - "ipRateLimiting": { - "type": "boolean", - "default": true, - "description": "Enable IP-based rate limiting" - }, - "sessionFingerprinting": { - "type": "boolean", - "default": true, - "description": "Enable session fingerprinting" - }, - "maxSessions": { - "type": "number", - "default": 5, - "description": "Maximum concurrent sessions per user" - } - }, - "additionalProperties": false, - "description": "Advanced security settings" - }, - "email": { - "type": "object", - "properties": { - "from": { - "type": "string", - "format": "email", - "description": "From email address" - }, - "fromName": { - "type": "string", - "description": "From name" - }, - "provider": { - "type": "string", - "enum": [ - "smtp", - "sendgrid", - "mailgun", - "ses", - "resend", - "custom" - ], - "description": "Email provider" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Provider-specific configuration" - } - }, - "required": [ - "from", - "provider" - ], - "additionalProperties": false, - "description": "Email configuration" - }, - "ui": { - "type": "object", - "properties": { - "brandName": { - "type": "string", - "description": "Brand name displayed in auth UI" - }, - "logo": { - "type": "string", - "description": "Logo URL" - }, - "primaryColor": { - "type": "string", - "description": "Primary brand color (hex)" - }, - "customCss": { - "type": "string", - "description": "Custom CSS for auth pages" - } - }, - "additionalProperties": false, - "description": "UI customization" - }, - "active": { - "type": "boolean", - "default": true, - "description": "Whether this provider is active" - }, - "allowRegistration": { - "type": "boolean", - "default": true, - "description": "Allow new user registration" - } - }, - "required": [ - "name", - "label", - "strategies", - "baseUrl", - "secret" - ], - "additionalProperties": false - } + "ApplicationAuthConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/AuditPolicy.json b/packages/spec/json-schema/auth/AuditPolicy.json index 1c50b5d74..424e2f9b8 100644 --- a/packages/spec/json-schema/auth/AuditPolicy.json +++ b/packages/spec/json-schema/auth/AuditPolicy.json @@ -1,31 +1,7 @@ { "$ref": "#/definitions/AuditPolicy", "definitions": { - "AuditPolicy": { - "type": "object", - "properties": { - "logRetentionDays": { - "type": "number", - "default": 180 - }, - "sensitiveFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to redact in logs (e.g. password, ssn)" - }, - "captureRead": { - "type": "boolean", - "default": false, - "description": "Log read access (High volume!)" - } - }, - "required": [ - "sensitiveFields" - ], - "additionalProperties": false - } + "AuditPolicy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/AuthConfig.json b/packages/spec/json-schema/auth/AuthConfig.json index c7ceb9533..069ccb235 100644 --- a/packages/spec/json-schema/auth/AuthConfig.json +++ b/packages/spec/json-schema/auth/AuthConfig.json @@ -1,269 +1,7 @@ { "$ref": "#/definitions/AuthConfig", "definitions": { - "AuthConfig": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "oauth2", - "description": "Authentication type" - }, - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 authorization endpoint" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 token endpoint" - }, - "clientId": { - "type": "string", - "description": "OAuth2 client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth2 client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth2 scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth2 redirect URI" - }, - "refreshToken": { - "type": "string", - "description": "Refresh token for token renewal" - }, - "tokenExpiry": { - "type": "number", - "description": "Token expiry timestamp" - } - }, - "required": [ - "type", - "authorizationUrl", - "tokenUrl", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "api-key", - "description": "Authentication type" - }, - "key": { - "type": "string", - "description": "API key value" - }, - "headerName": { - "type": "string", - "default": "X-API-Key", - "description": "HTTP header name for API key" - }, - "paramName": { - "type": "string", - "description": "Query parameter name (alternative to header)" - } - }, - "required": [ - "type", - "key" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "basic", - "description": "Authentication type" - }, - "username": { - "type": "string", - "description": "Username" - }, - "password": { - "type": "string", - "description": "Password (typically from ENV)" - } - }, - "required": [ - "type", - "username", - "password" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "bearer", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Bearer token" - } - }, - "required": [ - "type", - "token" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "jwt", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Pre-generated JWT token" - }, - "secretKey": { - "type": "string", - "description": "Secret key for JWT signing" - }, - "algorithm": { - "type": "string", - "enum": [ - "HS256", - "HS384", - "HS512", - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512" - ], - "default": "HS256", - "description": "JWT signing algorithm" - }, - "issuer": { - "type": "string", - "description": "JWT issuer claim" - }, - "audience": { - "type": "string", - "description": "JWT audience claim" - }, - "subject": { - "type": "string", - "description": "JWT subject claim" - }, - "expiresIn": { - "type": "number", - "default": 3600, - "description": "Token expiry in seconds" - }, - "claims": { - "type": "object", - "additionalProperties": {}, - "description": "Additional JWT claims" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "saml", - "description": "Authentication type" - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "SAML IdP entry point URL" - }, - "issuer": { - "type": "string", - "description": "SAML service provider issuer" - }, - "certificate": { - "type": "string", - "description": "SAML IdP certificate (X.509)" - }, - "privateKey": { - "type": "string", - "description": "SAML service provider private key" - }, - "callbackUrl": { - "type": "string", - "format": "uri", - "description": "SAML assertion consumer service URL" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha1", - "sha256", - "sha512" - ], - "default": "sha256", - "description": "SAML signature algorithm" - }, - "wantAssertionsSigned": { - "type": "boolean", - "default": true, - "description": "Require signed SAML assertions" - }, - "identifierFormat": { - "type": "string", - "description": "SAML NameID format" - } - }, - "required": [ - "type", - "entryPoint", - "issuer", - "certificate" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "none", - "description": "No authentication required" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } + "AuthConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/AuthPluginConfig.json b/packages/spec/json-schema/auth/AuthPluginConfig.json index 89e6aa218..c7f62a2ca 100644 --- a/packages/spec/json-schema/auth/AuthPluginConfig.json +++ b/packages/spec/json-schema/auth/AuthPluginConfig.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/AuthPluginConfig", "definitions": { - "AuthPluginConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Plugin name" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "options": { - "type": "object", - "additionalProperties": {}, - "description": "Plugin-specific options" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "AuthPluginConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/AuthStrategy.json b/packages/spec/json-schema/auth/AuthStrategy.json index 05dd0c08d..1b35e2b7e 100644 --- a/packages/spec/json-schema/auth/AuthStrategy.json +++ b/packages/spec/json-schema/auth/AuthStrategy.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/AuthStrategy", "definitions": { - "AuthStrategy": { - "type": "string", - "enum": [ - "email_password", - "magic_link", - "oauth", - "passkey", - "otp", - "anonymous" - ] - } + "AuthStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/BasicAuth.json b/packages/spec/json-schema/auth/BasicAuth.json index a0c27be00..57cb2fc33 100644 --- a/packages/spec/json-schema/auth/BasicAuth.json +++ b/packages/spec/json-schema/auth/BasicAuth.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/BasicAuth", "definitions": { - "BasicAuth": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "basic", - "description": "Authentication type" - }, - "username": { - "type": "string", - "description": "Username" - }, - "password": { - "type": "string", - "description": "Password (typically from ENV)" - } - }, - "required": [ - "type", - "username", - "password" - ], - "additionalProperties": false - } + "BasicAuth": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/BearerAuth.json b/packages/spec/json-schema/auth/BearerAuth.json index 1a0aae7b5..946f53e6f 100644 --- a/packages/spec/json-schema/auth/BearerAuth.json +++ b/packages/spec/json-schema/auth/BearerAuth.json @@ -1,25 +1,7 @@ { "$ref": "#/definitions/BearerAuth", "definitions": { - "BearerAuth": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "bearer", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Bearer token" - } - }, - "required": [ - "type", - "token" - ], - "additionalProperties": false - } + "BearerAuth": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/CSRFConfig.json b/packages/spec/json-schema/auth/CSRFConfig.json index 7c49ed70e..c80d93d8c 100644 --- a/packages/spec/json-schema/auth/CSRFConfig.json +++ b/packages/spec/json-schema/auth/CSRFConfig.json @@ -1,31 +1,7 @@ { "$ref": "#/definitions/CSRFConfig", "definitions": { - "CSRFConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "tokenLength": { - "type": "number", - "default": 32, - "description": "CSRF token length" - }, - "cookieName": { - "type": "string", - "default": "csrf_token", - "description": "CSRF cookie name" - }, - "headerName": { - "type": "string", - "default": "X-CSRF-Token", - "description": "CSRF header name" - } - }, - "additionalProperties": false - } + "CSRFConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/DatabaseAdapter.json b/packages/spec/json-schema/auth/DatabaseAdapter.json index 4695c1a23..b50978748 100644 --- a/packages/spec/json-schema/auth/DatabaseAdapter.json +++ b/packages/spec/json-schema/auth/DatabaseAdapter.json @@ -1,38 +1,7 @@ { "$ref": "#/definitions/DatabaseAdapter", "definitions": { - "DatabaseAdapter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "prisma", - "drizzle", - "kysely", - "custom" - ], - "description": "Database adapter type" - }, - "connectionString": { - "type": "string", - "description": "Database connection string" - }, - "tablePrefix": { - "type": "string", - "default": "auth_", - "description": "Prefix for auth tables" - }, - "schema": { - "type": "string", - "description": "Database schema name" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "DatabaseAdapter": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/DatabaseMapping.json b/packages/spec/json-schema/auth/DatabaseMapping.json index 9210807fb..625356c3f 100644 --- a/packages/spec/json-schema/auth/DatabaseMapping.json +++ b/packages/spec/json-schema/auth/DatabaseMapping.json @@ -1,48 +1,7 @@ { "$ref": "#/definitions/DatabaseMapping", "definitions": { - "DatabaseMapping": { - "type": "object", - "properties": { - "user": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "User field mapping (e.g., { \"emailVerified\": \"email_verified\" })" - }, - "session": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "default": { - "sessionToken": "token", - "expires": "expiresAt" - }, - "description": "Session field mapping" - }, - "account": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "default": { - "providerAccountId": "accountId", - "provider": "providerId" - }, - "description": "Account field mapping" - }, - "verificationToken": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "VerificationToken field mapping" - } - }, - "additionalProperties": false - } + "DatabaseMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/EmailPasswordConfig.json b/packages/spec/json-schema/auth/EmailPasswordConfig.json index 9bb0c155b..f1ad34f85 100644 --- a/packages/spec/json-schema/auth/EmailPasswordConfig.json +++ b/packages/spec/json-schema/auth/EmailPasswordConfig.json @@ -1,43 +1,7 @@ { "$ref": "#/definitions/EmailPasswordConfig", "definitions": { - "EmailPasswordConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "requireEmailVerification": { - "type": "boolean", - "default": true, - "description": "Require email verification before login" - }, - "minPasswordLength": { - "type": "number", - "minimum": 6, - "maximum": 128, - "default": 8, - "description": "Minimum password length" - }, - "requirePasswordComplexity": { - "type": "boolean", - "default": true, - "description": "Require uppercase, lowercase, numbers, symbols" - }, - "allowPasswordReset": { - "type": "boolean", - "default": true, - "description": "Enable password reset functionality" - }, - "passwordResetExpiry": { - "type": "number", - "default": 3600, - "description": "Password reset token expiry in seconds" - } - }, - "additionalProperties": false - } + "EmailPasswordConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/EnterpriseAuthConfig.json b/packages/spec/json-schema/auth/EnterpriseAuthConfig.json index e57dd05d5..7951a0e93 100644 --- a/packages/spec/json-schema/auth/EnterpriseAuthConfig.json +++ b/packages/spec/json-schema/auth/EnterpriseAuthConfig.json @@ -1,172 +1,7 @@ { "$ref": "#/definitions/EnterpriseAuthConfig", "definitions": { - "EnterpriseAuthConfig": { - "type": "object", - "properties": { - "oidc": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "issuer": { - "type": "string", - "format": "uri", - "description": "OIDC Issuer URL (.well-known/openid-configuration)" - }, - "clientId": { - "type": "string", - "description": "OIDC client ID" - }, - "clientSecret": { - "type": "string", - "description": "OIDC client secret" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "openid", - "profile", - "email" - ], - "description": "OIDC scopes" - }, - "attributeMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map IdP claims to User fields" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "issuer", - "clientId", - "clientSecret" - ], - "additionalProperties": false, - "description": "OpenID Connect configuration" - }, - "saml": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "IdP SSO URL" - }, - "cert": { - "type": "string", - "description": "IdP Public Certificate (PEM format)" - }, - "issuer": { - "type": "string", - "description": "Entity ID of the IdP" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha256", - "sha512" - ], - "default": "sha256", - "description": "Signature algorithm" - }, - "attributeMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map SAML attributes to User fields" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "entryPoint", - "cert", - "issuer" - ], - "additionalProperties": false, - "description": "SAML 2.0 configuration" - }, - "ldap": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "url": { - "type": "string", - "format": "uri", - "description": "LDAP Server URL (ldap:// or ldaps://)" - }, - "bindDn": { - "type": "string", - "description": "Bind DN for LDAP authentication" - }, - "bindCredentials": { - "type": "string", - "description": "Bind credentials" - }, - "searchBase": { - "type": "string", - "description": "Search base DN" - }, - "searchFilter": { - "type": "string", - "description": "Search filter" - }, - "groupSearchBase": { - "type": "string", - "description": "Group search base DN" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "url", - "bindDn", - "bindCredentials", - "searchBase", - "searchFilter" - ], - "additionalProperties": false, - "description": "LDAP/Active Directory configuration" - } - }, - "additionalProperties": false - } + "EnterpriseAuthConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/Invitation.json b/packages/spec/json-schema/auth/Invitation.json index b64bed7c7..3c3ce5850 100644 --- a/packages/spec/json-schema/auth/Invitation.json +++ b/packages/spec/json-schema/auth/Invitation.json @@ -1,69 +1,7 @@ { "$ref": "#/definitions/Invitation", "definitions": { - "Invitation": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique invitation identifier" - }, - "organizationId": { - "type": "string", - "description": "Organization ID" - }, - "email": { - "type": "string", - "format": "email", - "description": "Invitee email address" - }, - "role": { - "type": "string", - "description": "Role to assign upon acceptance" - }, - "status": { - "type": "string", - "enum": [ - "pending", - "accepted", - "rejected", - "expired" - ], - "default": "pending", - "description": "Invitation status" - }, - "expiresAt": { - "type": "string", - "format": "date-time", - "description": "Invitation expiry timestamp" - }, - "inviterId": { - "type": "string", - "description": "User ID of the inviter" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Invitation creation timestamp" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - } - }, - "required": [ - "id", - "organizationId", - "email", - "role", - "expiresAt", - "inviterId", - "createdAt", - "updatedAt" - ], - "additionalProperties": false - } + "Invitation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/InvitationStatus.json b/packages/spec/json-schema/auth/InvitationStatus.json index 0515376aa..2526179fa 100644 --- a/packages/spec/json-schema/auth/InvitationStatus.json +++ b/packages/spec/json-schema/auth/InvitationStatus.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/InvitationStatus", "definitions": { - "InvitationStatus": { - "type": "string", - "enum": [ - "pending", - "accepted", - "rejected", - "expired" - ] - } + "InvitationStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/JWTAuth.json b/packages/spec/json-schema/auth/JWTAuth.json index 918f39d89..819bdb1f3 100644 --- a/packages/spec/json-schema/auth/JWTAuth.json +++ b/packages/spec/json-schema/auth/JWTAuth.json @@ -1,66 +1,7 @@ { "$ref": "#/definitions/JWTAuth", "definitions": { - "JWTAuth": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "jwt", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Pre-generated JWT token" - }, - "secretKey": { - "type": "string", - "description": "Secret key for JWT signing" - }, - "algorithm": { - "type": "string", - "enum": [ - "HS256", - "HS384", - "HS512", - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512" - ], - "default": "HS256", - "description": "JWT signing algorithm" - }, - "issuer": { - "type": "string", - "description": "JWT issuer claim" - }, - "audience": { - "type": "string", - "description": "JWT audience claim" - }, - "subject": { - "type": "string", - "description": "JWT subject claim" - }, - "expiresIn": { - "type": "number", - "default": 3600, - "description": "Token expiry in seconds" - }, - "claims": { - "type": "object", - "additionalProperties": {}, - "description": "Additional JWT claims" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "JWTAuth": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/LDAPConfig.json b/packages/spec/json-schema/auth/LDAPConfig.json index 3c7092cda..63aeb17c7 100644 --- a/packages/spec/json-schema/auth/LDAPConfig.json +++ b/packages/spec/json-schema/auth/LDAPConfig.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/LDAPConfig", "definitions": { - "LDAPConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "url": { - "type": "string", - "format": "uri", - "description": "LDAP Server URL (ldap:// or ldaps://)" - }, - "bindDn": { - "type": "string", - "description": "Bind DN for LDAP authentication" - }, - "bindCredentials": { - "type": "string", - "description": "Bind credentials" - }, - "searchBase": { - "type": "string", - "description": "Search base DN" - }, - "searchFilter": { - "type": "string", - "description": "Search filter" - }, - "groupSearchBase": { - "type": "string", - "description": "Group search base DN" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "url", - "bindDn", - "bindCredentials", - "searchBase", - "searchFilter" - ], - "additionalProperties": false - } + "LDAPConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/MagicLinkConfig.json b/packages/spec/json-schema/auth/MagicLinkConfig.json index 937680a51..f20b3fe28 100644 --- a/packages/spec/json-schema/auth/MagicLinkConfig.json +++ b/packages/spec/json-schema/auth/MagicLinkConfig.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/MagicLinkConfig", "definitions": { - "MagicLinkConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "expiryTime": { - "type": "number", - "default": 900, - "description": "Magic link expiry time in seconds (default 15 min)" - } - }, - "additionalProperties": false - } + "MagicLinkConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/Member.json b/packages/spec/json-schema/auth/Member.json index 5c6ffe159..972776679 100644 --- a/packages/spec/json-schema/auth/Member.json +++ b/packages/spec/json-schema/auth/Member.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/Member", "definitions": { - "Member": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique member identifier" - }, - "organizationId": { - "type": "string", - "description": "Organization ID" - }, - "userId": { - "type": "string", - "description": "User ID" - }, - "role": { - "type": "string", - "description": "Member role (e.g., owner, admin, member, guest)" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Member creation timestamp" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - } - }, - "required": [ - "id", - "organizationId", - "userId", - "role", - "createdAt", - "updatedAt" - ], - "additionalProperties": false - } + "Member": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/NetworkPolicy.json b/packages/spec/json-schema/auth/NetworkPolicy.json index a8510aa87..46d5c4806 100644 --- a/packages/spec/json-schema/auth/NetworkPolicy.json +++ b/packages/spec/json-schema/auth/NetworkPolicy.json @@ -1,31 +1,7 @@ { "$ref": "#/definitions/NetworkPolicy", "definitions": { - "NetworkPolicy": { - "type": "object", - "properties": { - "trustedRanges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CIDR ranges allowed to access (e.g. 10.0.0.0/8)" - }, - "blockUnknown": { - "type": "boolean", - "default": false, - "description": "Block all IPs not in trusted ranges" - }, - "vpnRequired": { - "type": "boolean", - "default": false - } - }, - "required": [ - "trustedRanges" - ], - "additionalProperties": false - } + "NetworkPolicy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/NoAuth.json b/packages/spec/json-schema/auth/NoAuth.json index e363a3b90..28f6fd839 100644 --- a/packages/spec/json-schema/auth/NoAuth.json +++ b/packages/spec/json-schema/auth/NoAuth.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/NoAuth", "definitions": { - "NoAuth": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "none", - "description": "No authentication required" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "NoAuth": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/OAuth2.json b/packages/spec/json-schema/auth/OAuth2.json index d69630919..e29cd4987 100644 --- a/packages/spec/json-schema/auth/OAuth2.json +++ b/packages/spec/json-schema/auth/OAuth2.json @@ -1,62 +1,7 @@ { "$ref": "#/definitions/OAuth2", "definitions": { - "OAuth2": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "oauth2", - "description": "Authentication type" - }, - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 authorization endpoint" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 token endpoint" - }, - "clientId": { - "type": "string", - "description": "OAuth2 client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth2 client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth2 scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth2 redirect URI" - }, - "refreshToken": { - "type": "string", - "description": "Refresh token for token renewal" - }, - "tokenExpiry": { - "type": "number", - "description": "Token expiry timestamp" - } - }, - "required": [ - "type", - "authorizationUrl", - "tokenUrl", - "clientId", - "clientSecret" - ], - "additionalProperties": false - } + "OAuth2": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/OAuthProvider.json b/packages/spec/json-schema/auth/OAuthProvider.json index 738d846ad..3be813a77 100644 --- a/packages/spec/json-schema/auth/OAuthProvider.json +++ b/packages/spec/json-schema/auth/OAuthProvider.json @@ -1,66 +1,7 @@ { "$ref": "#/definitions/OAuthProvider", "definitions": { - "OAuthProvider": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "google", - "github", - "facebook", - "twitter", - "linkedin", - "microsoft", - "apple", - "discord", - "gitlab", - "custom" - ], - "description": "OAuth provider type" - }, - "clientId": { - "type": "string", - "description": "OAuth client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth callback URL" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Whether this provider is enabled" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "provider", - "clientId", - "clientSecret" - ], - "additionalProperties": false - } + "OAuthProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/OIDCConfig.json b/packages/spec/json-schema/auth/OIDCConfig.json index cc4a22a7b..224dddde8 100644 --- a/packages/spec/json-schema/auth/OIDCConfig.json +++ b/packages/spec/json-schema/auth/OIDCConfig.json @@ -1,61 +1,7 @@ { "$ref": "#/definitions/OIDCConfig", "definitions": { - "OIDCConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "issuer": { - "type": "string", - "format": "uri", - "description": "OIDC Issuer URL (.well-known/openid-configuration)" - }, - "clientId": { - "type": "string", - "description": "OIDC client ID" - }, - "clientSecret": { - "type": "string", - "description": "OIDC client secret" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "openid", - "profile", - "email" - ], - "description": "OIDC scopes" - }, - "attributeMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map IdP claims to User fields" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "issuer", - "clientId", - "clientSecret" - ], - "additionalProperties": false - } + "OIDCConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/Organization.json b/packages/spec/json-schema/auth/Organization.json index 19ac2e69f..3830aaf4b 100644 --- a/packages/spec/json-schema/auth/Organization.json +++ b/packages/spec/json-schema/auth/Organization.json @@ -1,52 +1,7 @@ { "$ref": "#/definitions/Organization", "definitions": { - "Organization": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique organization identifier" - }, - "name": { - "type": "string", - "description": "Organization display name" - }, - "slug": { - "type": "string", - "pattern": "^[a-z0-9_-]+$", - "description": "Unique URL-friendly slug (lowercase alphanumeric, hyphens, underscores)" - }, - "logo": { - "type": "string", - "format": "uri", - "description": "Organization logo URL" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom metadata" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Organization creation timestamp" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - } - }, - "required": [ - "id", - "name", - "slug", - "createdAt", - "updatedAt" - ], - "additionalProperties": false - } + "Organization": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/PasskeyConfig.json b/packages/spec/json-schema/auth/PasskeyConfig.json index 335a54344..528285d6f 100644 --- a/packages/spec/json-schema/auth/PasskeyConfig.json +++ b/packages/spec/json-schema/auth/PasskeyConfig.json @@ -1,54 +1,7 @@ { "$ref": "#/definitions/PasskeyConfig", "definitions": { - "PasskeyConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "rpName": { - "type": "string", - "description": "Relying Party name" - }, - "rpId": { - "type": "string", - "description": "Relying Party ID (defaults to domain)" - }, - "allowedOrigins": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - }, - "description": "Allowed origins for WebAuthn" - }, - "userVerification": { - "type": "string", - "enum": [ - "required", - "preferred", - "discouraged" - ], - "default": "preferred" - }, - "attestation": { - "type": "string", - "enum": [ - "none", - "indirect", - "direct", - "enterprise" - ], - "default": "none" - } - }, - "required": [ - "rpName" - ], - "additionalProperties": false - } + "PasskeyConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/PasswordPolicy.json b/packages/spec/json-schema/auth/PasswordPolicy.json index 911169f6b..fceff73a9 100644 --- a/packages/spec/json-schema/auth/PasswordPolicy.json +++ b/packages/spec/json-schema/auth/PasswordPolicy.json @@ -1,41 +1,7 @@ { "$ref": "#/definitions/PasswordPolicy", "definitions": { - "PasswordPolicy": { - "type": "object", - "properties": { - "minLength": { - "type": "number", - "default": 8 - }, - "requireUppercase": { - "type": "boolean", - "default": true - }, - "requireLowercase": { - "type": "boolean", - "default": true - }, - "requireNumbers": { - "type": "boolean", - "default": true - }, - "requireSymbols": { - "type": "boolean", - "default": false - }, - "expirationDays": { - "type": "number", - "description": "Force password change every X days" - }, - "historyCount": { - "type": "number", - "default": 3, - "description": "Prevent reusing last X passwords" - } - }, - "additionalProperties": false - } + "PasswordPolicy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/Policy.json b/packages/spec/json-schema/auth/Policy.json index f400d9540..993bca52f 100644 --- a/packages/spec/json-schema/auth/Policy.json +++ b/packages/spec/json-schema/auth/Policy.json @@ -1,138 +1,7 @@ { "$ref": "#/definitions/Policy", "definitions": { - "Policy": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Policy Name" - }, - "password": { - "type": "object", - "properties": { - "minLength": { - "type": "number", - "default": 8 - }, - "requireUppercase": { - "type": "boolean", - "default": true - }, - "requireLowercase": { - "type": "boolean", - "default": true - }, - "requireNumbers": { - "type": "boolean", - "default": true - }, - "requireSymbols": { - "type": "boolean", - "default": false - }, - "expirationDays": { - "type": "number", - "description": "Force password change every X days" - }, - "historyCount": { - "type": "number", - "default": 3, - "description": "Prevent reusing last X passwords" - } - }, - "additionalProperties": false - }, - "network": { - "type": "object", - "properties": { - "trustedRanges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CIDR ranges allowed to access (e.g. 10.0.0.0/8)" - }, - "blockUnknown": { - "type": "boolean", - "default": false, - "description": "Block all IPs not in trusted ranges" - }, - "vpnRequired": { - "type": "boolean", - "default": false - } - }, - "required": [ - "trustedRanges" - ], - "additionalProperties": false - }, - "session": { - "type": "object", - "properties": { - "idleTimeout": { - "type": "number", - "default": 30, - "description": "Minutes before idle session logout" - }, - "absoluteTimeout": { - "type": "number", - "default": 480, - "description": "Max session duration (minutes)" - }, - "forceMfa": { - "type": "boolean", - "default": false, - "description": "Require 2FA for all users" - } - }, - "additionalProperties": false - }, - "audit": { - "type": "object", - "properties": { - "logRetentionDays": { - "type": "number", - "default": 180 - }, - "sensitiveFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to redact in logs (e.g. password, ssn)" - }, - "captureRead": { - "type": "boolean", - "default": false, - "description": "Log read access (High volume!)" - } - }, - "required": [ - "sensitiveFields" - ], - "additionalProperties": false - }, - "isDefault": { - "type": "boolean", - "default": false, - "description": "Apply to all users by default" - }, - "assignedProfiles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Apply to specific profiles" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "Policy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/RateLimitConfig.json b/packages/spec/json-schema/auth/RateLimitConfig.json index d8620aadb..492ba2040 100644 --- a/packages/spec/json-schema/auth/RateLimitConfig.json +++ b/packages/spec/json-schema/auth/RateLimitConfig.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/RateLimitConfig", "definitions": { - "RateLimitConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "maxAttempts": { - "type": "number", - "default": 5, - "description": "Maximum login attempts" - }, - "windowMs": { - "type": "number", - "default": 900000, - "description": "Time window in milliseconds (default 15 min)" - }, - "blockDuration": { - "type": "number", - "default": 900000, - "description": "Block duration after max attempts in ms" - }, - "skipSuccessfulRequests": { - "type": "boolean", - "default": false, - "description": "Only count failed requests" - } - }, - "additionalProperties": false - } + "RateLimitConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/Role.json b/packages/spec/json-schema/auth/Role.json index ea9d65847..b18a11085 100644 --- a/packages/spec/json-schema/auth/Role.json +++ b/packages/spec/json-schema/auth/Role.json @@ -1,33 +1,7 @@ { "$ref": "#/definitions/Role", "definitions": { - "Role": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique role name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display label (e.g. VP of Sales)" - }, - "parent": { - "type": "string", - "description": "Parent Role ID (Reports To)" - }, - "description": { - "type": "string" - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false - } + "Role": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SAMLAuth.json b/packages/spec/json-schema/auth/SAMLAuth.json index d323805bc..f50bcb004 100644 --- a/packages/spec/json-schema/auth/SAMLAuth.json +++ b/packages/spec/json-schema/auth/SAMLAuth.json @@ -1,64 +1,7 @@ { "$ref": "#/definitions/SAMLAuth", "definitions": { - "SAMLAuth": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "saml", - "description": "Authentication type" - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "SAML IdP entry point URL" - }, - "issuer": { - "type": "string", - "description": "SAML service provider issuer" - }, - "certificate": { - "type": "string", - "description": "SAML IdP certificate (X.509)" - }, - "privateKey": { - "type": "string", - "description": "SAML service provider private key" - }, - "callbackUrl": { - "type": "string", - "format": "uri", - "description": "SAML assertion consumer service URL" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha1", - "sha256", - "sha512" - ], - "default": "sha256", - "description": "SAML signature algorithm" - }, - "wantAssertionsSigned": { - "type": "boolean", - "default": true, - "description": "Require signed SAML assertions" - }, - "identifierFormat": { - "type": "string", - "description": "SAML NameID format" - } - }, - "required": [ - "type", - "entryPoint", - "issuer", - "certificate" - ], - "additionalProperties": false - } + "SAMLAuth": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SAMLConfig.json b/packages/spec/json-schema/auth/SAMLConfig.json index ae02b5b83..6d24f3372 100644 --- a/packages/spec/json-schema/auth/SAMLConfig.json +++ b/packages/spec/json-schema/auth/SAMLConfig.json @@ -1,58 +1,7 @@ { "$ref": "#/definitions/SAMLConfig", "definitions": { - "SAMLConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "IdP SSO URL" - }, - "cert": { - "type": "string", - "description": "IdP Public Certificate (PEM format)" - }, - "issuer": { - "type": "string", - "description": "Entity ID of the IdP" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha256", - "sha512" - ], - "default": "sha256", - "description": "Signature algorithm" - }, - "attributeMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map SAML attributes to User fields" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "entryPoint", - "cert", - "issuer" - ], - "additionalProperties": false - } + "SAMLConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMAddress.json b/packages/spec/json-schema/auth/SCIMAddress.json index 6e5d67f5d..1df1eb553 100644 --- a/packages/spec/json-schema/auth/SCIMAddress.json +++ b/packages/spec/json-schema/auth/SCIMAddress.json @@ -1,50 +1,7 @@ { "$ref": "#/definitions/SCIMAddress", "definitions": { - "SCIMAddress": { - "type": "object", - "properties": { - "formatted": { - "type": "string", - "description": "Formatted address" - }, - "streetAddress": { - "type": "string", - "description": "Street address" - }, - "locality": { - "type": "string", - "description": "City/Locality" - }, - "region": { - "type": "string", - "description": "State/Region" - }, - "postalCode": { - "type": "string", - "description": "Postal code" - }, - "country": { - "type": "string", - "description": "Country" - }, - "type": { - "type": "string", - "enum": [ - "work", - "home", - "other" - ], - "description": "Address type" - }, - "primary": { - "type": "boolean", - "default": false, - "description": "Primary address indicator" - } - }, - "additionalProperties": false - } + "SCIMAddress": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMEmail.json b/packages/spec/json-schema/auth/SCIMEmail.json index b6b6a4a3d..fc15f830d 100644 --- a/packages/spec/json-schema/auth/SCIMEmail.json +++ b/packages/spec/json-schema/auth/SCIMEmail.json @@ -1,38 +1,7 @@ { "$ref": "#/definitions/SCIMEmail", "definitions": { - "SCIMEmail": { - "type": "object", - "properties": { - "value": { - "type": "string", - "format": "email", - "description": "Email address" - }, - "type": { - "type": "string", - "enum": [ - "work", - "home", - "other" - ], - "description": "Email type" - }, - "display": { - "type": "string", - "description": "Display label" - }, - "primary": { - "type": "boolean", - "default": false, - "description": "Primary email indicator" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - } + "SCIMEmail": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMEnterpriseUser.json b/packages/spec/json-schema/auth/SCIMEnterpriseUser.json index 1082a22e2..1909fc6bd 100644 --- a/packages/spec/json-schema/auth/SCIMEnterpriseUser.json +++ b/packages/spec/json-schema/auth/SCIMEnterpriseUser.json @@ -1,55 +1,7 @@ { "$ref": "#/definitions/SCIMEnterpriseUser", "definitions": { - "SCIMEnterpriseUser": { - "type": "object", - "properties": { - "employeeNumber": { - "type": "string", - "description": "Employee number" - }, - "costCenter": { - "type": "string", - "description": "Cost center" - }, - "organization": { - "type": "string", - "description": "Organization" - }, - "division": { - "type": "string", - "description": "Division" - }, - "department": { - "type": "string", - "description": "Department" - }, - "manager": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Manager ID" - }, - "$ref": { - "type": "string", - "format": "uri", - "description": "Manager URI" - }, - "displayName": { - "type": "string", - "description": "Manager name" - } - }, - "required": [ - "value" - ], - "additionalProperties": false, - "description": "Manager reference" - } - }, - "additionalProperties": false - } + "SCIMEnterpriseUser": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMError.json b/packages/spec/json-schema/auth/SCIMError.json index 4bbb09cfc..7334d09b0 100644 --- a/packages/spec/json-schema/auth/SCIMError.json +++ b/packages/spec/json-schema/auth/SCIMError.json @@ -1,52 +1,7 @@ { "$ref": "#/definitions/SCIMError", "definitions": { - "SCIMError": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "default": [ - "urn:ietf:params:scim:api:messages:2.0:Error" - ], - "description": "SCIM schema URIs" - }, - "status": { - "type": "integer", - "minimum": 400, - "maximum": 599, - "description": "HTTP status code" - }, - "scimType": { - "type": "string", - "enum": [ - "invalidFilter", - "tooMany", - "uniqueness", - "mutability", - "invalidSyntax", - "invalidPath", - "noTarget", - "invalidValue", - "invalidVers", - "sensitive" - ], - "description": "SCIM error type" - }, - "detail": { - "type": "string", - "description": "Error detail message" - } - }, - "required": [ - "status" - ], - "additionalProperties": false - } + "SCIMError": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMGroup.json b/packages/spec/json-schema/auth/SCIMGroup.json index 2788f8aa7..2f51e2d8d 100644 --- a/packages/spec/json-schema/auth/SCIMGroup.json +++ b/packages/spec/json-schema/auth/SCIMGroup.json @@ -1,102 +1,7 @@ { "$ref": "#/definitions/SCIMGroup", "definitions": { - "SCIMGroup": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "default": [ - "urn:ietf:params:scim:schemas:core:2.0:Group" - ], - "description": "SCIM schema URIs (must include Group schema)" - }, - "id": { - "type": "string", - "description": "Unique resource identifier" - }, - "externalId": { - "type": "string", - "description": "External identifier from client system" - }, - "displayName": { - "type": "string", - "description": "Group display name (REQUIRED)" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Member ID" - }, - "$ref": { - "type": "string", - "format": "uri", - "description": "URI reference to the member" - }, - "type": { - "type": "string", - "enum": [ - "User", - "Group" - ], - "description": "Member type" - }, - "display": { - "type": "string", - "description": "Member display name" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Group members" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "Resource type" - }, - "created": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "Last modification timestamp" - }, - "location": { - "type": "string", - "format": "uri", - "description": "Resource location URI" - }, - "version": { - "type": "string", - "description": "Entity tag (ETag) for concurrency control" - } - }, - "additionalProperties": false, - "description": "Resource metadata" - } - }, - "required": [ - "displayName" - ], - "additionalProperties": false - } + "SCIMGroup": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMGroupReference.json b/packages/spec/json-schema/auth/SCIMGroupReference.json index 460a93829..7377b4b34 100644 --- a/packages/spec/json-schema/auth/SCIMGroupReference.json +++ b/packages/spec/json-schema/auth/SCIMGroupReference.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/SCIMGroupReference", "definitions": { - "SCIMGroupReference": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Group ID" - }, - "$ref": { - "type": "string", - "format": "uri", - "description": "URI reference to the group" - }, - "display": { - "type": "string", - "description": "Group display name" - }, - "type": { - "type": "string", - "enum": [ - "direct", - "indirect" - ], - "description": "Membership type" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - } + "SCIMGroupReference": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMListResponse.json b/packages/spec/json-schema/auth/SCIMListResponse.json index 28eb20f3c..e84f4db97 100644 --- a/packages/spec/json-schema/auth/SCIMListResponse.json +++ b/packages/spec/json-schema/auth/SCIMListResponse.json @@ -1,606 +1,7 @@ { "$ref": "#/definitions/SCIMListResponse", "definitions": { - "SCIMListResponse": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "default": [ - "urn:ietf:params:scim:api:messages:2.0:ListResponse" - ], - "description": "SCIM schema URIs" - }, - "totalResults": { - "type": "integer", - "minimum": 0, - "description": "Total results count" - }, - "Resources": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "default": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "description": "SCIM schema URIs (must include User schema)" - }, - "id": { - "type": "string", - "description": "Unique resource identifier" - }, - "externalId": { - "type": "string", - "description": "External identifier from client system" - }, - "userName": { - "type": "string", - "description": "Unique username (REQUIRED)" - }, - "name": { - "type": "object", - "properties": { - "formatted": { - "type": "string", - "description": "Formatted full name" - }, - "familyName": { - "type": "string", - "description": "Family name (last name)" - }, - "givenName": { - "type": "string", - "description": "Given name (first name)" - }, - "middleName": { - "type": "string", - "description": "Middle name" - }, - "honorificPrefix": { - "type": "string", - "description": "Honorific prefix (Mr., Ms., Dr.)" - }, - "honorificSuffix": { - "type": "string", - "description": "Honorific suffix (Jr., Sr.)" - } - }, - "additionalProperties": false, - "description": "Structured name components" - }, - "displayName": { - "type": "string", - "description": "Display name for UI" - }, - "nickName": { - "type": "string", - "description": "Nickname" - }, - "profileUrl": { - "type": "string", - "format": "uri", - "description": "Profile page URL" - }, - "title": { - "type": "string", - "description": "Job title" - }, - "userType": { - "type": "string", - "description": "User type (employee, contractor)" - }, - "preferredLanguage": { - "type": "string", - "description": "Preferred language (ISO 639-1)" - }, - "locale": { - "type": "string", - "description": "Locale (e.g., en-US)" - }, - "timezone": { - "type": "string", - "description": "Timezone" - }, - "active": { - "type": "boolean", - "default": true, - "description": "Account active status" - }, - "password": { - "type": "string", - "description": "Password (write-only)" - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "format": "email", - "description": "Email address" - }, - "type": { - "type": "string", - "enum": [ - "work", - "home", - "other" - ], - "description": "Email type" - }, - "display": { - "type": "string", - "description": "Display label" - }, - "primary": { - "type": "boolean", - "default": false, - "description": "Primary email indicator" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Email addresses" - }, - "phoneNumbers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Phone number" - }, - "type": { - "type": "string", - "enum": [ - "work", - "home", - "mobile", - "fax", - "pager", - "other" - ], - "description": "Phone number type" - }, - "display": { - "type": "string", - "description": "Display label" - }, - "primary": { - "type": "boolean", - "default": false, - "description": "Primary phone indicator" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Phone numbers" - }, - "ims": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "IM addresses" - }, - "photos": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "format": "uri" - }, - "type": { - "type": "string", - "enum": [ - "photo", - "thumbnail" - ] - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Photo URLs" - }, - "addresses": { - "type": "array", - "items": { - "type": "object", - "properties": { - "formatted": { - "type": "string", - "description": "Formatted address" - }, - "streetAddress": { - "type": "string", - "description": "Street address" - }, - "locality": { - "type": "string", - "description": "City/Locality" - }, - "region": { - "type": "string", - "description": "State/Region" - }, - "postalCode": { - "type": "string", - "description": "Postal code" - }, - "country": { - "type": "string", - "description": "Country" - }, - "type": { - "type": "string", - "enum": [ - "work", - "home", - "other" - ], - "description": "Address type" - }, - "primary": { - "type": "boolean", - "default": false, - "description": "Primary address indicator" - } - }, - "additionalProperties": false - }, - "description": "Physical addresses" - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Group ID" - }, - "$ref": { - "type": "string", - "format": "uri", - "description": "URI reference to the group" - }, - "display": { - "type": "string", - "description": "Group display name" - }, - "type": { - "type": "string", - "enum": [ - "direct", - "indirect" - ], - "description": "Membership type" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Group memberships" - }, - "entitlements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Entitlements" - }, - "roles": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Roles" - }, - "x509Certificates": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "X509 certificates" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "Resource type" - }, - "created": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "Last modification timestamp" - }, - "location": { - "type": "string", - "format": "uri", - "description": "Resource location URI" - }, - "version": { - "type": "string", - "description": "Entity tag (ETag) for concurrency control" - } - }, - "additionalProperties": false, - "description": "Resource metadata" - }, - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { - "type": "object", - "properties": { - "employeeNumber": { - "type": "string", - "description": "Employee number" - }, - "costCenter": { - "type": "string", - "description": "Cost center" - }, - "organization": { - "type": "string", - "description": "Organization" - }, - "division": { - "type": "string", - "description": "Division" - }, - "department": { - "type": "string", - "description": "Department" - }, - "manager": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Manager ID" - }, - "$ref": { - "type": "string", - "format": "uri", - "description": "Manager URI" - }, - "displayName": { - "type": "string", - "description": "Manager name" - } - }, - "required": [ - "value" - ], - "additionalProperties": false, - "description": "Manager reference" - } - }, - "additionalProperties": false, - "description": "Enterprise user attributes" - } - }, - "required": [ - "userName" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "default": [ - "urn:ietf:params:scim:schemas:core:2.0:Group" - ], - "description": "SCIM schema URIs (must include Group schema)" - }, - "id": { - "type": "string", - "description": "Unique resource identifier" - }, - "externalId": { - "type": "string", - "description": "External identifier from client system" - }, - "displayName": { - "type": "string", - "description": "Group display name (REQUIRED)" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Member ID" - }, - "$ref": { - "type": "string", - "format": "uri", - "description": "URI reference to the member" - }, - "type": { - "type": "string", - "enum": [ - "User", - "Group" - ], - "description": "Member type" - }, - "display": { - "type": "string", - "description": "Member display name" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Group members" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "Resource type" - }, - "created": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "Last modification timestamp" - }, - "location": { - "type": "string", - "format": "uri", - "description": "Resource location URI" - }, - "version": { - "type": "string", - "description": "Entity tag (ETag) for concurrency control" - } - }, - "additionalProperties": false, - "description": "Resource metadata" - } - }, - "required": [ - "displayName" - ], - "additionalProperties": false - }, - { - "type": "object", - "additionalProperties": {} - } - ] - }, - "description": "Resources array (Users, Groups, or custom resources)" - }, - "startIndex": { - "type": "integer", - "minimum": 1, - "description": "Start index (1-based)" - }, - "itemsPerPage": { - "type": "integer", - "minimum": 0, - "description": "Items per page" - } - }, - "required": [ - "totalResults", - "Resources" - ], - "additionalProperties": false - } + "SCIMListResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMMemberReference.json b/packages/spec/json-schema/auth/SCIMMemberReference.json index b5429386f..9d833c3ef 100644 --- a/packages/spec/json-schema/auth/SCIMMemberReference.json +++ b/packages/spec/json-schema/auth/SCIMMemberReference.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/SCIMMemberReference", "definitions": { - "SCIMMemberReference": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Member ID" - }, - "$ref": { - "type": "string", - "format": "uri", - "description": "URI reference to the member" - }, - "type": { - "type": "string", - "enum": [ - "User", - "Group" - ], - "description": "Member type" - }, - "display": { - "type": "string", - "description": "Member display name" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - } + "SCIMMemberReference": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMMeta.json b/packages/spec/json-schema/auth/SCIMMeta.json index 37a8fd718..4b7504ff6 100644 --- a/packages/spec/json-schema/auth/SCIMMeta.json +++ b/packages/spec/json-schema/auth/SCIMMeta.json @@ -1,35 +1,7 @@ { "$ref": "#/definitions/SCIMMeta", "definitions": { - "SCIMMeta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "Resource type" - }, - "created": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "Last modification timestamp" - }, - "location": { - "type": "string", - "format": "uri", - "description": "Resource location URI" - }, - "version": { - "type": "string", - "description": "Entity tag (ETag) for concurrency control" - } - }, - "additionalProperties": false - } + "SCIMMeta": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMName.json b/packages/spec/json-schema/auth/SCIMName.json index edcfa8af6..506e3abad 100644 --- a/packages/spec/json-schema/auth/SCIMName.json +++ b/packages/spec/json-schema/auth/SCIMName.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/SCIMName", "definitions": { - "SCIMName": { - "type": "object", - "properties": { - "formatted": { - "type": "string", - "description": "Formatted full name" - }, - "familyName": { - "type": "string", - "description": "Family name (last name)" - }, - "givenName": { - "type": "string", - "description": "Given name (first name)" - }, - "middleName": { - "type": "string", - "description": "Middle name" - }, - "honorificPrefix": { - "type": "string", - "description": "Honorific prefix (Mr., Ms., Dr.)" - }, - "honorificSuffix": { - "type": "string", - "description": "Honorific suffix (Jr., Sr.)" - } - }, - "additionalProperties": false - } + "SCIMName": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMPatchOperation.json b/packages/spec/json-schema/auth/SCIMPatchOperation.json index 5811cb70e..7f3cfd5c5 100644 --- a/packages/spec/json-schema/auth/SCIMPatchOperation.json +++ b/packages/spec/json-schema/auth/SCIMPatchOperation.json @@ -1,31 +1,7 @@ { "$ref": "#/definitions/SCIMPatchOperation", "definitions": { - "SCIMPatchOperation": { - "type": "object", - "properties": { - "op": { - "type": "string", - "enum": [ - "add", - "remove", - "replace" - ], - "description": "Operation type" - }, - "path": { - "type": "string", - "description": "Attribute path (optional for add)" - }, - "value": { - "description": "Value to set" - } - }, - "required": [ - "op" - ], - "additionalProperties": false - } + "SCIMPatchOperation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMPatchRequest.json b/packages/spec/json-schema/auth/SCIMPatchRequest.json index 7b18fa79c..bbfd0b731 100644 --- a/packages/spec/json-schema/auth/SCIMPatchRequest.json +++ b/packages/spec/json-schema/auth/SCIMPatchRequest.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/SCIMPatchRequest", "definitions": { - "SCIMPatchRequest": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "default": [ - "urn:ietf:params:scim:api:messages:2.0:PatchOp" - ], - "description": "SCIM schema URIs" - }, - "Operations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "op": { - "type": "string", - "enum": [ - "add", - "remove", - "replace" - ], - "description": "Operation type" - }, - "path": { - "type": "string", - "description": "Attribute path (optional for add)" - }, - "value": { - "description": "Value to set" - } - }, - "required": [ - "op" - ], - "additionalProperties": false - }, - "minItems": 1, - "description": "Patch operations" - } - }, - "required": [ - "Operations" - ], - "additionalProperties": false - } + "SCIMPatchRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMPhoneNumber.json b/packages/spec/json-schema/auth/SCIMPhoneNumber.json index 26ba30173..4d602c5ec 100644 --- a/packages/spec/json-schema/auth/SCIMPhoneNumber.json +++ b/packages/spec/json-schema/auth/SCIMPhoneNumber.json @@ -1,40 +1,7 @@ { "$ref": "#/definitions/SCIMPhoneNumber", "definitions": { - "SCIMPhoneNumber": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Phone number" - }, - "type": { - "type": "string", - "enum": [ - "work", - "home", - "mobile", - "fax", - "pager", - "other" - ], - "description": "Phone number type" - }, - "display": { - "type": "string", - "description": "Display label" - }, - "primary": { - "type": "boolean", - "default": false, - "description": "Primary phone indicator" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - } + "SCIMPhoneNumber": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SCIMUser.json b/packages/spec/json-schema/auth/SCIMUser.json index b348fdac2..be3a95be9 100644 --- a/packages/spec/json-schema/auth/SCIMUser.json +++ b/packages/spec/json-schema/auth/SCIMUser.json @@ -1,462 +1,7 @@ { "$ref": "#/definitions/SCIMUser", "definitions": { - "SCIMUser": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "default": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "description": "SCIM schema URIs (must include User schema)" - }, - "id": { - "type": "string", - "description": "Unique resource identifier" - }, - "externalId": { - "type": "string", - "description": "External identifier from client system" - }, - "userName": { - "type": "string", - "description": "Unique username (REQUIRED)" - }, - "name": { - "type": "object", - "properties": { - "formatted": { - "type": "string", - "description": "Formatted full name" - }, - "familyName": { - "type": "string", - "description": "Family name (last name)" - }, - "givenName": { - "type": "string", - "description": "Given name (first name)" - }, - "middleName": { - "type": "string", - "description": "Middle name" - }, - "honorificPrefix": { - "type": "string", - "description": "Honorific prefix (Mr., Ms., Dr.)" - }, - "honorificSuffix": { - "type": "string", - "description": "Honorific suffix (Jr., Sr.)" - } - }, - "additionalProperties": false, - "description": "Structured name components" - }, - "displayName": { - "type": "string", - "description": "Display name for UI" - }, - "nickName": { - "type": "string", - "description": "Nickname" - }, - "profileUrl": { - "type": "string", - "format": "uri", - "description": "Profile page URL" - }, - "title": { - "type": "string", - "description": "Job title" - }, - "userType": { - "type": "string", - "description": "User type (employee, contractor)" - }, - "preferredLanguage": { - "type": "string", - "description": "Preferred language (ISO 639-1)" - }, - "locale": { - "type": "string", - "description": "Locale (e.g., en-US)" - }, - "timezone": { - "type": "string", - "description": "Timezone" - }, - "active": { - "type": "boolean", - "default": true, - "description": "Account active status" - }, - "password": { - "type": "string", - "description": "Password (write-only)" - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "format": "email", - "description": "Email address" - }, - "type": { - "type": "string", - "enum": [ - "work", - "home", - "other" - ], - "description": "Email type" - }, - "display": { - "type": "string", - "description": "Display label" - }, - "primary": { - "type": "boolean", - "default": false, - "description": "Primary email indicator" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Email addresses" - }, - "phoneNumbers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Phone number" - }, - "type": { - "type": "string", - "enum": [ - "work", - "home", - "mobile", - "fax", - "pager", - "other" - ], - "description": "Phone number type" - }, - "display": { - "type": "string", - "description": "Display label" - }, - "primary": { - "type": "boolean", - "default": false, - "description": "Primary phone indicator" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Phone numbers" - }, - "ims": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "IM addresses" - }, - "photos": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "format": "uri" - }, - "type": { - "type": "string", - "enum": [ - "photo", - "thumbnail" - ] - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Photo URLs" - }, - "addresses": { - "type": "array", - "items": { - "type": "object", - "properties": { - "formatted": { - "type": "string", - "description": "Formatted address" - }, - "streetAddress": { - "type": "string", - "description": "Street address" - }, - "locality": { - "type": "string", - "description": "City/Locality" - }, - "region": { - "type": "string", - "description": "State/Region" - }, - "postalCode": { - "type": "string", - "description": "Postal code" - }, - "country": { - "type": "string", - "description": "Country" - }, - "type": { - "type": "string", - "enum": [ - "work", - "home", - "other" - ], - "description": "Address type" - }, - "primary": { - "type": "boolean", - "default": false, - "description": "Primary address indicator" - } - }, - "additionalProperties": false - }, - "description": "Physical addresses" - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Group ID" - }, - "$ref": { - "type": "string", - "format": "uri", - "description": "URI reference to the group" - }, - "display": { - "type": "string", - "description": "Group display name" - }, - "type": { - "type": "string", - "enum": [ - "direct", - "indirect" - ], - "description": "Membership type" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Group memberships" - }, - "entitlements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Entitlements" - }, - "roles": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "Roles" - }, - "x509Certificates": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - }, - "description": "X509 certificates" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "Resource type" - }, - "created": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "Last modification timestamp" - }, - "location": { - "type": "string", - "format": "uri", - "description": "Resource location URI" - }, - "version": { - "type": "string", - "description": "Entity tag (ETag) for concurrency control" - } - }, - "additionalProperties": false, - "description": "Resource metadata" - }, - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { - "type": "object", - "properties": { - "employeeNumber": { - "type": "string", - "description": "Employee number" - }, - "costCenter": { - "type": "string", - "description": "Cost center" - }, - "organization": { - "type": "string", - "description": "Organization" - }, - "division": { - "type": "string", - "description": "Division" - }, - "department": { - "type": "string", - "description": "Department" - }, - "manager": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Manager ID" - }, - "$ref": { - "type": "string", - "format": "uri", - "description": "Manager URI" - }, - "displayName": { - "type": "string", - "description": "Manager name" - } - }, - "required": [ - "value" - ], - "additionalProperties": false, - "description": "Manager reference" - } - }, - "additionalProperties": false, - "description": "Enterprise user attributes" - } - }, - "required": [ - "userName" - ], - "additionalProperties": false - } + "SCIMUser": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/Session.json b/packages/spec/json-schema/auth/Session.json index e936829e3..5a3aaa426 100644 --- a/packages/spec/json-schema/auth/Session.json +++ b/packages/spec/json-schema/auth/Session.json @@ -1,63 +1,7 @@ { "$ref": "#/definitions/Session", "definitions": { - "Session": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique session identifier" - }, - "sessionToken": { - "type": "string", - "description": "Session token" - }, - "userId": { - "type": "string", - "description": "Associated user ID" - }, - "activeOrganizationId": { - "type": "string", - "description": "Active organization ID for context switching" - }, - "expires": { - "type": "string", - "format": "date-time", - "description": "Session expiry timestamp" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Session creation timestamp" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - }, - "ipAddress": { - "type": "string", - "description": "IP address" - }, - "userAgent": { - "type": "string", - "description": "User agent string" - }, - "fingerprint": { - "type": "string", - "description": "Device fingerprint" - } - }, - "required": [ - "id", - "sessionToken", - "userId", - "expires", - "createdAt", - "updatedAt" - ], - "additionalProperties": false - } + "Session": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SessionConfig.json b/packages/spec/json-schema/auth/SessionConfig.json index a1d9b75bf..6913b5457 100644 --- a/packages/spec/json-schema/auth/SessionConfig.json +++ b/packages/spec/json-schema/auth/SessionConfig.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/SessionConfig", "definitions": { - "SessionConfig": { - "type": "object", - "properties": { - "expiresIn": { - "type": "number", - "default": 604800, - "description": "Session expiry in seconds (default 7 days)" - }, - "updateAge": { - "type": "number", - "default": 86400, - "description": "Session update interval in seconds (default 1 day)" - }, - "cookieName": { - "type": "string", - "default": "session_token", - "description": "Session cookie name" - }, - "cookieSecure": { - "type": "boolean", - "default": true, - "description": "Use secure cookies (HTTPS only)" - }, - "cookieSameSite": { - "type": "string", - "enum": [ - "strict", - "lax", - "none" - ], - "default": "lax", - "description": "SameSite cookie attribute" - }, - "cookieDomain": { - "type": "string", - "description": "Cookie domain" - }, - "cookiePath": { - "type": "string", - "default": "/", - "description": "Cookie path" - }, - "cookieHttpOnly": { - "type": "boolean", - "default": true, - "description": "HttpOnly cookie attribute" - } - }, - "additionalProperties": false - } + "SessionConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/SessionPolicy.json b/packages/spec/json-schema/auth/SessionPolicy.json index 80ddd1017..7a81b7b5d 100644 --- a/packages/spec/json-schema/auth/SessionPolicy.json +++ b/packages/spec/json-schema/auth/SessionPolicy.json @@ -1,27 +1,7 @@ { "$ref": "#/definitions/SessionPolicy", "definitions": { - "SessionPolicy": { - "type": "object", - "properties": { - "idleTimeout": { - "type": "number", - "default": 30, - "description": "Minutes before idle session logout" - }, - "absoluteTimeout": { - "type": "number", - "default": 480, - "description": "Max session duration (minutes)" - }, - "forceMfa": { - "type": "boolean", - "default": false, - "description": "Require 2FA for all users" - } - }, - "additionalProperties": false - } + "SessionPolicy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/StandardAuthProvider.json b/packages/spec/json-schema/auth/StandardAuthProvider.json index 81573d8a7..8bfab3366 100644 --- a/packages/spec/json-schema/auth/StandardAuthProvider.json +++ b/packages/spec/json-schema/auth/StandardAuthProvider.json @@ -1,857 +1,7 @@ { "$ref": "#/definitions/StandardAuthProvider", "definitions": { - "StandardAuthProvider": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "standard_auth", - "description": "Provider type identifier" - }, - "config": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Configuration name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "driver": { - "type": "string", - "default": "better-auth", - "description": "The underlying authentication implementation driver" - }, - "strategies": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "email_password", - "magic_link", - "oauth", - "passkey", - "otp", - "anonymous" - ] - }, - "minItems": 1, - "description": "Enabled authentication strategies" - }, - "baseUrl": { - "type": "string", - "format": "uri", - "description": "Application base URL" - }, - "secret": { - "type": "string", - "minLength": 32, - "description": "Secret key for signing (min 32 chars)" - }, - "emailPassword": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "requireEmailVerification": { - "type": "boolean", - "default": true, - "description": "Require email verification before login" - }, - "minPasswordLength": { - "type": "number", - "minimum": 6, - "maximum": 128, - "default": 8, - "description": "Minimum password length" - }, - "requirePasswordComplexity": { - "type": "boolean", - "default": true, - "description": "Require uppercase, lowercase, numbers, symbols" - }, - "allowPasswordReset": { - "type": "boolean", - "default": true, - "description": "Enable password reset functionality" - }, - "passwordResetExpiry": { - "type": "number", - "default": 3600, - "description": "Password reset token expiry in seconds" - } - }, - "additionalProperties": false - }, - "magicLink": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "expiryTime": { - "type": "number", - "default": 900, - "description": "Magic link expiry time in seconds (default 15 min)" - } - }, - "additionalProperties": false - }, - "passkey": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "rpName": { - "type": "string", - "description": "Relying Party name" - }, - "rpId": { - "type": "string", - "description": "Relying Party ID (defaults to domain)" - }, - "allowedOrigins": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - }, - "description": "Allowed origins for WebAuthn" - }, - "userVerification": { - "type": "string", - "enum": [ - "required", - "preferred", - "discouraged" - ], - "default": "preferred" - }, - "attestation": { - "type": "string", - "enum": [ - "none", - "indirect", - "direct", - "enterprise" - ], - "default": "none" - } - }, - "required": [ - "rpName" - ], - "additionalProperties": false - }, - "oauth": { - "type": "object", - "properties": { - "providers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "google", - "github", - "facebook", - "twitter", - "linkedin", - "microsoft", - "apple", - "discord", - "gitlab", - "custom" - ], - "description": "OAuth provider type" - }, - "clientId": { - "type": "string", - "description": "OAuth client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth callback URL" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Whether this provider is enabled" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "provider", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - "minItems": 1 - } - }, - "required": [ - "providers" - ], - "additionalProperties": false - }, - "session": { - "type": "object", - "properties": { - "expiresIn": { - "type": "number", - "default": 604800, - "description": "Session expiry in seconds (default 7 days)" - }, - "updateAge": { - "type": "number", - "default": 86400, - "description": "Session update interval in seconds (default 1 day)" - }, - "cookieName": { - "type": "string", - "default": "session_token", - "description": "Session cookie name" - }, - "cookieSecure": { - "type": "boolean", - "default": true, - "description": "Use secure cookies (HTTPS only)" - }, - "cookieSameSite": { - "type": "string", - "enum": [ - "strict", - "lax", - "none" - ], - "default": "lax", - "description": "SameSite cookie attribute" - }, - "cookieDomain": { - "type": "string", - "description": "Cookie domain" - }, - "cookiePath": { - "type": "string", - "default": "/", - "description": "Cookie path" - }, - "cookieHttpOnly": { - "type": "boolean", - "default": true, - "description": "HttpOnly cookie attribute" - } - }, - "additionalProperties": false, - "default": {} - }, - "rateLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "maxAttempts": { - "type": "number", - "default": 5, - "description": "Maximum login attempts" - }, - "windowMs": { - "type": "number", - "default": 900000, - "description": "Time window in milliseconds (default 15 min)" - }, - "blockDuration": { - "type": "number", - "default": 900000, - "description": "Block duration after max attempts in ms" - }, - "skipSuccessfulRequests": { - "type": "boolean", - "default": false, - "description": "Only count failed requests" - } - }, - "additionalProperties": false, - "default": {} - }, - "csrf": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "tokenLength": { - "type": "number", - "default": 32, - "description": "CSRF token length" - }, - "cookieName": { - "type": "string", - "default": "csrf_token", - "description": "CSRF cookie name" - }, - "headerName": { - "type": "string", - "default": "X-CSRF-Token", - "description": "CSRF header name" - } - }, - "additionalProperties": false, - "default": {} - }, - "accountLinking": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Allow account linking" - }, - "autoLink": { - "type": "boolean", - "default": false, - "description": "Automatically link accounts with same email" - }, - "requireVerification": { - "type": "boolean", - "default": true, - "description": "Require email verification before linking" - } - }, - "additionalProperties": false, - "default": {} - }, - "twoFactor": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "issuer": { - "type": "string", - "description": "TOTP issuer name" - }, - "qrCodeSize": { - "type": "number", - "default": 200, - "description": "QR code size in pixels" - }, - "backupCodes": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "count": { - "type": "number", - "default": 10, - "description": "Number of backup codes to generate" - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "organization": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable organization/multi-tenant features" - }, - "allowUserToCreateOrg": { - "type": "boolean", - "default": true, - "description": "Allow users to create organizations" - }, - "defaultRole": { - "type": "string", - "default": "member", - "description": "Default role for new members" - }, - "creatorRole": { - "type": "string", - "default": "owner", - "description": "Role assigned to organization creator" - } - }, - "additionalProperties": false, - "description": "Organization/multi-tenant configuration" - }, - "enterprise": { - "type": "object", - "properties": { - "oidc": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "issuer": { - "type": "string", - "format": "uri", - "description": "OIDC Issuer URL (.well-known/openid-configuration)" - }, - "clientId": { - "type": "string", - "description": "OIDC client ID" - }, - "clientSecret": { - "type": "string", - "description": "OIDC client secret" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "openid", - "profile", - "email" - ], - "description": "OIDC scopes" - }, - "attributeMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map IdP claims to User fields" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "issuer", - "clientId", - "clientSecret" - ], - "additionalProperties": false, - "description": "OpenID Connect configuration" - }, - "saml": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "IdP SSO URL" - }, - "cert": { - "type": "string", - "description": "IdP Public Certificate (PEM format)" - }, - "issuer": { - "type": "string", - "description": "Entity ID of the IdP" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha256", - "sha512" - ], - "default": "sha256", - "description": "Signature algorithm" - }, - "attributeMapping": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map SAML attributes to User fields" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "entryPoint", - "cert", - "issuer" - ], - "additionalProperties": false, - "description": "SAML 2.0 configuration" - }, - "ldap": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "url": { - "type": "string", - "format": "uri", - "description": "LDAP Server URL (ldap:// or ldaps://)" - }, - "bindDn": { - "type": "string", - "description": "Bind DN for LDAP authentication" - }, - "bindCredentials": { - "type": "string", - "description": "Bind credentials" - }, - "searchBase": { - "type": "string", - "description": "Search base DN" - }, - "searchFilter": { - "type": "string", - "description": "Search filter" - }, - "groupSearchBase": { - "type": "string", - "description": "Group search base DN" - }, - "displayName": { - "type": "string", - "description": "Display name for the provider button" - }, - "icon": { - "type": "string", - "description": "Icon URL or identifier" - } - }, - "required": [ - "url", - "bindDn", - "bindCredentials", - "searchBase", - "searchFilter" - ], - "additionalProperties": false, - "description": "LDAP/Active Directory configuration" - } - }, - "additionalProperties": false - }, - "userFieldMapping": { - "type": "object", - "properties": { - "id": { - "type": "string", - "default": "id", - "description": "User ID field" - }, - "email": { - "type": "string", - "default": "email", - "description": "Email field" - }, - "name": { - "type": "string", - "default": "name", - "description": "Name field" - }, - "image": { - "type": "string", - "default": "image", - "description": "Profile image field" - }, - "emailVerified": { - "type": "string", - "default": "email_verified", - "description": "Email verification status field" - }, - "createdAt": { - "type": "string", - "default": "created_at", - "description": "Created timestamp field" - }, - "updatedAt": { - "type": "string", - "default": "updated_at", - "description": "Updated timestamp field" - } - }, - "additionalProperties": false, - "default": {} - }, - "database": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "prisma", - "drizzle", - "kysely", - "custom" - ], - "description": "Database adapter type" - }, - "connectionString": { - "type": "string", - "description": "Database connection string" - }, - "tablePrefix": { - "type": "string", - "default": "auth_", - "description": "Prefix for auth tables" - }, - "schema": { - "type": "string", - "description": "Database schema name" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "mapping": { - "type": "object", - "properties": { - "user": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "User field mapping (e.g., { \"emailVerified\": \"email_verified\" })" - }, - "session": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "default": { - "sessionToken": "token", - "expires": "expiresAt" - }, - "description": "Session field mapping" - }, - "account": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "default": { - "providerAccountId": "accountId", - "provider": "providerId" - }, - "description": "Account field mapping" - }, - "verificationToken": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "VerificationToken field mapping" - } - }, - "additionalProperties": false - }, - "plugins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Plugin name" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "options": { - "type": "object", - "additionalProperties": {}, - "description": "Plugin-specific options" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "default": [] - }, - "hooks": { - "type": "object", - "properties": {}, - "additionalProperties": false, - "description": "Authentication lifecycle hooks" - }, - "security": { - "type": "object", - "properties": { - "allowedOrigins": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS allowed origins" - }, - "trustProxy": { - "type": "boolean", - "default": false, - "description": "Trust proxy headers" - }, - "ipRateLimiting": { - "type": "boolean", - "default": true, - "description": "Enable IP-based rate limiting" - }, - "sessionFingerprinting": { - "type": "boolean", - "default": true, - "description": "Enable session fingerprinting" - }, - "maxSessions": { - "type": "number", - "default": 5, - "description": "Maximum concurrent sessions per user" - } - }, - "additionalProperties": false, - "description": "Advanced security settings" - }, - "email": { - "type": "object", - "properties": { - "from": { - "type": "string", - "format": "email", - "description": "From email address" - }, - "fromName": { - "type": "string", - "description": "From name" - }, - "provider": { - "type": "string", - "enum": [ - "smtp", - "sendgrid", - "mailgun", - "ses", - "resend", - "custom" - ], - "description": "Email provider" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Provider-specific configuration" - } - }, - "required": [ - "from", - "provider" - ], - "additionalProperties": false, - "description": "Email configuration" - }, - "ui": { - "type": "object", - "properties": { - "brandName": { - "type": "string", - "description": "Brand name displayed in auth UI" - }, - "logo": { - "type": "string", - "description": "Logo URL" - }, - "primaryColor": { - "type": "string", - "description": "Primary brand color (hex)" - }, - "customCss": { - "type": "string", - "description": "Custom CSS for auth pages" - } - }, - "additionalProperties": false, - "description": "UI customization" - }, - "active": { - "type": "boolean", - "default": true, - "description": "Whether this provider is active" - }, - "allowRegistration": { - "type": "boolean", - "default": true, - "description": "Allow new user registration" - } - }, - "required": [ - "name", - "label", - "strategies", - "baseUrl", - "secret" - ], - "additionalProperties": false, - "description": "Standard authentication configuration" - } - }, - "required": [ - "type", - "config" - ], - "additionalProperties": false - } + "StandardAuthProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/TwoFactorConfig.json b/packages/spec/json-schema/auth/TwoFactorConfig.json index 488c80a3b..dba5c16b3 100644 --- a/packages/spec/json-schema/auth/TwoFactorConfig.json +++ b/packages/spec/json-schema/auth/TwoFactorConfig.json @@ -1,40 +1,7 @@ { "$ref": "#/definitions/TwoFactorConfig", "definitions": { - "TwoFactorConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "issuer": { - "type": "string", - "description": "TOTP issuer name" - }, - "qrCodeSize": { - "type": "number", - "default": 200, - "description": "QR code size in pixels" - }, - "backupCodes": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "count": { - "type": "number", - "default": 10, - "description": "Number of backup codes to generate" - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } + "TwoFactorConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/User.json b/packages/spec/json-schema/auth/User.json index dd3048079..0f8e7ca69 100644 --- a/packages/spec/json-schema/auth/User.json +++ b/packages/spec/json-schema/auth/User.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/User", "definitions": { - "User": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique user identifier" - }, - "email": { - "type": "string", - "format": "email", - "description": "User email address" - }, - "emailVerified": { - "type": "boolean", - "default": false, - "description": "Whether email is verified" - }, - "name": { - "type": "string", - "description": "User display name" - }, - "image": { - "type": "string", - "format": "uri", - "description": "Profile image URL" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Account creation timestamp" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "Last update timestamp" - } - }, - "required": [ - "id", - "email", - "createdAt", - "updatedAt" - ], - "additionalProperties": false - } + "User": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/UserFieldMapping.json b/packages/spec/json-schema/auth/UserFieldMapping.json index a07a8458c..109733121 100644 --- a/packages/spec/json-schema/auth/UserFieldMapping.json +++ b/packages/spec/json-schema/auth/UserFieldMapping.json @@ -1,47 +1,7 @@ { "$ref": "#/definitions/UserFieldMapping", "definitions": { - "UserFieldMapping": { - "type": "object", - "properties": { - "id": { - "type": "string", - "default": "id", - "description": "User ID field" - }, - "email": { - "type": "string", - "default": "email", - "description": "Email field" - }, - "name": { - "type": "string", - "default": "name", - "description": "Name field" - }, - "image": { - "type": "string", - "default": "image", - "description": "Profile image field" - }, - "emailVerified": { - "type": "string", - "default": "email_verified", - "description": "Email verification status field" - }, - "createdAt": { - "type": "string", - "default": "created_at", - "description": "Created timestamp field" - }, - "updatedAt": { - "type": "string", - "default": "updated_at", - "description": "Updated timestamp field" - } - }, - "additionalProperties": false - } + "UserFieldMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/auth/VerificationToken.json b/packages/spec/json-schema/auth/VerificationToken.json index 8e40199c8..217325cf0 100644 --- a/packages/spec/json-schema/auth/VerificationToken.json +++ b/packages/spec/json-schema/auth/VerificationToken.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/VerificationToken", "definitions": { - "VerificationToken": { - "type": "object", - "properties": { - "identifier": { - "type": "string", - "description": "Token identifier (email or phone)" - }, - "token": { - "type": "string", - "description": "Verification token" - }, - "expires": { - "type": "string", - "format": "date-time", - "description": "Token expiry timestamp" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Token creation timestamp" - } - }, - "required": [ - "identifier", - "token", - "expires", - "createdAt" - ], - "additionalProperties": false - } + "VerificationToken": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ApprovalAction.json b/packages/spec/json-schema/automation/ApprovalAction.json index edc92daa5..d026f7bfd 100644 --- a/packages/spec/json-schema/automation/ApprovalAction.json +++ b/packages/spec/json-schema/automation/ApprovalAction.json @@ -1,35 +1,7 @@ { "$ref": "#/definitions/ApprovalAction", "definitions": { - "ApprovalAction": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "email_alert", - "webhook", - "script" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action configuration" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - } + "ApprovalAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ApprovalActionType.json b/packages/spec/json-schema/automation/ApprovalActionType.json index 0354a7db8..f6709da00 100644 --- a/packages/spec/json-schema/automation/ApprovalActionType.json +++ b/packages/spec/json-schema/automation/ApprovalActionType.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/ApprovalActionType", "definitions": { - "ApprovalActionType": { - "type": "string", - "enum": [ - "field_update", - "email_alert", - "webhook", - "script" - ] - } + "ApprovalActionType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ApprovalProcess.json b/packages/spec/json-schema/automation/ApprovalProcess.json index 003fb2c5d..e48e41e86 100644 --- a/packages/spec/json-schema/automation/ApprovalProcess.json +++ b/packages/spec/json-schema/automation/ApprovalProcess.json @@ -1,326 +1,7 @@ { "$ref": "#/definitions/ApprovalProcess", "definitions": { - "ApprovalProcess": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique process name" - }, - "label": { - "type": "string", - "description": "Human readable label" - }, - "object": { - "type": "string", - "description": "Target Object Name" - }, - "active": { - "type": "boolean", - "default": false - }, - "description": { - "type": "string" - }, - "entryCriteria": { - "type": "string", - "description": "Formula to allow submission" - }, - "lockRecord": { - "type": "boolean", - "default": true, - "description": "Lock record from editing during approval" - }, - "steps": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Step machine name" - }, - "label": { - "type": "string", - "description": "Step display label" - }, - "description": { - "type": "string" - }, - "entryCriteria": { - "type": "string", - "description": "Formula expression to enter this step" - }, - "approvers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "user", - "role", - "manager", - "field", - "queue" - ] - }, - "value": { - "type": "string", - "description": "User ID, Role Name, or Field Name" - } - }, - "required": [ - "type", - "value" - ], - "additionalProperties": false - }, - "minItems": 1, - "description": "List of allowed approvers" - }, - "behavior": { - "type": "string", - "enum": [ - "first_response", - "unanimous" - ], - "default": "first_response", - "description": "How to handle multiple approvers" - }, - "rejectionBehavior": { - "type": "string", - "enum": [ - "reject_process", - "back_to_previous" - ], - "default": "reject_process", - "description": "What happens if rejected" - }, - "onApprove": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "email_alert", - "webhook", - "script" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action configuration" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - }, - "description": "Actions on step approval" - }, - "onReject": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "email_alert", - "webhook", - "script" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action configuration" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - }, - "description": "Actions on step rejection" - } - }, - "required": [ - "name", - "label", - "approvers" - ], - "additionalProperties": false - }, - "minItems": 1, - "description": "Sequence of approval steps" - }, - "onSubmit": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "email_alert", - "webhook", - "script" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action configuration" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - }, - "description": "Actions on initial submission" - }, - "onFinalApprove": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "email_alert", - "webhook", - "script" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action configuration" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - }, - "description": "Actions on final approval" - }, - "onFinalReject": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "email_alert", - "webhook", - "script" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action configuration" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - }, - "description": "Actions on final rejection" - }, - "onRecall": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "email_alert", - "webhook", - "script" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action configuration" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - }, - "description": "Actions on recall" - } - }, - "required": [ - "name", - "label", - "object", - "steps" - ], - "additionalProperties": false - } + "ApprovalProcess": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ApprovalStep.json b/packages/spec/json-schema/automation/ApprovalStep.json index c94842166..8792fd2be 100644 --- a/packages/spec/json-schema/automation/ApprovalStep.json +++ b/packages/spec/json-schema/automation/ApprovalStep.json @@ -1,147 +1,7 @@ { "$ref": "#/definitions/ApprovalStep", "definitions": { - "ApprovalStep": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Step machine name" - }, - "label": { - "type": "string", - "description": "Step display label" - }, - "description": { - "type": "string" - }, - "entryCriteria": { - "type": "string", - "description": "Formula expression to enter this step" - }, - "approvers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "user", - "role", - "manager", - "field", - "queue" - ] - }, - "value": { - "type": "string", - "description": "User ID, Role Name, or Field Name" - } - }, - "required": [ - "type", - "value" - ], - "additionalProperties": false - }, - "minItems": 1, - "description": "List of allowed approvers" - }, - "behavior": { - "type": "string", - "enum": [ - "first_response", - "unanimous" - ], - "default": "first_response", - "description": "How to handle multiple approvers" - }, - "rejectionBehavior": { - "type": "string", - "enum": [ - "reject_process", - "back_to_previous" - ], - "default": "reject_process", - "description": "What happens if rejected" - }, - "onApprove": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "email_alert", - "webhook", - "script" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action configuration" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - }, - "description": "Actions on step approval" - }, - "onReject": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "field_update", - "email_alert", - "webhook", - "script" - ] - }, - "name": { - "type": "string", - "description": "Action name" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Action configuration" - } - }, - "required": [ - "type", - "name", - "config" - ], - "additionalProperties": false - }, - "description": "Actions on step rejection" - } - }, - "required": [ - "name", - "label", - "approvers" - ], - "additionalProperties": false - } + "ApprovalStep": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ApproverType.json b/packages/spec/json-schema/automation/ApproverType.json index db69097a9..cb9ad80f6 100644 --- a/packages/spec/json-schema/automation/ApproverType.json +++ b/packages/spec/json-schema/automation/ApproverType.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/ApproverType", "definitions": { - "ApproverType": { - "type": "string", - "enum": [ - "user", - "role", - "manager", - "field", - "queue" - ] - } + "ApproverType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/AuthField.json b/packages/spec/json-schema/automation/AuthField.json index 91298c65e..52024b914 100644 --- a/packages/spec/json-schema/automation/AuthField.json +++ b/packages/spec/json-schema/automation/AuthField.json @@ -1,73 +1,7 @@ { "$ref": "#/definitions/AuthField", "definitions": { - "AuthField": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Field label" - }, - "type": { - "type": "string", - "enum": [ - "text", - "password", - "url", - "select" - ], - "default": "text", - "description": "Field type" - }, - "description": { - "type": "string", - "description": "Field description" - }, - "required": { - "type": "boolean", - "default": true, - "description": "Required field" - }, - "default": { - "type": "string", - "description": "Default value" - }, - "options": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "additionalProperties": false - }, - "description": "Select field options" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false - } + "AuthField": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/Authentication.json b/packages/spec/json-schema/automation/Authentication.json index 17d42d70e..1832607c0 100644 --- a/packages/spec/json-schema/automation/Authentication.json +++ b/packages/spec/json-schema/automation/Authentication.json @@ -1,159 +1,7 @@ { "$ref": "#/definitions/Authentication", "definitions": { - "Authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "apiKey", - "basic", - "bearer", - "oauth1", - "oauth2", - "custom" - ], - "description": "Authentication type" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Field label" - }, - "type": { - "type": "string", - "enum": [ - "text", - "password", - "url", - "select" - ], - "default": "text", - "description": "Field type" - }, - "description": { - "type": "string", - "description": "Field description" - }, - "required": { - "type": "boolean", - "default": true, - "description": "Required field" - }, - "default": { - "type": "string", - "description": "Default value" - }, - "options": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "additionalProperties": false - }, - "description": "Select field options" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false - }, - "description": "Authentication fields" - }, - "oauth2": { - "type": "object", - "properties": { - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "Authorization endpoint URL" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "Token endpoint URL" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "OAuth scopes" - }, - "clientIdField": { - "type": "string", - "default": "client_id", - "description": "Client ID field name" - }, - "clientSecretField": { - "type": "string", - "default": "client_secret", - "description": "Client secret field name" - } - }, - "required": [ - "authorizationUrl", - "tokenUrl" - ], - "additionalProperties": false, - "description": "OAuth 2.0 configuration" - }, - "test": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "Test endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - } - }, - "additionalProperties": false, - "description": "Authentication test configuration" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "Authentication": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/AuthenticationType.json b/packages/spec/json-schema/automation/AuthenticationType.json index 60595f245..d23c83fc5 100644 --- a/packages/spec/json-schema/automation/AuthenticationType.json +++ b/packages/spec/json-schema/automation/AuthenticationType.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/AuthenticationType", "definitions": { - "AuthenticationType": { - "type": "string", - "enum": [ - "none", - "apiKey", - "basic", - "bearer", - "oauth1", - "oauth2", - "custom" - ] - } + "AuthenticationType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ConflictResolution.json b/packages/spec/json-schema/automation/ConflictResolution.json index f226c2ab6..f9dc048f1 100644 --- a/packages/spec/json-schema/automation/ConflictResolution.json +++ b/packages/spec/json-schema/automation/ConflictResolution.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/ConflictResolution", "definitions": { - "ConflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "destination_wins", - "latest_wins", - "manual", - "merge" - ] - } + "ConflictResolution": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/Connector.json b/packages/spec/json-schema/automation/Connector.json index 656548248..ced18f454 100644 --- a/packages/spec/json-schema/automation/Connector.json +++ b/packages/spec/json-schema/automation/Connector.json @@ -1,440 +1,7 @@ { "$ref": "#/definitions/Connector", "definitions": { - "Connector": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Connector ID (snake_case)" - }, - "name": { - "type": "string", - "description": "Connector name" - }, - "description": { - "type": "string", - "description": "Connector description" - }, - "version": { - "type": "string", - "description": "Connector version" - }, - "icon": { - "type": "string", - "description": "Connector icon" - }, - "category": { - "type": "string", - "enum": [ - "crm", - "payment", - "communication", - "storage", - "analytics", - "database", - "marketing", - "accounting", - "hr", - "productivity", - "ecommerce", - "support", - "devtools", - "social", - "other" - ], - "description": "Connector category" - }, - "baseUrl": { - "type": "string", - "format": "uri", - "description": "API base URL" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "apiKey", - "basic", - "bearer", - "oauth1", - "oauth2", - "custom" - ], - "description": "Authentication type" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Field label" - }, - "type": { - "type": "string", - "enum": [ - "text", - "password", - "url", - "select" - ], - "default": "text", - "description": "Field type" - }, - "description": { - "type": "string", - "description": "Field description" - }, - "required": { - "type": "boolean", - "default": true, - "description": "Required field" - }, - "default": { - "type": "string", - "description": "Default value" - }, - "options": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "additionalProperties": false - }, - "description": "Select field options" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false - }, - "description": "Authentication fields" - }, - "oauth2": { - "type": "object", - "properties": { - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "Authorization endpoint URL" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "Token endpoint URL" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "OAuth scopes" - }, - "clientIdField": { - "type": "string", - "default": "client_id", - "description": "Client ID field name" - }, - "clientSecretField": { - "type": "string", - "default": "client_secret", - "description": "Client secret field name" - } - }, - "required": [ - "authorizationUrl", - "tokenUrl" - ], - "additionalProperties": false, - "description": "OAuth 2.0 configuration" - }, - "test": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "Test endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - } - }, - "additionalProperties": false, - "description": "Authentication test configuration" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication config" - }, - "operations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Operation ID (snake_case)" - }, - "name": { - "type": "string", - "description": "Operation name" - }, - "description": { - "type": "string", - "description": "Operation description" - }, - "type": { - "type": "string", - "enum": [ - "read", - "write", - "delete", - "search", - "trigger", - "action" - ], - "description": "Operation type" - }, - "inputSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Parameter name" - }, - "label": { - "type": "string", - "description": "Parameter label" - }, - "description": { - "type": "string", - "description": "Parameter description" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "date", - "file" - ], - "description": "Parameter type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Required parameter" - }, - "default": { - "description": "Default value" - }, - "validation": { - "type": "object", - "additionalProperties": {}, - "description": "Validation rules" - }, - "dynamicOptions": { - "type": "string", - "description": "Function to load dynamic options" - } - }, - "required": [ - "name", - "label", - "type" - ], - "additionalProperties": false - }, - "description": "Input parameters" - }, - "outputSchema": { - "type": "object", - "additionalProperties": {}, - "description": "Output schema" - }, - "sampleOutput": { - "description": "Sample output" - }, - "supportsPagination": { - "type": "boolean", - "default": false, - "description": "Supports pagination" - }, - "supportsFiltering": { - "type": "boolean", - "default": false, - "description": "Supports filtering" - } - }, - "required": [ - "id", - "name", - "type" - ], - "additionalProperties": false - }, - "description": "Connector operations" - }, - "triggers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Trigger ID (snake_case)" - }, - "name": { - "type": "string", - "description": "Trigger name" - }, - "description": { - "type": "string", - "description": "Trigger description" - }, - "type": { - "type": "string", - "enum": [ - "webhook", - "polling", - "stream" - ], - "description": "Trigger mechanism" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Trigger configuration" - }, - "outputSchema": { - "type": "object", - "additionalProperties": {}, - "description": "Event payload schema" - }, - "pollingIntervalMs": { - "type": "integer", - "minimum": 1000, - "description": "Polling interval in ms" - } - }, - "required": [ - "id", - "name", - "type" - ], - "additionalProperties": false - }, - "description": "Connector triggers" - }, - "rateLimit": { - "type": "object", - "properties": { - "requestsPerSecond": { - "type": "number", - "description": "Max requests per second" - }, - "requestsPerMinute": { - "type": "number", - "description": "Max requests per minute" - }, - "requestsPerHour": { - "type": "number", - "description": "Max requests per hour" - } - }, - "additionalProperties": false, - "description": "Rate limiting" - }, - "author": { - "type": "string", - "description": "Connector author" - }, - "documentation": { - "type": "string", - "format": "uri", - "description": "Documentation URL" - }, - "homepage": { - "type": "string", - "format": "uri", - "description": "Homepage URL" - }, - "license": { - "type": "string", - "description": "License (SPDX identifier)" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Connector tags" - }, - "verified": { - "type": "boolean", - "default": false, - "description": "Verified connector" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom metadata" - } - }, - "required": [ - "id", - "name", - "category", - "authentication" - ], - "additionalProperties": false - } + "Connector": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ConnectorCategory.json b/packages/spec/json-schema/automation/ConnectorCategory.json index 2a0a05133..27a2d6cfa 100644 --- a/packages/spec/json-schema/automation/ConnectorCategory.json +++ b/packages/spec/json-schema/automation/ConnectorCategory.json @@ -1,26 +1,7 @@ { "$ref": "#/definitions/ConnectorCategory", "definitions": { - "ConnectorCategory": { - "type": "string", - "enum": [ - "crm", - "payment", - "communication", - "storage", - "analytics", - "database", - "marketing", - "accounting", - "hr", - "productivity", - "ecommerce", - "support", - "devtools", - "social", - "other" - ] - } + "ConnectorCategory": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ConnectorInstance.json b/packages/spec/json-schema/automation/ConnectorInstance.json index 673269632..0042f1a60 100644 --- a/packages/spec/json-schema/automation/ConnectorInstance.json +++ b/packages/spec/json-schema/automation/ConnectorInstance.json @@ -1,69 +1,7 @@ { "$ref": "#/definitions/ConnectorInstance", "definitions": { - "ConnectorInstance": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Instance ID" - }, - "connectorId": { - "type": "string", - "description": "Connector ID" - }, - "name": { - "type": "string", - "description": "Instance name" - }, - "description": { - "type": "string", - "description": "Instance description" - }, - "credentials": { - "type": "object", - "additionalProperties": {}, - "description": "Encrypted credentials" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Additional config" - }, - "active": { - "type": "boolean", - "default": true, - "description": "Instance active status" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Creation time" - }, - "lastTestedAt": { - "type": "string", - "format": "date-time", - "description": "Last test time" - }, - "testStatus": { - "type": "string", - "enum": [ - "unknown", - "success", - "failed" - ], - "default": "unknown", - "description": "Connection test status" - } - }, - "required": [ - "id", - "connectorId", - "name", - "credentials" - ], - "additionalProperties": false - } + "ConnectorInstance": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ConnectorOperation.json b/packages/spec/json-schema/automation/ConnectorOperation.json index cef67b124..928f67876 100644 --- a/packages/spec/json-schema/automation/ConnectorOperation.json +++ b/packages/spec/json-schema/automation/ConnectorOperation.json @@ -1,117 +1,7 @@ { "$ref": "#/definitions/ConnectorOperation", "definitions": { - "ConnectorOperation": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Operation ID (snake_case)" - }, - "name": { - "type": "string", - "description": "Operation name" - }, - "description": { - "type": "string", - "description": "Operation description" - }, - "type": { - "type": "string", - "enum": [ - "read", - "write", - "delete", - "search", - "trigger", - "action" - ], - "description": "Operation type" - }, - "inputSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Parameter name" - }, - "label": { - "type": "string", - "description": "Parameter label" - }, - "description": { - "type": "string", - "description": "Parameter description" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "date", - "file" - ], - "description": "Parameter type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Required parameter" - }, - "default": { - "description": "Default value" - }, - "validation": { - "type": "object", - "additionalProperties": {}, - "description": "Validation rules" - }, - "dynamicOptions": { - "type": "string", - "description": "Function to load dynamic options" - } - }, - "required": [ - "name", - "label", - "type" - ], - "additionalProperties": false - }, - "description": "Input parameters" - }, - "outputSchema": { - "type": "object", - "additionalProperties": {}, - "description": "Output schema" - }, - "sampleOutput": { - "description": "Sample output" - }, - "supportsPagination": { - "type": "boolean", - "default": false, - "description": "Supports pagination" - }, - "supportsFiltering": { - "type": "boolean", - "default": false, - "description": "Supports filtering" - } - }, - "required": [ - "id", - "name", - "type" - ], - "additionalProperties": false - } + "ConnectorOperation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ConnectorTrigger.json b/packages/spec/json-schema/automation/ConnectorTrigger.json index 72cfcae43..085c90b09 100644 --- a/packages/spec/json-schema/automation/ConnectorTrigger.json +++ b/packages/spec/json-schema/automation/ConnectorTrigger.json @@ -1,54 +1,7 @@ { "$ref": "#/definitions/ConnectorTrigger", "definitions": { - "ConnectorTrigger": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Trigger ID (snake_case)" - }, - "name": { - "type": "string", - "description": "Trigger name" - }, - "description": { - "type": "string", - "description": "Trigger description" - }, - "type": { - "type": "string", - "enum": [ - "webhook", - "polling", - "stream" - ], - "description": "Trigger mechanism" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Trigger configuration" - }, - "outputSchema": { - "type": "object", - "additionalProperties": {}, - "description": "Event payload schema" - }, - "pollingIntervalMs": { - "type": "integer", - "minimum": 1000, - "description": "Polling interval in ms" - } - }, - "required": [ - "id", - "name", - "type" - ], - "additionalProperties": false - } + "ConnectorTrigger": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/CustomScriptAction.json b/packages/spec/json-schema/automation/CustomScriptAction.json index 09b9eacb5..85fd62b24 100644 --- a/packages/spec/json-schema/automation/CustomScriptAction.json +++ b/packages/spec/json-schema/automation/CustomScriptAction.json @@ -1,49 +1,7 @@ { "$ref": "#/definitions/CustomScriptAction", "definitions": { - "CustomScriptAction": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "custom_script" - }, - "language": { - "type": "string", - "enum": [ - "javascript", - "typescript", - "python" - ], - "default": "javascript", - "description": "Script language" - }, - "code": { - "type": "string", - "description": "Script code to execute" - }, - "timeout": { - "type": "number", - "default": 30000, - "description": "Execution timeout in milliseconds" - }, - "context": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context variables" - } - }, - "required": [ - "name", - "type", - "code" - ], - "additionalProperties": false - } + "CustomScriptAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/DataDestinationConfig.json b/packages/spec/json-schema/automation/DataDestinationConfig.json index ce5347240..086678102 100644 --- a/packages/spec/json-schema/automation/DataDestinationConfig.json +++ b/packages/spec/json-schema/automation/DataDestinationConfig.json @@ -1,195 +1,7 @@ { "$ref": "#/definitions/DataDestinationConfig", "definitions": { - "DataDestinationConfig": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "ObjectStack object name" - }, - "connectorInstanceId": { - "type": "string", - "description": "Connector instance ID" - }, - "operation": { - "type": "string", - "enum": [ - "insert", - "update", - "upsert", - "delete", - "sync" - ], - "description": "Sync operation" - }, - "mapping": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - } - } - ], - "description": "Field mappings" - }, - "externalResource": { - "type": "string", - "description": "External resource ID" - }, - "matchKey": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Match key fields" - } - }, - "required": [ - "operation" - ], - "additionalProperties": false - } + "DataDestinationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/DataSourceConfig.json b/packages/spec/json-schema/automation/DataSourceConfig.json index ae476c257..4d69d00d8 100644 --- a/packages/spec/json-schema/automation/DataSourceConfig.json +++ b/packages/spec/json-schema/automation/DataSourceConfig.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/DataSourceConfig", "definitions": { - "DataSourceConfig": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "ObjectStack object name" - }, - "filters": { - "description": "Filter conditions" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to sync" - }, - "connectorInstanceId": { - "type": "string", - "description": "Connector instance ID" - }, - "externalResource": { - "type": "string", - "description": "External resource ID" - } - }, - "additionalProperties": false - } + "DataSourceConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/DataSyncConfig.json b/packages/spec/json-schema/automation/DataSyncConfig.json index 01916fe06..5f6d0adde 100644 --- a/packages/spec/json-schema/automation/DataSyncConfig.json +++ b/packages/spec/json-schema/automation/DataSyncConfig.json @@ -1,461 +1,7 @@ { "$ref": "#/definitions/DataSyncConfig", "definitions": { - "DataSyncConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Sync configuration name (snake_case)" - }, - "label": { - "type": "string", - "description": "Sync display name" - }, - "description": { - "type": "string", - "description": "Sync description" - }, - "source": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "ObjectStack object name" - }, - "filters": { - "description": "Filter conditions" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to sync" - }, - "connectorInstanceId": { - "type": "string", - "description": "Connector instance ID" - }, - "externalResource": { - "type": "string", - "description": "External resource ID" - } - }, - "additionalProperties": false, - "description": "Data source" - }, - "destination": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "ObjectStack object name" - }, - "connectorInstanceId": { - "type": "string", - "description": "Connector instance ID" - }, - "operation": { - "type": "string", - "enum": [ - "insert", - "update", - "upsert", - "delete", - "sync" - ], - "description": "Sync operation" - }, - "mapping": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - } - } - ], - "description": "Field mappings" - }, - "externalResource": { - "type": "string", - "description": "External resource ID" - }, - "matchKey": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Match key fields" - } - }, - "required": [ - "operation" - ], - "additionalProperties": false, - "description": "Data destination" - }, - "direction": { - "type": "string", - "enum": [ - "push", - "pull", - "bidirectional" - ], - "default": "push", - "description": "Sync direction" - }, - "syncMode": { - "type": "string", - "enum": [ - "full", - "incremental", - "realtime" - ], - "default": "incremental", - "description": "Sync mode" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "destination_wins", - "latest_wins", - "manual", - "merge" - ], - "default": "latest_wins", - "description": "Conflict resolution" - }, - "schedule": { - "type": "string", - "description": "Cron schedule" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Sync enabled" - }, - "changeTrackingField": { - "type": "string", - "description": "Field for change tracking" - }, - "batchSize": { - "type": "integer", - "minimum": 1, - "maximum": 10000, - "default": 100, - "description": "Batch size for processing" - }, - "retry": { - "type": "object", - "properties": { - "maxAttempts": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Max retries" - }, - "backoffMs": { - "type": "integer", - "minimum": 0, - "default": 30000, - "description": "Backoff duration" - } - }, - "additionalProperties": false, - "description": "Retry configuration" - }, - "validation": { - "type": "object", - "properties": { - "required": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required fields" - }, - "unique": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Unique constraint fields" - }, - "custom": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "condition": { - "type": "string", - "description": "Validation condition" - }, - "message": { - "type": "string", - "description": "Error message" - } - }, - "required": [ - "name", - "condition", - "message" - ], - "additionalProperties": false - }, - "description": "Custom validation rules" - } - }, - "additionalProperties": false, - "description": "Validation rules" - }, - "errorHandling": { - "type": "object", - "properties": { - "onValidationError": { - "type": "string", - "enum": [ - "skip", - "fail", - "log" - ], - "default": "skip" - }, - "onSyncError": { - "type": "string", - "enum": [ - "skip", - "fail", - "retry" - ], - "default": "retry" - }, - "notifyOnError": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Email notifications" - } - }, - "additionalProperties": false, - "description": "Error handling" - }, - "optimization": { - "type": "object", - "properties": { - "parallelBatches": { - "type": "boolean", - "default": false, - "description": "Process batches in parallel" - }, - "cacheEnabled": { - "type": "boolean", - "default": true, - "description": "Enable caching" - }, - "compressionEnabled": { - "type": "boolean", - "default": false, - "description": "Enable compression" - } - }, - "additionalProperties": false, - "description": "Performance optimization" - }, - "audit": { - "type": "object", - "properties": { - "logLevel": { - "type": "string", - "enum": [ - "none", - "error", - "warn", - "info", - "debug" - ], - "default": "info" - }, - "retainLogsForDays": { - "type": "integer", - "minimum": 1, - "default": 30 - }, - "trackChanges": { - "type": "boolean", - "default": true, - "description": "Track all changes" - } - }, - "additionalProperties": false, - "description": "Audit configuration" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Sync tags" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom metadata" - } - }, - "required": [ - "name", - "source", - "destination" - ], - "additionalProperties": false - } + "DataSyncConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ETLDestination.json b/packages/spec/json-schema/automation/ETLDestination.json index 8a6c723ab..f7d8b55e5 100644 --- a/packages/spec/json-schema/automation/ETLDestination.json +++ b/packages/spec/json-schema/automation/ETLDestination.json @@ -1,57 +1,7 @@ { "$ref": "#/definitions/ETLDestination", "definitions": { - "ETLDestination": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "database", - "api", - "file", - "stream", - "object", - "warehouse", - "storage", - "spreadsheet" - ], - "description": "Destination type" - }, - "connector": { - "type": "string", - "description": "Connector ID" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Destination configuration" - }, - "writeMode": { - "type": "string", - "enum": [ - "append", - "overwrite", - "upsert", - "merge" - ], - "default": "append", - "description": "How to write data" - }, - "primaryKey": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Primary key fields" - } - }, - "required": [ - "type", - "config" - ], - "additionalProperties": false - } + "ETLDestination": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ETLEndpointType.json b/packages/spec/json-schema/automation/ETLEndpointType.json index e15fcebf2..392e90b32 100644 --- a/packages/spec/json-schema/automation/ETLEndpointType.json +++ b/packages/spec/json-schema/automation/ETLEndpointType.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/ETLEndpointType", "definitions": { - "ETLEndpointType": { - "type": "string", - "enum": [ - "database", - "api", - "file", - "stream", - "object", - "warehouse", - "storage", - "spreadsheet" - ] - } + "ETLEndpointType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ETLPipeline.json b/packages/spec/json-schema/automation/ETLPipeline.json index 1a46f6515..cad4c6e82 100644 --- a/packages/spec/json-schema/automation/ETLPipeline.json +++ b/packages/spec/json-schema/automation/ETLPipeline.json @@ -1,252 +1,7 @@ { "$ref": "#/definitions/ETLPipeline", "definitions": { - "ETLPipeline": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Pipeline identifier (snake_case)" - }, - "label": { - "type": "string", - "description": "Pipeline display name" - }, - "description": { - "type": "string", - "description": "Pipeline description" - }, - "source": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "database", - "api", - "file", - "stream", - "object", - "warehouse", - "storage", - "spreadsheet" - ], - "description": "Source type" - }, - "connector": { - "type": "string", - "description": "Connector ID" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Source configuration" - }, - "incremental": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "cursorField": { - "type": "string", - "description": "Field to track progress (e.g., updated_at)" - }, - "cursorValue": { - "description": "Last processed value" - } - }, - "required": [ - "cursorField" - ], - "additionalProperties": false, - "description": "Incremental extraction config" - } - }, - "required": [ - "type", - "config" - ], - "additionalProperties": false, - "description": "Data source" - }, - "destination": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "database", - "api", - "file", - "stream", - "object", - "warehouse", - "storage", - "spreadsheet" - ], - "description": "Destination type" - }, - "connector": { - "type": "string", - "description": "Connector ID" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Destination configuration" - }, - "writeMode": { - "type": "string", - "enum": [ - "append", - "overwrite", - "upsert", - "merge" - ], - "default": "append", - "description": "How to write data" - }, - "primaryKey": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Primary key fields" - } - }, - "required": [ - "type", - "config" - ], - "additionalProperties": false, - "description": "Data destination" - }, - "transformations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Transformation name" - }, - "type": { - "type": "string", - "enum": [ - "map", - "filter", - "aggregate", - "join", - "script", - "lookup", - "split", - "merge", - "normalize", - "deduplicate" - ], - "description": "Transformation type" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Transformation config" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "Continue on error" - } - }, - "required": [ - "type", - "config" - ], - "additionalProperties": false - }, - "description": "Transformation pipeline" - }, - "syncMode": { - "type": "string", - "enum": [ - "full", - "incremental", - "cdc" - ], - "default": "full", - "description": "Sync mode" - }, - "schedule": { - "type": "string", - "description": "Cron schedule expression" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Pipeline enabled status" - }, - "retry": { - "type": "object", - "properties": { - "maxAttempts": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Max retry attempts" - }, - "backoffMs": { - "type": "integer", - "minimum": 0, - "default": 60000, - "description": "Backoff in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry configuration" - }, - "notifications": { - "type": "object", - "properties": { - "onSuccess": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Email addresses for success notifications" - }, - "onFailure": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Email addresses for failure notifications" - } - }, - "additionalProperties": false, - "description": "Notification settings" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Pipeline tags" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom metadata" - } - }, - "required": [ - "name", - "source", - "destination" - ], - "additionalProperties": false - } + "ETLPipeline": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ETLPipelineRun.json b/packages/spec/json-schema/automation/ETLPipelineRun.json index 942fe9b7c..3100c211b 100644 --- a/packages/spec/json-schema/automation/ETLPipelineRun.json +++ b/packages/spec/json-schema/automation/ETLPipelineRun.json @@ -1,107 +1,7 @@ { "$ref": "#/definitions/ETLPipelineRun", "definitions": { - "ETLPipelineRun": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Run identifier" - }, - "pipelineName": { - "type": "string", - "description": "Pipeline name" - }, - "status": { - "type": "string", - "enum": [ - "pending", - "running", - "succeeded", - "failed", - "cancelled", - "timeout" - ], - "description": "Run status" - }, - "startedAt": { - "type": "string", - "format": "date-time", - "description": "Start time" - }, - "completedAt": { - "type": "string", - "format": "date-time", - "description": "Completion time" - }, - "durationMs": { - "type": "number", - "description": "Duration in ms" - }, - "stats": { - "type": "object", - "properties": { - "recordsRead": { - "type": "integer", - "default": 0, - "description": "Records extracted" - }, - "recordsWritten": { - "type": "integer", - "default": 0, - "description": "Records loaded" - }, - "recordsErrored": { - "type": "integer", - "default": 0, - "description": "Records with errors" - }, - "bytesProcessed": { - "type": "integer", - "default": 0, - "description": "Bytes processed" - } - }, - "additionalProperties": false, - "description": "Run statistics" - }, - "error": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "Error message" - }, - "code": { - "type": "string", - "description": "Error code" - }, - "details": { - "description": "Error details" - } - }, - "required": [ - "message" - ], - "additionalProperties": false, - "description": "Error information" - }, - "logs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Execution logs" - } - }, - "required": [ - "id", - "pipelineName", - "status", - "startedAt" - ], - "additionalProperties": false - } + "ETLPipelineRun": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ETLRunStatus.json b/packages/spec/json-schema/automation/ETLRunStatus.json index 0f0b18f2d..21a202a80 100644 --- a/packages/spec/json-schema/automation/ETLRunStatus.json +++ b/packages/spec/json-schema/automation/ETLRunStatus.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/ETLRunStatus", "definitions": { - "ETLRunStatus": { - "type": "string", - "enum": [ - "pending", - "running", - "succeeded", - "failed", - "cancelled", - "timeout" - ] - } + "ETLRunStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ETLSource.json b/packages/spec/json-schema/automation/ETLSource.json index b73529568..cfbf4d27e 100644 --- a/packages/spec/json-schema/automation/ETLSource.json +++ b/packages/spec/json-schema/automation/ETLSource.json @@ -1,60 +1,7 @@ { "$ref": "#/definitions/ETLSource", "definitions": { - "ETLSource": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "database", - "api", - "file", - "stream", - "object", - "warehouse", - "storage", - "spreadsheet" - ], - "description": "Source type" - }, - "connector": { - "type": "string", - "description": "Connector ID" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Source configuration" - }, - "incremental": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "cursorField": { - "type": "string", - "description": "Field to track progress (e.g., updated_at)" - }, - "cursorValue": { - "description": "Last processed value" - } - }, - "required": [ - "cursorField" - ], - "additionalProperties": false, - "description": "Incremental extraction config" - } - }, - "required": [ - "type", - "config" - ], - "additionalProperties": false - } + "ETLSource": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ETLSyncMode.json b/packages/spec/json-schema/automation/ETLSyncMode.json index 6388ec043..7316712c2 100644 --- a/packages/spec/json-schema/automation/ETLSyncMode.json +++ b/packages/spec/json-schema/automation/ETLSyncMode.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/ETLSyncMode", "definitions": { - "ETLSyncMode": { - "type": "string", - "enum": [ - "full", - "incremental", - "cdc" - ] - } + "ETLSyncMode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ETLTransformation.json b/packages/spec/json-schema/automation/ETLTransformation.json index 70812e0e9..024e36542 100644 --- a/packages/spec/json-schema/automation/ETLTransformation.json +++ b/packages/spec/json-schema/automation/ETLTransformation.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/ETLTransformation", "definitions": { - "ETLTransformation": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Transformation name" - }, - "type": { - "type": "string", - "enum": [ - "map", - "filter", - "aggregate", - "join", - "script", - "lookup", - "split", - "merge", - "normalize", - "deduplicate" - ], - "description": "Transformation type" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Transformation config" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "Continue on error" - } - }, - "required": [ - "type", - "config" - ], - "additionalProperties": false - } + "ETLTransformation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/ETLTransformationType.json b/packages/spec/json-schema/automation/ETLTransformationType.json index 7384ca7f5..2bf25bbb0 100644 --- a/packages/spec/json-schema/automation/ETLTransformationType.json +++ b/packages/spec/json-schema/automation/ETLTransformationType.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/ETLTransformationType", "definitions": { - "ETLTransformationType": { - "type": "string", - "enum": [ - "map", - "filter", - "aggregate", - "join", - "script", - "lookup", - "split", - "merge", - "normalize", - "deduplicate" - ] - } + "ETLTransformationType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/EmailAlertAction.json b/packages/spec/json-schema/automation/EmailAlertAction.json index 3462a3b7b..b21fa6f28 100644 --- a/packages/spec/json-schema/automation/EmailAlertAction.json +++ b/packages/spec/json-schema/automation/EmailAlertAction.json @@ -1,37 +1,7 @@ { "$ref": "#/definitions/EmailAlertAction", "definitions": { - "EmailAlertAction": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "email_alert" - }, - "template": { - "type": "string", - "description": "Email template ID/DevName" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of recipient emails or user IDs" - } - }, - "required": [ - "name", - "type", - "template", - "recipients" - ], - "additionalProperties": false - } + "EmailAlertAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/FieldUpdateAction.json b/packages/spec/json-schema/automation/FieldUpdateAction.json index 534761003..63454781d 100644 --- a/packages/spec/json-schema/automation/FieldUpdateAction.json +++ b/packages/spec/json-schema/automation/FieldUpdateAction.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/FieldUpdateAction", "definitions": { - "FieldUpdateAction": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "field_update" - }, - "field": { - "type": "string", - "description": "Field to update" - }, - "value": { - "description": "Value or Formula to set" - } - }, - "required": [ - "name", - "type", - "field" - ], - "additionalProperties": false - } + "FieldUpdateAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/Flow.json b/packages/spec/json-schema/automation/Flow.json index ff5fd8558..2d34073c1 100644 --- a/packages/spec/json-schema/automation/Flow.json +++ b/packages/spec/json-schema/automation/Flow.json @@ -1,216 +1,7 @@ { "$ref": "#/definitions/Flow", "definitions": { - "Flow": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Machine name" - }, - "label": { - "type": "string", - "description": "Flow label" - }, - "description": { - "type": "string" - }, - "version": { - "type": "integer", - "default": 1, - "description": "Version number" - }, - "status": { - "type": "string", - "enum": [ - "draft", - "active", - "obsolete", - "invalid" - ], - "default": "draft", - "description": "Deployment status" - }, - "template": { - "type": "boolean", - "default": false, - "description": "Is logic template (Subflow)" - }, - "type": { - "type": "string", - "enum": [ - "autolaunched", - "record_change", - "schedule", - "screen", - "api" - ], - "description": "Flow type" - }, - "variables": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Variable name" - }, - "type": { - "type": "string", - "description": "Data type (text, number, boolean, object, list)" - }, - "isInput": { - "type": "boolean", - "default": false, - "description": "Is input parameter" - }, - "isOutput": { - "type": "boolean", - "default": false, - "description": "Is output parameter" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - }, - "description": "Flow variables" - }, - "nodes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Node unique ID" - }, - "type": { - "type": "string", - "enum": [ - "start", - "end", - "decision", - "assignment", - "loop", - "create_record", - "update_record", - "delete_record", - "get_record", - "http_request", - "script", - "wait", - "subflow" - ], - "description": "Action type" - }, - "label": { - "type": "string", - "description": "Node label" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Node configuration" - }, - "position": { - "type": "object", - "properties": { - "x": { - "type": "number" - }, - "y": { - "type": "number" - } - }, - "required": [ - "x", - "y" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "type", - "label" - ], - "additionalProperties": false - }, - "description": "Flow nodes" - }, - "edges": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Edge unique ID" - }, - "source": { - "type": "string", - "description": "Source Node ID" - }, - "target": { - "type": "string", - "description": "Target Node ID" - }, - "condition": { - "type": "string", - "description": "Expression returning boolean used for branching" - }, - "type": { - "type": "string", - "enum": [ - "default", - "fault" - ], - "default": "default", - "description": "Connection type: Standard (Success) or Fault (Error) path" - }, - "label": { - "type": "string", - "description": "Label on the connector" - } - }, - "required": [ - "id", - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Flow connections" - }, - "active": { - "type": "boolean", - "default": false, - "description": "Is active (Deprecated: use status)" - }, - "runAs": { - "type": "string", - "enum": [ - "system", - "user" - ], - "default": "user", - "description": "Execution context" - } - }, - "required": [ - "name", - "label", - "type", - "nodes", - "edges" - ], - "additionalProperties": false - } + "Flow": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/FlowEdge.json b/packages/spec/json-schema/automation/FlowEdge.json index a704de22c..568237f60 100644 --- a/packages/spec/json-schema/automation/FlowEdge.json +++ b/packages/spec/json-schema/automation/FlowEdge.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/FlowEdge", "definitions": { - "FlowEdge": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Edge unique ID" - }, - "source": { - "type": "string", - "description": "Source Node ID" - }, - "target": { - "type": "string", - "description": "Target Node ID" - }, - "condition": { - "type": "string", - "description": "Expression returning boolean used for branching" - }, - "type": { - "type": "string", - "enum": [ - "default", - "fault" - ], - "default": "default", - "description": "Connection type: Standard (Success) or Fault (Error) path" - }, - "label": { - "type": "string", - "description": "Label on the connector" - } - }, - "required": [ - "id", - "source", - "target" - ], - "additionalProperties": false - } + "FlowEdge": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/FlowNode.json b/packages/spec/json-schema/automation/FlowNode.json index 5e7d21ab3..aaf9360b8 100644 --- a/packages/spec/json-schema/automation/FlowNode.json +++ b/packages/spec/json-schema/automation/FlowNode.json @@ -1,65 +1,7 @@ { "$ref": "#/definitions/FlowNode", "definitions": { - "FlowNode": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Node unique ID" - }, - "type": { - "type": "string", - "enum": [ - "start", - "end", - "decision", - "assignment", - "loop", - "create_record", - "update_record", - "delete_record", - "get_record", - "http_request", - "script", - "wait", - "subflow" - ], - "description": "Action type" - }, - "label": { - "type": "string", - "description": "Node label" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Node configuration" - }, - "position": { - "type": "object", - "properties": { - "x": { - "type": "number" - }, - "y": { - "type": "number" - } - }, - "required": [ - "x", - "y" - ], - "additionalProperties": false - } - }, - "required": [ - "id", - "type", - "label" - ], - "additionalProperties": false - } + "FlowNode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/FlowNodeAction.json b/packages/spec/json-schema/automation/FlowNodeAction.json index 7bfd51121..51f7a4e4e 100644 --- a/packages/spec/json-schema/automation/FlowNodeAction.json +++ b/packages/spec/json-schema/automation/FlowNodeAction.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/FlowNodeAction", "definitions": { - "FlowNodeAction": { - "type": "string", - "enum": [ - "start", - "end", - "decision", - "assignment", - "loop", - "create_record", - "update_record", - "delete_record", - "get_record", - "http_request", - "script", - "wait", - "subflow" - ] - } + "FlowNodeAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/FlowVariable.json b/packages/spec/json-schema/automation/FlowVariable.json index ee15ed6d9..26771d6fb 100644 --- a/packages/spec/json-schema/automation/FlowVariable.json +++ b/packages/spec/json-schema/automation/FlowVariable.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/FlowVariable", "definitions": { - "FlowVariable": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Variable name" - }, - "type": { - "type": "string", - "description": "Data type (text, number, boolean, object, list)" - }, - "isInput": { - "type": "boolean", - "default": false, - "description": "Is input parameter" - }, - "isOutput": { - "type": "boolean", - "default": false, - "description": "Is output parameter" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } + "FlowVariable": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/HttpCallAction.json b/packages/spec/json-schema/automation/HttpCallAction.json index e6c62175a..cad00e119 100644 --- a/packages/spec/json-schema/automation/HttpCallAction.json +++ b/packages/spec/json-schema/automation/HttpCallAction.json @@ -1,81 +1,7 @@ { "$ref": "#/definitions/HttpCallAction", "definitions": { - "HttpCallAction": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "http_call" - }, - "url": { - "type": "string", - "description": "Target URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Request headers" - }, - "body": { - "description": "Request body (object/string)" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "basic", - "bearer", - "api_key", - "oauth2" - ] - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "timeout": { - "type": "number", - "description": "Request timeout in milliseconds" - } - }, - "required": [ - "name", - "type", - "url", - "method" - ], - "additionalProperties": false - } + "HttpCallAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/OAuth2Config.json b/packages/spec/json-schema/automation/OAuth2Config.json index 8287a9b12..f23e50f67 100644 --- a/packages/spec/json-schema/automation/OAuth2Config.json +++ b/packages/spec/json-schema/automation/OAuth2Config.json @@ -1,43 +1,7 @@ { "$ref": "#/definitions/OAuth2Config", "definitions": { - "OAuth2Config": { - "type": "object", - "properties": { - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "Authorization endpoint URL" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "Token endpoint URL" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "OAuth scopes" - }, - "clientIdField": { - "type": "string", - "default": "client_id", - "description": "Client ID field name" - }, - "clientSecretField": { - "type": "string", - "default": "client_secret", - "description": "Client secret field name" - } - }, - "required": [ - "authorizationUrl", - "tokenUrl" - ], - "additionalProperties": false - } + "OAuth2Config": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/OperationParameter.json b/packages/spec/json-schema/automation/OperationParameter.json index 76b4f03de..a1dc06247 100644 --- a/packages/spec/json-schema/automation/OperationParameter.json +++ b/packages/spec/json-schema/automation/OperationParameter.json @@ -1,59 +1,7 @@ { "$ref": "#/definitions/OperationParameter", "definitions": { - "OperationParameter": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Parameter name" - }, - "label": { - "type": "string", - "description": "Parameter label" - }, - "description": { - "type": "string", - "description": "Parameter description" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "date", - "file" - ], - "description": "Parameter type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Required parameter" - }, - "default": { - "description": "Default value" - }, - "validation": { - "type": "object", - "additionalProperties": {}, - "description": "Validation rules" - }, - "dynamicOptions": { - "type": "string", - "description": "Function to load dynamic options" - } - }, - "required": [ - "name", - "label", - "type" - ], - "additionalProperties": false - } + "OperationParameter": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/OperationType.json b/packages/spec/json-schema/automation/OperationType.json index 12d4fb59b..3fe30c0e9 100644 --- a/packages/spec/json-schema/automation/OperationType.json +++ b/packages/spec/json-schema/automation/OperationType.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/OperationType", "definitions": { - "OperationType": { - "type": "string", - "enum": [ - "read", - "write", - "delete", - "search", - "trigger", - "action" - ] - } + "OperationType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/PushNotificationAction.json b/packages/spec/json-schema/automation/PushNotificationAction.json index 17c5d8a17..0c4c1c028 100644 --- a/packages/spec/json-schema/automation/PushNotificationAction.json +++ b/packages/spec/json-schema/automation/PushNotificationAction.json @@ -1,59 +1,7 @@ { "$ref": "#/definitions/PushNotificationAction", "definitions": { - "PushNotificationAction": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "push_notification" - }, - "title": { - "type": "string", - "description": "Notification title" - }, - "body": { - "type": "string", - "description": "Notification body text" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs or device tokens" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Additional data payload" - }, - "badge": { - "type": "number", - "description": "Badge count (iOS)" - }, - "sound": { - "type": "string", - "description": "Notification sound" - }, - "clickAction": { - "type": "string", - "description": "Action/URL when notification is clicked" - } - }, - "required": [ - "name", - "type", - "title", - "body", - "recipients" - ], - "additionalProperties": false - } + "PushNotificationAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/SlackMessageAction.json b/packages/spec/json-schema/automation/SlackMessageAction.json index b1c8adef4..0ef03eb8f 100644 --- a/packages/spec/json-schema/automation/SlackMessageAction.json +++ b/packages/spec/json-schema/automation/SlackMessageAction.json @@ -1,45 +1,7 @@ { "$ref": "#/definitions/SlackMessageAction", "definitions": { - "SlackMessageAction": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "slack_message" - }, - "channel": { - "type": "string", - "description": "Slack channel ID or name (#channel)" - }, - "message": { - "type": "string", - "description": "Message text with optional markdown" - }, - "mentions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs or @username to mention" - }, - "threadId": { - "type": "string", - "description": "Thread ID for replies" - } - }, - "required": [ - "name", - "type", - "channel", - "message" - ], - "additionalProperties": false - } + "SlackMessageAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/SmsNotificationAction.json b/packages/spec/json-schema/automation/SmsNotificationAction.json index 7053c0b08..1e7b334b8 100644 --- a/packages/spec/json-schema/automation/SmsNotificationAction.json +++ b/packages/spec/json-schema/automation/SmsNotificationAction.json @@ -1,50 +1,7 @@ { "$ref": "#/definitions/SmsNotificationAction", "definitions": { - "SmsNotificationAction": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "sms_notification" - }, - "provider": { - "type": "string", - "enum": [ - "twilio", - "vonage" - ], - "description": "SMS provider" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of phone numbers or user field references" - }, - "message": { - "type": "string", - "description": "SMS message text or template" - }, - "fromNumber": { - "type": "string", - "description": "Sender phone number (provider-specific)" - } - }, - "required": [ - "name", - "type", - "provider", - "recipients", - "message" - ], - "additionalProperties": false - } + "SmsNotificationAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/SyncDirection.json b/packages/spec/json-schema/automation/SyncDirection.json index 1fb9bbb65..8c9dd5cf4 100644 --- a/packages/spec/json-schema/automation/SyncDirection.json +++ b/packages/spec/json-schema/automation/SyncDirection.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/SyncDirection", "definitions": { - "SyncDirection": { - "type": "string", - "enum": [ - "push", - "pull", - "bidirectional" - ] - } + "SyncDirection": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/SyncExecutionResult.json b/packages/spec/json-schema/automation/SyncExecutionResult.json index 9e5ef74f4..a475cc4aa 100644 --- a/packages/spec/json-schema/automation/SyncExecutionResult.json +++ b/packages/spec/json-schema/automation/SyncExecutionResult.json @@ -1,135 +1,7 @@ { "$ref": "#/definitions/SyncExecutionResult", "definitions": { - "SyncExecutionResult": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Execution ID" - }, - "syncName": { - "type": "string", - "description": "Sync name" - }, - "status": { - "type": "string", - "enum": [ - "pending", - "running", - "completed", - "partial", - "failed", - "cancelled" - ], - "description": "Execution status" - }, - "startedAt": { - "type": "string", - "format": "date-time", - "description": "Start time" - }, - "completedAt": { - "type": "string", - "format": "date-time", - "description": "Completion time" - }, - "durationMs": { - "type": "number", - "description": "Duration in ms" - }, - "stats": { - "type": "object", - "properties": { - "recordsProcessed": { - "type": "integer", - "default": 0, - "description": "Total records processed" - }, - "recordsInserted": { - "type": "integer", - "default": 0, - "description": "Records inserted" - }, - "recordsUpdated": { - "type": "integer", - "default": 0, - "description": "Records updated" - }, - "recordsDeleted": { - "type": "integer", - "default": 0, - "description": "Records deleted" - }, - "recordsSkipped": { - "type": "integer", - "default": 0, - "description": "Records skipped" - }, - "recordsErrored": { - "type": "integer", - "default": 0, - "description": "Records with errors" - }, - "conflictsDetected": { - "type": "integer", - "default": 0, - "description": "Conflicts detected" - }, - "conflictsResolved": { - "type": "integer", - "default": 0, - "description": "Conflicts resolved" - } - }, - "additionalProperties": false, - "description": "Execution statistics" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "recordId": { - "type": "string", - "description": "Record ID" - }, - "field": { - "type": "string", - "description": "Field name" - }, - "message": { - "type": "string", - "description": "Error message" - }, - "code": { - "type": "string", - "description": "Error code" - } - }, - "required": [ - "message" - ], - "additionalProperties": false - }, - "description": "Errors" - }, - "logs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Execution logs" - } - }, - "required": [ - "id", - "syncName", - "status", - "startedAt" - ], - "additionalProperties": false - } + "SyncExecutionResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/SyncExecutionStatus.json b/packages/spec/json-schema/automation/SyncExecutionStatus.json index cba484a43..91af6a89f 100644 --- a/packages/spec/json-schema/automation/SyncExecutionStatus.json +++ b/packages/spec/json-schema/automation/SyncExecutionStatus.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/SyncExecutionStatus", "definitions": { - "SyncExecutionStatus": { - "type": "string", - "enum": [ - "pending", - "running", - "completed", - "partial", - "failed", - "cancelled" - ] - } + "SyncExecutionStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/SyncMode.json b/packages/spec/json-schema/automation/SyncMode.json index 14f7b314b..0a02f6a08 100644 --- a/packages/spec/json-schema/automation/SyncMode.json +++ b/packages/spec/json-schema/automation/SyncMode.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/SyncMode", "definitions": { - "SyncMode": { - "type": "string", - "enum": [ - "full", - "incremental", - "realtime" - ] - } + "SyncMode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/TaskCreationAction.json b/packages/spec/json-schema/automation/TaskCreationAction.json index 827a00b6d..d489b34cb 100644 --- a/packages/spec/json-schema/automation/TaskCreationAction.json +++ b/packages/spec/json-schema/automation/TaskCreationAction.json @@ -1,59 +1,7 @@ { "$ref": "#/definitions/TaskCreationAction", "definitions": { - "TaskCreationAction": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "task_creation" - }, - "taskObject": { - "type": "string", - "description": "Task object name (e.g., \"task\", \"project_task\")" - }, - "subject": { - "type": "string", - "description": "Task subject/title" - }, - "description": { - "type": "string", - "description": "Task description" - }, - "assignedTo": { - "type": "string", - "description": "User ID or field reference for assignee" - }, - "dueDate": { - "type": "string", - "description": "Due date (ISO string or formula)" - }, - "priority": { - "type": "string", - "description": "Task priority" - }, - "relatedTo": { - "type": "string", - "description": "Related record ID or field reference" - }, - "additionalFields": { - "type": "object", - "additionalProperties": {}, - "description": "Additional custom fields" - } - }, - "required": [ - "name", - "type", - "taskObject", - "subject" - ], - "additionalProperties": false - } + "TaskCreationAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/TeamsMessageAction.json b/packages/spec/json-schema/automation/TeamsMessageAction.json index 2f17241d4..72cfaec6f 100644 --- a/packages/spec/json-schema/automation/TeamsMessageAction.json +++ b/packages/spec/json-schema/automation/TeamsMessageAction.json @@ -1,45 +1,7 @@ { "$ref": "#/definitions/TeamsMessageAction", "definitions": { - "TeamsMessageAction": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "teams_message" - }, - "channel": { - "type": "string", - "description": "Teams channel ID" - }, - "message": { - "type": "string", - "description": "Message text with optional markdown" - }, - "mentions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs to mention" - }, - "teamId": { - "type": "string", - "description": "Team ID (if not in default team)" - } - }, - "required": [ - "name", - "type", - "channel", - "message" - ], - "additionalProperties": false - } + "TeamsMessageAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/TimeTrigger.json b/packages/spec/json-schema/automation/TimeTrigger.json index 8913c0252..93cad1884 100644 --- a/packages/spec/json-schema/automation/TimeTrigger.json +++ b/packages/spec/json-schema/automation/TimeTrigger.json @@ -1,654 +1,7 @@ { "$ref": "#/definitions/TimeTrigger", "definitions": { - "TimeTrigger": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier" - }, - "timeLength": { - "type": "integer", - "description": "Duration amount (e.g. 1, 30)" - }, - "timeUnit": { - "type": "string", - "enum": [ - "minutes", - "hours", - "days" - ], - "description": "Unit of time" - }, - "offsetDirection": { - "type": "string", - "enum": [ - "before", - "after" - ], - "description": "Before or After the reference date" - }, - "offsetFrom": { - "type": "string", - "enum": [ - "trigger_date", - "date_field" - ], - "description": "Basis for calculation" - }, - "dateField": { - "type": "string", - "description": "Date field to calculate from (required if offsetFrom is date_field)" - }, - "actions": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "field_update" - }, - "field": { - "type": "string", - "description": "Field to update" - }, - "value": { - "description": "Value or Formula to set" - } - }, - "required": [ - "name", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "email_alert" - }, - "template": { - "type": "string", - "description": "Email template ID/DevName" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of recipient emails or user IDs" - } - }, - "required": [ - "name", - "type", - "template", - "recipients" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "sms_notification" - }, - "provider": { - "type": "string", - "enum": [ - "twilio", - "vonage" - ], - "description": "SMS provider" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of phone numbers or user field references" - }, - "message": { - "type": "string", - "description": "SMS message text or template" - }, - "fromNumber": { - "type": "string", - "description": "Sender phone number (provider-specific)" - } - }, - "required": [ - "name", - "type", - "provider", - "recipients", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "slack_message" - }, - "channel": { - "type": "string", - "description": "Slack channel ID or name (#channel)" - }, - "message": { - "type": "string", - "description": "Message text with optional markdown" - }, - "mentions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs or @username to mention" - }, - "threadId": { - "type": "string", - "description": "Thread ID for replies" - } - }, - "required": [ - "name", - "type", - "channel", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "teams_message" - }, - "channel": { - "type": "string", - "description": "Teams channel ID" - }, - "message": { - "type": "string", - "description": "Message text with optional markdown" - }, - "mentions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs to mention" - }, - "teamId": { - "type": "string", - "description": "Team ID (if not in default team)" - } - }, - "required": [ - "name", - "type", - "channel", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "http_call" - }, - "url": { - "type": "string", - "description": "Target URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Request headers" - }, - "body": { - "description": "Request body (object/string)" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "basic", - "bearer", - "api_key", - "oauth2" - ] - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "timeout": { - "type": "number", - "description": "Request timeout in milliseconds" - } - }, - "required": [ - "name", - "type", - "url", - "method" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "webhook_trigger" - }, - "config": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false, - "description": "Webhook configuration (references canonical schema)" - } - }, - "required": [ - "name", - "type", - "config" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "task_creation" - }, - "taskObject": { - "type": "string", - "description": "Task object name (e.g., \"task\", \"project_task\")" - }, - "subject": { - "type": "string", - "description": "Task subject/title" - }, - "description": { - "type": "string", - "description": "Task description" - }, - "assignedTo": { - "type": "string", - "description": "User ID or field reference for assignee" - }, - "dueDate": { - "type": "string", - "description": "Due date (ISO string or formula)" - }, - "priority": { - "type": "string", - "description": "Task priority" - }, - "relatedTo": { - "type": "string", - "description": "Related record ID or field reference" - }, - "additionalFields": { - "type": "object", - "additionalProperties": {}, - "description": "Additional custom fields" - } - }, - "required": [ - "name", - "type", - "taskObject", - "subject" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "push_notification" - }, - "title": { - "type": "string", - "description": "Notification title" - }, - "body": { - "type": "string", - "description": "Notification body text" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs or device tokens" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Additional data payload" - }, - "badge": { - "type": "number", - "description": "Badge count (iOS)" - }, - "sound": { - "type": "string", - "description": "Notification sound" - }, - "clickAction": { - "type": "string", - "description": "Action/URL when notification is clicked" - } - }, - "required": [ - "name", - "type", - "title", - "body", - "recipients" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "custom_script" - }, - "language": { - "type": "string", - "enum": [ - "javascript", - "typescript", - "python" - ], - "default": "javascript", - "description": "Script language" - }, - "code": { - "type": "string", - "description": "Script code to execute" - }, - "timeout": { - "type": "number", - "default": 30000, - "description": "Execution timeout in milliseconds" - }, - "context": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context variables" - } - }, - "required": [ - "name", - "type", - "code" - ], - "additionalProperties": false - } - ] - }, - "description": "Actions to execute at the scheduled time" - } - }, - "required": [ - "timeLength", - "timeUnit", - "offsetDirection", - "offsetFrom", - "actions" - ], - "additionalProperties": false - } + "TimeTrigger": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/Webhook.json b/packages/spec/json-schema/automation/Webhook.json index 44828deb4..032962666 100644 --- a/packages/spec/json-schema/automation/Webhook.json +++ b/packages/spec/json-schema/automation/Webhook.json @@ -1,173 +1,7 @@ { "$ref": "#/definitions/Webhook", "definitions": { - "Webhook": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - } + "Webhook": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/WebhookReceiver.json b/packages/spec/json-schema/automation/WebhookReceiver.json index c7121b4d0..be9595811 100644 --- a/packages/spec/json-schema/automation/WebhookReceiver.json +++ b/packages/spec/json-schema/automation/WebhookReceiver.json @@ -1,68 +1,7 @@ { "$ref": "#/definitions/WebhookReceiver", "definitions": { - "WebhookReceiver": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook receiver unique name (lowercase snake_case)" - }, - "path": { - "type": "string", - "description": "URL Path (e.g. /webhooks/stripe)" - }, - "verificationType": { - "type": "string", - "enum": [ - "none", - "header_token", - "hmac", - "ip_whitelist" - ], - "default": "none" - }, - "verificationParams": { - "type": "object", - "properties": { - "header": { - "type": "string" - }, - "secret": { - "type": "string" - }, - "ips": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "action": { - "type": "string", - "enum": [ - "trigger_flow", - "script", - "upsert_record" - ], - "default": "trigger_flow" - }, - "target": { - "type": "string", - "description": "Flow ID or Script name" - } - }, - "required": [ - "name", - "path", - "target" - ], - "additionalProperties": false - } + "WebhookReceiver": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/WebhookTriggerAction.json b/packages/spec/json-schema/automation/WebhookTriggerAction.json index 275c95653..754fc30a7 100644 --- a/packages/spec/json-schema/automation/WebhookTriggerAction.json +++ b/packages/spec/json-schema/automation/WebhookTriggerAction.json @@ -1,193 +1,7 @@ { "$ref": "#/definitions/WebhookTriggerAction", "definitions": { - "WebhookTriggerAction": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "webhook_trigger" - }, - "config": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false, - "description": "Webhook configuration (references canonical schema)" - } - }, - "required": [ - "name", - "type", - "config" - ], - "additionalProperties": false - } + "WebhookTriggerAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/WebhookTriggerType.json b/packages/spec/json-schema/automation/WebhookTriggerType.json index cdad347db..709151276 100644 --- a/packages/spec/json-schema/automation/WebhookTriggerType.json +++ b/packages/spec/json-schema/automation/WebhookTriggerType.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/WebhookTriggerType", "definitions": { - "WebhookTriggerType": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - } + "WebhookTriggerType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/WorkflowAction.json b/packages/spec/json-schema/automation/WorkflowAction.json index 479f71ca7..3f95fdf9b 100644 --- a/packages/spec/json-schema/automation/WorkflowAction.json +++ b/packages/spec/json-schema/automation/WorkflowAction.json @@ -1,600 +1,7 @@ { "$ref": "#/definitions/WorkflowAction", "definitions": { - "WorkflowAction": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "field_update" - }, - "field": { - "type": "string", - "description": "Field to update" - }, - "value": { - "description": "Value or Formula to set" - } - }, - "required": [ - "name", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "email_alert" - }, - "template": { - "type": "string", - "description": "Email template ID/DevName" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of recipient emails or user IDs" - } - }, - "required": [ - "name", - "type", - "template", - "recipients" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "sms_notification" - }, - "provider": { - "type": "string", - "enum": [ - "twilio", - "vonage" - ], - "description": "SMS provider" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of phone numbers or user field references" - }, - "message": { - "type": "string", - "description": "SMS message text or template" - }, - "fromNumber": { - "type": "string", - "description": "Sender phone number (provider-specific)" - } - }, - "required": [ - "name", - "type", - "provider", - "recipients", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "slack_message" - }, - "channel": { - "type": "string", - "description": "Slack channel ID or name (#channel)" - }, - "message": { - "type": "string", - "description": "Message text with optional markdown" - }, - "mentions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs or @username to mention" - }, - "threadId": { - "type": "string", - "description": "Thread ID for replies" - } - }, - "required": [ - "name", - "type", - "channel", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "teams_message" - }, - "channel": { - "type": "string", - "description": "Teams channel ID" - }, - "message": { - "type": "string", - "description": "Message text with optional markdown" - }, - "mentions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs to mention" - }, - "teamId": { - "type": "string", - "description": "Team ID (if not in default team)" - } - }, - "required": [ - "name", - "type", - "channel", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "http_call" - }, - "url": { - "type": "string", - "description": "Target URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Request headers" - }, - "body": { - "description": "Request body (object/string)" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "basic", - "bearer", - "api_key", - "oauth2" - ] - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "timeout": { - "type": "number", - "description": "Request timeout in milliseconds" - } - }, - "required": [ - "name", - "type", - "url", - "method" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "webhook_trigger" - }, - "config": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false, - "description": "Webhook configuration (references canonical schema)" - } - }, - "required": [ - "name", - "type", - "config" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "task_creation" - }, - "taskObject": { - "type": "string", - "description": "Task object name (e.g., \"task\", \"project_task\")" - }, - "subject": { - "type": "string", - "description": "Task subject/title" - }, - "description": { - "type": "string", - "description": "Task description" - }, - "assignedTo": { - "type": "string", - "description": "User ID or field reference for assignee" - }, - "dueDate": { - "type": "string", - "description": "Due date (ISO string or formula)" - }, - "priority": { - "type": "string", - "description": "Task priority" - }, - "relatedTo": { - "type": "string", - "description": "Related record ID or field reference" - }, - "additionalFields": { - "type": "object", - "additionalProperties": {}, - "description": "Additional custom fields" - } - }, - "required": [ - "name", - "type", - "taskObject", - "subject" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "push_notification" - }, - "title": { - "type": "string", - "description": "Notification title" - }, - "body": { - "type": "string", - "description": "Notification body text" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs or device tokens" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Additional data payload" - }, - "badge": { - "type": "number", - "description": "Badge count (iOS)" - }, - "sound": { - "type": "string", - "description": "Notification sound" - }, - "clickAction": { - "type": "string", - "description": "Action/URL when notification is clicked" - } - }, - "required": [ - "name", - "type", - "title", - "body", - "recipients" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "custom_script" - }, - "language": { - "type": "string", - "enum": [ - "javascript", - "typescript", - "python" - ], - "default": "javascript", - "description": "Script language" - }, - "code": { - "type": "string", - "description": "Script code to execute" - }, - "timeout": { - "type": "number", - "default": 30000, - "description": "Execution timeout in milliseconds" - }, - "context": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context variables" - } - }, - "required": [ - "name", - "type", - "code" - ], - "additionalProperties": false - } - ] - } + "WorkflowAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/WorkflowRule.json b/packages/spec/json-schema/automation/WorkflowRule.json index e0e11d69b..c6e73e6fc 100644 --- a/packages/spec/json-schema/automation/WorkflowRule.json +++ b/packages/spec/json-schema/automation/WorkflowRule.json @@ -1,1302 +1,7 @@ { "$ref": "#/definitions/WorkflowRule", "definitions": { - "WorkflowRule": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique workflow name (lowercase snake_case)" - }, - "objectName": { - "type": "string", - "description": "Target Object" - }, - "triggerType": { - "type": "string", - "enum": [ - "on_create", - "on_update", - "on_create_or_update", - "on_delete", - "schedule" - ], - "description": "When to evaluate" - }, - "criteria": { - "type": "string", - "description": "Formula condition. If TRUE, actions execute." - }, - "actions": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "field_update" - }, - "field": { - "type": "string", - "description": "Field to update" - }, - "value": { - "description": "Value or Formula to set" - } - }, - "required": [ - "name", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "email_alert" - }, - "template": { - "type": "string", - "description": "Email template ID/DevName" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of recipient emails or user IDs" - } - }, - "required": [ - "name", - "type", - "template", - "recipients" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "sms_notification" - }, - "provider": { - "type": "string", - "enum": [ - "twilio", - "vonage" - ], - "description": "SMS provider" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of phone numbers or user field references" - }, - "message": { - "type": "string", - "description": "SMS message text or template" - }, - "fromNumber": { - "type": "string", - "description": "Sender phone number (provider-specific)" - } - }, - "required": [ - "name", - "type", - "provider", - "recipients", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "slack_message" - }, - "channel": { - "type": "string", - "description": "Slack channel ID or name (#channel)" - }, - "message": { - "type": "string", - "description": "Message text with optional markdown" - }, - "mentions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs or @username to mention" - }, - "threadId": { - "type": "string", - "description": "Thread ID for replies" - } - }, - "required": [ - "name", - "type", - "channel", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "teams_message" - }, - "channel": { - "type": "string", - "description": "Teams channel ID" - }, - "message": { - "type": "string", - "description": "Message text with optional markdown" - }, - "mentions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs to mention" - }, - "teamId": { - "type": "string", - "description": "Team ID (if not in default team)" - } - }, - "required": [ - "name", - "type", - "channel", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "http_call" - }, - "url": { - "type": "string", - "description": "Target URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Request headers" - }, - "body": { - "description": "Request body (object/string)" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "basic", - "bearer", - "api_key", - "oauth2" - ] - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "timeout": { - "type": "number", - "description": "Request timeout in milliseconds" - } - }, - "required": [ - "name", - "type", - "url", - "method" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "webhook_trigger" - }, - "config": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false, - "description": "Webhook configuration (references canonical schema)" - } - }, - "required": [ - "name", - "type", - "config" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "task_creation" - }, - "taskObject": { - "type": "string", - "description": "Task object name (e.g., \"task\", \"project_task\")" - }, - "subject": { - "type": "string", - "description": "Task subject/title" - }, - "description": { - "type": "string", - "description": "Task description" - }, - "assignedTo": { - "type": "string", - "description": "User ID or field reference for assignee" - }, - "dueDate": { - "type": "string", - "description": "Due date (ISO string or formula)" - }, - "priority": { - "type": "string", - "description": "Task priority" - }, - "relatedTo": { - "type": "string", - "description": "Related record ID or field reference" - }, - "additionalFields": { - "type": "object", - "additionalProperties": {}, - "description": "Additional custom fields" - } - }, - "required": [ - "name", - "type", - "taskObject", - "subject" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "push_notification" - }, - "title": { - "type": "string", - "description": "Notification title" - }, - "body": { - "type": "string", - "description": "Notification body text" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs or device tokens" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Additional data payload" - }, - "badge": { - "type": "number", - "description": "Badge count (iOS)" - }, - "sound": { - "type": "string", - "description": "Notification sound" - }, - "clickAction": { - "type": "string", - "description": "Action/URL when notification is clicked" - } - }, - "required": [ - "name", - "type", - "title", - "body", - "recipients" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "custom_script" - }, - "language": { - "type": "string", - "enum": [ - "javascript", - "typescript", - "python" - ], - "default": "javascript", - "description": "Script language" - }, - "code": { - "type": "string", - "description": "Script code to execute" - }, - "timeout": { - "type": "number", - "default": 30000, - "description": "Execution timeout in milliseconds" - }, - "context": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context variables" - } - }, - "required": [ - "name", - "type", - "code" - ], - "additionalProperties": false - } - ] - }, - "description": "Immediate actions" - }, - "timeTriggers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier" - }, - "timeLength": { - "type": "integer", - "description": "Duration amount (e.g. 1, 30)" - }, - "timeUnit": { - "type": "string", - "enum": [ - "minutes", - "hours", - "days" - ], - "description": "Unit of time" - }, - "offsetDirection": { - "type": "string", - "enum": [ - "before", - "after" - ], - "description": "Before or After the reference date" - }, - "offsetFrom": { - "type": "string", - "enum": [ - "trigger_date", - "date_field" - ], - "description": "Basis for calculation" - }, - "dateField": { - "type": "string", - "description": "Date field to calculate from (required if offsetFrom is date_field)" - }, - "actions": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "field_update" - }, - "field": { - "type": "string", - "description": "Field to update" - }, - "value": { - "description": "Value or Formula to set" - } - }, - "required": [ - "name", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "email_alert" - }, - "template": { - "type": "string", - "description": "Email template ID/DevName" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of recipient emails or user IDs" - } - }, - "required": [ - "name", - "type", - "template", - "recipients" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "sms_notification" - }, - "provider": { - "type": "string", - "enum": [ - "twilio", - "vonage" - ], - "description": "SMS provider" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of phone numbers or user field references" - }, - "message": { - "type": "string", - "description": "SMS message text or template" - }, - "fromNumber": { - "type": "string", - "description": "Sender phone number (provider-specific)" - } - }, - "required": [ - "name", - "type", - "provider", - "recipients", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "slack_message" - }, - "channel": { - "type": "string", - "description": "Slack channel ID or name (#channel)" - }, - "message": { - "type": "string", - "description": "Message text with optional markdown" - }, - "mentions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs or @username to mention" - }, - "threadId": { - "type": "string", - "description": "Thread ID for replies" - } - }, - "required": [ - "name", - "type", - "channel", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "teams_message" - }, - "channel": { - "type": "string", - "description": "Teams channel ID" - }, - "message": { - "type": "string", - "description": "Message text with optional markdown" - }, - "mentions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs to mention" - }, - "teamId": { - "type": "string", - "description": "Team ID (if not in default team)" - } - }, - "required": [ - "name", - "type", - "channel", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "http_call" - }, - "url": { - "type": "string", - "description": "Target URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Request headers" - }, - "body": { - "description": "Request body (object/string)" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "basic", - "bearer", - "api_key", - "oauth2" - ] - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "timeout": { - "type": "number", - "description": "Request timeout in milliseconds" - } - }, - "required": [ - "name", - "type", - "url", - "method" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "webhook_trigger" - }, - "config": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false, - "description": "Webhook configuration (references canonical schema)" - } - }, - "required": [ - "name", - "type", - "config" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "task_creation" - }, - "taskObject": { - "type": "string", - "description": "Task object name (e.g., \"task\", \"project_task\")" - }, - "subject": { - "type": "string", - "description": "Task subject/title" - }, - "description": { - "type": "string", - "description": "Task description" - }, - "assignedTo": { - "type": "string", - "description": "User ID or field reference for assignee" - }, - "dueDate": { - "type": "string", - "description": "Due date (ISO string or formula)" - }, - "priority": { - "type": "string", - "description": "Task priority" - }, - "relatedTo": { - "type": "string", - "description": "Related record ID or field reference" - }, - "additionalFields": { - "type": "object", - "additionalProperties": {}, - "description": "Additional custom fields" - } - }, - "required": [ - "name", - "type", - "taskObject", - "subject" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "push_notification" - }, - "title": { - "type": "string", - "description": "Notification title" - }, - "body": { - "type": "string", - "description": "Notification body text" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User IDs or device tokens" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Additional data payload" - }, - "badge": { - "type": "number", - "description": "Badge count (iOS)" - }, - "sound": { - "type": "string", - "description": "Notification sound" - }, - "clickAction": { - "type": "string", - "description": "Action/URL when notification is clicked" - } - }, - "required": [ - "name", - "type", - "title", - "body", - "recipients" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Action name" - }, - "type": { - "type": "string", - "const": "custom_script" - }, - "language": { - "type": "string", - "enum": [ - "javascript", - "typescript", - "python" - ], - "default": "javascript", - "description": "Script language" - }, - "code": { - "type": "string", - "description": "Script code to execute" - }, - "timeout": { - "type": "number", - "default": 30000, - "description": "Execution timeout in milliseconds" - }, - "context": { - "type": "object", - "additionalProperties": {}, - "description": "Additional context variables" - } - }, - "required": [ - "name", - "type", - "code" - ], - "additionalProperties": false - } - ] - }, - "description": "Actions to execute at the scheduled time" - } - }, - "required": [ - "timeLength", - "timeUnit", - "offsetDirection", - "offsetFrom", - "actions" - ], - "additionalProperties": false - }, - "description": "Scheduled actions relative to trigger or date field" - }, - "active": { - "type": "boolean", - "default": true, - "description": "Whether this workflow is active" - }, - "reevaluateOnChange": { - "type": "boolean", - "default": false, - "description": "Re-evaluate rule if field updates change the record validity" - } - }, - "required": [ - "name", - "objectName", - "triggerType" - ], - "additionalProperties": false - } + "WorkflowRule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/automation/WorkflowTriggerType.json b/packages/spec/json-schema/automation/WorkflowTriggerType.json index 8274fb10b..ff6eabff1 100644 --- a/packages/spec/json-schema/automation/WorkflowTriggerType.json +++ b/packages/spec/json-schema/automation/WorkflowTriggerType.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/WorkflowTriggerType", "definitions": { - "WorkflowTriggerType": { - "type": "string", - "enum": [ - "on_create", - "on_update", - "on_create_or_update", - "on_delete", - "schedule" - ] - } + "WorkflowTriggerType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/Address.json b/packages/spec/json-schema/data/Address.json index e50cce781..4fc172214 100644 --- a/packages/spec/json-schema/data/Address.json +++ b/packages/spec/json-schema/data/Address.json @@ -1,40 +1,7 @@ { "$ref": "#/definitions/Address", "definitions": { - "Address": { - "type": "object", - "properties": { - "street": { - "type": "string", - "description": "Street address" - }, - "city": { - "type": "string", - "description": "City name" - }, - "state": { - "type": "string", - "description": "State/Province" - }, - "postalCode": { - "type": "string", - "description": "Postal/ZIP code" - }, - "country": { - "type": "string", - "description": "Country name or code" - }, - "countryCode": { - "type": "string", - "description": "ISO country code (e.g., US, GB)" - }, - "formatted": { - "type": "string", - "description": "Formatted address string" - } - }, - "additionalProperties": false - } + "Address": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/AggregationFunction.json b/packages/spec/json-schema/data/AggregationFunction.json index 55454e685..7cf4bbbec 100644 --- a/packages/spec/json-schema/data/AggregationFunction.json +++ b/packages/spec/json-schema/data/AggregationFunction.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/AggregationFunction", "definitions": { - "AggregationFunction": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ] - } + "AggregationFunction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/AggregationNode.json b/packages/spec/json-schema/data/AggregationNode.json index d63549bf4..bad269305 100644 --- a/packages/spec/json-schema/data/AggregationNode.json +++ b/packages/spec/json-schema/data/AggregationNode.json @@ -1,65 +1,7 @@ { "$ref": "#/definitions/AggregationNode", "definitions": { - "AggregationNode": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - } + "AggregationNode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/AggregationPipeline.json b/packages/spec/json-schema/data/AggregationPipeline.json index 6d1008f43..b47a9541a 100644 --- a/packages/spec/json-schema/data/AggregationPipeline.json +++ b/packages/spec/json-schema/data/AggregationPipeline.json @@ -1,99 +1,7 @@ { "$ref": "#/definitions/AggregationPipeline", "definitions": { - "AggregationPipeline": { - "type": "object", - "properties": { - "collection": { - "type": "string", - "description": "Collection/table name" - }, - "stages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "operator": { - "type": "string", - "description": "Aggregation operator (e.g., $match, $group, $sort)" - }, - "options": { - "type": "object", - "additionalProperties": {}, - "description": "Stage-specific options" - } - }, - "required": [ - "operator", - "options" - ], - "additionalProperties": false - }, - "description": "Aggregation pipeline stages" - }, - "options": { - "type": "object", - "properties": { - "consistency": { - "type": "string", - "enum": [ - "all", - "quorum", - "one", - "local_quorum", - "each_quorum", - "eventual" - ], - "description": "Consistency level override" - }, - "readFromSecondary": { - "type": "boolean", - "description": "Allow reading from secondary replicas" - }, - "projection": { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 0, - 1 - ] - }, - "description": "Field projection" - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Query timeout (ms)" - }, - "useCursor": { - "type": "boolean", - "description": "Use cursor instead of loading all results" - }, - "batchSize": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Cursor batch size" - }, - "profile": { - "type": "boolean", - "description": "Enable query profiling" - }, - "hint": { - "type": "string", - "description": "Index hint for query optimization" - } - }, - "additionalProperties": false, - "description": "Query options" - } - }, - "required": [ - "collection", - "stages" - ], - "additionalProperties": false - } + "AggregationPipeline": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/AggregationStage.json b/packages/spec/json-schema/data/AggregationStage.json index c96da027f..84ba809fb 100644 --- a/packages/spec/json-schema/data/AggregationStage.json +++ b/packages/spec/json-schema/data/AggregationStage.json @@ -1,25 +1,7 @@ { "$ref": "#/definitions/AggregationStage", "definitions": { - "AggregationStage": { - "type": "object", - "properties": { - "operator": { - "type": "string", - "description": "Aggregation operator (e.g., $match, $group, $sort)" - }, - "options": { - "type": "object", - "additionalProperties": {}, - "description": "Stage-specific options" - } - }, - "required": [ - "operator", - "options" - ], - "additionalProperties": false - } + "AggregationStage": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ApiMethod.json b/packages/spec/json-schema/data/ApiMethod.json index 118bd53a3..d15cfdf9d 100644 --- a/packages/spec/json-schema/data/ApiMethod.json +++ b/packages/spec/json-schema/data/ApiMethod.json @@ -1,25 +1,7 @@ { "$ref": "#/definitions/ApiMethod", "definitions": { - "ApiMethod": { - "type": "string", - "enum": [ - "get", - "list", - "create", - "update", - "delete", - "upsert", - "bulk", - "aggregate", - "history", - "search", - "restore", - "purge", - "import", - "export" - ] - } + "ApiMethod": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/AsyncValidation.json b/packages/spec/json-schema/data/AsyncValidation.json index fda2176a3..8e0067b4c 100644 --- a/packages/spec/json-schema/data/AsyncValidation.json +++ b/packages/spec/json-schema/data/AsyncValidation.json @@ -1,117 +1,7 @@ { "$ref": "#/definitions/AsyncValidation", "definitions": { - "AsyncValidation": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "async" - }, - "field": { - "type": "string", - "description": "Field to validate" - }, - "validatorUrl": { - "type": "string", - "description": "External API endpoint for validation" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST" - ], - "default": "GET", - "description": "HTTP method for external call" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom headers for the request" - }, - "validatorFunction": { - "type": "string", - "description": "Reference to custom validator function" - }, - "timeout": { - "type": "number", - "default": 5000, - "description": "Timeout in milliseconds" - }, - "debounce": { - "type": "number", - "description": "Debounce delay in milliseconds" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Additional parameters to pass to validator" - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - } + "AsyncValidation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/CDCConfig.json b/packages/spec/json-schema/data/CDCConfig.json index 84cc0f788..3db2037da 100644 --- a/packages/spec/json-schema/data/CDCConfig.json +++ b/packages/spec/json-schema/data/CDCConfig.json @@ -1,37 +1,7 @@ { "$ref": "#/definitions/CDCConfig", "definitions": { - "CDCConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable Change Data Capture" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "description": "Event types to capture" - }, - "destination": { - "type": "string", - "description": "Destination endpoint (e.g., \"kafka://topic\", \"webhook://url\")" - } - }, - "required": [ - "enabled", - "events", - "destination" - ], - "additionalProperties": false - } + "CDCConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ComparisonOperator.json b/packages/spec/json-schema/data/ComparisonOperator.json index 131a32fb4..87583ca8f 100644 --- a/packages/spec/json-schema/data/ComparisonOperator.json +++ b/packages/spec/json-schema/data/ComparisonOperator.json @@ -1,108 +1,7 @@ { "$ref": "#/definitions/ComparisonOperator", "definitions": { - "ComparisonOperator": { - "type": "object", - "properties": { - "$gt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$gte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$lt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$lte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - } - }, - "additionalProperties": false - } + "ComparisonOperator": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ComputedFieldCache.json b/packages/spec/json-schema/data/ComputedFieldCache.json index 55a504ea6..1e1c8cde5 100644 --- a/packages/spec/json-schema/data/ComputedFieldCache.json +++ b/packages/spec/json-schema/data/ComputedFieldCache.json @@ -1,33 +1,7 @@ { "$ref": "#/definitions/ComputedFieldCache", "definitions": { - "ComputedFieldCache": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable caching for computed field results" - }, - "ttl": { - "type": "number", - "minimum": 0, - "description": "Cache TTL in seconds (0 = no expiration)" - }, - "invalidateOn": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])" - } - }, - "required": [ - "enabled", - "ttl", - "invalidateOn" - ], - "additionalProperties": false - } + "ComputedFieldCache": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ConditionalValidation.json b/packages/spec/json-schema/data/ConditionalValidation.json index 57eb93f0c..1160f60f7 100644 --- a/packages/spec/json-schema/data/ConditionalValidation.json +++ b/packages/spec/json-schema/data/ConditionalValidation.json @@ -1,1440 +1,7 @@ { "$ref": "#/definitions/ConditionalValidation", "definitions": { - "ConditionalValidation": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "conditional" - }, - "when": { - "type": "string", - "description": "Condition formula (e.g. \"type = 'enterprise'\")" - }, - "then": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "script" - }, - "condition": { - "type": "string", - "description": "Formula expression. If TRUE, validation fails. (e.g. amount < 0)" - } - }, - "required": [ - "name", - "message", - "type", - "condition" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "unique" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields that must be combined unique" - }, - "scope": { - "type": "string", - "description": "Formula condition for scope (e.g. active = true)" - }, - "caseSensitive": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "message", - "type", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "state_machine" - }, - "field": { - "type": "string", - "description": "State field (e.g. status)" - }, - "transitions": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": "Map of { OldState: [AllowedNewStates] }" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "transitions" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "format" - }, - "field": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "email", - "url", - "phone", - "json" - ] - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "cross_field" - }, - "condition": { - "type": "string", - "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields involved in the validation" - } - }, - "required": [ - "name", - "message", - "type", - "condition", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "json_schema" - }, - "field": { - "type": "string", - "description": "JSON field to validate" - }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON Schema object definition" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "schema" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "async" - }, - "field": { - "type": "string", - "description": "Field to validate" - }, - "validatorUrl": { - "type": "string", - "description": "External API endpoint for validation" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST" - ], - "default": "GET", - "description": "HTTP method for external call" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom headers for the request" - }, - "validatorFunction": { - "type": "string", - "description": "Reference to custom validator function" - }, - "timeout": { - "type": "number", - "default": 5000, - "description": "Timeout in milliseconds" - }, - "debounce": { - "type": "number", - "description": "Debounce delay in milliseconds" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Additional parameters to pass to validator" - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "custom" - }, - "handler": { - "type": "string", - "description": "Name of the custom validation function registered in the system" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Parameters passed to the custom handler" - } - }, - "required": [ - "name", - "message", - "type", - "handler" - ], - "additionalProperties": false - }, - {} - ], - "description": "Validation rule to apply when condition is true" - }, - "otherwise": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "script" - }, - "condition": { - "type": "string", - "description": "Formula expression. If TRUE, validation fails. (e.g. amount < 0)" - } - }, - "required": [ - "name", - "message", - "type", - "condition" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "unique" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields that must be combined unique" - }, - "scope": { - "type": "string", - "description": "Formula condition for scope (e.g. active = true)" - }, - "caseSensitive": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "message", - "type", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "state_machine" - }, - "field": { - "type": "string", - "description": "State field (e.g. status)" - }, - "transitions": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": "Map of { OldState: [AllowedNewStates] }" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "transitions" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "format" - }, - "field": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "email", - "url", - "phone", - "json" - ] - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "cross_field" - }, - "condition": { - "type": "string", - "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields involved in the validation" - } - }, - "required": [ - "name", - "message", - "type", - "condition", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "json_schema" - }, - "field": { - "type": "string", - "description": "JSON field to validate" - }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON Schema object definition" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "schema" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "async" - }, - "field": { - "type": "string", - "description": "Field to validate" - }, - "validatorUrl": { - "type": "string", - "description": "External API endpoint for validation" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST" - ], - "default": "GET", - "description": "HTTP method for external call" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom headers for the request" - }, - "validatorFunction": { - "type": "string", - "description": "Reference to custom validator function" - }, - "timeout": { - "type": "number", - "default": 5000, - "description": "Timeout in milliseconds" - }, - "debounce": { - "type": "number", - "description": "Debounce delay in milliseconds" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Additional parameters to pass to validator" - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "custom" - }, - "handler": { - "type": "string", - "description": "Name of the custom validation function registered in the system" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Parameters passed to the custom handler" - } - }, - "required": [ - "name", - "message", - "type", - "handler" - ], - "additionalProperties": false - }, - {} - ], - "description": "Validation rule to apply when condition is false" - } - }, - "required": [ - "name", - "message", - "type", - "when", - "then" - ], - "additionalProperties": false - } + "ConditionalValidation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ConsistencyLevel.json b/packages/spec/json-schema/data/ConsistencyLevel.json index dc20b92f4..d9168850f 100644 --- a/packages/spec/json-schema/data/ConsistencyLevel.json +++ b/packages/spec/json-schema/data/ConsistencyLevel.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/ConsistencyLevel", "definitions": { - "ConsistencyLevel": { - "type": "string", - "enum": [ - "all", - "quorum", - "one", - "local_quorum", - "each_quorum", - "eventual" - ] - } + "ConsistencyLevel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/CrossFieldValidation.json b/packages/spec/json-schema/data/CrossFieldValidation.json index 6cdf57e68..d42f597f0 100644 --- a/packages/spec/json-schema/data/CrossFieldValidation.json +++ b/packages/spec/json-schema/data/CrossFieldValidation.json @@ -1,87 +1,7 @@ { "$ref": "#/definitions/CrossFieldValidation", "definitions": { - "CrossFieldValidation": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "cross_field" - }, - "condition": { - "type": "string", - "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields involved in the validation" - } - }, - "required": [ - "name", - "message", - "type", - "condition", - "fields" - ], - "additionalProperties": false - } + "CrossFieldValidation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/CurrencyConfig.json b/packages/spec/json-schema/data/CurrencyConfig.json index b2b90e72a..a8c5f07a8 100644 --- a/packages/spec/json-schema/data/CurrencyConfig.json +++ b/packages/spec/json-schema/data/CurrencyConfig.json @@ -1,35 +1,7 @@ { "$ref": "#/definitions/CurrencyConfig", "definitions": { - "CurrencyConfig": { - "type": "object", - "properties": { - "precision": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 2, - "description": "Decimal precision (default: 2)" - }, - "currencyMode": { - "type": "string", - "enum": [ - "dynamic", - "fixed" - ], - "default": "dynamic", - "description": "Currency mode: dynamic (user selectable) or fixed (single currency)" - }, - "defaultCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3, - "default": "CNY", - "description": "Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)" - } - }, - "additionalProperties": false - } + "CurrencyConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/CurrencyValue.json b/packages/spec/json-schema/data/CurrencyValue.json index b1efdec93..4632fbbbd 100644 --- a/packages/spec/json-schema/data/CurrencyValue.json +++ b/packages/spec/json-schema/data/CurrencyValue.json @@ -1,26 +1,7 @@ { "$ref": "#/definitions/CurrencyValue", "definitions": { - "CurrencyValue": { - "type": "object", - "properties": { - "value": { - "type": "number", - "description": "Monetary amount" - }, - "currency": { - "type": "string", - "minLength": 3, - "maxLength": 3, - "description": "Currency code (ISO 4217)" - } - }, - "required": [ - "value", - "currency" - ], - "additionalProperties": false - } + "CurrencyValue": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/CustomValidator.json b/packages/spec/json-schema/data/CustomValidator.json index 6b3f7e9c5..3962132bb 100644 --- a/packages/spec/json-schema/data/CustomValidator.json +++ b/packages/spec/json-schema/data/CustomValidator.json @@ -1,84 +1,7 @@ { "$ref": "#/definitions/CustomValidator", "definitions": { - "CustomValidator": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "custom" - }, - "handler": { - "type": "string", - "description": "Name of the custom validation function registered in the system" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Parameters passed to the custom handler" - } - }, - "required": [ - "name", - "message", - "type", - "handler" - ], - "additionalProperties": false - } + "CustomValidator": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineAggregateOptions.json b/packages/spec/json-schema/data/DataEngineAggregateOptions.json index 727d38930..c6e74c1be 100644 --- a/packages/spec/json-schema/data/DataEngineAggregateOptions.json +++ b/packages/spec/json-schema/data/DataEngineAggregateOptions.json @@ -1,80 +1,7 @@ { "$ref": "#/definitions/DataEngineAggregateOptions", "definitions": { - "DataEngineAggregateOptions": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - } - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "method": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct" - ] - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field", - "method" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.aggregate operations" - } + "DataEngineAggregateOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineAggregateRequest.json b/packages/spec/json-schema/data/DataEngineAggregateRequest.json index 8fe7da4ba..33b096833 100644 --- a/packages/spec/json-schema/data/DataEngineAggregateRequest.json +++ b/packages/spec/json-schema/data/DataEngineAggregateRequest.json @@ -1,98 +1,7 @@ { "$ref": "#/definitions/DataEngineAggregateRequest", "definitions": { - "DataEngineAggregateRequest": { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "aggregate" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - } - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "method": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct" - ] - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field", - "method" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.aggregate operations" - } - }, - "required": [ - "method", - "object", - "query" - ], - "additionalProperties": false - } + "DataEngineAggregateRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineBatchRequest.json b/packages/spec/json-schema/data/DataEngineBatchRequest.json index f93d50515..973f2c2f3 100644 --- a/packages/spec/json-schema/data/DataEngineBatchRequest.json +++ b/packages/spec/json-schema/data/DataEngineBatchRequest.json @@ -1,699 +1,7 @@ { "$ref": "#/definitions/DataEngineBatchRequest", "definitions": { - "DataEngineBatchRequest": { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "batch" - }, - "requests": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "find" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "sort": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 1, - -1 - ] - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Sort order definition" - }, - "limit": { - "type": "integer", - "minimum": 1 - }, - "skip": { - "type": "integer", - "minimum": 0 - }, - "top": { - "type": "integer", - "minimum": 1 - }, - "populate": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Query options for IDataEngine.find() operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "findOne" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "sort": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 1, - -1 - ] - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Sort order definition" - }, - "limit": { - "type": "integer", - "minimum": 1 - }, - "skip": { - "type": "integer", - "minimum": 0 - }, - "top": { - "type": "integer", - "minimum": 1 - }, - "populate": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Query options for IDataEngine.find() operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "insert" - }, - "object": { - "type": "string" - }, - "data": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - } - } - ] - }, - "options": { - "type": "object", - "properties": { - "returning": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.insert operations" - } - }, - "required": [ - "method", - "object", - "data" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "update" - }, - "object": { - "type": "string" - }, - "data": { - "type": "object", - "additionalProperties": {} - }, - "id": { - "description": "ID for single update, or use filter in options" - }, - "options": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "upsert": { - "type": "boolean", - "default": false - }, - "multi": { - "type": "boolean", - "default": false - }, - "returning": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.update operations" - } - }, - "required": [ - "method", - "object", - "data" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "delete" - }, - "object": { - "type": "string" - }, - "id": { - "description": "ID for single delete, or use filter in options" - }, - "options": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "multi": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.delete operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "count" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.count operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "aggregate" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - } - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "method": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct" - ] - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field", - "method" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.aggregate operations" - } - }, - "required": [ - "method", - "object", - "query" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "execute" - }, - "command": {}, - "options": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "method" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "vectorFind" - }, - "object": { - "type": "string" - }, - "vector": { - "type": "array", - "items": { - "type": "number" - } - }, - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "limit": { - "type": "integer", - "default": 5 - }, - "threshold": { - "type": "number" - } - }, - "required": [ - "method", - "object", - "vector" - ], - "additionalProperties": false - } - ] - } - }, - "transaction": { - "type": "boolean", - "default": true - } - }, - "required": [ - "method", - "requests" - ], - "additionalProperties": false - } + "DataEngineBatchRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineContract.json b/packages/spec/json-schema/data/DataEngineContract.json index 86c88196f..06682061c 100644 --- a/packages/spec/json-schema/data/DataEngineContract.json +++ b/packages/spec/json-schema/data/DataEngineContract.json @@ -1,12 +1,7 @@ { "$ref": "#/definitions/DataEngineContract", "definitions": { - "DataEngineContract": { - "type": "object", - "properties": {}, - "additionalProperties": false, - "description": "Standard Data Engine Contract" - } + "DataEngineContract": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineCountOptions.json b/packages/spec/json-schema/data/DataEngineCountOptions.json index 1e7cfcfe6..5972c4bde 100644 --- a/packages/spec/json-schema/data/DataEngineCountOptions.json +++ b/packages/spec/json-schema/data/DataEngineCountOptions.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/DataEngineCountOptions", "definitions": { - "DataEngineCountOptions": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.count operations" - } + "DataEngineCountOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineCountRequest.json b/packages/spec/json-schema/data/DataEngineCountRequest.json index 22e8dc60b..b6dff77af 100644 --- a/packages/spec/json-schema/data/DataEngineCountRequest.json +++ b/packages/spec/json-schema/data/DataEngineCountRequest.json @@ -1,61 +1,7 @@ { "$ref": "#/definitions/DataEngineCountRequest", "definitions": { - "DataEngineCountRequest": { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "count" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.count operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - } + "DataEngineCountRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineDeleteOptions.json b/packages/spec/json-schema/data/DataEngineDeleteOptions.json index 41f939e09..572899305 100644 --- a/packages/spec/json-schema/data/DataEngineDeleteOptions.json +++ b/packages/spec/json-schema/data/DataEngineDeleteOptions.json @@ -1,48 +1,7 @@ { "$ref": "#/definitions/DataEngineDeleteOptions", "definitions": { - "DataEngineDeleteOptions": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "multi": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.delete operations" - } + "DataEngineDeleteOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineDeleteRequest.json b/packages/spec/json-schema/data/DataEngineDeleteRequest.json index 2ed6e45af..6ee60f760 100644 --- a/packages/spec/json-schema/data/DataEngineDeleteRequest.json +++ b/packages/spec/json-schema/data/DataEngineDeleteRequest.json @@ -1,68 +1,7 @@ { "$ref": "#/definitions/DataEngineDeleteRequest", "definitions": { - "DataEngineDeleteRequest": { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "delete" - }, - "object": { - "type": "string" - }, - "id": { - "description": "ID for single delete, or use filter in options" - }, - "options": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "multi": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.delete operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - } + "DataEngineDeleteRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineExecuteRequest.json b/packages/spec/json-schema/data/DataEngineExecuteRequest.json index 2e205384c..f903d65e8 100644 --- a/packages/spec/json-schema/data/DataEngineExecuteRequest.json +++ b/packages/spec/json-schema/data/DataEngineExecuteRequest.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/DataEngineExecuteRequest", "definitions": { - "DataEngineExecuteRequest": { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "execute" - }, - "command": {}, - "options": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "method" - ], - "additionalProperties": false - } + "DataEngineExecuteRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineFilter.json b/packages/spec/json-schema/data/DataEngineFilter.json index 3092cc459..1d1aed906 100644 --- a/packages/spec/json-schema/data/DataEngineFilter.json +++ b/packages/spec/json-schema/data/DataEngineFilter.json @@ -1,37 +1,7 @@ { "$ref": "#/definitions/DataEngineFilter", "definitions": { - "DataEngineFilter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - } + "DataEngineFilter": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineFindOneRequest.json b/packages/spec/json-schema/data/DataEngineFindOneRequest.json index 97ae4943d..d5b473cc6 100644 --- a/packages/spec/json-schema/data/DataEngineFindOneRequest.json +++ b/packages/spec/json-schema/data/DataEngineFindOneRequest.json @@ -1,133 +1,7 @@ { "$ref": "#/definitions/DataEngineFindOneRequest", "definitions": { - "DataEngineFindOneRequest": { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "findOne" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "sort": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 1, - -1 - ] - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Sort order definition" - }, - "limit": { - "type": "integer", - "minimum": 1 - }, - "skip": { - "type": "integer", - "minimum": 0 - }, - "top": { - "type": "integer", - "minimum": 1 - }, - "populate": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Query options for IDataEngine.find() operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - } + "DataEngineFindOneRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineFindRequest.json b/packages/spec/json-schema/data/DataEngineFindRequest.json index 95c8210da..f9a02d93b 100644 --- a/packages/spec/json-schema/data/DataEngineFindRequest.json +++ b/packages/spec/json-schema/data/DataEngineFindRequest.json @@ -1,133 +1,7 @@ { "$ref": "#/definitions/DataEngineFindRequest", "definitions": { - "DataEngineFindRequest": { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "find" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "sort": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 1, - -1 - ] - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Sort order definition" - }, - "limit": { - "type": "integer", - "minimum": 1 - }, - "skip": { - "type": "integer", - "minimum": 0 - }, - "top": { - "type": "integer", - "minimum": 1 - }, - "populate": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Query options for IDataEngine.find() operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - } + "DataEngineFindRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineInsertOptions.json b/packages/spec/json-schema/data/DataEngineInsertOptions.json index a0c5f91ed..b27ab5367 100644 --- a/packages/spec/json-schema/data/DataEngineInsertOptions.json +++ b/packages/spec/json-schema/data/DataEngineInsertOptions.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/DataEngineInsertOptions", "definitions": { - "DataEngineInsertOptions": { - "type": "object", - "properties": { - "returning": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.insert operations" - } + "DataEngineInsertOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineInsertRequest.json b/packages/spec/json-schema/data/DataEngineInsertRequest.json index 927155b4e..129941a3e 100644 --- a/packages/spec/json-schema/data/DataEngineInsertRequest.json +++ b/packages/spec/json-schema/data/DataEngineInsertRequest.json @@ -1,50 +1,7 @@ { "$ref": "#/definitions/DataEngineInsertRequest", "definitions": { - "DataEngineInsertRequest": { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "insert" - }, - "object": { - "type": "string" - }, - "data": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - } - } - ] - }, - "options": { - "type": "object", - "properties": { - "returning": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.insert operations" - } - }, - "required": [ - "method", - "object", - "data" - ], - "additionalProperties": false - } + "DataEngineInsertRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineQueryOptions.json b/packages/spec/json-schema/data/DataEngineQueryOptions.json index 2ea0e710e..6a19229ac 100644 --- a/packages/spec/json-schema/data/DataEngineQueryOptions.json +++ b/packages/spec/json-schema/data/DataEngineQueryOptions.json @@ -1,116 +1,7 @@ { "$ref": "#/definitions/DataEngineQueryOptions", "definitions": { - "DataEngineQueryOptions": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "sort": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 1, - -1 - ] - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Sort order definition" - }, - "limit": { - "type": "integer", - "minimum": 1 - }, - "skip": { - "type": "integer", - "minimum": 0 - }, - "top": { - "type": "integer", - "minimum": 1 - }, - "populate": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Query options for IDataEngine.find() operations" - } + "DataEngineQueryOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineRequest.json b/packages/spec/json-schema/data/DataEngineRequest.json index f3b64992a..43ba250e6 100644 --- a/packages/spec/json-schema/data/DataEngineRequest.json +++ b/packages/spec/json-schema/data/DataEngineRequest.json @@ -1,1372 +1,7 @@ { "$ref": "#/definitions/DataEngineRequest", "definitions": { - "DataEngineRequest": { - "anyOf": [ - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "find" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "sort": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 1, - -1 - ] - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Sort order definition" - }, - "limit": { - "type": "integer", - "minimum": 1 - }, - "skip": { - "type": "integer", - "minimum": 0 - }, - "top": { - "type": "integer", - "minimum": 1 - }, - "populate": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Query options for IDataEngine.find() operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "findOne" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "sort": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 1, - -1 - ] - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Sort order definition" - }, - "limit": { - "type": "integer", - "minimum": 1 - }, - "skip": { - "type": "integer", - "minimum": 0 - }, - "top": { - "type": "integer", - "minimum": 1 - }, - "populate": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Query options for IDataEngine.find() operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "insert" - }, - "object": { - "type": "string" - }, - "data": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - } - } - ] - }, - "options": { - "type": "object", - "properties": { - "returning": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.insert operations" - } - }, - "required": [ - "method", - "object", - "data" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "update" - }, - "object": { - "type": "string" - }, - "data": { - "type": "object", - "additionalProperties": {} - }, - "id": { - "description": "ID for single update, or use filter in options" - }, - "options": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "upsert": { - "type": "boolean", - "default": false - }, - "multi": { - "type": "boolean", - "default": false - }, - "returning": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.update operations" - } - }, - "required": [ - "method", - "object", - "data" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "delete" - }, - "object": { - "type": "string" - }, - "id": { - "description": "ID for single delete, or use filter in options" - }, - "options": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "multi": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.delete operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "count" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.count operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "aggregate" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - } - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "method": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct" - ] - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field", - "method" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.aggregate operations" - } - }, - "required": [ - "method", - "object", - "query" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "batch" - }, - "requests": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "find" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "sort": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 1, - -1 - ] - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Sort order definition" - }, - "limit": { - "type": "integer", - "minimum": 1 - }, - "skip": { - "type": "integer", - "minimum": 0 - }, - "top": { - "type": "integer", - "minimum": 1 - }, - "populate": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Query options for IDataEngine.find() operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "findOne" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "sort": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 1, - -1 - ] - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Sort order definition" - }, - "limit": { - "type": "integer", - "minimum": 1 - }, - "skip": { - "type": "integer", - "minimum": 0 - }, - "top": { - "type": "integer", - "minimum": 1 - }, - "populate": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Query options for IDataEngine.find() operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "insert" - }, - "object": { - "type": "string" - }, - "data": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - } - } - ] - }, - "options": { - "type": "object", - "properties": { - "returning": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.insert operations" - } - }, - "required": [ - "method", - "object", - "data" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "update" - }, - "object": { - "type": "string" - }, - "data": { - "type": "object", - "additionalProperties": {} - }, - "id": { - "description": "ID for single update, or use filter in options" - }, - "options": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "upsert": { - "type": "boolean", - "default": false - }, - "multi": { - "type": "boolean", - "default": false - }, - "returning": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.update operations" - } - }, - "required": [ - "method", - "object", - "data" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "delete" - }, - "object": { - "type": "string" - }, - "id": { - "description": "ID for single delete, or use filter in options" - }, - "options": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "multi": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.delete operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "count" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.count operations" - } - }, - "required": [ - "method", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "aggregate" - }, - "object": { - "type": "string" - }, - "query": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - } - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "method": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct" - ] - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field", - "method" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.aggregate operations" - } - }, - "required": [ - "method", - "object", - "query" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "execute" - }, - "command": {}, - "options": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "method" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "vectorFind" - }, - "object": { - "type": "string" - }, - "vector": { - "type": "array", - "items": { - "type": "number" - } - }, - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "limit": { - "type": "integer", - "default": 5 - }, - "threshold": { - "type": "number" - } - }, - "required": [ - "method", - "object", - "vector" - ], - "additionalProperties": false - } - ] - } - }, - "transaction": { - "type": "boolean", - "default": true - } - }, - "required": [ - "method", - "requests" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "execute" - }, - "command": {}, - "options": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "method" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "vectorFind" - }, - "object": { - "type": "string" - }, - "vector": { - "type": "array", - "items": { - "type": "number" - } - }, - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "limit": { - "type": "integer", - "default": 5 - }, - "threshold": { - "type": "number" - } - }, - "required": [ - "method", - "object", - "vector" - ], - "additionalProperties": false - } - ], - "description": "Virtual ObjectQL Request Protocol" - } + "DataEngineRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineSort.json b/packages/spec/json-schema/data/DataEngineSort.json index 8c3e5f9e5..a16a77d67 100644 --- a/packages/spec/json-schema/data/DataEngineSort.json +++ b/packages/spec/json-schema/data/DataEngineSort.json @@ -1,54 +1,7 @@ { "$ref": "#/definitions/DataEngineSort", "definitions": { - "DataEngineSort": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 1, - -1 - ] - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Sort order definition" - } + "DataEngineSort": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineUpdateOptions.json b/packages/spec/json-schema/data/DataEngineUpdateOptions.json index 03cd402be..31bde5361 100644 --- a/packages/spec/json-schema/data/DataEngineUpdateOptions.json +++ b/packages/spec/json-schema/data/DataEngineUpdateOptions.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/DataEngineUpdateOptions", "definitions": { - "DataEngineUpdateOptions": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "upsert": { - "type": "boolean", - "default": false - }, - "multi": { - "type": "boolean", - "default": false - }, - "returning": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.update operations" - } + "DataEngineUpdateOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineUpdateRequest.json b/packages/spec/json-schema/data/DataEngineUpdateRequest.json index f179d275a..aec45a341 100644 --- a/packages/spec/json-schema/data/DataEngineUpdateRequest.json +++ b/packages/spec/json-schema/data/DataEngineUpdateRequest.json @@ -1,81 +1,7 @@ { "$ref": "#/definitions/DataEngineUpdateRequest", "definitions": { - "DataEngineUpdateRequest": { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "update" - }, - "object": { - "type": "string" - }, - "data": { - "type": "object", - "additionalProperties": {} - }, - "id": { - "description": "ID for single update, or use filter in options" - }, - "options": { - "type": "object", - "properties": { - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "upsert": { - "type": "boolean", - "default": false - }, - "multi": { - "type": "boolean", - "default": false - }, - "returning": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Options for DataEngine.update operations" - } - }, - "required": [ - "method", - "object", - "data" - ], - "additionalProperties": false - } + "DataEngineUpdateRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataEngineVectorFindRequest.json b/packages/spec/json-schema/data/DataEngineVectorFindRequest.json index d3cbb9a83..9fbf01321 100644 --- a/packages/spec/json-schema/data/DataEngineVectorFindRequest.json +++ b/packages/spec/json-schema/data/DataEngineVectorFindRequest.json @@ -1,74 +1,7 @@ { "$ref": "#/definitions/DataEngineVectorFindRequest", "definitions": { - "DataEngineVectorFindRequest": { - "type": "object", - "properties": { - "method": { - "type": "string", - "const": "vectorFind" - }, - "object": { - "type": "string" - }, - "vector": { - "type": "array", - "items": { - "type": "number" - } - }, - "filter": { - "anyOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - ], - "description": "Data Engine query filter conditions" - }, - "select": { - "type": "array", - "items": { - "type": "string" - } - }, - "limit": { - "type": "integer", - "default": 5 - }, - "threshold": { - "type": "number" - } - }, - "required": [ - "method", - "object", - "vector" - ], - "additionalProperties": false - } + "DataEngineVectorFindRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataQualityRules.json b/packages/spec/json-schema/data/DataQualityRules.json index 14b892d50..77a27a14e 100644 --- a/packages/spec/json-schema/data/DataQualityRules.json +++ b/packages/spec/json-schema/data/DataQualityRules.json @@ -1,45 +1,7 @@ { "$ref": "#/definitions/DataQualityRules", "definitions": { - "DataQualityRules": { - "type": "object", - "properties": { - "uniqueness": { - "type": "boolean", - "default": false, - "description": "Enforce unique values across all records" - }, - "completeness": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0, - "description": "Minimum ratio of non-null values (0-1, default: 0 = no requirement)" - }, - "accuracy": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")" - }, - "threshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)" - } - }, - "required": [ - "source", - "threshold" - ], - "additionalProperties": false, - "description": "Accuracy validation configuration" - } - }, - "additionalProperties": false - } + "DataQualityRules": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DataTypeMapping.json b/packages/spec/json-schema/data/DataTypeMapping.json index 20de4738c..19cc79376 100644 --- a/packages/spec/json-schema/data/DataTypeMapping.json +++ b/packages/spec/json-schema/data/DataTypeMapping.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/DataTypeMapping", "definitions": { - "DataTypeMapping": { - "type": "object", - "properties": { - "text": { - "type": "string", - "description": "SQL type for text fields (e.g., VARCHAR, TEXT)" - }, - "number": { - "type": "string", - "description": "SQL type for number fields (e.g., NUMERIC, DECIMAL, INT)" - }, - "boolean": { - "type": "string", - "description": "SQL type for boolean fields (e.g., BOOLEAN, BIT)" - }, - "date": { - "type": "string", - "description": "SQL type for date fields (e.g., DATE)" - }, - "datetime": { - "type": "string", - "description": "SQL type for datetime fields (e.g., TIMESTAMP, DATETIME)" - }, - "json": { - "type": "string", - "description": "SQL type for JSON fields (e.g., JSON, JSONB)" - }, - "uuid": { - "type": "string", - "description": "SQL type for UUID fields (e.g., UUID, CHAR(36))" - }, - "binary": { - "type": "string", - "description": "SQL type for binary fields (e.g., BLOB, BYTEA)" - } - }, - "required": [ - "text", - "number", - "boolean", - "date", - "datetime" - ], - "additionalProperties": false - } + "DataTypeMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/Dataset.json b/packages/spec/json-schema/data/Dataset.json index 15b4c483b..2b930994d 100644 --- a/packages/spec/json-schema/data/Dataset.json +++ b/packages/spec/json-schema/data/Dataset.json @@ -1,63 +1,7 @@ { "$ref": "#/definitions/Dataset", "definitions": { - "Dataset": { - "type": "object", - "properties": { - "object": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Target Object Name" - }, - "externalId": { - "type": "string", - "default": "name", - "description": "Field match for uniqueness check" - }, - "mode": { - "type": "string", - "enum": [ - "insert", - "update", - "upsert", - "replace", - "ignore" - ], - "default": "upsert", - "description": "Conflict resolution strategy" - }, - "env": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "prod", - "dev", - "test" - ] - }, - "default": [ - "prod", - "dev", - "test" - ], - "description": "Applicable environments" - }, - "records": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - }, - "description": "Data records" - } - }, - "required": [ - "object", - "records" - ], - "additionalProperties": false - } + "Dataset": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DatasetMode.json b/packages/spec/json-schema/data/DatasetMode.json index 06240af1c..586db8fc2 100644 --- a/packages/spec/json-schema/data/DatasetMode.json +++ b/packages/spec/json-schema/data/DatasetMode.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/DatasetMode", "definitions": { - "DatasetMode": { - "type": "string", - "enum": [ - "insert", - "update", - "upsert", - "replace", - "ignore" - ] - } + "DatasetMode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/Document.json b/packages/spec/json-schema/data/Document.json index fe369c5af..cba198cb6 100644 --- a/packages/spec/json-schema/data/Document.json +++ b/packages/spec/json-schema/data/Document.json @@ -1,292 +1,7 @@ { "$ref": "#/definitions/Document", "definitions": { - "Document": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Document ID" - }, - "name": { - "type": "string", - "description": "Document name" - }, - "description": { - "type": "string", - "description": "Document description" - }, - "fileType": { - "type": "string", - "description": "File MIME type" - }, - "fileSize": { - "type": "number", - "description": "File size in bytes" - }, - "category": { - "type": "string", - "description": "Document category" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Document tags" - }, - "versioning": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Versioning enabled" - }, - "versions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "versionNumber": { - "type": "number", - "description": "Version number" - }, - "createdAt": { - "type": "number", - "description": "Creation timestamp" - }, - "createdBy": { - "type": "string", - "description": "Creator user ID" - }, - "size": { - "type": "number", - "description": "File size in bytes" - }, - "checksum": { - "type": "string", - "description": "File checksum" - }, - "downloadUrl": { - "type": "string", - "format": "uri", - "description": "Download URL" - }, - "isLatest": { - "type": "boolean", - "default": false, - "description": "Is latest version" - } - }, - "required": [ - "versionNumber", - "createdAt", - "createdBy", - "size", - "checksum", - "downloadUrl" - ], - "additionalProperties": false - }, - "description": "Version history" - }, - "majorVersion": { - "type": "number", - "description": "Major version" - }, - "minorVersion": { - "type": "number", - "description": "Minor version" - } - }, - "required": [ - "enabled", - "versions", - "majorVersion", - "minorVersion" - ], - "additionalProperties": false, - "description": "Version control" - }, - "template": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Template ID" - }, - "name": { - "type": "string", - "description": "Template name" - }, - "description": { - "type": "string", - "description": "Template description" - }, - "fileUrl": { - "type": "string", - "format": "uri", - "description": "Template file URL" - }, - "fileType": { - "type": "string", - "description": "File MIME type" - }, - "placeholders": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Placeholder key" - }, - "label": { - "type": "string", - "description": "Placeholder label" - }, - "type": { - "type": "string", - "enum": [ - "text", - "number", - "date", - "image" - ], - "description": "Placeholder type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Is required" - } - }, - "required": [ - "key", - "label", - "type" - ], - "additionalProperties": false - }, - "description": "Template placeholders" - } - }, - "required": [ - "id", - "name", - "fileUrl", - "fileType", - "placeholders" - ], - "additionalProperties": false, - "description": "Document template" - }, - "eSignature": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "docusign", - "adobe-sign", - "hellosign", - "custom" - ], - "description": "E-signature provider" - }, - "enabled": { - "type": "boolean", - "default": false, - "description": "E-signature enabled" - }, - "signers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email", - "description": "Signer email" - }, - "name": { - "type": "string", - "description": "Signer name" - }, - "role": { - "type": "string", - "description": "Signer role" - }, - "order": { - "type": "number", - "description": "Signing order" - } - }, - "required": [ - "email", - "name", - "role", - "order" - ], - "additionalProperties": false - }, - "description": "Document signers" - }, - "expirationDays": { - "type": "number", - "default": 30, - "description": "Expiration days" - }, - "reminderDays": { - "type": "number", - "default": 7, - "description": "Reminder interval days" - } - }, - "required": [ - "provider", - "signers" - ], - "additionalProperties": false, - "description": "E-signature config" - }, - "access": { - "type": "object", - "properties": { - "isPublic": { - "type": "boolean", - "default": false, - "description": "Public access" - }, - "sharedWith": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Shared with" - }, - "expiresAt": { - "type": "number", - "description": "Access expiration" - } - }, - "additionalProperties": false, - "description": "Access control" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom metadata" - } - }, - "required": [ - "id", - "name", - "fileType", - "fileSize" - ], - "additionalProperties": false - } + "Document": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DocumentTemplate.json b/packages/spec/json-schema/data/DocumentTemplate.json index 2f391b111..f6e3ab990 100644 --- a/packages/spec/json-schema/data/DocumentTemplate.json +++ b/packages/spec/json-schema/data/DocumentTemplate.json @@ -1,78 +1,7 @@ { "$ref": "#/definitions/DocumentTemplate", "definitions": { - "DocumentTemplate": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Template ID" - }, - "name": { - "type": "string", - "description": "Template name" - }, - "description": { - "type": "string", - "description": "Template description" - }, - "fileUrl": { - "type": "string", - "format": "uri", - "description": "Template file URL" - }, - "fileType": { - "type": "string", - "description": "File MIME type" - }, - "placeholders": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Placeholder key" - }, - "label": { - "type": "string", - "description": "Placeholder label" - }, - "type": { - "type": "string", - "enum": [ - "text", - "number", - "date", - "image" - ], - "description": "Placeholder type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Is required" - } - }, - "required": [ - "key", - "label", - "type" - ], - "additionalProperties": false - }, - "description": "Template placeholders" - } - }, - "required": [ - "id", - "name", - "fileUrl", - "fileType", - "placeholders" - ], - "additionalProperties": false - } + "DocumentTemplate": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DocumentValidationSchema.json b/packages/spec/json-schema/data/DocumentValidationSchema.json index 98085c2c9..497c07d5d 100644 --- a/packages/spec/json-schema/data/DocumentValidationSchema.json +++ b/packages/spec/json-schema/data/DocumentValidationSchema.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/DocumentValidationSchema", "definitions": { - "DocumentValidationSchema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable schema validation" - }, - "validationLevel": { - "type": "string", - "enum": [ - "strict", - "moderate", - "off" - ], - "description": "Validation strictness" - }, - "validationAction": { - "type": "string", - "enum": [ - "error", - "warn" - ], - "description": "Action on validation failure" - }, - "jsonSchema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON Schema for validation" - } - }, - "additionalProperties": false - } + "DocumentValidationSchema": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DocumentVersion.json b/packages/spec/json-schema/data/DocumentVersion.json index 0fe34ce72..7cb090ae5 100644 --- a/packages/spec/json-schema/data/DocumentVersion.json +++ b/packages/spec/json-schema/data/DocumentVersion.json @@ -1,50 +1,7 @@ { "$ref": "#/definitions/DocumentVersion", "definitions": { - "DocumentVersion": { - "type": "object", - "properties": { - "versionNumber": { - "type": "number", - "description": "Version number" - }, - "createdAt": { - "type": "number", - "description": "Creation timestamp" - }, - "createdBy": { - "type": "string", - "description": "Creator user ID" - }, - "size": { - "type": "number", - "description": "File size in bytes" - }, - "checksum": { - "type": "string", - "description": "File checksum" - }, - "downloadUrl": { - "type": "string", - "format": "uri", - "description": "Download URL" - }, - "isLatest": { - "type": "boolean", - "default": false, - "description": "Is latest version" - } - }, - "required": [ - "versionNumber", - "createdAt", - "createdBy", - "size", - "checksum", - "downloadUrl" - ], - "additionalProperties": false - } + "DocumentVersion": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DriverCapabilities.json b/packages/spec/json-schema/data/DriverCapabilities.json index 70b79c5ee..23465c340 100644 --- a/packages/spec/json-schema/data/DriverCapabilities.json +++ b/packages/spec/json-schema/data/DriverCapabilities.json @@ -1,180 +1,7 @@ { "$ref": "#/definitions/DriverCapabilities", "definitions": { - "DriverCapabilities": { - "type": "object", - "properties": { - "create": { - "type": "boolean", - "default": true, - "description": "Supports CREATE operations" - }, - "read": { - "type": "boolean", - "default": true, - "description": "Supports READ operations" - }, - "update": { - "type": "boolean", - "default": true, - "description": "Supports UPDATE operations" - }, - "delete": { - "type": "boolean", - "default": true, - "description": "Supports DELETE operations" - }, - "bulkCreate": { - "type": "boolean", - "default": false, - "description": "Supports bulk CREATE operations" - }, - "bulkUpdate": { - "type": "boolean", - "default": false, - "description": "Supports bulk UPDATE operations" - }, - "bulkDelete": { - "type": "boolean", - "default": false, - "description": "Supports bulk DELETE operations" - }, - "transactions": { - "type": "boolean", - "default": false, - "description": "Supports ACID transactions" - }, - "savepoints": { - "type": "boolean", - "default": false, - "description": "Supports transaction savepoints" - }, - "isolationLevels": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "read-uncommitted", - "read-committed", - "repeatable-read", - "serializable" - ] - }, - "description": "Supported transaction isolation levels" - }, - "queryFilters": { - "type": "boolean", - "default": true, - "description": "Supports WHERE clause filtering" - }, - "queryAggregations": { - "type": "boolean", - "default": false, - "description": "Supports GROUP BY and aggregation functions" - }, - "querySorting": { - "type": "boolean", - "default": true, - "description": "Supports ORDER BY sorting" - }, - "queryPagination": { - "type": "boolean", - "default": true, - "description": "Supports LIMIT/OFFSET pagination" - }, - "queryWindowFunctions": { - "type": "boolean", - "default": false, - "description": "Supports window functions with OVER clause" - }, - "querySubqueries": { - "type": "boolean", - "default": false, - "description": "Supports subqueries" - }, - "queryCTE": { - "type": "boolean", - "default": false, - "description": "Supports Common Table Expressions (WITH clause)" - }, - "joins": { - "type": "boolean", - "default": false, - "description": "Supports SQL joins" - }, - "fullTextSearch": { - "type": "boolean", - "default": false, - "description": "Supports full-text search" - }, - "jsonQuery": { - "type": "boolean", - "default": false, - "description": "Supports JSON field querying" - }, - "geospatialQuery": { - "type": "boolean", - "default": false, - "description": "Supports geospatial queries" - }, - "streaming": { - "type": "boolean", - "default": false, - "description": "Supports result streaming (cursors/iterators)" - }, - "jsonFields": { - "type": "boolean", - "default": false, - "description": "Supports JSON field types" - }, - "arrayFields": { - "type": "boolean", - "default": false, - "description": "Supports array field types" - }, - "vectorSearch": { - "type": "boolean", - "default": false, - "description": "Supports vector embeddings and similarity search" - }, - "geoSpatial": { - "type": "boolean", - "default": false, - "description": "Supports geospatial queries (deprecated: use geospatialQuery)" - }, - "schemaSync": { - "type": "boolean", - "default": false, - "description": "Supports automatic schema synchronization" - }, - "migrations": { - "type": "boolean", - "default": false, - "description": "Supports database migrations" - }, - "indexes": { - "type": "boolean", - "default": false, - "description": "Supports index creation and management" - }, - "connectionPooling": { - "type": "boolean", - "default": false, - "description": "Supports connection pooling" - }, - "preparedStatements": { - "type": "boolean", - "default": false, - "description": "Supports prepared statements (SQL injection prevention)" - }, - "queryCache": { - "type": "boolean", - "default": false, - "description": "Supports query result caching" - } - }, - "additionalProperties": false - } + "DriverCapabilities": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DriverConfig.json b/packages/spec/json-schema/data/DriverConfig.json index 1d79d306e..b81ef85db 100644 --- a/packages/spec/json-schema/data/DriverConfig.json +++ b/packages/spec/json-schema/data/DriverConfig.json @@ -1,243 +1,7 @@ { "$ref": "#/definitions/DriverConfig", "definitions": { - "DriverConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Driver instance name" - }, - "type": { - "type": "string", - "enum": [ - "sql", - "nosql", - "cache", - "search", - "graph", - "timeseries" - ], - "description": "Driver type category" - }, - "capabilities": { - "type": "object", - "properties": { - "create": { - "type": "boolean", - "default": true, - "description": "Supports CREATE operations" - }, - "read": { - "type": "boolean", - "default": true, - "description": "Supports READ operations" - }, - "update": { - "type": "boolean", - "default": true, - "description": "Supports UPDATE operations" - }, - "delete": { - "type": "boolean", - "default": true, - "description": "Supports DELETE operations" - }, - "bulkCreate": { - "type": "boolean", - "default": false, - "description": "Supports bulk CREATE operations" - }, - "bulkUpdate": { - "type": "boolean", - "default": false, - "description": "Supports bulk UPDATE operations" - }, - "bulkDelete": { - "type": "boolean", - "default": false, - "description": "Supports bulk DELETE operations" - }, - "transactions": { - "type": "boolean", - "default": false, - "description": "Supports ACID transactions" - }, - "savepoints": { - "type": "boolean", - "default": false, - "description": "Supports transaction savepoints" - }, - "isolationLevels": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "read-uncommitted", - "read-committed", - "repeatable-read", - "serializable" - ] - }, - "description": "Supported transaction isolation levels" - }, - "queryFilters": { - "type": "boolean", - "default": true, - "description": "Supports WHERE clause filtering" - }, - "queryAggregations": { - "type": "boolean", - "default": false, - "description": "Supports GROUP BY and aggregation functions" - }, - "querySorting": { - "type": "boolean", - "default": true, - "description": "Supports ORDER BY sorting" - }, - "queryPagination": { - "type": "boolean", - "default": true, - "description": "Supports LIMIT/OFFSET pagination" - }, - "queryWindowFunctions": { - "type": "boolean", - "default": false, - "description": "Supports window functions with OVER clause" - }, - "querySubqueries": { - "type": "boolean", - "default": false, - "description": "Supports subqueries" - }, - "queryCTE": { - "type": "boolean", - "default": false, - "description": "Supports Common Table Expressions (WITH clause)" - }, - "joins": { - "type": "boolean", - "default": false, - "description": "Supports SQL joins" - }, - "fullTextSearch": { - "type": "boolean", - "default": false, - "description": "Supports full-text search" - }, - "jsonQuery": { - "type": "boolean", - "default": false, - "description": "Supports JSON field querying" - }, - "geospatialQuery": { - "type": "boolean", - "default": false, - "description": "Supports geospatial queries" - }, - "streaming": { - "type": "boolean", - "default": false, - "description": "Supports result streaming (cursors/iterators)" - }, - "jsonFields": { - "type": "boolean", - "default": false, - "description": "Supports JSON field types" - }, - "arrayFields": { - "type": "boolean", - "default": false, - "description": "Supports array field types" - }, - "vectorSearch": { - "type": "boolean", - "default": false, - "description": "Supports vector embeddings and similarity search" - }, - "geoSpatial": { - "type": "boolean", - "default": false, - "description": "Supports geospatial queries (deprecated: use geospatialQuery)" - }, - "schemaSync": { - "type": "boolean", - "default": false, - "description": "Supports automatic schema synchronization" - }, - "migrations": { - "type": "boolean", - "default": false, - "description": "Supports database migrations" - }, - "indexes": { - "type": "boolean", - "default": false, - "description": "Supports index creation and management" - }, - "connectionPooling": { - "type": "boolean", - "default": false, - "description": "Supports connection pooling" - }, - "preparedStatements": { - "type": "boolean", - "default": false, - "description": "Supports prepared statements (SQL injection prevention)" - }, - "queryCache": { - "type": "boolean", - "default": false, - "description": "Supports query result caching" - } - }, - "additionalProperties": false, - "description": "Driver capability flags" - }, - "connectionString": { - "type": "string", - "description": "Database connection string (driver-specific format)" - }, - "poolConfig": { - "type": "object", - "properties": { - "min": { - "type": "number", - "minimum": 0, - "default": 2, - "description": "Minimum number of connections in pool" - }, - "max": { - "type": "number", - "minimum": 1, - "default": 10, - "description": "Maximum number of connections in pool" - }, - "idleTimeoutMillis": { - "type": "number", - "minimum": 0, - "default": 30000, - "description": "Time in ms before idle connection is closed" - }, - "connectionTimeoutMillis": { - "type": "number", - "minimum": 0, - "default": 5000, - "description": "Time in ms to wait for available connection" - } - }, - "additionalProperties": false, - "description": "Connection pool configuration" - } - }, - "required": [ - "name", - "type", - "capabilities" - ], - "additionalProperties": false - } + "DriverConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DriverInterface.json b/packages/spec/json-schema/data/DriverInterface.json index 8ae878829..7d537c146 100644 --- a/packages/spec/json-schema/data/DriverInterface.json +++ b/packages/spec/json-schema/data/DriverInterface.json @@ -1,199 +1,7 @@ { "$ref": "#/definitions/DriverInterface", "definitions": { - "DriverInterface": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Driver unique name" - }, - "version": { - "type": "string", - "description": "Driver version" - }, - "supports": { - "type": "object", - "properties": { - "create": { - "type": "boolean", - "default": true, - "description": "Supports CREATE operations" - }, - "read": { - "type": "boolean", - "default": true, - "description": "Supports READ operations" - }, - "update": { - "type": "boolean", - "default": true, - "description": "Supports UPDATE operations" - }, - "delete": { - "type": "boolean", - "default": true, - "description": "Supports DELETE operations" - }, - "bulkCreate": { - "type": "boolean", - "default": false, - "description": "Supports bulk CREATE operations" - }, - "bulkUpdate": { - "type": "boolean", - "default": false, - "description": "Supports bulk UPDATE operations" - }, - "bulkDelete": { - "type": "boolean", - "default": false, - "description": "Supports bulk DELETE operations" - }, - "transactions": { - "type": "boolean", - "default": false, - "description": "Supports ACID transactions" - }, - "savepoints": { - "type": "boolean", - "default": false, - "description": "Supports transaction savepoints" - }, - "isolationLevels": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "read-uncommitted", - "read-committed", - "repeatable-read", - "serializable" - ] - }, - "description": "Supported transaction isolation levels" - }, - "queryFilters": { - "type": "boolean", - "default": true, - "description": "Supports WHERE clause filtering" - }, - "queryAggregations": { - "type": "boolean", - "default": false, - "description": "Supports GROUP BY and aggregation functions" - }, - "querySorting": { - "type": "boolean", - "default": true, - "description": "Supports ORDER BY sorting" - }, - "queryPagination": { - "type": "boolean", - "default": true, - "description": "Supports LIMIT/OFFSET pagination" - }, - "queryWindowFunctions": { - "type": "boolean", - "default": false, - "description": "Supports window functions with OVER clause" - }, - "querySubqueries": { - "type": "boolean", - "default": false, - "description": "Supports subqueries" - }, - "queryCTE": { - "type": "boolean", - "default": false, - "description": "Supports Common Table Expressions (WITH clause)" - }, - "joins": { - "type": "boolean", - "default": false, - "description": "Supports SQL joins" - }, - "fullTextSearch": { - "type": "boolean", - "default": false, - "description": "Supports full-text search" - }, - "jsonQuery": { - "type": "boolean", - "default": false, - "description": "Supports JSON field querying" - }, - "geospatialQuery": { - "type": "boolean", - "default": false, - "description": "Supports geospatial queries" - }, - "streaming": { - "type": "boolean", - "default": false, - "description": "Supports result streaming (cursors/iterators)" - }, - "jsonFields": { - "type": "boolean", - "default": false, - "description": "Supports JSON field types" - }, - "arrayFields": { - "type": "boolean", - "default": false, - "description": "Supports array field types" - }, - "vectorSearch": { - "type": "boolean", - "default": false, - "description": "Supports vector embeddings and similarity search" - }, - "geoSpatial": { - "type": "boolean", - "default": false, - "description": "Supports geospatial queries (deprecated: use geospatialQuery)" - }, - "schemaSync": { - "type": "boolean", - "default": false, - "description": "Supports automatic schema synchronization" - }, - "migrations": { - "type": "boolean", - "default": false, - "description": "Supports database migrations" - }, - "indexes": { - "type": "boolean", - "default": false, - "description": "Supports index creation and management" - }, - "connectionPooling": { - "type": "boolean", - "default": false, - "description": "Supports connection pooling" - }, - "preparedStatements": { - "type": "boolean", - "default": false, - "description": "Supports prepared statements (SQL injection prevention)" - }, - "queryCache": { - "type": "boolean", - "default": false, - "description": "Supports query result caching" - } - }, - "additionalProperties": false - } - }, - "required": [ - "name", - "version", - "supports" - ], - "additionalProperties": false - } + "DriverInterface": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/DriverOptions.json b/packages/spec/json-schema/data/DriverOptions.json index 76fcb56cb..937c26eb2 100644 --- a/packages/spec/json-schema/data/DriverOptions.json +++ b/packages/spec/json-schema/data/DriverOptions.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/DriverOptions", "definitions": { - "DriverOptions": { - "type": "object", - "properties": { - "transaction": { - "description": "Transaction handle" - }, - "timeout": { - "type": "number", - "description": "Timeout in ms" - }, - "skipCache": { - "type": "boolean", - "description": "Bypass cache" - }, - "traceContext": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "OpenTelemetry context or request ID" - }, - "tenantId": { - "type": "string", - "description": "Tenant Isolation identifier" - } - }, - "additionalProperties": false - } + "DriverOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ESignatureConfig.json b/packages/spec/json-schema/data/ESignatureConfig.json index 546b4ad41..c9afc9efd 100644 --- a/packages/spec/json-schema/data/ESignatureConfig.json +++ b/packages/spec/json-schema/data/ESignatureConfig.json @@ -1,74 +1,7 @@ { "$ref": "#/definitions/ESignatureConfig", "definitions": { - "ESignatureConfig": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "docusign", - "adobe-sign", - "hellosign", - "custom" - ], - "description": "E-signature provider" - }, - "enabled": { - "type": "boolean", - "default": false, - "description": "E-signature enabled" - }, - "signers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email", - "description": "Signer email" - }, - "name": { - "type": "string", - "description": "Signer name" - }, - "role": { - "type": "string", - "description": "Signer role" - }, - "order": { - "type": "number", - "description": "Signing order" - } - }, - "required": [ - "email", - "name", - "role", - "order" - ], - "additionalProperties": false - }, - "description": "Document signers" - }, - "expirationDays": { - "type": "number", - "default": 30, - "description": "Expiration days" - }, - "reminderDays": { - "type": "number", - "default": 7, - "description": "Reminder interval days" - } - }, - "required": [ - "provider", - "signers" - ], - "additionalProperties": false - } + "ESignatureConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/EqualityOperator.json b/packages/spec/json-schema/data/EqualityOperator.json index 3c2f6e03f..d5a97d281 100644 --- a/packages/spec/json-schema/data/EqualityOperator.json +++ b/packages/spec/json-schema/data/EqualityOperator.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/EqualityOperator", "definitions": { - "EqualityOperator": { - "type": "object", - "properties": { - "$eq": {}, - "$ne": {} - }, - "additionalProperties": false - } + "EqualityOperator": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ExternalDataSource.json b/packages/spec/json-schema/data/ExternalDataSource.json index c4eb9ea2c..8866d131a 100644 --- a/packages/spec/json-schema/data/ExternalDataSource.json +++ b/packages/spec/json-schema/data/ExternalDataSource.json @@ -1,68 +1,7 @@ { "$ref": "#/definitions/ExternalDataSource", "definitions": { - "ExternalDataSource": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Data source ID" - }, - "name": { - "type": "string", - "description": "Data source name" - }, - "type": { - "type": "string", - "enum": [ - "odata", - "rest-api", - "graphql", - "custom" - ], - "description": "Protocol type" - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "API endpoint URL" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "oauth2", - "api-key", - "basic", - "none" - ], - "description": "Auth type" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Auth configuration" - } - }, - "required": [ - "type", - "config" - ], - "additionalProperties": false, - "description": "Authentication" - } - }, - "required": [ - "id", - "name", - "type", - "endpoint", - "authentication" - ], - "additionalProperties": false - } + "ExternalDataSource": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ExternalFieldMapping.json b/packages/spec/json-schema/data/ExternalFieldMapping.json index e30711ad2..b6d4d8c6b 100644 --- a/packages/spec/json-schema/data/ExternalFieldMapping.json +++ b/packages/spec/json-schema/data/ExternalFieldMapping.json @@ -1,151 +1,7 @@ { "$ref": "#/definitions/ExternalFieldMapping", "definitions": { - "ExternalFieldMapping": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "type": { - "type": "string", - "description": "Field type" - }, - "readonly": { - "type": "boolean", - "default": true, - "description": "Read-only field" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - } + "ExternalFieldMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ExternalLookup.json b/packages/spec/json-schema/data/ExternalLookup.json index d19b2334e..547878e3a 100644 --- a/packages/spec/json-schema/data/ExternalLookup.json +++ b/packages/spec/json-schema/data/ExternalLookup.json @@ -1,327 +1,7 @@ { "$ref": "#/definitions/ExternalLookup", "definitions": { - "ExternalLookup": { - "type": "object", - "properties": { - "fieldName": { - "type": "string", - "description": "Field name" - }, - "dataSource": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Data source ID" - }, - "name": { - "type": "string", - "description": "Data source name" - }, - "type": { - "type": "string", - "enum": [ - "odata", - "rest-api", - "graphql", - "custom" - ], - "description": "Protocol type" - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "API endpoint URL" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "oauth2", - "api-key", - "basic", - "none" - ], - "description": "Auth type" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Auth configuration" - } - }, - "required": [ - "type", - "config" - ], - "additionalProperties": false, - "description": "Authentication" - } - }, - "required": [ - "id", - "name", - "type", - "endpoint", - "authentication" - ], - "additionalProperties": false, - "description": "External data source" - }, - "query": { - "type": "object", - "properties": { - "endpoint": { - "type": "string", - "description": "Query endpoint path" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST" - ], - "default": "GET", - "description": "HTTP method" - }, - "parameters": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - } - }, - "required": [ - "endpoint" - ], - "additionalProperties": false, - "description": "Query configuration" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "type": { - "type": "string", - "description": "Field type" - }, - "readonly": { - "type": "boolean", - "default": true, - "description": "Read-only field" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Field mappings" - }, - "caching": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Cache enabled" - }, - "ttl": { - "type": "number", - "default": 300, - "description": "Cache TTL (seconds)" - }, - "strategy": { - "type": "string", - "enum": [ - "lru", - "lfu", - "ttl" - ], - "default": "ttl", - "description": "Cache strategy" - } - }, - "additionalProperties": false, - "description": "Caching configuration" - }, - "fallback": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Fallback enabled" - }, - "defaultValue": { - "description": "Default fallback value" - }, - "showError": { - "type": "boolean", - "default": true, - "description": "Show error to user" - } - }, - "additionalProperties": false, - "description": "Fallback configuration" - }, - "rateLimit": { - "type": "object", - "properties": { - "requestsPerSecond": { - "type": "number", - "description": "Requests per second limit" - }, - "burstSize": { - "type": "number", - "description": "Burst size" - } - }, - "required": [ - "requestsPerSecond" - ], - "additionalProperties": false, - "description": "Rate limiting" - } - }, - "required": [ - "fieldName", - "dataSource", - "query", - "fieldMappings" - ], - "additionalProperties": false - } + "ExternalLookup": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/Field.json b/packages/spec/json-schema/data/Field.json index 7dd8aa0c1..93fe2fb08 100644 --- a/packages/spec/json-schema/data/Field.json +++ b/packages/spec/json-schema/data/Field.json @@ -1,861 +1,7 @@ { "$ref": "#/definitions/Field", "definitions": { - "Field": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Machine name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human readable label" - }, - "type": { - "type": "string", - "enum": [ - "text", - "textarea", - "email", - "url", - "phone", - "password", - "markdown", - "html", - "richtext", - "number", - "currency", - "percent", - "date", - "datetime", - "time", - "boolean", - "toggle", - "select", - "multiselect", - "radio", - "checkboxes", - "lookup", - "master_detail", - "tree", - "image", - "file", - "avatar", - "video", - "audio", - "formula", - "summary", - "autonumber", - "location", - "address", - "code", - "json", - "color", - "rating", - "slider", - "signature", - "qrcode", - "progress", - "tags", - "vector" - ], - "description": "Field Data Type" - }, - "description": { - "type": "string", - "description": "Tooltip/Help text" - }, - "format": { - "type": "string", - "description": "Format string (e.g. email, phone)" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Is required" - }, - "searchable": { - "type": "boolean", - "default": false, - "description": "Is searchable" - }, - "multiple": { - "type": "boolean", - "default": false, - "description": "Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image." - }, - "unique": { - "type": "boolean", - "default": false, - "description": "Is unique constraint" - }, - "defaultValue": { - "description": "Default value" - }, - "maxLength": { - "type": "number", - "description": "Max character length" - }, - "minLength": { - "type": "number", - "description": "Min character length" - }, - "precision": { - "type": "number", - "description": "Total digits" - }, - "scale": { - "type": "number", - "description": "Decimal places" - }, - "min": { - "type": "number", - "description": "Minimum value" - }, - "max": { - "type": "number", - "description": "Maximum value" - }, - "options": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Display label (human-readable, any case allowed)" - }, - "value": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Stored value (lowercase machine identifier)" - }, - "color": { - "type": "string", - "description": "Color code for badges/charts" - }, - "default": { - "type": "boolean", - "description": "Is default option" - } - }, - "required": [ - "label", - "value" - ], - "additionalProperties": false - }, - "description": "Static options for select/multiselect" - }, - "reference": { - "type": "string", - "description": "Target Object Name" - }, - "referenceFilters": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filters applied to lookup dialogs (e.g. \"active = true\")" - }, - "writeRequiresMasterRead": { - "type": "boolean", - "description": "If true, user needs read access to master record to edit this field" - }, - "deleteBehavior": { - "type": "string", - "enum": [ - "set_null", - "cascade", - "restrict" - ], - "default": "set_null", - "description": "What happens if referenced record is deleted" - }, - "expression": { - "type": "string", - "description": "Formula expression" - }, - "formula": { - "type": "string", - "description": "Deprecated: Use expression" - }, - "summaryOperations": { - "type": "object", - "properties": { - "object": { - "type": "string" - }, - "field": { - "type": "string" - }, - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "min", - "max", - "avg" - ] - } - }, - "required": [ - "object", - "field", - "function" - ], - "additionalProperties": false, - "description": "Roll-up summary definition" - }, - "language": { - "type": "string", - "description": "Programming language for syntax highlighting (e.g., javascript, python, sql)" - }, - "theme": { - "type": "string", - "description": "Code editor theme (e.g., dark, light, monokai)" - }, - "lineNumbers": { - "type": "boolean", - "description": "Show line numbers in code editor" - }, - "maxRating": { - "type": "number", - "description": "Maximum rating value (default: 5)" - }, - "allowHalf": { - "type": "boolean", - "description": "Allow half-star ratings" - }, - "displayMap": { - "type": "boolean", - "description": "Display map widget for location field" - }, - "allowGeocoding": { - "type": "boolean", - "description": "Allow address-to-coordinate conversion" - }, - "addressFormat": { - "type": "string", - "enum": [ - "us", - "uk", - "international" - ], - "description": "Address format template" - }, - "colorFormat": { - "type": "string", - "enum": [ - "hex", - "rgb", - "rgba", - "hsl" - ], - "description": "Color value format" - }, - "allowAlpha": { - "type": "boolean", - "description": "Allow transparency/alpha channel" - }, - "presetColors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Preset color options" - }, - "step": { - "type": "number", - "description": "Step increment for slider (default: 1)" - }, - "showValue": { - "type": "boolean", - "description": "Display current value on slider" - }, - "marks": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})" - }, - "barcodeFormat": { - "type": "string", - "enum": [ - "qr", - "ean13", - "ean8", - "code128", - "code39", - "upca", - "upce" - ], - "description": "Barcode format type" - }, - "qrErrorCorrection": { - "type": "string", - "enum": [ - "L", - "M", - "Q", - "H" - ], - "description": "QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\"" - }, - "displayValue": { - "type": "boolean", - "description": "Display human-readable value below barcode/QR code" - }, - "allowScanning": { - "type": "boolean", - "description": "Enable camera scanning for barcode/QR code input" - }, - "currencyConfig": { - "type": "object", - "properties": { - "precision": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 2, - "description": "Decimal precision (default: 2)" - }, - "currencyMode": { - "type": "string", - "enum": [ - "dynamic", - "fixed" - ], - "default": "dynamic", - "description": "Currency mode: dynamic (user selectable) or fixed (single currency)" - }, - "defaultCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3, - "default": "CNY", - "description": "Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)" - } - }, - "additionalProperties": false, - "description": "Configuration for currency field type" - }, - "vectorConfig": { - "type": "object", - "properties": { - "dimensions": { - "type": "integer", - "minimum": 1, - "maximum": 10000, - "description": "Vector dimensionality (e.g., 1536 for OpenAI embeddings)" - }, - "distanceMetric": { - "type": "string", - "enum": [ - "cosine", - "euclidean", - "dotProduct", - "manhattan" - ], - "default": "cosine", - "description": "Distance/similarity metric for vector search" - }, - "normalized": { - "type": "boolean", - "default": false, - "description": "Whether vectors are normalized (unit length)" - }, - "indexed": { - "type": "boolean", - "default": true, - "description": "Whether to create a vector index for fast similarity search" - }, - "indexType": { - "type": "string", - "enum": [ - "hnsw", - "ivfflat", - "flat" - ], - "description": "Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)" - } - }, - "required": [ - "dimensions" - ], - "additionalProperties": false, - "description": "Configuration for vector field type (AI/ML embeddings)" - }, - "fileAttachmentConfig": { - "type": "object", - "properties": { - "minSize": { - "type": "number", - "minimum": 0, - "description": "Minimum file size in bytes" - }, - "maxSize": { - "type": "number", - "minimum": 1, - "description": "Maximum file size in bytes (e.g., 10485760 = 10MB)" - }, - "allowedTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])" - }, - "blockedTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])" - }, - "allowedMimeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])" - }, - "blockedMimeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked MIME types" - }, - "virusScan": { - "type": "boolean", - "default": false, - "description": "Enable virus scanning for uploaded files" - }, - "virusScanProvider": { - "type": "string", - "enum": [ - "clamav", - "virustotal", - "metadefender", - "custom" - ], - "description": "Virus scanning service provider" - }, - "virusScanOnUpload": { - "type": "boolean", - "default": true, - "description": "Scan files immediately on upload" - }, - "quarantineOnThreat": { - "type": "boolean", - "default": true, - "description": "Quarantine files if threat detected" - }, - "storageProvider": { - "type": "string", - "description": "Object storage provider name (references ObjectStorageConfig)" - }, - "storageBucket": { - "type": "string", - "description": "Target bucket name" - }, - "storagePrefix": { - "type": "string", - "description": "Storage path prefix (e.g., \"uploads/documents/\")" - }, - "imageValidation": { - "type": "object", - "properties": { - "minWidth": { - "type": "number", - "minimum": 1, - "description": "Minimum image width in pixels" - }, - "maxWidth": { - "type": "number", - "minimum": 1, - "description": "Maximum image width in pixels" - }, - "minHeight": { - "type": "number", - "minimum": 1, - "description": "Minimum image height in pixels" - }, - "maxHeight": { - "type": "number", - "minimum": 1, - "description": "Maximum image height in pixels" - }, - "aspectRatio": { - "type": "string", - "description": "Required aspect ratio (e.g., \"16:9\", \"1:1\")" - }, - "generateThumbnails": { - "type": "boolean", - "default": false, - "description": "Auto-generate thumbnails" - }, - "thumbnailSizes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")" - }, - "width": { - "type": "number", - "minimum": 1, - "description": "Thumbnail width in pixels" - }, - "height": { - "type": "number", - "minimum": 1, - "description": "Thumbnail height in pixels" - }, - "crop": { - "type": "boolean", - "default": false, - "description": "Crop to exact dimensions" - } - }, - "required": [ - "name", - "width", - "height" - ], - "additionalProperties": false - }, - "description": "Thumbnail size configurations" - }, - "preserveMetadata": { - "type": "boolean", - "default": false, - "description": "Preserve EXIF metadata" - }, - "autoRotate": { - "type": "boolean", - "default": true, - "description": "Auto-rotate based on EXIF orientation" - } - }, - "additionalProperties": false, - "description": "Image-specific validation rules" - }, - "allowMultiple": { - "type": "boolean", - "default": false, - "description": "Allow multiple file uploads (overrides field.multiple)" - }, - "allowReplace": { - "type": "boolean", - "default": true, - "description": "Allow replacing existing files" - }, - "allowDelete": { - "type": "boolean", - "default": true, - "description": "Allow deleting uploaded files" - }, - "requireUpload": { - "type": "boolean", - "default": false, - "description": "Require at least one file when field is required" - }, - "extractMetadata": { - "type": "boolean", - "default": true, - "description": "Extract file metadata (name, size, type, etc.)" - }, - "extractText": { - "type": "boolean", - "default": false, - "description": "Extract text content from documents (OCR/parsing)" - }, - "versioningEnabled": { - "type": "boolean", - "default": false, - "description": "Keep previous versions of replaced files" - }, - "maxVersions": { - "type": "number", - "minimum": 1, - "description": "Maximum number of versions to retain" - }, - "publicRead": { - "type": "boolean", - "default": false, - "description": "Allow public read access to uploaded files" - }, - "presignedUrlExpiry": { - "type": "number", - "minimum": 60, - "maximum": 604800, - "default": 3600, - "description": "Presigned URL expiration in seconds (default: 1 hour)" - } - }, - "additionalProperties": false, - "description": "Configuration for file and attachment field types" - }, - "encryptionConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "algorithm": { - "type": "string", - "enum": [ - "aes-256-gcm", - "aes-256-cbc", - "chacha20-poly1305" - ], - "default": "aes-256-gcm" - }, - "keyManagement": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "local", - "aws-kms", - "azure-key-vault", - "gcp-kms", - "hashicorp-vault" - ] - }, - "keyId": { - "type": "string" - }, - "rotationPolicy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "frequencyDays": { - "type": "number", - "minimum": 1, - "default": 90 - }, - "retainOldVersions": { - "type": "number", - "default": 3 - }, - "autoRotate": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - "scope": { - "type": "string", - "enum": [ - "field", - "record", - "table", - "database" - ] - }, - "deterministicEncryption": { - "type": "boolean", - "default": false, - "description": "Allows equality queries on encrypted data" - }, - "searchableEncryption": { - "type": "boolean", - "default": false, - "description": "Allows search on encrypted data" - } - }, - "required": [ - "keyManagement", - "scope" - ], - "additionalProperties": false, - "description": "Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)" - }, - "maskingRule": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "strategy": { - "type": "string", - "enum": [ - "redact", - "partial", - "hash", - "tokenize", - "randomize", - "nullify", - "substitute" - ] - }, - "pattern": { - "type": "string", - "description": "Regex pattern for partial masking" - }, - "preserveFormat": { - "type": "boolean", - "default": true - }, - "preserveLength": { - "type": "boolean", - "default": true - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that see masked data" - }, - "exemptRoles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that see unmasked data" - } - }, - "required": [ - "field", - "strategy" - ], - "additionalProperties": false, - "description": "Data masking rules for PII protection" - }, - "auditTrail": { - "type": "boolean", - "default": false, - "description": "Enable detailed audit trail for this field (tracks all changes with user and timestamp)" - }, - "dependencies": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of field names that this field depends on (for formulas, visibility rules, etc.)" - }, - "cached": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable caching for computed field results" - }, - "ttl": { - "type": "number", - "minimum": 0, - "description": "Cache TTL in seconds (0 = no expiration)" - }, - "invalidateOn": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])" - } - }, - "required": [ - "enabled", - "ttl", - "invalidateOn" - ], - "additionalProperties": false, - "description": "Caching configuration for computed/formula fields" - }, - "dataQuality": { - "type": "object", - "properties": { - "uniqueness": { - "type": "boolean", - "default": false, - "description": "Enforce unique values across all records" - }, - "completeness": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0, - "description": "Minimum ratio of non-null values (0-1, default: 0 = no requirement)" - }, - "accuracy": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")" - }, - "threshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)" - } - }, - "required": [ - "source", - "threshold" - ], - "additionalProperties": false, - "description": "Accuracy validation configuration" - } - }, - "additionalProperties": false, - "description": "Data quality validation and monitoring rules" - }, - "hidden": { - "type": "boolean", - "default": false, - "description": "Hidden from default UI" - }, - "readonly": { - "type": "boolean", - "default": false, - "description": "Read-only in UI" - }, - "encryption": { - "type": "boolean", - "default": false, - "description": "Deprecated: Use encryptionConfig for enhanced encryption features. Simple flag for backward compatibility." - }, - "index": { - "type": "boolean", - "default": false, - "description": "Create standard database index" - }, - "externalId": { - "type": "boolean", - "default": false, - "description": "Is external ID for upsert operations" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "Field": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/FieldMapping.json b/packages/spec/json-schema/data/FieldMapping.json index 4a755a79b..77b81606f 100644 --- a/packages/spec/json-schema/data/FieldMapping.json +++ b/packages/spec/json-schema/data/FieldMapping.json @@ -1,83 +1,7 @@ { "$ref": "#/definitions/FieldMapping", "definitions": { - "FieldMapping": { - "type": "object", - "properties": { - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Source column header(s)" - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Target object field(s)" - }, - "transform": { - "type": "string", - "enum": [ - "none", - "constant", - "lookup", - "split", - "join", - "javascript", - "map" - ], - "default": "none" - }, - "params": { - "type": "object", - "properties": { - "value": {}, - "object": { - "type": "string" - }, - "fromField": { - "type": "string" - }, - "toField": { - "type": "string" - }, - "autoCreate": { - "type": "boolean" - }, - "valueMap": { - "type": "object", - "additionalProperties": {} - }, - "separator": { - "type": "string" - } - }, - "additionalProperties": false - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - } + "FieldMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/FieldNode.json b/packages/spec/json-schema/data/FieldNode.json index 7bc7ba6b8..8b33f6c4e 100644 --- a/packages/spec/json-schema/data/FieldNode.json +++ b/packages/spec/json-schema/data/FieldNode.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/FieldNode", "definitions": { - "FieldNode": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - } + "FieldNode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/FieldOperators.json b/packages/spec/json-schema/data/FieldOperators.json index 7464df83f..48b7e882c 100644 --- a/packages/spec/json-schema/data/FieldOperators.json +++ b/packages/spec/json-schema/data/FieldOperators.json @@ -1,186 +1,7 @@ { "$ref": "#/definitions/FieldOperators", "definitions": { - "FieldOperators": { - "type": "object", - "properties": { - "$eq": {}, - "$ne": {}, - "$gt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$gte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$lt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$lte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$in": { - "type": "array" - }, - "$nin": { - "type": "array" - }, - "$between": { - "type": "array", - "minItems": 2, - "maxItems": 2, - "items": [ - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - } - ] - }, - "$contains": { - "type": "string" - }, - "$startsWith": { - "type": "string" - }, - "$endsWith": { - "type": "string" - }, - "$null": { - "type": "boolean" - }, - "$exist": { - "type": "boolean" - } - }, - "additionalProperties": false - } + "FieldOperators": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/FieldReference.json b/packages/spec/json-schema/data/FieldReference.json index da42cba4e..670e83b1d 100644 --- a/packages/spec/json-schema/data/FieldReference.json +++ b/packages/spec/json-schema/data/FieldReference.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/FieldReference", "definitions": { - "FieldReference": { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } + "FieldReference": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/FieldType.json b/packages/spec/json-schema/data/FieldType.json index 999a964ed..7540b49ab 100644 --- a/packages/spec/json-schema/data/FieldType.json +++ b/packages/spec/json-schema/data/FieldType.json @@ -1,55 +1,7 @@ { "$ref": "#/definitions/FieldType", "definitions": { - "FieldType": { - "type": "string", - "enum": [ - "text", - "textarea", - "email", - "url", - "phone", - "password", - "markdown", - "html", - "richtext", - "number", - "currency", - "percent", - "date", - "datetime", - "time", - "boolean", - "toggle", - "select", - "multiselect", - "radio", - "checkboxes", - "lookup", - "master_detail", - "tree", - "image", - "file", - "avatar", - "video", - "audio", - "formula", - "summary", - "autonumber", - "location", - "address", - "code", - "json", - "color", - "rating", - "slider", - "signature", - "qrcode", - "progress", - "tags", - "vector" - ] - } + "FieldType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/FileAttachmentConfig.json b/packages/spec/json-schema/data/FileAttachmentConfig.json index 8f4eb33be..61535bec2 100644 --- a/packages/spec/json-schema/data/FileAttachmentConfig.json +++ b/packages/spec/json-schema/data/FileAttachmentConfig.json @@ -1,219 +1,7 @@ { "$ref": "#/definitions/FileAttachmentConfig", "definitions": { - "FileAttachmentConfig": { - "type": "object", - "properties": { - "minSize": { - "type": "number", - "minimum": 0, - "description": "Minimum file size in bytes" - }, - "maxSize": { - "type": "number", - "minimum": 1, - "description": "Maximum file size in bytes (e.g., 10485760 = 10MB)" - }, - "allowedTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])" - }, - "blockedTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])" - }, - "allowedMimeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])" - }, - "blockedMimeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked MIME types" - }, - "virusScan": { - "type": "boolean", - "default": false, - "description": "Enable virus scanning for uploaded files" - }, - "virusScanProvider": { - "type": "string", - "enum": [ - "clamav", - "virustotal", - "metadefender", - "custom" - ], - "description": "Virus scanning service provider" - }, - "virusScanOnUpload": { - "type": "boolean", - "default": true, - "description": "Scan files immediately on upload" - }, - "quarantineOnThreat": { - "type": "boolean", - "default": true, - "description": "Quarantine files if threat detected" - }, - "storageProvider": { - "type": "string", - "description": "Object storage provider name (references ObjectStorageConfig)" - }, - "storageBucket": { - "type": "string", - "description": "Target bucket name" - }, - "storagePrefix": { - "type": "string", - "description": "Storage path prefix (e.g., \"uploads/documents/\")" - }, - "imageValidation": { - "type": "object", - "properties": { - "minWidth": { - "type": "number", - "minimum": 1, - "description": "Minimum image width in pixels" - }, - "maxWidth": { - "type": "number", - "minimum": 1, - "description": "Maximum image width in pixels" - }, - "minHeight": { - "type": "number", - "minimum": 1, - "description": "Minimum image height in pixels" - }, - "maxHeight": { - "type": "number", - "minimum": 1, - "description": "Maximum image height in pixels" - }, - "aspectRatio": { - "type": "string", - "description": "Required aspect ratio (e.g., \"16:9\", \"1:1\")" - }, - "generateThumbnails": { - "type": "boolean", - "default": false, - "description": "Auto-generate thumbnails" - }, - "thumbnailSizes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")" - }, - "width": { - "type": "number", - "minimum": 1, - "description": "Thumbnail width in pixels" - }, - "height": { - "type": "number", - "minimum": 1, - "description": "Thumbnail height in pixels" - }, - "crop": { - "type": "boolean", - "default": false, - "description": "Crop to exact dimensions" - } - }, - "required": [ - "name", - "width", - "height" - ], - "additionalProperties": false - }, - "description": "Thumbnail size configurations" - }, - "preserveMetadata": { - "type": "boolean", - "default": false, - "description": "Preserve EXIF metadata" - }, - "autoRotate": { - "type": "boolean", - "default": true, - "description": "Auto-rotate based on EXIF orientation" - } - }, - "additionalProperties": false, - "description": "Image-specific validation rules" - }, - "allowMultiple": { - "type": "boolean", - "default": false, - "description": "Allow multiple file uploads (overrides field.multiple)" - }, - "allowReplace": { - "type": "boolean", - "default": true, - "description": "Allow replacing existing files" - }, - "allowDelete": { - "type": "boolean", - "default": true, - "description": "Allow deleting uploaded files" - }, - "requireUpload": { - "type": "boolean", - "default": false, - "description": "Require at least one file when field is required" - }, - "extractMetadata": { - "type": "boolean", - "default": true, - "description": "Extract file metadata (name, size, type, etc.)" - }, - "extractText": { - "type": "boolean", - "default": false, - "description": "Extract text content from documents (OCR/parsing)" - }, - "versioningEnabled": { - "type": "boolean", - "default": false, - "description": "Keep previous versions of replaced files" - }, - "maxVersions": { - "type": "number", - "minimum": 1, - "description": "Maximum number of versions to retain" - }, - "publicRead": { - "type": "boolean", - "default": false, - "description": "Allow public read access to uploaded files" - }, - "presignedUrlExpiry": { - "type": "number", - "minimum": 60, - "maximum": 604800, - "default": 3600, - "description": "Presigned URL expiration in seconds (default: 1 hour)" - } - }, - "additionalProperties": false - } + "FileAttachmentConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/FilterCondition.json b/packages/spec/json-schema/data/FilterCondition.json index a895df008..07e5671fb 100644 --- a/packages/spec/json-schema/data/FilterCondition.json +++ b/packages/spec/json-schema/data/FilterCondition.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/FilterCondition", "definitions": { - "FilterCondition": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } + "FilterCondition": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/FormatValidation.json b/packages/spec/json-schema/data/FormatValidation.json index 41b7d8252..73f88fabd 100644 --- a/packages/spec/json-schema/data/FormatValidation.json +++ b/packages/spec/json-schema/data/FormatValidation.json @@ -1,90 +1,7 @@ { "$ref": "#/definitions/FormatValidation", "definitions": { - "FormatValidation": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "format" - }, - "field": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "email", - "url", - "phone", - "json" - ] - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - } + "FormatValidation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/FullTextSearch.json b/packages/spec/json-schema/data/FullTextSearch.json index 7974fefd3..d8fa6481d 100644 --- a/packages/spec/json-schema/data/FullTextSearch.json +++ b/packages/spec/json-schema/data/FullTextSearch.json @@ -1,60 +1,7 @@ { "$ref": "#/definitions/FullTextSearch", "definitions": { - "FullTextSearch": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false - } + "FullTextSearch": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/Hook.json b/packages/spec/json-schema/data/Hook.json index a695661f1..9cfbdecaa 100644 --- a/packages/spec/json-schema/data/Hook.json +++ b/packages/spec/json-schema/data/Hook.json @@ -1,95 +1,7 @@ { "$ref": "#/definitions/Hook", "definitions": { - "Hook": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Hook unique name (snake_case)" - }, - "label": { - "type": "string", - "description": "Description of what this hook does" - }, - "object": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Target object(s)" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "beforeFind", - "afterFind", - "beforeFindOne", - "afterFindOne", - "beforeCount", - "afterCount", - "beforeAggregate", - "afterAggregate", - "beforeInsert", - "afterInsert", - "beforeUpdate", - "afterUpdate", - "beforeDelete", - "afterDelete", - "beforeUpdateMany", - "afterUpdateMany", - "beforeDeleteMany", - "afterDeleteMany" - ] - }, - "description": "Lifecycle events" - }, - "handler": { - "anyOf": [ - { - "type": "string" - }, - {} - ], - "description": "Function handler name or direct function" - }, - "priority": { - "type": "number", - "default": 100, - "description": "Execution priority" - }, - "async": { - "type": "boolean", - "default": false, - "description": "Run specifically as fire-and-forget" - }, - "onError": { - "type": "string", - "enum": [ - "abort", - "log" - ], - "default": "abort", - "description": "Error handling strategy" - } - }, - "required": [ - "name", - "object", - "events" - ], - "additionalProperties": false - } + "Hook": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/HookContext.json b/packages/spec/json-schema/data/HookContext.json index b899c8b39..a3ff120aa 100644 --- a/packages/spec/json-schema/data/HookContext.json +++ b/packages/spec/json-schema/data/HookContext.json @@ -1,88 +1,7 @@ { "$ref": "#/definitions/HookContext", "definitions": { - "HookContext": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique execution ID for tracing" - }, - "object": { - "type": "string" - }, - "event": { - "type": "string", - "enum": [ - "beforeFind", - "afterFind", - "beforeFindOne", - "afterFindOne", - "beforeCount", - "afterCount", - "beforeAggregate", - "afterAggregate", - "beforeInsert", - "afterInsert", - "beforeUpdate", - "afterUpdate", - "beforeDelete", - "afterDelete", - "beforeUpdateMany", - "afterUpdateMany", - "beforeDeleteMany", - "afterDeleteMany" - ] - }, - "input": { - "type": "object", - "additionalProperties": {}, - "description": "Mutable input parameters" - }, - "result": { - "description": "Operation result (After hooks only)" - }, - "previous": { - "type": "object", - "additionalProperties": {}, - "description": "Record state before operation" - }, - "session": { - "type": "object", - "properties": { - "userId": { - "type": "string" - }, - "tenantId": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "accessToken": { - "type": "string" - } - }, - "additionalProperties": false, - "description": "Current session context" - }, - "transaction": { - "description": "Database transaction handle" - }, - "ql": { - "description": "ObjectQL Engine Reference" - } - }, - "required": [ - "object", - "event", - "input" - ], - "additionalProperties": false - } + "HookContext": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/HookEvent.json b/packages/spec/json-schema/data/HookEvent.json index 0e7e9182d..685724170 100644 --- a/packages/spec/json-schema/data/HookEvent.json +++ b/packages/spec/json-schema/data/HookEvent.json @@ -1,29 +1,7 @@ { "$ref": "#/definitions/HookEvent", "definitions": { - "HookEvent": { - "type": "string", - "enum": [ - "beforeFind", - "afterFind", - "beforeFindOne", - "afterFindOne", - "beforeCount", - "afterCount", - "beforeAggregate", - "afterAggregate", - "beforeInsert", - "afterInsert", - "beforeUpdate", - "afterUpdate", - "beforeDelete", - "afterDelete", - "beforeUpdateMany", - "afterUpdateMany", - "beforeDeleteMany", - "afterDeleteMany" - ] - } + "HookEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/Index.json b/packages/spec/json-schema/data/Index.json index c4c25f1de..a64a07800 100644 --- a/packages/spec/json-schema/data/Index.json +++ b/packages/spec/json-schema/data/Index.json @@ -1,47 +1,7 @@ { "$ref": "#/definitions/Index", "definitions": { - "Index": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Index name (auto-generated if not provided)" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields included in the index" - }, - "type": { - "type": "string", - "enum": [ - "btree", - "hash", - "gin", - "gist", - "fulltext" - ], - "default": "btree", - "description": "Index algorithm type" - }, - "unique": { - "type": "boolean", - "default": false, - "description": "Whether the index enforces uniqueness" - }, - "partial": { - "type": "string", - "description": "Partial index condition (SQL WHERE clause for conditional indexes)" - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - } + "Index": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/JSONValidation.json b/packages/spec/json-schema/data/JSONValidation.json index 9d6ec50c4..d67ee7176 100644 --- a/packages/spec/json-schema/data/JSONValidation.json +++ b/packages/spec/json-schema/data/JSONValidation.json @@ -1,85 +1,7 @@ { "$ref": "#/definitions/JSONValidation", "definitions": { - "JSONValidation": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "json_schema" - }, - "field": { - "type": "string", - "description": "JSON field to validate" - }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON Schema object definition" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "schema" - ], - "additionalProperties": false - } + "JSONValidation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/JoinNode.json b/packages/spec/json-schema/data/JoinNode.json index 8c1fd80b8..8a3477dd7 100644 --- a/packages/spec/json-schema/data/JoinNode.json +++ b/packages/spec/json-schema/data/JoinNode.json @@ -1,494 +1,7 @@ { "$ref": "#/definitions/JoinNode", "definitions": { - "JoinNode": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": {}, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - } + "JoinNode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/JoinStrategy.json b/packages/spec/json-schema/data/JoinStrategy.json index bea0351db..4732c9429 100644 --- a/packages/spec/json-schema/data/JoinStrategy.json +++ b/packages/spec/json-schema/data/JoinStrategy.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/JoinStrategy", "definitions": { - "JoinStrategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ] - } + "JoinStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/JoinType.json b/packages/spec/json-schema/data/JoinType.json index e8eb5f9b6..7d321045d 100644 --- a/packages/spec/json-schema/data/JoinType.json +++ b/packages/spec/json-schema/data/JoinType.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/JoinType", "definitions": { - "JoinType": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ] - } + "JoinType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/LocationCoordinates.json b/packages/spec/json-schema/data/LocationCoordinates.json index 20fda6b53..e1f4253b8 100644 --- a/packages/spec/json-schema/data/LocationCoordinates.json +++ b/packages/spec/json-schema/data/LocationCoordinates.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/LocationCoordinates", "definitions": { - "LocationCoordinates": { - "type": "object", - "properties": { - "latitude": { - "type": "number", - "minimum": -90, - "maximum": 90, - "description": "Latitude coordinate" - }, - "longitude": { - "type": "number", - "minimum": -180, - "maximum": 180, - "description": "Longitude coordinate" - }, - "altitude": { - "type": "number", - "description": "Altitude in meters" - }, - "accuracy": { - "type": "number", - "description": "Accuracy in meters" - } - }, - "required": [ - "latitude", - "longitude" - ], - "additionalProperties": false - } + "LocationCoordinates": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/Mapping.json b/packages/spec/json-schema/data/Mapping.json index 80d8b85c3..97e62dddd 100644 --- a/packages/spec/json-schema/data/Mapping.json +++ b/packages/spec/json-schema/data/Mapping.json @@ -1,639 +1,7 @@ { "$ref": "#/definitions/Mapping", "definitions": { - "Mapping": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Mapping unique name (lowercase snake_case)" - }, - "label": { - "type": "string" - }, - "sourceFormat": { - "type": "string", - "enum": [ - "csv", - "json", - "xml", - "sql" - ], - "default": "csv" - }, - "targetObject": { - "type": "string", - "description": "Target Object Name" - }, - "fieldMapping": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Source column header(s)" - }, - "target": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Target object field(s)" - }, - "transform": { - "type": "string", - "enum": [ - "none", - "constant", - "lookup", - "split", - "join", - "javascript", - "map" - ], - "default": "none" - }, - "params": { - "type": "object", - "properties": { - "value": {}, - "object": { - "type": "string" - }, - "fromField": { - "type": "string" - }, - "toField": { - "type": "string" - }, - "autoCreate": { - "type": "boolean" - }, - "valueMap": { - "type": "object", - "additionalProperties": {} - }, - "separator": { - "type": "string" - } - }, - "additionalProperties": false - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - } - }, - "mode": { - "type": "string", - "enum": [ - "insert", - "update", - "upsert" - ], - "default": "insert" - }, - "upsertKey": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to match for upsert (e.g. email)" - }, - "extractQuery": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - }, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false, - "description": "Query to run for export only" - }, - "errorPolicy": { - "type": "string", - "enum": [ - "skip", - "abort", - "retry" - ], - "default": "skip" - }, - "batchSize": { - "type": "number", - "default": 1000 - } - }, - "required": [ - "name", - "targetObject", - "fieldMapping" - ], - "additionalProperties": false - } + "Mapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/NoSQLDataTypeMapping.json b/packages/spec/json-schema/data/NoSQLDataTypeMapping.json index 2566c71e8..ea303cab4 100644 --- a/packages/spec/json-schema/data/NoSQLDataTypeMapping.json +++ b/packages/spec/json-schema/data/NoSQLDataTypeMapping.json @@ -1,63 +1,7 @@ { "$ref": "#/definitions/NoSQLDataTypeMapping", "definitions": { - "NoSQLDataTypeMapping": { - "type": "object", - "properties": { - "text": { - "type": "string", - "description": "NoSQL type for text fields" - }, - "number": { - "type": "string", - "description": "NoSQL type for number fields" - }, - "boolean": { - "type": "string", - "description": "NoSQL type for boolean fields" - }, - "date": { - "type": "string", - "description": "NoSQL type for date fields" - }, - "datetime": { - "type": "string", - "description": "NoSQL type for datetime fields" - }, - "json": { - "type": "string", - "description": "NoSQL type for JSON/object fields" - }, - "uuid": { - "type": "string", - "description": "NoSQL type for UUID fields" - }, - "binary": { - "type": "string", - "description": "NoSQL type for binary fields" - }, - "array": { - "type": "string", - "description": "NoSQL type for array fields" - }, - "objectId": { - "type": "string", - "description": "NoSQL type for ObjectID fields (MongoDB)" - }, - "geopoint": { - "type": "string", - "description": "NoSQL type for geospatial point fields" - } - }, - "required": [ - "text", - "number", - "boolean", - "date", - "datetime" - ], - "additionalProperties": false - } + "NoSQLDataTypeMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/NoSQLDatabaseType.json b/packages/spec/json-schema/data/NoSQLDatabaseType.json index a851548da..3e3967f61 100644 --- a/packages/spec/json-schema/data/NoSQLDatabaseType.json +++ b/packages/spec/json-schema/data/NoSQLDatabaseType.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/NoSQLDatabaseType", "definitions": { - "NoSQLDatabaseType": { - "type": "string", - "enum": [ - "mongodb", - "couchdb", - "dynamodb", - "cassandra", - "redis", - "elasticsearch", - "neo4j", - "orientdb" - ] - } + "NoSQLDatabaseType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/NoSQLDriverConfig.json b/packages/spec/json-schema/data/NoSQLDriverConfig.json index 23d2189c1..1b6af5278 100644 --- a/packages/spec/json-schema/data/NoSQLDriverConfig.json +++ b/packages/spec/json-schema/data/NoSQLDriverConfig.json @@ -1,452 +1,7 @@ { "$ref": "#/definitions/NoSQLDriverConfig", "definitions": { - "NoSQLDriverConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Driver instance name" - }, - "type": { - "type": "string", - "const": "nosql", - "description": "Driver type must be \"nosql\"" - }, - "capabilities": { - "type": "object", - "properties": { - "create": { - "type": "boolean", - "default": true, - "description": "Supports CREATE operations" - }, - "read": { - "type": "boolean", - "default": true, - "description": "Supports READ operations" - }, - "update": { - "type": "boolean", - "default": true, - "description": "Supports UPDATE operations" - }, - "delete": { - "type": "boolean", - "default": true, - "description": "Supports DELETE operations" - }, - "bulkCreate": { - "type": "boolean", - "default": false, - "description": "Supports bulk CREATE operations" - }, - "bulkUpdate": { - "type": "boolean", - "default": false, - "description": "Supports bulk UPDATE operations" - }, - "bulkDelete": { - "type": "boolean", - "default": false, - "description": "Supports bulk DELETE operations" - }, - "transactions": { - "type": "boolean", - "default": false, - "description": "Supports ACID transactions" - }, - "savepoints": { - "type": "boolean", - "default": false, - "description": "Supports transaction savepoints" - }, - "isolationLevels": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "read-uncommitted", - "read-committed", - "repeatable-read", - "serializable" - ] - }, - "description": "Supported transaction isolation levels" - }, - "queryFilters": { - "type": "boolean", - "default": true, - "description": "Supports WHERE clause filtering" - }, - "queryAggregations": { - "type": "boolean", - "default": false, - "description": "Supports GROUP BY and aggregation functions" - }, - "querySorting": { - "type": "boolean", - "default": true, - "description": "Supports ORDER BY sorting" - }, - "queryPagination": { - "type": "boolean", - "default": true, - "description": "Supports LIMIT/OFFSET pagination" - }, - "queryWindowFunctions": { - "type": "boolean", - "default": false, - "description": "Supports window functions with OVER clause" - }, - "querySubqueries": { - "type": "boolean", - "default": false, - "description": "Supports subqueries" - }, - "queryCTE": { - "type": "boolean", - "default": false, - "description": "Supports Common Table Expressions (WITH clause)" - }, - "joins": { - "type": "boolean", - "default": false, - "description": "Supports SQL joins" - }, - "fullTextSearch": { - "type": "boolean", - "default": false, - "description": "Supports full-text search" - }, - "jsonQuery": { - "type": "boolean", - "default": false, - "description": "Supports JSON field querying" - }, - "geospatialQuery": { - "type": "boolean", - "default": false, - "description": "Supports geospatial queries" - }, - "streaming": { - "type": "boolean", - "default": false, - "description": "Supports result streaming (cursors/iterators)" - }, - "jsonFields": { - "type": "boolean", - "default": false, - "description": "Supports JSON field types" - }, - "arrayFields": { - "type": "boolean", - "default": false, - "description": "Supports array field types" - }, - "vectorSearch": { - "type": "boolean", - "default": false, - "description": "Supports vector embeddings and similarity search" - }, - "geoSpatial": { - "type": "boolean", - "default": false, - "description": "Supports geospatial queries (deprecated: use geospatialQuery)" - }, - "schemaSync": { - "type": "boolean", - "default": false, - "description": "Supports automatic schema synchronization" - }, - "migrations": { - "type": "boolean", - "default": false, - "description": "Supports database migrations" - }, - "indexes": { - "type": "boolean", - "default": false, - "description": "Supports index creation and management" - }, - "connectionPooling": { - "type": "boolean", - "default": false, - "description": "Supports connection pooling" - }, - "preparedStatements": { - "type": "boolean", - "default": false, - "description": "Supports prepared statements (SQL injection prevention)" - }, - "queryCache": { - "type": "boolean", - "default": false, - "description": "Supports query result caching" - } - }, - "additionalProperties": false, - "description": "Driver capability flags" - }, - "connectionString": { - "type": "string", - "description": "Database connection string (driver-specific format)" - }, - "poolConfig": { - "type": "object", - "properties": { - "min": { - "type": "number", - "minimum": 0, - "default": 2, - "description": "Minimum number of connections in pool" - }, - "max": { - "type": "number", - "minimum": 1, - "default": 10, - "description": "Maximum number of connections in pool" - }, - "idleTimeoutMillis": { - "type": "number", - "minimum": 0, - "default": 30000, - "description": "Time in ms before idle connection is closed" - }, - "connectionTimeoutMillis": { - "type": "number", - "minimum": 0, - "default": 5000, - "description": "Time in ms to wait for available connection" - } - }, - "additionalProperties": false, - "description": "Connection pool configuration" - }, - "databaseType": { - "type": "string", - "enum": [ - "mongodb", - "couchdb", - "dynamodb", - "cassandra", - "redis", - "elasticsearch", - "neo4j", - "orientdb" - ], - "description": "Specific NoSQL database type" - }, - "dataTypeMapping": { - "type": "object", - "properties": { - "text": { - "type": "string", - "description": "NoSQL type for text fields" - }, - "number": { - "type": "string", - "description": "NoSQL type for number fields" - }, - "boolean": { - "type": "string", - "description": "NoSQL type for boolean fields" - }, - "date": { - "type": "string", - "description": "NoSQL type for date fields" - }, - "datetime": { - "type": "string", - "description": "NoSQL type for datetime fields" - }, - "json": { - "type": "string", - "description": "NoSQL type for JSON/object fields" - }, - "uuid": { - "type": "string", - "description": "NoSQL type for UUID fields" - }, - "binary": { - "type": "string", - "description": "NoSQL type for binary fields" - }, - "array": { - "type": "string", - "description": "NoSQL type for array fields" - }, - "objectId": { - "type": "string", - "description": "NoSQL type for ObjectID fields (MongoDB)" - }, - "geopoint": { - "type": "string", - "description": "NoSQL type for geospatial point fields" - } - }, - "required": [ - "text", - "number", - "boolean", - "date", - "datetime" - ], - "additionalProperties": false, - "description": "NoSQL data type mapping configuration" - }, - "consistency": { - "type": "string", - "enum": [ - "all", - "quorum", - "one", - "local_quorum", - "each_quorum", - "eventual" - ], - "description": "Consistency level for operations" - }, - "replication": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable replication" - }, - "replicaSetName": { - "type": "string", - "description": "Replica set name" - }, - "replicas": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of replicas" - }, - "readPreference": { - "type": "string", - "enum": [ - "primary", - "primaryPreferred", - "secondary", - "secondaryPreferred", - "nearest" - ], - "description": "Read preference for replica set" - }, - "writeConcern": { - "type": "string", - "enum": [ - "majority", - "acknowledged", - "unacknowledged" - ], - "description": "Write concern level" - } - }, - "additionalProperties": false, - "description": "Replication configuration" - }, - "sharding": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable sharding" - }, - "shardKey": { - "type": "string", - "description": "Field to use as shard key" - }, - "shardingStrategy": { - "type": "string", - "enum": [ - "hash", - "range", - "zone" - ], - "description": "Sharding strategy" - }, - "numShards": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of shards" - } - }, - "additionalProperties": false, - "description": "Sharding configuration" - }, - "schemaValidation": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable schema validation" - }, - "validationLevel": { - "type": "string", - "enum": [ - "strict", - "moderate", - "off" - ], - "description": "Validation strictness" - }, - "validationAction": { - "type": "string", - "enum": [ - "error", - "warn" - ], - "description": "Action on validation failure" - }, - "jsonSchema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON Schema for validation" - } - }, - "additionalProperties": false, - "description": "Document schema validation" - }, - "region": { - "type": "string", - "description": "AWS region (for managed NoSQL services)" - }, - "accessKeyId": { - "type": "string", - "description": "AWS access key ID" - }, - "secretAccessKey": { - "type": "string", - "description": "AWS secret access key" - }, - "ttlField": { - "type": "string", - "description": "Field name for TTL (auto-deletion)" - }, - "maxDocumentSize": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum document size in bytes" - }, - "collectionPrefix": { - "type": "string", - "description": "Prefix for collection/table names" - } - }, - "required": [ - "name", - "type", - "capabilities", - "databaseType", - "dataTypeMapping" - ], - "additionalProperties": false - } + "NoSQLDriverConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/NoSQLIndex.json b/packages/spec/json-schema/data/NoSQLIndex.json index e0173e668..603baf270 100644 --- a/packages/spec/json-schema/data/NoSQLIndex.json +++ b/packages/spec/json-schema/data/NoSQLIndex.json @@ -1,87 +1,7 @@ { "$ref": "#/definitions/NoSQLIndex", "definitions": { - "NoSQLIndex": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Index name" - }, - "type": { - "type": "string", - "enum": [ - "single", - "compound", - "unique", - "text", - "geospatial", - "hashed", - "ttl", - "sparse" - ], - "description": "Index type" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc", - "text", - "2dsphere" - ], - "description": "Index order or type" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Fields to index" - }, - "unique": { - "type": "boolean", - "default": false, - "description": "Enforce uniqueness" - }, - "sparse": { - "type": "boolean", - "default": false, - "description": "Sparse index" - }, - "expireAfterSeconds": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "TTL in seconds" - }, - "partialFilterExpression": { - "type": "object", - "additionalProperties": {}, - "description": "Partial index filter" - }, - "background": { - "type": "boolean", - "default": false, - "description": "Create index in background" - } - }, - "required": [ - "name", - "type", - "fields" - ], - "additionalProperties": false - } + "NoSQLIndex": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/NoSQLIndexType.json b/packages/spec/json-schema/data/NoSQLIndexType.json index 0aff2e808..927850be9 100644 --- a/packages/spec/json-schema/data/NoSQLIndexType.json +++ b/packages/spec/json-schema/data/NoSQLIndexType.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/NoSQLIndexType", "definitions": { - "NoSQLIndexType": { - "type": "string", - "enum": [ - "single", - "compound", - "unique", - "text", - "geospatial", - "hashed", - "ttl", - "sparse" - ] - } + "NoSQLIndexType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/NoSQLOperationType.json b/packages/spec/json-schema/data/NoSQLOperationType.json index 0948517a9..aa759ad67 100644 --- a/packages/spec/json-schema/data/NoSQLOperationType.json +++ b/packages/spec/json-schema/data/NoSQLOperationType.json @@ -1,22 +1,7 @@ { "$ref": "#/definitions/NoSQLOperationType", "definitions": { - "NoSQLOperationType": { - "type": "string", - "enum": [ - "find", - "findOne", - "insert", - "update", - "delete", - "aggregate", - "mapReduce", - "count", - "distinct", - "createIndex", - "dropIndex" - ] - } + "NoSQLOperationType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/NoSQLQueryOptions.json b/packages/spec/json-schema/data/NoSQLQueryOptions.json index fbda5f10c..b115513cd 100644 --- a/packages/spec/json-schema/data/NoSQLQueryOptions.json +++ b/packages/spec/json-schema/data/NoSQLQueryOptions.json @@ -1,61 +1,7 @@ { "$ref": "#/definitions/NoSQLQueryOptions", "definitions": { - "NoSQLQueryOptions": { - "type": "object", - "properties": { - "consistency": { - "type": "string", - "enum": [ - "all", - "quorum", - "one", - "local_quorum", - "each_quorum", - "eventual" - ], - "description": "Consistency level override" - }, - "readFromSecondary": { - "type": "boolean", - "description": "Allow reading from secondary replicas" - }, - "projection": { - "type": "object", - "additionalProperties": { - "type": "number", - "enum": [ - 0, - 1 - ] - }, - "description": "Field projection" - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Query timeout (ms)" - }, - "useCursor": { - "type": "boolean", - "description": "Use cursor instead of loading all results" - }, - "batchSize": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Cursor batch size" - }, - "profile": { - "type": "boolean", - "description": "Enable query profiling" - }, - "hint": { - "type": "string", - "description": "Index hint for query optimization" - } - }, - "additionalProperties": false - } + "NoSQLQueryOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/NoSQLTransactionOptions.json b/packages/spec/json-schema/data/NoSQLTransactionOptions.json index c505cb8b6..76e71d178 100644 --- a/packages/spec/json-schema/data/NoSQLTransactionOptions.json +++ b/packages/spec/json-schema/data/NoSQLTransactionOptions.json @@ -1,47 +1,7 @@ { "$ref": "#/definitions/NoSQLTransactionOptions", "definitions": { - "NoSQLTransactionOptions": { - "type": "object", - "properties": { - "readConcern": { - "type": "string", - "enum": [ - "local", - "majority", - "linearizable", - "snapshot" - ], - "description": "Read concern level" - }, - "writeConcern": { - "type": "string", - "enum": [ - "majority", - "acknowledged", - "unacknowledged" - ], - "description": "Write concern level" - }, - "readPreference": { - "type": "string", - "enum": [ - "primary", - "primaryPreferred", - "secondary", - "secondaryPreferred", - "nearest" - ], - "description": "Read preference" - }, - "maxCommitTimeMS": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Transaction commit timeout (ms)" - } - }, - "additionalProperties": false - } + "NoSQLTransactionOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/NormalizedFilter.json b/packages/spec/json-schema/data/NormalizedFilter.json index 7cdf8f4fd..80e272d0b 100644 --- a/packages/spec/json-schema/data/NormalizedFilter.json +++ b/packages/spec/json-schema/data/NormalizedFilter.json @@ -1,582 +1,7 @@ { "$ref": "#/definitions/NormalizedFilter", "definitions": { - "NormalizedFilter": { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "$eq": {}, - "$ne": {}, - "$gt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$gte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$lt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$lte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$in": { - "type": "array" - }, - "$nin": { - "type": "array" - }, - "$between": { - "type": "array", - "minItems": 2, - "maxItems": 2, - "items": [ - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - } - ] - }, - "$contains": { - "type": "string" - }, - "$startsWith": { - "type": "string" - }, - "$endsWith": { - "type": "string" - }, - "$null": { - "type": "boolean" - }, - "$exist": { - "type": "boolean" - } - }, - "additionalProperties": false - } - }, - {} - ] - } - }, - "$or": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "$eq": {}, - "$ne": {}, - "$gt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$gte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$lt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$lte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$in": { - "type": "array" - }, - "$nin": { - "type": "array" - }, - "$between": { - "type": "array", - "minItems": 2, - "maxItems": 2, - "items": [ - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - } - ] - }, - "$contains": { - "type": "string" - }, - "$startsWith": { - "type": "string" - }, - "$endsWith": { - "type": "string" - }, - "$null": { - "type": "boolean" - }, - "$exist": { - "type": "boolean" - } - }, - "additionalProperties": false - } - }, - {} - ] - } - }, - "$not": { - "anyOf": [ - { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "$eq": {}, - "$ne": {}, - "$gt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$gte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$lt": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$lte": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - "$in": { - "type": "array" - }, - "$nin": { - "type": "array" - }, - "$between": { - "type": "array", - "minItems": 2, - "maxItems": 2, - "items": [ - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - } - ] - }, - "$contains": { - "type": "string" - }, - "$startsWith": { - "type": "string" - }, - "$endsWith": { - "type": "string" - }, - "$null": { - "type": "boolean" - }, - "$exist": { - "type": "boolean" - } - }, - "additionalProperties": false - } - }, - {} - ] - } - }, - "additionalProperties": false - } + "NormalizedFilter": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/Object.json b/packages/spec/json-schema/data/Object.json index 6bccad7b1..621692fc2 100644 --- a/packages/spec/json-schema/data/Object.json +++ b/packages/spec/json-schema/data/Object.json @@ -1,2688 +1,7 @@ { "$ref": "#/definitions/Object", "definitions": { - "Object": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Machine unique key (snake_case). Immutable." - }, - "label": { - "type": "string", - "description": "Human readable singular label (e.g. \"Account\")" - }, - "pluralLabel": { - "type": "string", - "description": "Human readable plural label (e.g. \"Accounts\")" - }, - "description": { - "type": "string", - "description": "Developer documentation / description" - }, - "icon": { - "type": "string", - "description": "Icon name (Lucide/Material) for UI representation" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g. \"sales\", \"system\", \"reference\")" - }, - "active": { - "type": "boolean", - "default": true, - "description": "Is the object active and usable" - }, - "isSystem": { - "type": "boolean", - "default": false, - "description": "Is system object (protected from deletion)" - }, - "abstract": { - "type": "boolean", - "default": false, - "description": "Is abstract base object (cannot be instantiated)" - }, - "datasource": { - "type": "string", - "default": "default", - "description": "Target Datasource ID. \"default\" is the primary DB." - }, - "tableName": { - "type": "string", - "description": "Physical table/collection name in the target datasource" - }, - "fields": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Machine name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human readable label" - }, - "type": { - "type": "string", - "enum": [ - "text", - "textarea", - "email", - "url", - "phone", - "password", - "markdown", - "html", - "richtext", - "number", - "currency", - "percent", - "date", - "datetime", - "time", - "boolean", - "toggle", - "select", - "multiselect", - "radio", - "checkboxes", - "lookup", - "master_detail", - "tree", - "image", - "file", - "avatar", - "video", - "audio", - "formula", - "summary", - "autonumber", - "location", - "address", - "code", - "json", - "color", - "rating", - "slider", - "signature", - "qrcode", - "progress", - "tags", - "vector" - ], - "description": "Field Data Type" - }, - "description": { - "type": "string", - "description": "Tooltip/Help text" - }, - "format": { - "type": "string", - "description": "Format string (e.g. email, phone)" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Is required" - }, - "searchable": { - "type": "boolean", - "default": false, - "description": "Is searchable" - }, - "multiple": { - "type": "boolean", - "default": false, - "description": "Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image." - }, - "unique": { - "type": "boolean", - "default": false, - "description": "Is unique constraint" - }, - "defaultValue": { - "description": "Default value" - }, - "maxLength": { - "type": "number", - "description": "Max character length" - }, - "minLength": { - "type": "number", - "description": "Min character length" - }, - "precision": { - "type": "number", - "description": "Total digits" - }, - "scale": { - "type": "number", - "description": "Decimal places" - }, - "min": { - "type": "number", - "description": "Minimum value" - }, - "max": { - "type": "number", - "description": "Maximum value" - }, - "options": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Display label (human-readable, any case allowed)" - }, - "value": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Stored value (lowercase machine identifier)" - }, - "color": { - "type": "string", - "description": "Color code for badges/charts" - }, - "default": { - "type": "boolean", - "description": "Is default option" - } - }, - "required": [ - "label", - "value" - ], - "additionalProperties": false - }, - "description": "Static options for select/multiselect" - }, - "reference": { - "type": "string", - "description": "Target Object Name" - }, - "referenceFilters": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filters applied to lookup dialogs (e.g. \"active = true\")" - }, - "writeRequiresMasterRead": { - "type": "boolean", - "description": "If true, user needs read access to master record to edit this field" - }, - "deleteBehavior": { - "type": "string", - "enum": [ - "set_null", - "cascade", - "restrict" - ], - "default": "set_null", - "description": "What happens if referenced record is deleted" - }, - "expression": { - "type": "string", - "description": "Formula expression" - }, - "formula": { - "type": "string", - "description": "Deprecated: Use expression" - }, - "summaryOperations": { - "type": "object", - "properties": { - "object": { - "type": "string" - }, - "field": { - "type": "string" - }, - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "min", - "max", - "avg" - ] - } - }, - "required": [ - "object", - "field", - "function" - ], - "additionalProperties": false, - "description": "Roll-up summary definition" - }, - "language": { - "type": "string", - "description": "Programming language for syntax highlighting (e.g., javascript, python, sql)" - }, - "theme": { - "type": "string", - "description": "Code editor theme (e.g., dark, light, monokai)" - }, - "lineNumbers": { - "type": "boolean", - "description": "Show line numbers in code editor" - }, - "maxRating": { - "type": "number", - "description": "Maximum rating value (default: 5)" - }, - "allowHalf": { - "type": "boolean", - "description": "Allow half-star ratings" - }, - "displayMap": { - "type": "boolean", - "description": "Display map widget for location field" - }, - "allowGeocoding": { - "type": "boolean", - "description": "Allow address-to-coordinate conversion" - }, - "addressFormat": { - "type": "string", - "enum": [ - "us", - "uk", - "international" - ], - "description": "Address format template" - }, - "colorFormat": { - "type": "string", - "enum": [ - "hex", - "rgb", - "rgba", - "hsl" - ], - "description": "Color value format" - }, - "allowAlpha": { - "type": "boolean", - "description": "Allow transparency/alpha channel" - }, - "presetColors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Preset color options" - }, - "step": { - "type": "number", - "description": "Step increment for slider (default: 1)" - }, - "showValue": { - "type": "boolean", - "description": "Display current value on slider" - }, - "marks": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})" - }, - "barcodeFormat": { - "type": "string", - "enum": [ - "qr", - "ean13", - "ean8", - "code128", - "code39", - "upca", - "upce" - ], - "description": "Barcode format type" - }, - "qrErrorCorrection": { - "type": "string", - "enum": [ - "L", - "M", - "Q", - "H" - ], - "description": "QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\"" - }, - "displayValue": { - "type": "boolean", - "description": "Display human-readable value below barcode/QR code" - }, - "allowScanning": { - "type": "boolean", - "description": "Enable camera scanning for barcode/QR code input" - }, - "currencyConfig": { - "type": "object", - "properties": { - "precision": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 2, - "description": "Decimal precision (default: 2)" - }, - "currencyMode": { - "type": "string", - "enum": [ - "dynamic", - "fixed" - ], - "default": "dynamic", - "description": "Currency mode: dynamic (user selectable) or fixed (single currency)" - }, - "defaultCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3, - "default": "CNY", - "description": "Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)" - } - }, - "additionalProperties": false, - "description": "Configuration for currency field type" - }, - "vectorConfig": { - "type": "object", - "properties": { - "dimensions": { - "type": "integer", - "minimum": 1, - "maximum": 10000, - "description": "Vector dimensionality (e.g., 1536 for OpenAI embeddings)" - }, - "distanceMetric": { - "type": "string", - "enum": [ - "cosine", - "euclidean", - "dotProduct", - "manhattan" - ], - "default": "cosine", - "description": "Distance/similarity metric for vector search" - }, - "normalized": { - "type": "boolean", - "default": false, - "description": "Whether vectors are normalized (unit length)" - }, - "indexed": { - "type": "boolean", - "default": true, - "description": "Whether to create a vector index for fast similarity search" - }, - "indexType": { - "type": "string", - "enum": [ - "hnsw", - "ivfflat", - "flat" - ], - "description": "Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)" - } - }, - "required": [ - "dimensions" - ], - "additionalProperties": false, - "description": "Configuration for vector field type (AI/ML embeddings)" - }, - "fileAttachmentConfig": { - "type": "object", - "properties": { - "minSize": { - "type": "number", - "minimum": 0, - "description": "Minimum file size in bytes" - }, - "maxSize": { - "type": "number", - "minimum": 1, - "description": "Maximum file size in bytes (e.g., 10485760 = 10MB)" - }, - "allowedTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])" - }, - "blockedTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])" - }, - "allowedMimeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])" - }, - "blockedMimeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked MIME types" - }, - "virusScan": { - "type": "boolean", - "default": false, - "description": "Enable virus scanning for uploaded files" - }, - "virusScanProvider": { - "type": "string", - "enum": [ - "clamav", - "virustotal", - "metadefender", - "custom" - ], - "description": "Virus scanning service provider" - }, - "virusScanOnUpload": { - "type": "boolean", - "default": true, - "description": "Scan files immediately on upload" - }, - "quarantineOnThreat": { - "type": "boolean", - "default": true, - "description": "Quarantine files if threat detected" - }, - "storageProvider": { - "type": "string", - "description": "Object storage provider name (references ObjectStorageConfig)" - }, - "storageBucket": { - "type": "string", - "description": "Target bucket name" - }, - "storagePrefix": { - "type": "string", - "description": "Storage path prefix (e.g., \"uploads/documents/\")" - }, - "imageValidation": { - "type": "object", - "properties": { - "minWidth": { - "type": "number", - "minimum": 1, - "description": "Minimum image width in pixels" - }, - "maxWidth": { - "type": "number", - "minimum": 1, - "description": "Maximum image width in pixels" - }, - "minHeight": { - "type": "number", - "minimum": 1, - "description": "Minimum image height in pixels" - }, - "maxHeight": { - "type": "number", - "minimum": 1, - "description": "Maximum image height in pixels" - }, - "aspectRatio": { - "type": "string", - "description": "Required aspect ratio (e.g., \"16:9\", \"1:1\")" - }, - "generateThumbnails": { - "type": "boolean", - "default": false, - "description": "Auto-generate thumbnails" - }, - "thumbnailSizes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")" - }, - "width": { - "type": "number", - "minimum": 1, - "description": "Thumbnail width in pixels" - }, - "height": { - "type": "number", - "minimum": 1, - "description": "Thumbnail height in pixels" - }, - "crop": { - "type": "boolean", - "default": false, - "description": "Crop to exact dimensions" - } - }, - "required": [ - "name", - "width", - "height" - ], - "additionalProperties": false - }, - "description": "Thumbnail size configurations" - }, - "preserveMetadata": { - "type": "boolean", - "default": false, - "description": "Preserve EXIF metadata" - }, - "autoRotate": { - "type": "boolean", - "default": true, - "description": "Auto-rotate based on EXIF orientation" - } - }, - "additionalProperties": false, - "description": "Image-specific validation rules" - }, - "allowMultiple": { - "type": "boolean", - "default": false, - "description": "Allow multiple file uploads (overrides field.multiple)" - }, - "allowReplace": { - "type": "boolean", - "default": true, - "description": "Allow replacing existing files" - }, - "allowDelete": { - "type": "boolean", - "default": true, - "description": "Allow deleting uploaded files" - }, - "requireUpload": { - "type": "boolean", - "default": false, - "description": "Require at least one file when field is required" - }, - "extractMetadata": { - "type": "boolean", - "default": true, - "description": "Extract file metadata (name, size, type, etc.)" - }, - "extractText": { - "type": "boolean", - "default": false, - "description": "Extract text content from documents (OCR/parsing)" - }, - "versioningEnabled": { - "type": "boolean", - "default": false, - "description": "Keep previous versions of replaced files" - }, - "maxVersions": { - "type": "number", - "minimum": 1, - "description": "Maximum number of versions to retain" - }, - "publicRead": { - "type": "boolean", - "default": false, - "description": "Allow public read access to uploaded files" - }, - "presignedUrlExpiry": { - "type": "number", - "minimum": 60, - "maximum": 604800, - "default": 3600, - "description": "Presigned URL expiration in seconds (default: 1 hour)" - } - }, - "additionalProperties": false, - "description": "Configuration for file and attachment field types" - }, - "encryptionConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "algorithm": { - "type": "string", - "enum": [ - "aes-256-gcm", - "aes-256-cbc", - "chacha20-poly1305" - ], - "default": "aes-256-gcm" - }, - "keyManagement": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "local", - "aws-kms", - "azure-key-vault", - "gcp-kms", - "hashicorp-vault" - ] - }, - "keyId": { - "type": "string" - }, - "rotationPolicy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "frequencyDays": { - "type": "number", - "minimum": 1, - "default": 90 - }, - "retainOldVersions": { - "type": "number", - "default": 3 - }, - "autoRotate": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - "scope": { - "type": "string", - "enum": [ - "field", - "record", - "table", - "database" - ] - }, - "deterministicEncryption": { - "type": "boolean", - "default": false, - "description": "Allows equality queries on encrypted data" - }, - "searchableEncryption": { - "type": "boolean", - "default": false, - "description": "Allows search on encrypted data" - } - }, - "required": [ - "keyManagement", - "scope" - ], - "additionalProperties": false, - "description": "Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)" - }, - "maskingRule": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "strategy": { - "type": "string", - "enum": [ - "redact", - "partial", - "hash", - "tokenize", - "randomize", - "nullify", - "substitute" - ] - }, - "pattern": { - "type": "string", - "description": "Regex pattern for partial masking" - }, - "preserveFormat": { - "type": "boolean", - "default": true - }, - "preserveLength": { - "type": "boolean", - "default": true - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that see masked data" - }, - "exemptRoles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that see unmasked data" - } - }, - "required": [ - "field", - "strategy" - ], - "additionalProperties": false, - "description": "Data masking rules for PII protection" - }, - "auditTrail": { - "type": "boolean", - "default": false, - "description": "Enable detailed audit trail for this field (tracks all changes with user and timestamp)" - }, - "dependencies": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of field names that this field depends on (for formulas, visibility rules, etc.)" - }, - "cached": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable caching for computed field results" - }, - "ttl": { - "type": "number", - "minimum": 0, - "description": "Cache TTL in seconds (0 = no expiration)" - }, - "invalidateOn": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])" - } - }, - "required": [ - "enabled", - "ttl", - "invalidateOn" - ], - "additionalProperties": false, - "description": "Caching configuration for computed/formula fields" - }, - "dataQuality": { - "type": "object", - "properties": { - "uniqueness": { - "type": "boolean", - "default": false, - "description": "Enforce unique values across all records" - }, - "completeness": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0, - "description": "Minimum ratio of non-null values (0-1, default: 0 = no requirement)" - }, - "accuracy": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")" - }, - "threshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)" - } - }, - "required": [ - "source", - "threshold" - ], - "additionalProperties": false, - "description": "Accuracy validation configuration" - } - }, - "additionalProperties": false, - "description": "Data quality validation and monitoring rules" - }, - "hidden": { - "type": "boolean", - "default": false, - "description": "Hidden from default UI" - }, - "readonly": { - "type": "boolean", - "default": false, - "description": "Read-only in UI" - }, - "encryption": { - "type": "boolean", - "default": false, - "description": "Deprecated: Use encryptionConfig for enhanced encryption features. Simple flag for backward compatibility." - }, - "index": { - "type": "boolean", - "default": false, - "description": "Create standard database index" - }, - "externalId": { - "type": "boolean", - "default": false, - "description": "Is external ID for upsert operations" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "propertyNames": { - "pattern": "^[a-z_][a-z0-9_]*$" - }, - "description": "Field definitions map. Keys must be snake_case identifiers." - }, - "indexes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Index name (auto-generated if not provided)" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields included in the index" - }, - "type": { - "type": "string", - "enum": [ - "btree", - "hash", - "gin", - "gist", - "fulltext" - ], - "default": "btree", - "description": "Index algorithm type" - }, - "unique": { - "type": "boolean", - "default": false, - "description": "Whether the index enforces uniqueness" - }, - "partial": { - "type": "string", - "description": "Partial index condition (SQL WHERE clause for conditional indexes)" - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - }, - "description": "Database performance indexes" - }, - "tenancy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable multi-tenancy for this object" - }, - "strategy": { - "type": "string", - "enum": [ - "shared", - "isolated", - "hybrid" - ], - "description": "Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)" - }, - "tenantField": { - "type": "string", - "default": "tenant_id", - "description": "Field name for tenant identifier" - }, - "crossTenantAccess": { - "type": "boolean", - "default": false, - "description": "Allow cross-tenant data access (with explicit permission)" - } - }, - "required": [ - "enabled", - "strategy" - ], - "additionalProperties": false, - "description": "Multi-tenancy configuration for SaaS applications" - }, - "softDelete": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable soft delete (trash/recycle bin)" - }, - "field": { - "type": "string", - "default": "deleted_at", - "description": "Field name for soft delete timestamp" - }, - "cascadeDelete": { - "type": "boolean", - "default": false, - "description": "Cascade soft delete to related records" - } - }, - "required": [ - "enabled" - ], - "additionalProperties": false, - "description": "Soft delete (trash/recycle bin) configuration" - }, - "versioning": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable record versioning" - }, - "strategy": { - "type": "string", - "enum": [ - "snapshot", - "delta", - "event-sourcing" - ], - "description": "Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)" - }, - "retentionDays": { - "type": "number", - "minimum": 1, - "description": "Number of days to retain old versions (undefined = infinite)" - }, - "versionField": { - "type": "string", - "default": "version", - "description": "Field name for version number/timestamp" - } - }, - "required": [ - "enabled", - "strategy" - ], - "additionalProperties": false, - "description": "Record versioning and history tracking configuration" - }, - "partitioning": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable table partitioning" - }, - "strategy": { - "type": "string", - "enum": [ - "range", - "hash", - "list" - ], - "description": "Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)" - }, - "key": { - "type": "string", - "description": "Field name to partition by" - }, - "interval": { - "type": "string", - "description": "Partition interval for range strategy (e.g., \"1 month\", \"1 year\")" - } - }, - "required": [ - "enabled", - "strategy", - "key" - ], - "additionalProperties": false, - "description": "Table partitioning configuration for performance" - }, - "cdc": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable Change Data Capture" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "description": "Event types to capture" - }, - "destination": { - "type": "string", - "description": "Destination endpoint (e.g., \"kafka://topic\", \"webhook://url\")" - } - }, - "required": [ - "enabled", - "events", - "destination" - ], - "additionalProperties": false, - "description": "Change Data Capture (CDC) configuration for real-time data streaming" - }, - "validations": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "script" - }, - "condition": { - "type": "string", - "description": "Formula expression. If TRUE, validation fails. (e.g. amount < 0)" - } - }, - "required": [ - "name", - "message", - "type", - "condition" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "unique" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields that must be combined unique" - }, - "scope": { - "type": "string", - "description": "Formula condition for scope (e.g. active = true)" - }, - "caseSensitive": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "message", - "type", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "state_machine" - }, - "field": { - "type": "string", - "description": "State field (e.g. status)" - }, - "transitions": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": "Map of { OldState: [AllowedNewStates] }" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "transitions" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "format" - }, - "field": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "email", - "url", - "phone", - "json" - ] - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "cross_field" - }, - "condition": { - "type": "string", - "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields involved in the validation" - } - }, - "required": [ - "name", - "message", - "type", - "condition", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "json_schema" - }, - "field": { - "type": "string", - "description": "JSON field to validate" - }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON Schema object definition" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "schema" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "async" - }, - "field": { - "type": "string", - "description": "Field to validate" - }, - "validatorUrl": { - "type": "string", - "description": "External API endpoint for validation" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST" - ], - "default": "GET", - "description": "HTTP method for external call" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom headers for the request" - }, - "validatorFunction": { - "type": "string", - "description": "Reference to custom validator function" - }, - "timeout": { - "type": "number", - "default": 5000, - "description": "Timeout in milliseconds" - }, - "debounce": { - "type": "number", - "description": "Debounce delay in milliseconds" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Additional parameters to pass to validator" - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "custom" - }, - "handler": { - "type": "string", - "description": "Name of the custom validation function registered in the system" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Parameters passed to the custom handler" - } - }, - "required": [ - "name", - "message", - "type", - "handler" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "conditional" - }, - "when": { - "type": "string", - "description": "Condition formula (e.g. \"type = 'enterprise'\")" - }, - "then": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "script" - }, - "condition": { - "type": "string", - "description": "Formula expression. If TRUE, validation fails. (e.g. amount < 0)" - } - }, - "required": [ - "name", - "message", - "type", - "condition" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "unique" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields that must be combined unique" - }, - "scope": { - "type": "string", - "description": "Formula condition for scope (e.g. active = true)" - }, - "caseSensitive": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "message", - "type", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "state_machine" - }, - "field": { - "type": "string", - "description": "State field (e.g. status)" - }, - "transitions": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": "Map of { OldState: [AllowedNewStates] }" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "transitions" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "format" - }, - "field": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "email", - "url", - "phone", - "json" - ] - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "cross_field" - }, - "condition": { - "type": "string", - "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields involved in the validation" - } - }, - "required": [ - "name", - "message", - "type", - "condition", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "json_schema" - }, - "field": { - "type": "string", - "description": "JSON field to validate" - }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON Schema object definition" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "schema" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "async" - }, - "field": { - "type": "string", - "description": "Field to validate" - }, - "validatorUrl": { - "type": "string", - "description": "External API endpoint for validation" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST" - ], - "default": "GET", - "description": "HTTP method for external call" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom headers for the request" - }, - "validatorFunction": { - "type": "string", - "description": "Reference to custom validator function" - }, - "timeout": { - "type": "number", - "default": 5000, - "description": "Timeout in milliseconds" - }, - "debounce": { - "type": "number", - "description": "Debounce delay in milliseconds" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Additional parameters to pass to validator" - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "custom" - }, - "handler": { - "type": "string", - "description": "Name of the custom validation function registered in the system" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Parameters passed to the custom handler" - } - }, - "required": [ - "name", - "message", - "type", - "handler" - ], - "additionalProperties": false - }, - {} - ], - "description": "Validation rule to apply when condition is true" - }, - "otherwise": { - "description": "Validation rule to apply when condition is false" - } - }, - "required": [ - "name", - "message", - "type", - "when", - "then" - ], - "additionalProperties": false - } - ] - }, - "description": "Object-level validation rules" - }, - "titleFormat": { - "type": "string", - "description": "Title expression (e.g. \"{name} - {code}\"). Overrides nameField." - }, - "compactLayout": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Primary fields for hover/cards/lookups" - }, - "search": { - "type": "object", - "properties": { - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to index for full-text search weighting" - }, - "displayFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to display in search result cards" - }, - "filters": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Default filters for search results" - } - }, - "required": [ - "fields" - ], - "additionalProperties": false, - "description": "Search engine configuration" - }, - "enable": { - "type": "object", - "properties": { - "trackHistory": { - "type": "boolean", - "default": false, - "description": "Enable field history tracking for audit compliance" - }, - "searchable": { - "type": "boolean", - "default": true, - "description": "Index records for global search" - }, - "apiEnabled": { - "type": "boolean", - "default": true, - "description": "Expose object via automatic APIs" - }, - "apiMethods": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "get", - "list", - "create", - "update", - "delete", - "upsert", - "bulk", - "aggregate", - "history", - "search", - "restore", - "purge", - "import", - "export" - ] - }, - "description": "Whitelist of allowed API operations" - }, - "files": { - "type": "boolean", - "default": false, - "description": "Enable file attachments and document management" - }, - "feeds": { - "type": "boolean", - "default": false, - "description": "Enable social feed, comments, and mentions (Chatter-like)" - }, - "activities": { - "type": "boolean", - "default": false, - "description": "Enable standard tasks and events tracking" - }, - "trash": { - "type": "boolean", - "default": true, - "description": "Enable soft-delete with restore capability" - }, - "mru": { - "type": "boolean", - "default": true, - "description": "Track Most Recently Used (MRU) list for users" - }, - "clone": { - "type": "boolean", - "default": true, - "description": "Allow record deep cloning" - } - }, - "additionalProperties": false, - "description": "Enabled system features modules" - } - }, - "required": [ - "name", - "fields" - ], - "additionalProperties": false - } + "Object": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ObjectCapabilities.json b/packages/spec/json-schema/data/ObjectCapabilities.json index e3d6c73cb..760b701b4 100644 --- a/packages/spec/json-schema/data/ObjectCapabilities.json +++ b/packages/spec/json-schema/data/ObjectCapabilities.json @@ -1,80 +1,7 @@ { "$ref": "#/definitions/ObjectCapabilities", "definitions": { - "ObjectCapabilities": { - "type": "object", - "properties": { - "trackHistory": { - "type": "boolean", - "default": false, - "description": "Enable field history tracking for audit compliance" - }, - "searchable": { - "type": "boolean", - "default": true, - "description": "Index records for global search" - }, - "apiEnabled": { - "type": "boolean", - "default": true, - "description": "Expose object via automatic APIs" - }, - "apiMethods": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "get", - "list", - "create", - "update", - "delete", - "upsert", - "bulk", - "aggregate", - "history", - "search", - "restore", - "purge", - "import", - "export" - ] - }, - "description": "Whitelist of allowed API operations" - }, - "files": { - "type": "boolean", - "default": false, - "description": "Enable file attachments and document management" - }, - "feeds": { - "type": "boolean", - "default": false, - "description": "Enable social feed, comments, and mentions (Chatter-like)" - }, - "activities": { - "type": "boolean", - "default": false, - "description": "Enable standard tasks and events tracking" - }, - "trash": { - "type": "boolean", - "default": true, - "description": "Enable soft-delete with restore capability" - }, - "mru": { - "type": "boolean", - "default": true, - "description": "Track Most Recently Used (MRU) list for users" - }, - "clone": { - "type": "boolean", - "default": true, - "description": "Allow record deep cloning" - } - }, - "additionalProperties": false - } + "ObjectCapabilities": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/PartitioningConfig.json b/packages/spec/json-schema/data/PartitioningConfig.json index e3eca199d..7ea8066a3 100644 --- a/packages/spec/json-schema/data/PartitioningConfig.json +++ b/packages/spec/json-schema/data/PartitioningConfig.json @@ -1,38 +1,7 @@ { "$ref": "#/definitions/PartitioningConfig", "definitions": { - "PartitioningConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable table partitioning" - }, - "strategy": { - "type": "string", - "enum": [ - "range", - "hash", - "list" - ], - "description": "Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)" - }, - "key": { - "type": "string", - "description": "Field name to partition by" - }, - "interval": { - "type": "string", - "description": "Partition interval for range strategy (e.g., \"1 month\", \"1 year\")" - } - }, - "required": [ - "enabled", - "strategy", - "key" - ], - "additionalProperties": false - } + "PartitioningConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/PoolConfig.json b/packages/spec/json-schema/data/PoolConfig.json index 9416b7f6f..edd027fc7 100644 --- a/packages/spec/json-schema/data/PoolConfig.json +++ b/packages/spec/json-schema/data/PoolConfig.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/PoolConfig", "definitions": { - "PoolConfig": { - "type": "object", - "properties": { - "min": { - "type": "number", - "minimum": 0, - "default": 2, - "description": "Minimum number of connections in pool" - }, - "max": { - "type": "number", - "minimum": 1, - "default": 10, - "description": "Maximum number of connections in pool" - }, - "idleTimeoutMillis": { - "type": "number", - "minimum": 0, - "default": 30000, - "description": "Time in ms before idle connection is closed" - }, - "connectionTimeoutMillis": { - "type": "number", - "minimum": 0, - "default": 5000, - "description": "Time in ms to wait for available connection" - } - }, - "additionalProperties": false - } + "PoolConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/Query.json b/packages/spec/json-schema/data/Query.json index 0148afa84..1ce0b31b2 100644 --- a/packages/spec/json-schema/data/Query.json +++ b/packages/spec/json-schema/data/Query.json @@ -1,495 +1,7 @@ { "$ref": "#/definitions/Query", "definitions": { - "Query": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Object name (e.g. account)" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "fields": { - "type": "array", - "items": {} - }, - "alias": { - "type": "string" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - }, - "description": "Fields to retrieve" - }, - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filtering criteria (WHERE)" - }, - "search": { - "type": "object", - "properties": { - "query": { - "type": "string", - "description": "Search query text" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to search in (if not specified, searches all text fields)" - }, - "fuzzy": { - "type": "boolean", - "default": false, - "description": "Enable fuzzy matching (tolerates typos)" - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or" - ], - "default": "or", - "description": "Logical operator between terms" - }, - "boost": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Field-specific relevance boosting (field name -> boost factor)" - }, - "minScore": { - "type": "number", - "description": "Minimum relevance score threshold" - }, - "language": { - "type": "string", - "description": "Language for text analysis (e.g., \"en\", \"zh\", \"es\")" - }, - "highlight": { - "type": "boolean", - "default": false, - "description": "Enable search result highlighting" - } - }, - "required": [ - "query" - ], - "additionalProperties": false, - "description": "Full-text search configuration ($search parameter)" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Sorting instructions (ORDER BY)" - }, - "limit": { - "type": "number", - "description": "Max records to return (LIMIT)" - }, - "offset": { - "type": "number", - "description": "Records to skip (OFFSET)" - }, - "cursor": { - "type": "object", - "additionalProperties": {}, - "description": "Cursor for keyset pagination" - }, - "joins": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "inner", - "left", - "right", - "full" - ], - "description": "Join type" - }, - "strategy": { - "type": "string", - "enum": [ - "auto", - "database", - "hash", - "loop" - ], - "description": "Execution strategy hint" - }, - "object": { - "type": "string", - "description": "Object/table to join" - }, - "alias": { - "type": "string", - "description": "Table alias" - }, - "on": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$or": { - "type": "array", - "items": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "$not": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - } - } - ], - "description": "Join condition" - }, - "subquery": { - "description": "Subquery instead of object" - } - }, - "required": [ - "type", - "object", - "on" - ], - "additionalProperties": false - }, - "description": "Explicit Table Joins" - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max", - "count_distinct", - "array_agg", - "string_agg" - ], - "description": "Aggregation function" - }, - "field": { - "type": "string", - "description": "Field to aggregate (optional for COUNT(*))" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "distinct": { - "type": "boolean", - "description": "Apply DISTINCT before aggregation" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter/Condition to apply to the aggregation (FILTER WHERE clause)" - } - }, - "required": [ - "function", - "alias" - ], - "additionalProperties": false - }, - "description": "Aggregation functions" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "GROUP BY fields" - }, - "having": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "HAVING clause for aggregation filtering" - }, - "windowFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - }, - "description": "Window functions with OVER clause" - }, - "distinct": { - "type": "boolean", - "description": "SELECT DISTINCT flag" - } - }, - "required": [ - "object" - ], - "additionalProperties": false - } + "Query": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/QueryFilter.json b/packages/spec/json-schema/data/QueryFilter.json index 747e8a4a6..1ad9a617d 100644 --- a/packages/spec/json-schema/data/QueryFilter.json +++ b/packages/spec/json-schema/data/QueryFilter.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/QueryFilter", "definitions": { - "QueryFilter": { - "type": "object", - "properties": { - "where": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ] - } - }, - "additionalProperties": false - } + "QueryFilter": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/RangeOperator.json b/packages/spec/json-schema/data/RangeOperator.json index 57ce0adcf..1f3287591 100644 --- a/packages/spec/json-schema/data/RangeOperator.json +++ b/packages/spec/json-schema/data/RangeOperator.json @@ -1,67 +1,7 @@ { "$ref": "#/definitions/RangeOperator", "definitions": { - "RangeOperator": { - "type": "object", - "properties": { - "$between": { - "type": "array", - "minItems": 2, - "maxItems": 2, - "items": [ - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - }, - { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "properties": { - "$field": { - "type": "string", - "description": "Field Reference/Column Name" - } - }, - "required": [ - "$field" - ], - "additionalProperties": false - } - ] - } - ] - } - }, - "additionalProperties": false - } + "RangeOperator": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ReplicationConfig.json b/packages/spec/json-schema/data/ReplicationConfig.json index e10c72626..fa0193ec0 100644 --- a/packages/spec/json-schema/data/ReplicationConfig.json +++ b/packages/spec/json-schema/data/ReplicationConfig.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/ReplicationConfig", "definitions": { - "ReplicationConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable replication" - }, - "replicaSetName": { - "type": "string", - "description": "Replica set name" - }, - "replicas": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of replicas" - }, - "readPreference": { - "type": "string", - "enum": [ - "primary", - "primaryPreferred", - "secondary", - "secondaryPreferred", - "nearest" - ], - "description": "Read preference for replica set" - }, - "writeConcern": { - "type": "string", - "enum": [ - "majority", - "acknowledged", - "unacknowledged" - ], - "description": "Write concern level" - } - }, - "additionalProperties": false - } + "ReplicationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/SQLDialect.json b/packages/spec/json-schema/data/SQLDialect.json index a30665b4c..ffcea3b9f 100644 --- a/packages/spec/json-schema/data/SQLDialect.json +++ b/packages/spec/json-schema/data/SQLDialect.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/SQLDialect", "definitions": { - "SQLDialect": { - "type": "string", - "enum": [ - "postgresql", - "mysql", - "sqlite", - "mssql", - "oracle", - "mariadb" - ] - } + "SQLDialect": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/SQLDriverConfig.json b/packages/spec/json-schema/data/SQLDriverConfig.json index ff0d3c7c7..f9ca23f86 100644 --- a/packages/spec/json-schema/data/SQLDriverConfig.json +++ b/packages/spec/json-schema/data/SQLDriverConfig.json @@ -1,325 +1,7 @@ { "$ref": "#/definitions/SQLDriverConfig", "definitions": { - "SQLDriverConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Driver instance name" - }, - "type": { - "type": "string", - "const": "sql", - "description": "Driver type must be \"sql\"" - }, - "capabilities": { - "type": "object", - "properties": { - "create": { - "type": "boolean", - "default": true, - "description": "Supports CREATE operations" - }, - "read": { - "type": "boolean", - "default": true, - "description": "Supports READ operations" - }, - "update": { - "type": "boolean", - "default": true, - "description": "Supports UPDATE operations" - }, - "delete": { - "type": "boolean", - "default": true, - "description": "Supports DELETE operations" - }, - "bulkCreate": { - "type": "boolean", - "default": false, - "description": "Supports bulk CREATE operations" - }, - "bulkUpdate": { - "type": "boolean", - "default": false, - "description": "Supports bulk UPDATE operations" - }, - "bulkDelete": { - "type": "boolean", - "default": false, - "description": "Supports bulk DELETE operations" - }, - "transactions": { - "type": "boolean", - "default": false, - "description": "Supports ACID transactions" - }, - "savepoints": { - "type": "boolean", - "default": false, - "description": "Supports transaction savepoints" - }, - "isolationLevels": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "read-uncommitted", - "read-committed", - "repeatable-read", - "serializable" - ] - }, - "description": "Supported transaction isolation levels" - }, - "queryFilters": { - "type": "boolean", - "default": true, - "description": "Supports WHERE clause filtering" - }, - "queryAggregations": { - "type": "boolean", - "default": false, - "description": "Supports GROUP BY and aggregation functions" - }, - "querySorting": { - "type": "boolean", - "default": true, - "description": "Supports ORDER BY sorting" - }, - "queryPagination": { - "type": "boolean", - "default": true, - "description": "Supports LIMIT/OFFSET pagination" - }, - "queryWindowFunctions": { - "type": "boolean", - "default": false, - "description": "Supports window functions with OVER clause" - }, - "querySubqueries": { - "type": "boolean", - "default": false, - "description": "Supports subqueries" - }, - "queryCTE": { - "type": "boolean", - "default": false, - "description": "Supports Common Table Expressions (WITH clause)" - }, - "joins": { - "type": "boolean", - "default": false, - "description": "Supports SQL joins" - }, - "fullTextSearch": { - "type": "boolean", - "default": false, - "description": "Supports full-text search" - }, - "jsonQuery": { - "type": "boolean", - "default": false, - "description": "Supports JSON field querying" - }, - "geospatialQuery": { - "type": "boolean", - "default": false, - "description": "Supports geospatial queries" - }, - "streaming": { - "type": "boolean", - "default": false, - "description": "Supports result streaming (cursors/iterators)" - }, - "jsonFields": { - "type": "boolean", - "default": false, - "description": "Supports JSON field types" - }, - "arrayFields": { - "type": "boolean", - "default": false, - "description": "Supports array field types" - }, - "vectorSearch": { - "type": "boolean", - "default": false, - "description": "Supports vector embeddings and similarity search" - }, - "geoSpatial": { - "type": "boolean", - "default": false, - "description": "Supports geospatial queries (deprecated: use geospatialQuery)" - }, - "schemaSync": { - "type": "boolean", - "default": false, - "description": "Supports automatic schema synchronization" - }, - "migrations": { - "type": "boolean", - "default": false, - "description": "Supports database migrations" - }, - "indexes": { - "type": "boolean", - "default": false, - "description": "Supports index creation and management" - }, - "connectionPooling": { - "type": "boolean", - "default": false, - "description": "Supports connection pooling" - }, - "preparedStatements": { - "type": "boolean", - "default": false, - "description": "Supports prepared statements (SQL injection prevention)" - }, - "queryCache": { - "type": "boolean", - "default": false, - "description": "Supports query result caching" - } - }, - "additionalProperties": false, - "description": "Driver capability flags" - }, - "connectionString": { - "type": "string", - "description": "Database connection string (driver-specific format)" - }, - "poolConfig": { - "type": "object", - "properties": { - "min": { - "type": "number", - "minimum": 0, - "default": 2, - "description": "Minimum number of connections in pool" - }, - "max": { - "type": "number", - "minimum": 1, - "default": 10, - "description": "Maximum number of connections in pool" - }, - "idleTimeoutMillis": { - "type": "number", - "minimum": 0, - "default": 30000, - "description": "Time in ms before idle connection is closed" - }, - "connectionTimeoutMillis": { - "type": "number", - "minimum": 0, - "default": 5000, - "description": "Time in ms to wait for available connection" - } - }, - "additionalProperties": false, - "description": "Connection pool configuration" - }, - "dialect": { - "type": "string", - "enum": [ - "postgresql", - "mysql", - "sqlite", - "mssql", - "oracle", - "mariadb" - ], - "description": "SQL database dialect" - }, - "dataTypeMapping": { - "type": "object", - "properties": { - "text": { - "type": "string", - "description": "SQL type for text fields (e.g., VARCHAR, TEXT)" - }, - "number": { - "type": "string", - "description": "SQL type for number fields (e.g., NUMERIC, DECIMAL, INT)" - }, - "boolean": { - "type": "string", - "description": "SQL type for boolean fields (e.g., BOOLEAN, BIT)" - }, - "date": { - "type": "string", - "description": "SQL type for date fields (e.g., DATE)" - }, - "datetime": { - "type": "string", - "description": "SQL type for datetime fields (e.g., TIMESTAMP, DATETIME)" - }, - "json": { - "type": "string", - "description": "SQL type for JSON fields (e.g., JSON, JSONB)" - }, - "uuid": { - "type": "string", - "description": "SQL type for UUID fields (e.g., UUID, CHAR(36))" - }, - "binary": { - "type": "string", - "description": "SQL type for binary fields (e.g., BLOB, BYTEA)" - } - }, - "required": [ - "text", - "number", - "boolean", - "date", - "datetime" - ], - "additionalProperties": false, - "description": "SQL data type mapping configuration" - }, - "ssl": { - "type": "boolean", - "default": false, - "description": "Enable SSL/TLS connection" - }, - "sslConfig": { - "type": "object", - "properties": { - "rejectUnauthorized": { - "type": "boolean", - "default": true, - "description": "Reject connections with invalid certificates" - }, - "ca": { - "type": "string", - "description": "CA certificate file path or content" - }, - "cert": { - "type": "string", - "description": "Client certificate file path or content" - }, - "key": { - "type": "string", - "description": "Client private key file path or content" - } - }, - "additionalProperties": false, - "description": "SSL/TLS configuration (required when ssl is true)" - } - }, - "required": [ - "name", - "type", - "capabilities", - "dialect", - "dataTypeMapping" - ], - "additionalProperties": false - } + "SQLDriverConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/SSLConfig.json b/packages/spec/json-schema/data/SSLConfig.json index 39d7bc903..44cfc0981 100644 --- a/packages/spec/json-schema/data/SSLConfig.json +++ b/packages/spec/json-schema/data/SSLConfig.json @@ -1,29 +1,7 @@ { "$ref": "#/definitions/SSLConfig", "definitions": { - "SSLConfig": { - "type": "object", - "properties": { - "rejectUnauthorized": { - "type": "boolean", - "default": true, - "description": "Reject connections with invalid certificates" - }, - "ca": { - "type": "string", - "description": "CA certificate file path or content" - }, - "cert": { - "type": "string", - "description": "Client certificate file path or content" - }, - "key": { - "type": "string", - "description": "Client private key file path or content" - } - }, - "additionalProperties": false - } + "SSLConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ScriptValidation.json b/packages/spec/json-schema/data/ScriptValidation.json index 4c7e07910..30e2c964b 100644 --- a/packages/spec/json-schema/data/ScriptValidation.json +++ b/packages/spec/json-schema/data/ScriptValidation.json @@ -1,79 +1,7 @@ { "$ref": "#/definitions/ScriptValidation", "definitions": { - "ScriptValidation": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "script" - }, - "condition": { - "type": "string", - "description": "Formula expression. If TRUE, validation fails. (e.g. amount < 0)" - } - }, - "required": [ - "name", - "message", - "type", - "condition" - ], - "additionalProperties": false - } + "ScriptValidation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/SearchConfig.json b/packages/spec/json-schema/data/SearchConfig.json index 61ba0336d..dae9fff4c 100644 --- a/packages/spec/json-schema/data/SearchConfig.json +++ b/packages/spec/json-schema/data/SearchConfig.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/SearchConfig", "definitions": { - "SearchConfig": { - "type": "object", - "properties": { - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to index for full-text search weighting" - }, - "displayFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to display in search result cards" - }, - "filters": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Default filters for search results" - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - } + "SearchConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/SelectOption.json b/packages/spec/json-schema/data/SelectOption.json index 6a34f059b..eba5dff15 100644 --- a/packages/spec/json-schema/data/SelectOption.json +++ b/packages/spec/json-schema/data/SelectOption.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/SelectOption", "definitions": { - "SelectOption": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Display label (human-readable, any case allowed)" - }, - "value": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Stored value (lowercase machine identifier)" - }, - "color": { - "type": "string", - "description": "Color code for badges/charts" - }, - "default": { - "type": "boolean", - "description": "Is default option" - } - }, - "required": [ - "label", - "value" - ], - "additionalProperties": false - } + "SelectOption": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/SetOperator.json b/packages/spec/json-schema/data/SetOperator.json index d170434b1..fa743db9e 100644 --- a/packages/spec/json-schema/data/SetOperator.json +++ b/packages/spec/json-schema/data/SetOperator.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/SetOperator", "definitions": { - "SetOperator": { - "type": "object", - "properties": { - "$in": { - "type": "array" - }, - "$nin": { - "type": "array" - } - }, - "additionalProperties": false - } + "SetOperator": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ShardingConfig.json b/packages/spec/json-schema/data/ShardingConfig.json index 253300a48..f1667f90b 100644 --- a/packages/spec/json-schema/data/ShardingConfig.json +++ b/packages/spec/json-schema/data/ShardingConfig.json @@ -1,35 +1,7 @@ { "$ref": "#/definitions/ShardingConfig", "definitions": { - "ShardingConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable sharding" - }, - "shardKey": { - "type": "string", - "description": "Field to use as shard key" - }, - "shardingStrategy": { - "type": "string", - "enum": [ - "hash", - "range", - "zone" - ], - "description": "Sharding strategy" - }, - "numShards": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of shards" - } - }, - "additionalProperties": false - } + "ShardingConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/SoftDeleteConfig.json b/packages/spec/json-schema/data/SoftDeleteConfig.json index bfb206cd5..8917625aa 100644 --- a/packages/spec/json-schema/data/SoftDeleteConfig.json +++ b/packages/spec/json-schema/data/SoftDeleteConfig.json @@ -1,29 +1,7 @@ { "$ref": "#/definitions/SoftDeleteConfig", "definitions": { - "SoftDeleteConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable soft delete (trash/recycle bin)" - }, - "field": { - "type": "string", - "default": "deleted_at", - "description": "Field name for soft delete timestamp" - }, - "cascadeDelete": { - "type": "boolean", - "default": false, - "description": "Cascade soft delete to related records" - } - }, - "required": [ - "enabled" - ], - "additionalProperties": false - } + "SoftDeleteConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/SortNode.json b/packages/spec/json-schema/data/SortNode.json index 0c948c13f..f11a25d03 100644 --- a/packages/spec/json-schema/data/SortNode.json +++ b/packages/spec/json-schema/data/SortNode.json @@ -1,26 +1,7 @@ { "$ref": "#/definitions/SortNode", "definitions": { - "SortNode": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } + "SortNode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/SpecialOperator.json b/packages/spec/json-schema/data/SpecialOperator.json index b4f09d43c..85f59426d 100644 --- a/packages/spec/json-schema/data/SpecialOperator.json +++ b/packages/spec/json-schema/data/SpecialOperator.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/SpecialOperator", "definitions": { - "SpecialOperator": { - "type": "object", - "properties": { - "$null": { - "type": "boolean" - }, - "$exist": { - "type": "boolean" - } - }, - "additionalProperties": false - } + "SpecialOperator": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/StateMachineValidation.json b/packages/spec/json-schema/data/StateMachineValidation.json index e8213fe33..8fab1570f 100644 --- a/packages/spec/json-schema/data/StateMachineValidation.json +++ b/packages/spec/json-schema/data/StateMachineValidation.json @@ -1,90 +1,7 @@ { "$ref": "#/definitions/StateMachineValidation", "definitions": { - "StateMachineValidation": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "state_machine" - }, - "field": { - "type": "string", - "description": "State field (e.g. status)" - }, - "transitions": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": "Map of { OldState: [AllowedNewStates] }" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "transitions" - ], - "additionalProperties": false - } + "StateMachineValidation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/StringOperator.json b/packages/spec/json-schema/data/StringOperator.json index e3bf8b2ae..134d7e178 100644 --- a/packages/spec/json-schema/data/StringOperator.json +++ b/packages/spec/json-schema/data/StringOperator.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/StringOperator", "definitions": { - "StringOperator": { - "type": "object", - "properties": { - "$contains": { - "type": "string" - }, - "$startsWith": { - "type": "string" - }, - "$endsWith": { - "type": "string" - } - }, - "additionalProperties": false - } + "StringOperator": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/TenancyConfig.json b/packages/spec/json-schema/data/TenancyConfig.json index a49d1836b..3bd1994f1 100644 --- a/packages/spec/json-schema/data/TenancyConfig.json +++ b/packages/spec/json-schema/data/TenancyConfig.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/TenancyConfig", "definitions": { - "TenancyConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable multi-tenancy for this object" - }, - "strategy": { - "type": "string", - "enum": [ - "shared", - "isolated", - "hybrid" - ], - "description": "Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)" - }, - "tenantField": { - "type": "string", - "default": "tenant_id", - "description": "Field name for tenant identifier" - }, - "crossTenantAccess": { - "type": "boolean", - "default": false, - "description": "Allow cross-tenant data access (with explicit permission)" - } - }, - "required": [ - "enabled", - "strategy" - ], - "additionalProperties": false - } + "TenancyConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/TransformType.json b/packages/spec/json-schema/data/TransformType.json index 230b4fe24..633b669f4 100644 --- a/packages/spec/json-schema/data/TransformType.json +++ b/packages/spec/json-schema/data/TransformType.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/TransformType", "definitions": { - "TransformType": { - "type": "string", - "enum": [ - "none", - "constant", - "lookup", - "split", - "join", - "javascript", - "map" - ] - } + "TransformType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/UniquenessValidation.json b/packages/spec/json-schema/data/UniquenessValidation.json index 6a3276b89..e7b44e30d 100644 --- a/packages/spec/json-schema/data/UniquenessValidation.json +++ b/packages/spec/json-schema/data/UniquenessValidation.json @@ -1,90 +1,7 @@ { "$ref": "#/definitions/UniquenessValidation", "definitions": { - "UniquenessValidation": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "unique" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields that must be combined unique" - }, - "scope": { - "type": "string", - "description": "Formula condition for scope (e.g. active = true)" - }, - "caseSensitive": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "message", - "type", - "fields" - ], - "additionalProperties": false - } + "UniquenessValidation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/ValidationRule.json b/packages/spec/json-schema/data/ValidationRule.json index 74d05c56c..1bec3914c 100644 --- a/packages/spec/json-schema/data/ValidationRule.json +++ b/packages/spec/json-schema/data/ValidationRule.json @@ -1,1441 +1,7 @@ { "$ref": "#/definitions/ValidationRule", "definitions": { - "ValidationRule": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "script" - }, - "condition": { - "type": "string", - "description": "Formula expression. If TRUE, validation fails. (e.g. amount < 0)" - } - }, - "required": [ - "name", - "message", - "type", - "condition" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "unique" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields that must be combined unique" - }, - "scope": { - "type": "string", - "description": "Formula condition for scope (e.g. active = true)" - }, - "caseSensitive": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "message", - "type", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "state_machine" - }, - "field": { - "type": "string", - "description": "State field (e.g. status)" - }, - "transitions": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": "Map of { OldState: [AllowedNewStates] }" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "transitions" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "format" - }, - "field": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "email", - "url", - "phone", - "json" - ] - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "cross_field" - }, - "condition": { - "type": "string", - "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields involved in the validation" - } - }, - "required": [ - "name", - "message", - "type", - "condition", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "json_schema" - }, - "field": { - "type": "string", - "description": "JSON field to validate" - }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON Schema object definition" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "schema" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "async" - }, - "field": { - "type": "string", - "description": "Field to validate" - }, - "validatorUrl": { - "type": "string", - "description": "External API endpoint for validation" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST" - ], - "default": "GET", - "description": "HTTP method for external call" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom headers for the request" - }, - "validatorFunction": { - "type": "string", - "description": "Reference to custom validator function" - }, - "timeout": { - "type": "number", - "default": 5000, - "description": "Timeout in milliseconds" - }, - "debounce": { - "type": "number", - "description": "Debounce delay in milliseconds" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Additional parameters to pass to validator" - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "custom" - }, - "handler": { - "type": "string", - "description": "Name of the custom validation function registered in the system" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Parameters passed to the custom handler" - } - }, - "required": [ - "name", - "message", - "type", - "handler" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "conditional" - }, - "when": { - "type": "string", - "description": "Condition formula (e.g. \"type = 'enterprise'\")" - }, - "then": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "script" - }, - "condition": { - "type": "string", - "description": "Formula expression. If TRUE, validation fails. (e.g. amount < 0)" - } - }, - "required": [ - "name", - "message", - "type", - "condition" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "unique" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields that must be combined unique" - }, - "scope": { - "type": "string", - "description": "Formula condition for scope (e.g. active = true)" - }, - "caseSensitive": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "message", - "type", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "state_machine" - }, - "field": { - "type": "string", - "description": "State field (e.g. status)" - }, - "transitions": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": "Map of { OldState: [AllowedNewStates] }" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "transitions" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "format" - }, - "field": { - "type": "string" - }, - "regex": { - "type": "string" - }, - "format": { - "type": "string", - "enum": [ - "email", - "url", - "phone", - "json" - ] - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "cross_field" - }, - "condition": { - "type": "string", - "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields involved in the validation" - } - }, - "required": [ - "name", - "message", - "type", - "condition", - "fields" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "json_schema" - }, - "field": { - "type": "string", - "description": "JSON field to validate" - }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON Schema object definition" - } - }, - "required": [ - "name", - "message", - "type", - "field", - "schema" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "async" - }, - "field": { - "type": "string", - "description": "Field to validate" - }, - "validatorUrl": { - "type": "string", - "description": "External API endpoint for validation" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST" - ], - "default": "GET", - "description": "HTTP method for external call" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom headers for the request" - }, - "validatorFunction": { - "type": "string", - "description": "Reference to custom validator function" - }, - "timeout": { - "type": "number", - "default": 5000, - "description": "Timeout in milliseconds" - }, - "debounce": { - "type": "number", - "description": "Debounce delay in milliseconds" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Additional parameters to pass to validator" - } - }, - "required": [ - "name", - "message", - "type", - "field" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label for the rule listing" - }, - "description": { - "type": "string", - "description": "Administrative notes explaining the business reason" - }, - "active": { - "type": "boolean", - "default": true - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "insert", - "update", - "delete" - ] - }, - "default": [ - "insert", - "update" - ], - "description": "Validation contexts" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Categorization tags (e.g., \"compliance\", \"billing\")" - }, - "severity": { - "type": "string", - "enum": [ - "error", - "warning", - "info" - ], - "default": "error" - }, - "message": { - "type": "string", - "description": "Error message to display to the user" - }, - "type": { - "type": "string", - "const": "custom" - }, - "handler": { - "type": "string", - "description": "Name of the custom validation function registered in the system" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Parameters passed to the custom handler" - } - }, - "required": [ - "name", - "message", - "type", - "handler" - ], - "additionalProperties": false - }, - {} - ], - "description": "Validation rule to apply when condition is true" - }, - "otherwise": { - "description": "Validation rule to apply when condition is false" - } - }, - "required": [ - "name", - "message", - "type", - "when", - "then" - ], - "additionalProperties": false - } - ] - } + "ValidationRule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/VectorConfig.json b/packages/spec/json-schema/data/VectorConfig.json index 4adc77776..094febd76 100644 --- a/packages/spec/json-schema/data/VectorConfig.json +++ b/packages/spec/json-schema/data/VectorConfig.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/VectorConfig", "definitions": { - "VectorConfig": { - "type": "object", - "properties": { - "dimensions": { - "type": "integer", - "minimum": 1, - "maximum": 10000, - "description": "Vector dimensionality (e.g., 1536 for OpenAI embeddings)" - }, - "distanceMetric": { - "type": "string", - "enum": [ - "cosine", - "euclidean", - "dotProduct", - "manhattan" - ], - "default": "cosine", - "description": "Distance/similarity metric for vector search" - }, - "normalized": { - "type": "boolean", - "default": false, - "description": "Whether vectors are normalized (unit length)" - }, - "indexed": { - "type": "boolean", - "default": true, - "description": "Whether to create a vector index for fast similarity search" - }, - "indexType": { - "type": "string", - "enum": [ - "hnsw", - "ivfflat", - "flat" - ], - "description": "Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)" - } - }, - "required": [ - "dimensions" - ], - "additionalProperties": false - } + "VectorConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/VersioningConfig.json b/packages/spec/json-schema/data/VersioningConfig.json index b9b9cbd26..31838e7b0 100644 --- a/packages/spec/json-schema/data/VersioningConfig.json +++ b/packages/spec/json-schema/data/VersioningConfig.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/VersioningConfig", "definitions": { - "VersioningConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable record versioning" - }, - "strategy": { - "type": "string", - "enum": [ - "snapshot", - "delta", - "event-sourcing" - ], - "description": "Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)" - }, - "retentionDays": { - "type": "number", - "minimum": 1, - "description": "Number of days to retain old versions (undefined = infinite)" - }, - "versionField": { - "type": "string", - "default": "version", - "description": "Field name for version number/timestamp" - } - }, - "required": [ - "enabled", - "strategy" - ], - "additionalProperties": false - } + "VersioningConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/WindowFunction.json b/packages/spec/json-schema/data/WindowFunction.json index 6b0cdc7a6..fb5f61f76 100644 --- a/packages/spec/json-schema/data/WindowFunction.json +++ b/packages/spec/json-schema/data/WindowFunction.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/WindowFunction", "definitions": { - "WindowFunction": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ] - } + "WindowFunction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/WindowFunctionNode.json b/packages/spec/json-schema/data/WindowFunctionNode.json index 69317e40f..9e9efc408 100644 --- a/packages/spec/json-schema/data/WindowFunctionNode.json +++ b/packages/spec/json-schema/data/WindowFunctionNode.json @@ -1,104 +1,7 @@ { "$ref": "#/definitions/WindowFunctionNode", "definitions": { - "WindowFunctionNode": { - "type": "object", - "properties": { - "function": { - "type": "string", - "enum": [ - "row_number", - "rank", - "dense_rank", - "percent_rank", - "lag", - "lead", - "first_value", - "last_value", - "sum", - "avg", - "count", - "min", - "max" - ], - "description": "Window function name" - }, - "field": { - "type": "string", - "description": "Field to operate on (for aggregate window functions)" - }, - "alias": { - "type": "string", - "description": "Result column alias" - }, - "over": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false, - "description": "Window specification (OVER clause)" - } - }, - "required": [ - "function", - "alias", - "over" - ], - "additionalProperties": false - } + "WindowFunctionNode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/data/WindowSpec.json b/packages/spec/json-schema/data/WindowSpec.json index 213b69b11..91a682ade 100644 --- a/packages/spec/json-schema/data/WindowSpec.json +++ b/packages/spec/json-schema/data/WindowSpec.json @@ -1,65 +1,7 @@ { "$ref": "#/definitions/WindowSpec", "definitions": { - "WindowSpec": { - "type": "object", - "properties": { - "partitionBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "PARTITION BY fields" - }, - "orderBy": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "ORDER BY specification" - }, - "frame": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rows", - "range" - ] - }, - "start": { - "type": "string", - "description": "Frame start (e.g., \"UNBOUNDED PRECEDING\", \"1 PRECEDING\")" - }, - "end": { - "type": "string", - "description": "Frame end (e.g., \"CURRENT ROW\", \"1 FOLLOWING\")" - } - }, - "additionalProperties": false, - "description": "Window frame specification" - } - }, - "additionalProperties": false - } + "WindowSpec": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/BillOfMaterials.json b/packages/spec/json-schema/hub/BillOfMaterials.json index 67be30f64..bef010ea5 100644 --- a/packages/spec/json-schema/hub/BillOfMaterials.json +++ b/packages/spec/json-schema/hub/BillOfMaterials.json @@ -1,70 +1,7 @@ { "$ref": "#/definitions/BillOfMaterials", "definitions": { - "BillOfMaterials": { - "type": "object", - "properties": { - "tenantId": { - "type": "string", - "description": "Target Tenant ID" - }, - "dependencies": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Plugin ID (e.g. \"com.example.crm\")" - }, - "version": { - "type": "string", - "default": "latest", - "description": "SemVer range or \"latest\"" - }, - "configuration": { - "type": "object", - "additionalProperties": {}, - "description": "Configuration overrides" - }, - "features": { - "type": "object", - "additionalProperties": { - "type": "boolean" - }, - "description": "Feature toggles" - } - }, - "required": [ - "id" - ], - "additionalProperties": false - }, - "description": "Installed packages" - }, - "environment": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "resolutionStrategy": { - "type": "string", - "enum": [ - "strict", - "override", - "merge" - ], - "default": "override", - "description": "Conflict resolution strategy (strict=fail, override=last-wins, merge=deep-merge)" - } - }, - "required": [ - "tenantId", - "dependencies" - ], - "additionalProperties": false - } + "BillOfMaterials": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/ComposerRequest.json b/packages/spec/json-schema/hub/ComposerRequest.json index bd70d1dfd..633ad5928 100644 --- a/packages/spec/json-schema/hub/ComposerRequest.json +++ b/packages/spec/json-schema/hub/ComposerRequest.json @@ -1,86 +1,7 @@ { "$ref": "#/definitions/ComposerRequest", "definitions": { - "ComposerRequest": { - "type": "object", - "properties": { - "bom": { - "type": "object", - "properties": { - "tenantId": { - "type": "string", - "description": "Target Tenant ID" - }, - "dependencies": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Plugin ID (e.g. \"com.example.crm\")" - }, - "version": { - "type": "string", - "default": "latest", - "description": "SemVer range or \"latest\"" - }, - "configuration": { - "type": "object", - "additionalProperties": {}, - "description": "Configuration overrides" - }, - "features": { - "type": "object", - "additionalProperties": { - "type": "boolean" - }, - "description": "Feature toggles" - } - }, - "required": [ - "id" - ], - "additionalProperties": false - }, - "description": "Installed packages" - }, - "environment": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "resolutionStrategy": { - "type": "string", - "enum": [ - "strict", - "override", - "merge" - ], - "default": "override", - "description": "Conflict resolution strategy (strict=fail, override=last-wins, merge=deep-merge)" - } - }, - "required": [ - "tenantId", - "dependencies" - ], - "additionalProperties": false - }, - "runtimeVersion": { - "type": "string" - }, - "dryRun": { - "type": "boolean", - "default": false - } - }, - "required": [ - "bom" - ], - "additionalProperties": false - } + "ComposerRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/ComposerResponse.json b/packages/spec/json-schema/hub/ComposerResponse.json index e00931899..29c8a40f1 100644 --- a/packages/spec/json-schema/hub/ComposerResponse.json +++ b/packages/spec/json-schema/hub/ComposerResponse.json @@ -1,891 +1,7 @@ { "$ref": "#/definitions/ComposerResponse", "definitions": { - "ComposerResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - }, - "manifest": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique package identifier (reverse domain style)" - }, - "version": { - "type": "string", - "pattern": "^\\d+\\.\\d+\\.\\d+$", - "description": "Package version (semantic versioning)" - }, - "type": { - "type": "string", - "enum": [ - "app", - "plugin", - "driver", - "module", - "objectql", - "gateway", - "adapter" - ], - "description": "Type of package" - }, - "name": { - "type": "string", - "description": "Human-readable package name" - }, - "description": { - "type": "string", - "description": "Package description" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of required permission strings" - }, - "objects": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Glob patterns for ObjectQL schemas files" - }, - "datasources": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Glob patterns for Datasource definitions" - }, - "dependencies": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Package dependencies" - }, - "configuration": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object" - ], - "description": "Data type of the setting" - }, - "default": { - "description": "Default value" - }, - "description": { - "type": "string", - "description": "Tooltip description" - }, - "required": { - "type": "boolean", - "description": "Is this setting required?" - }, - "secret": { - "type": "boolean", - "description": "If true, value is encrypted/masked (e.g. API Keys)" - }, - "enum": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed values for select inputs" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "description": "Map of configuration keys to their definitions" - } - }, - "required": [ - "properties" - ], - "additionalProperties": false, - "description": "Plugin configuration settings" - }, - "contributes": { - "type": "object", - "properties": { - "kinds": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The generic identifier of the kind (e.g., \"sys.bi.report\")" - }, - "globs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "File patterns to watch (e.g., [\"**/*.report.ts\"])" - }, - "description": { - "type": "string", - "description": "Description of what this kind represents" - } - }, - "required": [ - "id", - "globs" - ], - "additionalProperties": false - }, - "description": "New Metadata Types to recognize" - }, - "events": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Events this plugin listens to" - }, - "menus": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "label": { - "type": "string" - }, - "command": { - "type": "string" - } - }, - "required": [ - "id", - "label" - ], - "additionalProperties": false - } - }, - "description": "UI Menu contributions" - }, - "themes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "label": { - "type": "string" - }, - "path": { - "type": "string" - } - }, - "required": [ - "id", - "label", - "path" - ], - "additionalProperties": false - }, - "description": "Theme contributions" - }, - "translations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "locale": { - "type": "string" - }, - "path": { - "type": "string" - } - }, - "required": [ - "locale", - "path" - ], - "additionalProperties": false - }, - "description": "Translation resources" - }, - "actions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Unique action name" - }, - "label": { - "type": "string" - }, - "description": { - "type": "string" - }, - "input": { - "description": "Input validation schema" - }, - "output": { - "description": "Output schema" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Exposed server actions" - }, - "drivers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Driver unique identifier (e.g. \"postgres\", \"mongo\")" - }, - "label": { - "type": "string", - "description": "Human readable name" - }, - "description": { - "type": "string" - } - }, - "required": [ - "id", - "label" - ], - "additionalProperties": false - }, - "description": "Driver contributions" - }, - "fieldTypes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Unique field type name (e.g. \"vector\")" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string" - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false - }, - "description": "Field Type contributions" - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Function name (e.g. \"distance\")" - }, - "description": { - "type": "string" - }, - "args": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Argument types" - }, - "returnType": { - "type": "string" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Query Function contributions" - } - }, - "additionalProperties": false, - "description": "Platform contributions" - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Target Object Name" - }, - "records": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - }, - "description": "List of records to insert" - }, - "mode": { - "type": "string", - "enum": [ - "upsert", - "insert", - "ignore" - ], - "default": "upsert", - "description": "Seeding mode" - } - }, - "required": [ - "object", - "records" - ], - "additionalProperties": false - }, - "description": "Initial seed data" - }, - "capabilities": { - "type": "object", - "properties": { - "implements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "protocol": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+protocol\\.[a-z][a-z0-9._]*\\.v\\d+$", - "description": "Unique protocol identifier (e.g., com.objectstack.protocol.storage.v1)" - }, - "label": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "specification": { - "type": "string", - "description": "URL or path to protocol specification" - }, - "description": { - "type": "string" - } - }, - "required": [ - "id", - "label", - "version" - ], - "additionalProperties": false - }, - "conformance": { - "type": "string", - "enum": [ - "full", - "partial", - "experimental", - "deprecated" - ], - "description": "Level of protocol conformance", - "default": "full" - }, - "implementedFeatures": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of implemented feature names" - }, - "features": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Feature identifier within the protocol" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - }, - "sinceVersion": { - "type": "string", - "description": "Version when this feature was added" - }, - "deprecatedSince": { - "type": "string", - "description": "Version when deprecated" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "certified": { - "type": "boolean", - "default": false, - "description": "Has passed official conformance tests" - }, - "certificationDate": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "protocol" - ], - "additionalProperties": false - }, - "description": "List of protocols this plugin conforms to" - }, - "provides": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+interface\\.[a-z][a-z0-9._]+$", - "description": "Unique interface identifier" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "methods": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Method name" - }, - "description": { - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "description": "Type notation (e.g., string, number, User)" - }, - "required": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "returnType": { - "type": "string", - "description": "Return value type" - }, - "async": { - "type": "boolean", - "default": false, - "description": "Whether method returns a Promise" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "events": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Event name" - }, - "description": { - "type": "string" - }, - "payload": { - "type": "string", - "description": "Event payload type" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "stability": { - "type": "string", - "enum": [ - "stable", - "beta", - "alpha", - "experimental" - ], - "default": "stable" - } - }, - "required": [ - "id", - "name", - "version", - "methods" - ], - "additionalProperties": false - }, - "description": "Services/APIs this plugin offers to others" - }, - "requires": { - "type": "array", - "items": { - "type": "object", - "properties": { - "pluginId": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+[a-z][a-z0-9-]+$", - "description": "Required plugin identifier" - }, - "version": { - "type": "string", - "description": "Semantic version constraint" - }, - "optional": { - "type": "boolean", - "default": false - }, - "reason": { - "type": "string" - }, - "requiredCapabilities": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Protocol IDs the dependency must support" - } - }, - "required": [ - "pluginId", - "version" - ], - "additionalProperties": false - }, - "description": "Required plugins and their capabilities" - }, - "extensionPoints": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+extension\\.[a-z][a-z0-9._]+$", - "description": "Unique extension point identifier" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "action", - "hook", - "widget", - "provider", - "transformer", - "validator", - "decorator" - ] - }, - "contract": { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "Input type/schema" - }, - "output": { - "type": "string", - "description": "Output type/schema" - }, - "signature": { - "type": "string", - "description": "Function signature if applicable" - } - }, - "additionalProperties": false - }, - "cardinality": { - "type": "string", - "enum": [ - "single", - "multiple" - ], - "default": "multiple", - "description": "Whether multiple extensions can register to this point" - } - }, - "required": [ - "id", - "name", - "type" - ], - "additionalProperties": false - }, - "description": "Points where other plugins can extend this plugin" - }, - "extensions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "targetPluginId": { - "type": "string", - "description": "Plugin ID being extended" - }, - "extensionPointId": { - "type": "string", - "description": "Extension point identifier" - }, - "implementation": { - "type": "string", - "description": "Path to implementation module" - }, - "priority": { - "type": "integer", - "default": 100, - "description": "Registration priority (lower = higher priority)" - } - }, - "required": [ - "targetPluginId", - "extensionPointId", - "implementation" - ], - "additionalProperties": false - }, - "description": "Extensions contributed to other plugins" - } - }, - "additionalProperties": false, - "description": "Plugin capability declarations for interoperability" - }, - "extensions": { - "type": "object", - "additionalProperties": {}, - "description": "Extension points and contributions" - } - }, - "required": [ - "id", - "version", - "type", - "name" - ], - "additionalProperties": false, - "description": "The compiled System Manifest" - }, - "manifestUrl": { - "type": "string", - "format": "uri", - "description": "Presigned download URL" - }, - "buildId": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "duration": { - "type": "number", - "description": "Compilation time in ms" - }, - "conflicts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "enum": [ - "object", - "field", - "api", - "ui" - ], - "description": "Type of colliding resource" - }, - "resourceId": { - "type": "string", - "description": "ID of the resource" - }, - "sources": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of plugin IDs defining this resource" - }, - "resolution": { - "type": "string", - "description": "How it was resolved (e.g. \"com.example.erp won\")" - }, - "severity": { - "type": "string", - "enum": [ - "info", - "warning", - "error" - ], - "description": "Severity of the conflict" - } - }, - "required": [ - "resourceType", - "resourceId", - "sources", - "resolution", - "severity" - ], - "additionalProperties": false - } - }, - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "success", - "buildId", - "timestamp", - "duration" - ], - "additionalProperties": false - } + "ComposerResponse": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/ConflictReport.json b/packages/spec/json-schema/hub/ConflictReport.json index c0f5536d1..41344241f 100644 --- a/packages/spec/json-schema/hub/ConflictReport.json +++ b/packages/spec/json-schema/hub/ConflictReport.json @@ -1,53 +1,7 @@ { "$ref": "#/definitions/ConflictReport", "definitions": { - "ConflictReport": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "enum": [ - "object", - "field", - "api", - "ui" - ], - "description": "Type of colliding resource" - }, - "resourceId": { - "type": "string", - "description": "ID of the resource" - }, - "sources": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of plugin IDs defining this resource" - }, - "resolution": { - "type": "string", - "description": "How it was resolved (e.g. \"com.example.erp won\")" - }, - "severity": { - "type": "string", - "enum": [ - "info", - "warning", - "error" - ], - "description": "Severity of the conflict" - } - }, - "required": [ - "resourceType", - "resourceId", - "sources", - "resolution", - "severity" - ], - "additionalProperties": false - } + "ConflictReport": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/DatabaseLevelIsolationStrategy.json b/packages/spec/json-schema/hub/DatabaseLevelIsolationStrategy.json index c10de7e89..77290f7db 100644 --- a/packages/spec/json-schema/hub/DatabaseLevelIsolationStrategy.json +++ b/packages/spec/json-schema/hub/DatabaseLevelIsolationStrategy.json @@ -1,139 +1,7 @@ { "$ref": "#/definitions/DatabaseLevelIsolationStrategy", "definitions": { - "DatabaseLevelIsolationStrategy": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "const": "isolated_db", - "description": "Database-level isolation strategy" - }, - "database": { - "type": "object", - "properties": { - "namingPattern": { - "type": "string", - "default": "tenant_{tenant_id}", - "description": "Database naming pattern" - }, - "serverStrategy": { - "type": "string", - "enum": [ - "shared", - "sharded", - "dedicated" - ], - "default": "shared", - "description": "Server assignment strategy" - }, - "separateCredentials": { - "type": "boolean", - "default": true, - "description": "Separate credentials per tenant" - }, - "autoCreateDatabase": { - "type": "boolean", - "default": true, - "description": "Auto-create database" - } - }, - "additionalProperties": false, - "description": "Database configuration" - }, - "connectionPool": { - "type": "object", - "properties": { - "poolSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10, - "description": "Connection pool size" - }, - "maxActivePools": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100, - "description": "Max active pools" - }, - "idleTimeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 300, - "description": "Idle pool timeout" - }, - "usePooler": { - "type": "boolean", - "default": true, - "description": "Use connection pooler" - } - }, - "additionalProperties": false, - "description": "Connection pool configuration" - }, - "backup": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "individual", - "consolidated", - "on_demand" - ], - "default": "individual", - "description": "Backup strategy" - }, - "frequencyHours": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 24, - "description": "Backup frequency" - }, - "retentionDays": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30, - "description": "Backup retention days" - } - }, - "additionalProperties": false, - "description": "Backup configuration" - }, - "encryption": { - "type": "object", - "properties": { - "perTenantKeys": { - "type": "boolean", - "default": false, - "description": "Per-tenant encryption keys" - }, - "algorithm": { - "type": "string", - "default": "AES-256-GCM", - "description": "Encryption algorithm" - }, - "keyManagement": { - "type": "string", - "enum": [ - "aws_kms", - "azure_key_vault", - "gcp_kms", - "hashicorp_vault", - "custom" - ], - "description": "Key management service" - } - }, - "additionalProperties": false, - "description": "Encryption configuration" - } - }, - "required": [ - "strategy" - ], - "additionalProperties": false - } + "DatabaseLevelIsolationStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/DependencyRequirement.json b/packages/spec/json-schema/hub/DependencyRequirement.json index 7c3bb1ed1..4f666ebd0 100644 --- a/packages/spec/json-schema/hub/DependencyRequirement.json +++ b/packages/spec/json-schema/hub/DependencyRequirement.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/DependencyRequirement", "definitions": { - "DependencyRequirement": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Plugin ID (e.g. \"com.example.crm\")" - }, - "version": { - "type": "string", - "default": "latest", - "description": "SemVer range or \"latest\"" - }, - "configuration": { - "type": "object", - "additionalProperties": {}, - "description": "Configuration overrides" - }, - "features": { - "type": "object", - "additionalProperties": { - "type": "boolean" - }, - "description": "Feature toggles" - } - }, - "required": [ - "id" - ], - "additionalProperties": false - } + "DependencyRequirement": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/DeploymentTarget.json b/packages/spec/json-schema/hub/DeploymentTarget.json index 5bdc70e39..9aa78a463 100644 --- a/packages/spec/json-schema/hub/DeploymentTarget.json +++ b/packages/spec/json-schema/hub/DeploymentTarget.json @@ -1,38 +1,7 @@ { "$ref": "#/definitions/DeploymentTarget", "definitions": { - "DeploymentTarget": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "vercel", - "docker", - "kubernetes" - ] - }, - "region": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Public Access URL" - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Runtime Environment Variables" - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - } + "DeploymentTarget": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/Feature.json b/packages/spec/json-schema/hub/Feature.json index 78a946a82..e18378f09 100644 --- a/packages/spec/json-schema/hub/Feature.json +++ b/packages/spec/json-schema/hub/Feature.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/Feature", "definitions": { - "Feature": { - "type": "object", - "properties": { - "code": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_.]*$", - "description": "Feature code (e.g. core.api_access)" - }, - "label": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "boolean", - "counter", - "gauge" - ], - "default": "boolean" - }, - "unit": { - "type": "string", - "enum": [ - "count", - "bytes", - "seconds", - "percent" - ] - }, - "requires": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "code", - "label" - ], - "additionalProperties": false - } + "Feature": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/HubSpace.json b/packages/spec/json-schema/hub/HubSpace.json index d843c9527..05ff0d6a4 100644 --- a/packages/spec/json-schema/hub/HubSpace.json +++ b/packages/spec/json-schema/hub/HubSpace.json @@ -1,279 +1,7 @@ { "$ref": "#/definitions/HubSpace", "definitions": { - "HubSpace": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "name": { - "type": "string" - }, - "slug": { - "type": "string", - "description": "URL friendly identifier" - }, - "ownerId": { - "type": "string" - }, - "runtime": { - "type": "object", - "properties": { - "isolation": { - "type": "string", - "enum": [ - "shared_schema", - "isolated_schema", - "isolated_db" - ], - "description": "Data isolation strategy" - }, - "quotas": { - "type": "object", - "properties": { - "maxUsers": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum number of users" - }, - "maxStorage": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum storage in bytes" - }, - "apiRateLimit": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "API requests per minute" - } - }, - "additionalProperties": false, - "description": "Resource quotas" - } - }, - "required": [ - "isolation" - ], - "additionalProperties": false, - "description": "Runtime instance configuration" - }, - "bom": { - "type": "object", - "properties": { - "tenantId": { - "type": "string", - "description": "Target Tenant ID" - }, - "dependencies": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Plugin ID (e.g. \"com.example.crm\")" - }, - "version": { - "type": "string", - "default": "latest", - "description": "SemVer range or \"latest\"" - }, - "configuration": { - "type": "object", - "additionalProperties": {}, - "description": "Configuration overrides" - }, - "features": { - "type": "object", - "additionalProperties": { - "type": "boolean" - }, - "description": "Feature toggles" - } - }, - "required": [ - "id" - ], - "additionalProperties": false - }, - "description": "Installed packages" - }, - "environment": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "resolutionStrategy": { - "type": "string", - "enum": [ - "strict", - "override", - "merge" - ], - "default": "override", - "description": "Conflict resolution strategy (strict=fail, override=last-wins, merge=deep-merge)" - } - }, - "required": [ - "tenantId", - "dependencies" - ], - "additionalProperties": false - }, - "lastBuild": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "manifestUrl": { - "type": "string", - "format": "uri" - }, - "status": { - "type": "string", - "enum": [ - "pending", - "success", - "failed" - ] - } - }, - "required": [ - "id", - "timestamp", - "status" - ], - "additionalProperties": false - }, - "subscription": { - "type": "object", - "properties": { - "planId": { - "type": "string", - "description": "Reference to Plan Code" - }, - "status": { - "type": "string", - "enum": [ - "active", - "past_due", - "canceled", - "trialing", - "incomplete" - ] - }, - "currentPeriodEnd": { - "type": "string", - "format": "date-time" - }, - "stripeCustomerId": { - "type": "string" - }, - "stripeSubscriptionId": { - "type": "string" - }, - "addons": { - "type": "array", - "items": { - "type": "object", - "properties": { - "pluginId": { - "type": "string", - "description": "Marketplace Plugin ID (NPM package name)" - }, - "quantity": { - "type": "number", - "default": 1 - }, - "status": { - "type": "string", - "enum": [ - "active", - "past_due", - "canceled", - "trialing", - "incomplete" - ], - "default": "active" - } - }, - "required": [ - "pluginId" - ], - "additionalProperties": false - } - }, - "usage": { - "type": "object", - "additionalProperties": { - "type": "number" - } - } - }, - "required": [ - "planId", - "status" - ], - "additionalProperties": false - }, - "deployment": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "vercel", - "docker", - "kubernetes" - ] - }, - "region": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Public Access URL" - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Runtime Environment Variables" - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - "createdAt": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "slug", - "ownerId", - "bom", - "createdAt", - "updatedAt" - ], - "additionalProperties": false - } + "HubSpace": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/LevelIsolationStrategySchema.json b/packages/spec/json-schema/hub/LevelIsolationStrategySchema.json index 956cd8b0e..3ef00f736 100644 --- a/packages/spec/json-schema/hub/LevelIsolationStrategySchema.json +++ b/packages/spec/json-schema/hub/LevelIsolationStrategySchema.json @@ -1,93 +1,7 @@ { "$ref": "#/definitions/LevelIsolationStrategySchema", "definitions": { - "LevelIsolationStrategySchema": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "const": "isolated_schema", - "description": "Schema-level isolation strategy" - }, - "schema": { - "type": "object", - "properties": { - "namingPattern": { - "type": "string", - "default": "tenant_{tenant_id}", - "description": "Schema naming pattern" - }, - "includePublicSchema": { - "type": "boolean", - "default": true, - "description": "Include public schema" - }, - "sharedSchema": { - "type": "string", - "default": "public", - "description": "Schema for shared resources" - }, - "autoCreateSchema": { - "type": "boolean", - "default": true, - "description": "Auto-create schema" - } - }, - "additionalProperties": false, - "description": "Schema configuration" - }, - "migrations": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "parallel", - "sequential", - "on_demand" - ], - "default": "parallel", - "description": "Migration strategy" - }, - "maxConcurrent": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10, - "description": "Max concurrent migrations" - }, - "rollbackOnError": { - "type": "boolean", - "default": true, - "description": "Rollback on error" - } - }, - "additionalProperties": false, - "description": "Migration configuration" - }, - "performance": { - "type": "object", - "properties": { - "poolPerSchema": { - "type": "boolean", - "default": false, - "description": "Separate pool per schema" - }, - "schemaCacheTTL": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 3600, - "description": "Schema cache TTL" - } - }, - "additionalProperties": false, - "description": "Performance settings" - } - }, - "required": [ - "strategy" - ], - "additionalProperties": false - } + "LevelIsolationStrategySchema": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/License.json b/packages/spec/json-schema/hub/License.json index 5a1f838b6..315632b81 100644 --- a/packages/spec/json-schema/hub/License.json +++ b/packages/spec/json-schema/hub/License.json @@ -1,65 +1,7 @@ { "$ref": "#/definitions/License", "definitions": { - "License": { - "type": "object", - "properties": { - "spaceId": { - "type": "string", - "description": "Target Space ID" - }, - "planCode": { - "type": "string" - }, - "issuedAt": { - "type": "string", - "format": "date-time" - }, - "expiresAt": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string", - "enum": [ - "active", - "expired", - "suspended", - "trial" - ] - }, - "customFeatures": { - "type": "array", - "items": { - "type": "string" - } - }, - "customLimits": { - "type": "object", - "additionalProperties": { - "type": "number" - } - }, - "plugins": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of enabled plugin package IDs" - }, - "signature": { - "type": "string", - "description": "Cryptographic signature of the license" - } - }, - "required": [ - "spaceId", - "planCode", - "issuedAt", - "status" - ], - "additionalProperties": false - } + "License": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/MarketplacePlugin.json b/packages/spec/json-schema/hub/MarketplacePlugin.json index 6638a7b61..0387bda26 100644 --- a/packages/spec/json-schema/hub/MarketplacePlugin.json +++ b/packages/spec/json-schema/hub/MarketplacePlugin.json @@ -1,141 +1,7 @@ { "$ref": "#/definitions/MarketplacePlugin", "definitions": { - "MarketplacePlugin": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "label": { - "type": "string" - }, - "description": { - "type": "string" - }, - "readme": { - "type": "string" - }, - "version": { - "type": "string" - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "email": { - "type": "string", - "format": "email" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "category": { - "type": "string", - "enum": [ - "app", - "integration", - "theme", - "utility", - "driver" - ] - }, - "icon": { - "type": "string", - "format": "uri" - }, - "screenshots": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - } - }, - "homepage": { - "type": "string", - "format": "uri" - }, - "repository": { - "type": "string", - "format": "uri" - }, - "bugs": { - "type": "string", - "format": "uri" - }, - "downloads": { - "type": "integer" - }, - "rating": { - "type": "number", - "minimum": 0, - "maximum": 5 - }, - "pricing": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "free", - "one_time", - "recurring" - ] - }, - "currency": { - "type": "string", - "default": "USD" - }, - "amount": { - "type": "number", - "minimum": 0 - }, - "interval": { - "type": "string", - "enum": [ - "month", - "year" - ], - "description": "Required if type is recurring" - }, - "trialDays": { - "type": "integer" - } - }, - "required": [ - "type", - "amount" - ], - "additionalProperties": false - }, - "verified": { - "type": "boolean", - "default": false, - "description": "Is verified maintaned by ObjectStack" - } - }, - "required": [ - "id", - "label", - "version" - ], - "additionalProperties": false - } + "MarketplacePlugin": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/MetricType.json b/packages/spec/json-schema/hub/MetricType.json index 07d167572..97809a9bb 100644 --- a/packages/spec/json-schema/hub/MetricType.json +++ b/packages/spec/json-schema/hub/MetricType.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/MetricType", "definitions": { - "MetricType": { - "type": "string", - "enum": [ - "boolean", - "counter", - "gauge" - ] - } + "MetricType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/Plan.json b/packages/spec/json-schema/hub/Plan.json index 00013507d..97edf86df 100644 --- a/packages/spec/json-schema/hub/Plan.json +++ b/packages/spec/json-schema/hub/Plan.json @@ -1,53 +1,7 @@ { "$ref": "#/definitions/Plan", "definitions": { - "Plan": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Plan code (e.g. pro_v1)" - }, - "label": { - "type": "string" - }, - "active": { - "type": "boolean", - "default": true - }, - "features": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of enabled boolean features" - }, - "limits": { - "type": "object", - "additionalProperties": { - "type": "number" - }, - "description": "Map of metric codes to limit values (e.g. { storage_gb: 10 })" - }, - "currency": { - "type": "string", - "default": "USD" - }, - "priceMonthly": { - "type": "number" - }, - "priceYearly": { - "type": "number" - } - }, - "required": [ - "code", - "label", - "features", - "limits" - ], - "additionalProperties": false - } + "Plan": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/PluginAuthor.json b/packages/spec/json-schema/hub/PluginAuthor.json index 054b99a08..c7bca9196 100644 --- a/packages/spec/json-schema/hub/PluginAuthor.json +++ b/packages/spec/json-schema/hub/PluginAuthor.json @@ -1,26 +1,7 @@ { "$ref": "#/definitions/PluginAuthor", "definitions": { - "PluginAuthor": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "email": { - "type": "string", - "format": "email" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "PluginAuthor": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/PluginInstallConfig.json b/packages/spec/json-schema/hub/PluginInstallConfig.json index a86ce6e6a..15d1987dc 100644 --- a/packages/spec/json-schema/hub/PluginInstallConfig.json +++ b/packages/spec/json-schema/hub/PluginInstallConfig.json @@ -1,53 +1,7 @@ { "$ref": "#/definitions/PluginInstallConfig", "definitions": { - "PluginInstallConfig": { - "type": "object", - "properties": { - "pluginId": { - "type": "string" - }, - "version": { - "type": "string", - "description": "Defaults to latest" - }, - "config": { - "type": "object", - "additionalProperties": {} - }, - "autoUpdate": { - "type": "boolean", - "default": false - }, - "options": { - "type": "object", - "properties": { - "skipDependencies": { - "type": "boolean", - "default": false - }, - "force": { - "type": "boolean", - "default": false - }, - "target": { - "type": "string", - "enum": [ - "system", - "space", - "user" - ], - "default": "space" - } - }, - "additionalProperties": false - } - }, - "required": [ - "pluginId" - ], - "additionalProperties": false - } + "PluginInstallConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/PluginPricing.json b/packages/spec/json-schema/hub/PluginPricing.json index 8006e8e15..af22b24cc 100644 --- a/packages/spec/json-schema/hub/PluginPricing.json +++ b/packages/spec/json-schema/hub/PluginPricing.json @@ -1,43 +1,7 @@ { "$ref": "#/definitions/PluginPricing", "definitions": { - "PluginPricing": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "free", - "one_time", - "recurring" - ] - }, - "currency": { - "type": "string", - "default": "USD" - }, - "amount": { - "type": "number", - "minimum": 0 - }, - "interval": { - "type": "string", - "enum": [ - "month", - "year" - ], - "description": "Required if type is recurring" - }, - "trialDays": { - "type": "integer" - } - }, - "required": [ - "type", - "amount" - ], - "additionalProperties": false - } + "PluginPricing": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/PluginQualityMetrics.json b/packages/spec/json-schema/hub/PluginQualityMetrics.json index 7ba64ecaf..217be5e87 100644 --- a/packages/spec/json-schema/hub/PluginQualityMetrics.json +++ b/packages/spec/json-schema/hub/PluginQualityMetrics.json @@ -1,101 +1,7 @@ { "$ref": "#/definitions/PluginQualityMetrics", "definitions": { - "PluginQualityMetrics": { - "type": "object", - "properties": { - "testCoverage": { - "type": "number", - "minimum": 0, - "maximum": 100 - }, - "documentationScore": { - "type": "number", - "minimum": 0, - "maximum": 100 - }, - "codeQuality": { - "type": "number", - "minimum": 0, - "maximum": 100 - }, - "securityScan": { - "type": "object", - "properties": { - "lastScanDate": { - "type": "string", - "format": "date-time" - }, - "vulnerabilities": { - "type": "object", - "properties": { - "critical": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "high": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "medium": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "low": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - "additionalProperties": false - }, - "passed": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false - }, - "conformanceTests": { - "type": "array", - "items": { - "type": "object", - "properties": { - "protocolId": { - "type": "string", - "description": "Protocol being tested" - }, - "passed": { - "type": "boolean" - }, - "totalTests": { - "type": "integer", - "minimum": 0 - }, - "passedTests": { - "type": "integer", - "minimum": 0 - }, - "lastRunDate": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "protocolId", - "passed", - "totalTests", - "passedTests" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false - } + "PluginQualityMetrics": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/PluginRegistryEntry.json b/packages/spec/json-schema/hub/PluginRegistryEntry.json index 23917ce20..8f5ffd175 100644 --- a/packages/spec/json-schema/hub/PluginRegistryEntry.json +++ b/packages/spec/json-schema/hub/PluginRegistryEntry.json @@ -1,833 +1,7 @@ { "$ref": "#/definitions/PluginRegistryEntry", "definitions": { - "PluginRegistryEntry": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+[a-z][a-z0-9-]+$", - "description": "Plugin identifier (reverse domain notation)" - }, - "version": { - "type": "string", - "pattern": "^\\d+\\.\\d+\\.\\d+$" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "readme": { - "type": "string" - }, - "category": { - "type": "string", - "enum": [ - "data", - "integration", - "ui", - "analytics", - "security", - "automation", - "ai", - "utility", - "driver", - "gateway", - "adapter" - ] - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "vendor": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)+$", - "description": "Vendor identifier (reverse domain)" - }, - "name": { - "type": "string" - }, - "website": { - "type": "string", - "format": "uri" - }, - "email": { - "type": "string", - "format": "email" - }, - "verified": { - "type": "boolean", - "default": false, - "description": "Whether vendor is verified by ObjectStack" - }, - "trustLevel": { - "type": "string", - "enum": [ - "official", - "verified", - "community", - "unverified" - ], - "default": "unverified" - } - }, - "required": [ - "id", - "name" - ], - "additionalProperties": false - }, - "capabilities": { - "type": "object", - "properties": { - "implements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "protocol": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+protocol\\.[a-z][a-z0-9._]*\\.v\\d+$", - "description": "Unique protocol identifier (e.g., com.objectstack.protocol.storage.v1)" - }, - "label": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "specification": { - "type": "string", - "description": "URL or path to protocol specification" - }, - "description": { - "type": "string" - } - }, - "required": [ - "id", - "label", - "version" - ], - "additionalProperties": false - }, - "conformance": { - "type": "string", - "enum": [ - "full", - "partial", - "experimental", - "deprecated" - ], - "description": "Level of protocol conformance", - "default": "full" - }, - "implementedFeatures": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of implemented feature names" - }, - "features": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Feature identifier within the protocol" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - }, - "sinceVersion": { - "type": "string", - "description": "Version when this feature was added" - }, - "deprecatedSince": { - "type": "string", - "description": "Version when deprecated" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "certified": { - "type": "boolean", - "default": false, - "description": "Has passed official conformance tests" - }, - "certificationDate": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "protocol" - ], - "additionalProperties": false - }, - "description": "List of protocols this plugin conforms to" - }, - "provides": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+interface\\.[a-z][a-z0-9._]+$", - "description": "Unique interface identifier" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "methods": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Method name" - }, - "description": { - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "description": "Type notation (e.g., string, number, User)" - }, - "required": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "returnType": { - "type": "string", - "description": "Return value type" - }, - "async": { - "type": "boolean", - "default": false, - "description": "Whether method returns a Promise" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "events": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Event name" - }, - "description": { - "type": "string" - }, - "payload": { - "type": "string", - "description": "Event payload type" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "stability": { - "type": "string", - "enum": [ - "stable", - "beta", - "alpha", - "experimental" - ], - "default": "stable" - } - }, - "required": [ - "id", - "name", - "version", - "methods" - ], - "additionalProperties": false - }, - "description": "Services/APIs this plugin offers to others" - }, - "requires": { - "type": "array", - "items": { - "type": "object", - "properties": { - "pluginId": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+[a-z][a-z0-9-]+$", - "description": "Required plugin identifier" - }, - "version": { - "type": "string", - "description": "Semantic version constraint" - }, - "optional": { - "type": "boolean", - "default": false - }, - "reason": { - "type": "string" - }, - "requiredCapabilities": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Protocol IDs the dependency must support" - } - }, - "required": [ - "pluginId", - "version" - ], - "additionalProperties": false - }, - "description": "Required plugins and their capabilities" - }, - "extensionPoints": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+extension\\.[a-z][a-z0-9._]+$", - "description": "Unique extension point identifier" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "action", - "hook", - "widget", - "provider", - "transformer", - "validator", - "decorator" - ] - }, - "contract": { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "Input type/schema" - }, - "output": { - "type": "string", - "description": "Output type/schema" - }, - "signature": { - "type": "string", - "description": "Function signature if applicable" - } - }, - "additionalProperties": false - }, - "cardinality": { - "type": "string", - "enum": [ - "single", - "multiple" - ], - "default": "multiple", - "description": "Whether multiple extensions can register to this point" - } - }, - "required": [ - "id", - "name", - "type" - ], - "additionalProperties": false - }, - "description": "Points where other plugins can extend this plugin" - }, - "extensions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "targetPluginId": { - "type": "string", - "description": "Plugin ID being extended" - }, - "extensionPointId": { - "type": "string", - "description": "Extension point identifier" - }, - "implementation": { - "type": "string", - "description": "Path to implementation module" - }, - "priority": { - "type": "integer", - "default": 100, - "description": "Registration priority (lower = higher priority)" - } - }, - "required": [ - "targetPluginId", - "extensionPointId", - "implementation" - ], - "additionalProperties": false - }, - "description": "Extensions contributed to other plugins" - } - }, - "additionalProperties": false - }, - "compatibility": { - "type": "object", - "properties": { - "minObjectStackVersion": { - "type": "string" - }, - "maxObjectStackVersion": { - "type": "string" - }, - "nodeVersion": { - "type": "string" - }, - "platforms": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "linux", - "darwin", - "win32", - "browser" - ] - } - } - }, - "additionalProperties": false - }, - "links": { - "type": "object", - "properties": { - "homepage": { - "type": "string", - "format": "uri" - }, - "repository": { - "type": "string", - "format": "uri" - }, - "documentation": { - "type": "string", - "format": "uri" - }, - "bugs": { - "type": "string", - "format": "uri" - }, - "changelog": { - "type": "string", - "format": "uri" - } - }, - "additionalProperties": false - }, - "media": { - "type": "object", - "properties": { - "icon": { - "type": "string", - "format": "uri" - }, - "logo": { - "type": "string", - "format": "uri" - }, - "screenshots": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - } - }, - "video": { - "type": "string", - "format": "uri" - } - }, - "additionalProperties": false - }, - "quality": { - "type": "object", - "properties": { - "testCoverage": { - "type": "number", - "minimum": 0, - "maximum": 100 - }, - "documentationScore": { - "type": "number", - "minimum": 0, - "maximum": 100 - }, - "codeQuality": { - "type": "number", - "minimum": 0, - "maximum": 100 - }, - "securityScan": { - "type": "object", - "properties": { - "lastScanDate": { - "type": "string", - "format": "date-time" - }, - "vulnerabilities": { - "type": "object", - "properties": { - "critical": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "high": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "medium": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "low": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - "additionalProperties": false - }, - "passed": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false - }, - "conformanceTests": { - "type": "array", - "items": { - "type": "object", - "properties": { - "protocolId": { - "type": "string", - "description": "Protocol being tested" - }, - "passed": { - "type": "boolean" - }, - "totalTests": { - "type": "integer", - "minimum": 0 - }, - "passedTests": { - "type": "integer", - "minimum": 0 - }, - "lastRunDate": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "protocolId", - "passed", - "totalTests", - "passedTests" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false - }, - "statistics": { - "type": "object", - "properties": { - "downloads": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "downloadsLastMonth": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "activeInstallations": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "ratings": { - "type": "object", - "properties": { - "average": { - "type": "number", - "minimum": 0, - "maximum": 5, - "default": 0 - }, - "count": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "distribution": { - "type": "object", - "properties": { - "1": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "2": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "3": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "4": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "5": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "stars": { - "type": "integer", - "minimum": 0 - }, - "dependents": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - "additionalProperties": false - }, - "license": { - "type": "string", - "description": "SPDX license identifier" - }, - "pricing": { - "type": "object", - "properties": { - "model": { - "type": "string", - "enum": [ - "free", - "freemium", - "paid", - "enterprise" - ] - }, - "price": { - "type": "number", - "minimum": 0 - }, - "currency": { - "type": "string", - "default": "USD" - }, - "billingPeriod": { - "type": "string", - "enum": [ - "one-time", - "monthly", - "yearly" - ] - } - }, - "required": [ - "model" - ], - "additionalProperties": false - }, - "publishedAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "deprecationMessage": { - "type": "string" - }, - "replacedBy": { - "type": "string", - "description": "Plugin ID that replaces this one" - }, - "flags": { - "type": "object", - "properties": { - "experimental": { - "type": "boolean", - "default": false - }, - "beta": { - "type": "boolean", - "default": false - }, - "featured": { - "type": "boolean", - "default": false - }, - "verified": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false - } - }, - "required": [ - "id", - "version", - "name", - "vendor" - ], - "additionalProperties": false - } + "PluginRegistryEntry": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/PluginSearchFilters.json b/packages/spec/json-schema/hub/PluginSearchFilters.json index dc3168ee4..2a064d10e 100644 --- a/packages/spec/json-schema/hub/PluginSearchFilters.json +++ b/packages/spec/json-schema/hub/PluginSearchFilters.json @@ -1,91 +1,7 @@ { "$ref": "#/definitions/PluginSearchFilters", "definitions": { - "PluginSearchFilters": { - "type": "object", - "properties": { - "query": { - "type": "string" - }, - "category": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "trustLevel": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "official", - "verified", - "community", - "unverified" - ] - } - }, - "implementsProtocols": { - "type": "array", - "items": { - "type": "string" - } - }, - "pricingModel": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "free", - "freemium", - "paid", - "enterprise" - ] - } - }, - "minRating": { - "type": "number", - "minimum": 0, - "maximum": 5 - }, - "sortBy": { - "type": "string", - "enum": [ - "relevance", - "downloads", - "rating", - "updated", - "name" - ] - }, - "sortOrder": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "desc" - }, - "page": { - "type": "integer", - "minimum": 1, - "default": 1 - }, - "limit": { - "type": "integer", - "minimum": 1, - "maximum": 100, - "default": 20 - } - }, - "additionalProperties": false - } + "PluginSearchFilters": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/PluginStatistics.json b/packages/spec/json-schema/hub/PluginStatistics.json index 48676226d..c806102cf 100644 --- a/packages/spec/json-schema/hub/PluginStatistics.json +++ b/packages/spec/json-schema/hub/PluginStatistics.json @@ -1,84 +1,7 @@ { "$ref": "#/definitions/PluginStatistics", "definitions": { - "PluginStatistics": { - "type": "object", - "properties": { - "downloads": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "downloadsLastMonth": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "activeInstallations": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "ratings": { - "type": "object", - "properties": { - "average": { - "type": "number", - "minimum": 0, - "maximum": 5, - "default": 0 - }, - "count": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "distribution": { - "type": "object", - "properties": { - "1": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "2": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "3": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "4": { - "type": "integer", - "minimum": 0, - "default": 0 - }, - "5": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "stars": { - "type": "integer", - "minimum": 0 - }, - "dependents": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - "additionalProperties": false - } + "PluginStatistics": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/PluginVendor.json b/packages/spec/json-schema/hub/PluginVendor.json index 14fa240a8..1258d6745 100644 --- a/packages/spec/json-schema/hub/PluginVendor.json +++ b/packages/spec/json-schema/hub/PluginVendor.json @@ -1,47 +1,7 @@ { "$ref": "#/definitions/PluginVendor", "definitions": { - "PluginVendor": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)+$", - "description": "Vendor identifier (reverse domain)" - }, - "name": { - "type": "string" - }, - "website": { - "type": "string", - "format": "uri" - }, - "email": { - "type": "string", - "format": "email" - }, - "verified": { - "type": "boolean", - "default": false, - "description": "Whether vendor is verified by ObjectStack" - }, - "trustLevel": { - "type": "string", - "enum": [ - "official", - "verified", - "community", - "unverified" - ], - "default": "unverified" - } - }, - "required": [ - "id", - "name" - ], - "additionalProperties": false - } + "PluginVendor": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/RowLevelIsolationStrategy.json b/packages/spec/json-schema/hub/RowLevelIsolationStrategy.json index b30ff6648..db9ff840c 100644 --- a/packages/spec/json-schema/hub/RowLevelIsolationStrategy.json +++ b/packages/spec/json-schema/hub/RowLevelIsolationStrategy.json @@ -1,74 +1,7 @@ { "$ref": "#/definitions/RowLevelIsolationStrategy", "definitions": { - "RowLevelIsolationStrategy": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "const": "shared_schema", - "description": "Row-level isolation strategy" - }, - "database": { - "type": "object", - "properties": { - "enableRLS": { - "type": "boolean", - "default": true, - "description": "Enable PostgreSQL Row-Level Security" - }, - "contextMethod": { - "type": "string", - "enum": [ - "session_variable", - "search_path", - "application_name" - ], - "default": "session_variable", - "description": "How to set tenant context" - }, - "contextVariable": { - "type": "string", - "default": "app.current_tenant", - "description": "Session variable name" - }, - "applicationValidation": { - "type": "boolean", - "default": true, - "description": "Application-level tenant validation" - } - }, - "additionalProperties": false, - "description": "Database configuration" - }, - "performance": { - "type": "object", - "properties": { - "usePartialIndexes": { - "type": "boolean", - "default": true, - "description": "Use partial indexes per tenant" - }, - "usePartitioning": { - "type": "boolean", - "default": false, - "description": "Use table partitioning by tenant_id" - }, - "poolSizePerTenant": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Connection pool size per tenant" - } - }, - "additionalProperties": false, - "description": "Performance settings" - } - }, - "required": [ - "strategy" - ], - "additionalProperties": false - } + "RowLevelIsolationStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/SpaceSubscription.json b/packages/spec/json-schema/hub/SpaceSubscription.json index 417d1bff0..14ede0184 100644 --- a/packages/spec/json-schema/hub/SpaceSubscription.json +++ b/packages/spec/json-schema/hub/SpaceSubscription.json @@ -1,77 +1,7 @@ { "$ref": "#/definitions/SpaceSubscription", "definitions": { - "SpaceSubscription": { - "type": "object", - "properties": { - "planId": { - "type": "string", - "description": "Reference to Plan Code" - }, - "status": { - "type": "string", - "enum": [ - "active", - "past_due", - "canceled", - "trialing", - "incomplete" - ] - }, - "currentPeriodEnd": { - "type": "string", - "format": "date-time" - }, - "stripeCustomerId": { - "type": "string" - }, - "stripeSubscriptionId": { - "type": "string" - }, - "addons": { - "type": "array", - "items": { - "type": "object", - "properties": { - "pluginId": { - "type": "string", - "description": "Marketplace Plugin ID (NPM package name)" - }, - "quantity": { - "type": "number", - "default": 1 - }, - "status": { - "type": "string", - "enum": [ - "active", - "past_due", - "canceled", - "trialing", - "incomplete" - ], - "default": "active" - } - }, - "required": [ - "pluginId" - ], - "additionalProperties": false - } - }, - "usage": { - "type": "object", - "additionalProperties": { - "type": "number" - } - } - }, - "required": [ - "planId", - "status" - ], - "additionalProperties": false - } + "SpaceSubscription": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/SubscriptionStatus.json b/packages/spec/json-schema/hub/SubscriptionStatus.json index 8ffeb3719..898a11a38 100644 --- a/packages/spec/json-schema/hub/SubscriptionStatus.json +++ b/packages/spec/json-schema/hub/SubscriptionStatus.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/SubscriptionStatus", "definitions": { - "SubscriptionStatus": { - "type": "string", - "enum": [ - "active", - "past_due", - "canceled", - "trialing", - "incomplete" - ] - } + "SubscriptionStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/Tenant.json b/packages/spec/json-schema/hub/Tenant.json index 600eec0fe..8ab3cdcba 100644 --- a/packages/spec/json-schema/hub/Tenant.json +++ b/packages/spec/json-schema/hub/Tenant.json @@ -1,59 +1,7 @@ { "$ref": "#/definitions/Tenant", "definitions": { - "Tenant": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique tenant identifier" - }, - "name": { - "type": "string", - "description": "Tenant display name" - }, - "isolationLevel": { - "type": "string", - "enum": [ - "shared_schema", - "isolated_schema", - "isolated_db" - ] - }, - "customizations": { - "type": "object", - "additionalProperties": {}, - "description": "Custom configuration values" - }, - "quotas": { - "type": "object", - "properties": { - "maxUsers": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum number of users" - }, - "maxStorage": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum storage in bytes" - }, - "apiRateLimit": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "API requests per minute" - } - }, - "additionalProperties": false - } - }, - "required": [ - "id", - "name", - "isolationLevel" - ], - "additionalProperties": false - } + "Tenant": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/TenantIsolationConfig.json b/packages/spec/json-schema/hub/TenantIsolationConfig.json index 3769598ef..5cab0a17d 100644 --- a/packages/spec/json-schema/hub/TenantIsolationConfig.json +++ b/packages/spec/json-schema/hub/TenantIsolationConfig.json @@ -1,298 +1,7 @@ { "$ref": "#/definitions/TenantIsolationConfig", "definitions": { - "TenantIsolationConfig": { - "anyOf": [ - { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "const": "shared_schema", - "description": "Row-level isolation strategy" - }, - "database": { - "type": "object", - "properties": { - "enableRLS": { - "type": "boolean", - "default": true, - "description": "Enable PostgreSQL Row-Level Security" - }, - "contextMethod": { - "type": "string", - "enum": [ - "session_variable", - "search_path", - "application_name" - ], - "default": "session_variable", - "description": "How to set tenant context" - }, - "contextVariable": { - "type": "string", - "default": "app.current_tenant", - "description": "Session variable name" - }, - "applicationValidation": { - "type": "boolean", - "default": true, - "description": "Application-level tenant validation" - } - }, - "additionalProperties": false, - "description": "Database configuration" - }, - "performance": { - "type": "object", - "properties": { - "usePartialIndexes": { - "type": "boolean", - "default": true, - "description": "Use partial indexes per tenant" - }, - "usePartitioning": { - "type": "boolean", - "default": false, - "description": "Use table partitioning by tenant_id" - }, - "poolSizePerTenant": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Connection pool size per tenant" - } - }, - "additionalProperties": false, - "description": "Performance settings" - } - }, - "required": [ - "strategy" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "const": "isolated_schema", - "description": "Schema-level isolation strategy" - }, - "schema": { - "type": "object", - "properties": { - "namingPattern": { - "type": "string", - "default": "tenant_{tenant_id}", - "description": "Schema naming pattern" - }, - "includePublicSchema": { - "type": "boolean", - "default": true, - "description": "Include public schema" - }, - "sharedSchema": { - "type": "string", - "default": "public", - "description": "Schema for shared resources" - }, - "autoCreateSchema": { - "type": "boolean", - "default": true, - "description": "Auto-create schema" - } - }, - "additionalProperties": false, - "description": "Schema configuration" - }, - "migrations": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "parallel", - "sequential", - "on_demand" - ], - "default": "parallel", - "description": "Migration strategy" - }, - "maxConcurrent": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10, - "description": "Max concurrent migrations" - }, - "rollbackOnError": { - "type": "boolean", - "default": true, - "description": "Rollback on error" - } - }, - "additionalProperties": false, - "description": "Migration configuration" - }, - "performance": { - "type": "object", - "properties": { - "poolPerSchema": { - "type": "boolean", - "default": false, - "description": "Separate pool per schema" - }, - "schemaCacheTTL": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 3600, - "description": "Schema cache TTL" - } - }, - "additionalProperties": false, - "description": "Performance settings" - } - }, - "required": [ - "strategy" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "const": "isolated_db", - "description": "Database-level isolation strategy" - }, - "database": { - "type": "object", - "properties": { - "namingPattern": { - "type": "string", - "default": "tenant_{tenant_id}", - "description": "Database naming pattern" - }, - "serverStrategy": { - "type": "string", - "enum": [ - "shared", - "sharded", - "dedicated" - ], - "default": "shared", - "description": "Server assignment strategy" - }, - "separateCredentials": { - "type": "boolean", - "default": true, - "description": "Separate credentials per tenant" - }, - "autoCreateDatabase": { - "type": "boolean", - "default": true, - "description": "Auto-create database" - } - }, - "additionalProperties": false, - "description": "Database configuration" - }, - "connectionPool": { - "type": "object", - "properties": { - "poolSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10, - "description": "Connection pool size" - }, - "maxActivePools": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100, - "description": "Max active pools" - }, - "idleTimeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 300, - "description": "Idle pool timeout" - }, - "usePooler": { - "type": "boolean", - "default": true, - "description": "Use connection pooler" - } - }, - "additionalProperties": false, - "description": "Connection pool configuration" - }, - "backup": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "individual", - "consolidated", - "on_demand" - ], - "default": "individual", - "description": "Backup strategy" - }, - "frequencyHours": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 24, - "description": "Backup frequency" - }, - "retentionDays": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30, - "description": "Backup retention days" - } - }, - "additionalProperties": false, - "description": "Backup configuration" - }, - "encryption": { - "type": "object", - "properties": { - "perTenantKeys": { - "type": "boolean", - "default": false, - "description": "Per-tenant encryption keys" - }, - "algorithm": { - "type": "string", - "default": "AES-256-GCM", - "description": "Encryption algorithm" - }, - "keyManagement": { - "type": "string", - "enum": [ - "aws_kms", - "azure_key_vault", - "gcp_kms", - "hashicorp_vault", - "custom" - ], - "description": "Key management service" - } - }, - "additionalProperties": false, - "description": "Encryption configuration" - } - }, - "required": [ - "strategy" - ], - "additionalProperties": false - } - ] - } + "TenantIsolationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/TenantIsolationLevel.json b/packages/spec/json-schema/hub/TenantIsolationLevel.json index efc5c2501..eaea14749 100644 --- a/packages/spec/json-schema/hub/TenantIsolationLevel.json +++ b/packages/spec/json-schema/hub/TenantIsolationLevel.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/TenantIsolationLevel", "definitions": { - "TenantIsolationLevel": { - "type": "string", - "enum": [ - "shared_schema", - "isolated_schema", - "isolated_db" - ] - } + "TenantIsolationLevel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/TenantQuota.json b/packages/spec/json-schema/hub/TenantQuota.json index d554d272b..fe2e974c7 100644 --- a/packages/spec/json-schema/hub/TenantQuota.json +++ b/packages/spec/json-schema/hub/TenantQuota.json @@ -1,27 +1,7 @@ { "$ref": "#/definitions/TenantQuota", "definitions": { - "TenantQuota": { - "type": "object", - "properties": { - "maxUsers": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum number of users" - }, - "maxStorage": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum storage in bytes" - }, - "apiRateLimit": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "API requests per minute" - } - }, - "additionalProperties": false - } + "TenantQuota": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/hub/TenantSecurityPolicy.json b/packages/spec/json-schema/hub/TenantSecurityPolicy.json index b1744f08b..d6b9cbb24 100644 --- a/packages/spec/json-schema/hub/TenantSecurityPolicy.json +++ b/packages/spec/json-schema/hub/TenantSecurityPolicy.json @@ -1,115 +1,7 @@ { "$ref": "#/definitions/TenantSecurityPolicy", "definitions": { - "TenantSecurityPolicy": { - "type": "object", - "properties": { - "encryption": { - "type": "object", - "properties": { - "atRest": { - "type": "boolean", - "default": true, - "description": "Require encryption at rest" - }, - "inTransit": { - "type": "boolean", - "default": true, - "description": "Require encryption in transit" - }, - "fieldLevel": { - "type": "boolean", - "default": false, - "description": "Require field-level encryption" - } - }, - "additionalProperties": false, - "description": "Encryption requirements" - }, - "accessControl": { - "type": "object", - "properties": { - "requireMFA": { - "type": "boolean", - "default": false, - "description": "Require MFA" - }, - "requireSSO": { - "type": "boolean", - "default": false, - "description": "Require SSO" - }, - "ipWhitelist": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed IP addresses" - }, - "sessionTimeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 3600, - "description": "Session timeout" - } - }, - "additionalProperties": false, - "description": "Access control requirements" - }, - "compliance": { - "type": "object", - "properties": { - "standards": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "sox", - "hipaa", - "gdpr", - "pci_dss", - "iso_27001", - "fedramp" - ] - }, - "description": "Compliance standards" - }, - "requireAuditLog": { - "type": "boolean", - "default": true, - "description": "Require audit logging" - }, - "auditRetentionDays": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 365, - "description": "Audit retention days" - }, - "dataResidency": { - "type": "object", - "properties": { - "region": { - "type": "string", - "description": "Required region (e.g., US, EU, APAC)" - }, - "excludeRegions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Prohibited regions" - } - }, - "additionalProperties": false, - "description": "Data residency requirements" - } - }, - "additionalProperties": false, - "description": "Compliance requirements" - } - }, - "additionalProperties": false - } + "TenantSecurityPolicy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/AckMode.json b/packages/spec/json-schema/integration/AckMode.json index 5328349c3..690cf9a5e 100644 --- a/packages/spec/json-schema/integration/AckMode.json +++ b/packages/spec/json-schema/integration/AckMode.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/AckMode", "definitions": { - "AckMode": { - "type": "string", - "enum": [ - "auto", - "manual", - "client" - ], - "description": "Message acknowledgment mode" - } + "AckMode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/ApiVersionConfig.json b/packages/spec/json-schema/integration/ApiVersionConfig.json index d73530305..6aa83d11b 100644 --- a/packages/spec/json-schema/integration/ApiVersionConfig.json +++ b/packages/spec/json-schema/integration/ApiVersionConfig.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/ApiVersionConfig", "definitions": { - "ApiVersionConfig": { - "type": "object", - "properties": { - "version": { - "type": "string", - "description": "API version (e.g., \"v2\", \"2023-10-01\")" - }, - "isDefault": { - "type": "boolean", - "default": false, - "description": "Is this the default version" - }, - "deprecationDate": { - "type": "string", - "description": "API version deprecation date (ISO 8601)" - }, - "sunsetDate": { - "type": "string", - "description": "API version sunset date (ISO 8601)" - } - }, - "required": [ - "version" - ], - "additionalProperties": false - } + "ApiVersionConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/Authentication.json b/packages/spec/json-schema/integration/Authentication.json index f2800b727..1832607c0 100644 --- a/packages/spec/json-schema/integration/Authentication.json +++ b/packages/spec/json-schema/integration/Authentication.json @@ -1,269 +1,7 @@ { "$ref": "#/definitions/Authentication", "definitions": { - "Authentication": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "oauth2", - "description": "Authentication type" - }, - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 authorization endpoint" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 token endpoint" - }, - "clientId": { - "type": "string", - "description": "OAuth2 client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth2 client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth2 scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth2 redirect URI" - }, - "refreshToken": { - "type": "string", - "description": "Refresh token for token renewal" - }, - "tokenExpiry": { - "type": "number", - "description": "Token expiry timestamp" - } - }, - "required": [ - "type", - "authorizationUrl", - "tokenUrl", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "api-key", - "description": "Authentication type" - }, - "key": { - "type": "string", - "description": "API key value" - }, - "headerName": { - "type": "string", - "default": "X-API-Key", - "description": "HTTP header name for API key" - }, - "paramName": { - "type": "string", - "description": "Query parameter name (alternative to header)" - } - }, - "required": [ - "type", - "key" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "basic", - "description": "Authentication type" - }, - "username": { - "type": "string", - "description": "Username" - }, - "password": { - "type": "string", - "description": "Password (typically from ENV)" - } - }, - "required": [ - "type", - "username", - "password" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "bearer", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Bearer token" - } - }, - "required": [ - "type", - "token" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "jwt", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Pre-generated JWT token" - }, - "secretKey": { - "type": "string", - "description": "Secret key for JWT signing" - }, - "algorithm": { - "type": "string", - "enum": [ - "HS256", - "HS384", - "HS512", - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512" - ], - "default": "HS256", - "description": "JWT signing algorithm" - }, - "issuer": { - "type": "string", - "description": "JWT issuer claim" - }, - "audience": { - "type": "string", - "description": "JWT audience claim" - }, - "subject": { - "type": "string", - "description": "JWT subject claim" - }, - "expiresIn": { - "type": "number", - "default": 3600, - "description": "Token expiry in seconds" - }, - "claims": { - "type": "object", - "additionalProperties": {}, - "description": "Additional JWT claims" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "saml", - "description": "Authentication type" - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "SAML IdP entry point URL" - }, - "issuer": { - "type": "string", - "description": "SAML service provider issuer" - }, - "certificate": { - "type": "string", - "description": "SAML IdP certificate (X.509)" - }, - "privateKey": { - "type": "string", - "description": "SAML service provider private key" - }, - "callbackUrl": { - "type": "string", - "format": "uri", - "description": "SAML assertion consumer service URL" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha1", - "sha256", - "sha512" - ], - "default": "sha256", - "description": "SAML signature algorithm" - }, - "wantAssertionsSigned": { - "type": "boolean", - "default": true, - "description": "Require signed SAML assertions" - }, - "identifierFormat": { - "type": "string", - "description": "SAML NameID format" - } - }, - "required": [ - "type", - "entryPoint", - "issuer", - "certificate" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "none", - "description": "No authentication required" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ] - } + "Authentication": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/BuildConfig.json b/packages/spec/json-schema/integration/BuildConfig.json index b3c74f169..bb871a665 100644 --- a/packages/spec/json-schema/integration/BuildConfig.json +++ b/packages/spec/json-schema/integration/BuildConfig.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/BuildConfig", "definitions": { - "BuildConfig": { - "type": "object", - "properties": { - "buildCommand": { - "type": "string", - "description": "Build command (e.g., npm run build)" - }, - "outputDirectory": { - "type": "string", - "description": "Output directory (e.g., .next, dist)" - }, - "installCommand": { - "type": "string", - "description": "Install command (e.g., npm install, pnpm install)" - }, - "devCommand": { - "type": "string", - "description": "Development command (e.g., npm run dev)" - }, - "nodeVersion": { - "type": "string", - "description": "Node.js version (e.g., 18.x, 20.x)" - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Build environment variables" - } - }, - "additionalProperties": false - } + "BuildConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/CdcConfig.json b/packages/spec/json-schema/integration/CdcConfig.json index 2b59c2f59..216db9acd 100644 --- a/packages/spec/json-schema/integration/CdcConfig.json +++ b/packages/spec/json-schema/integration/CdcConfig.json @@ -1,55 +1,7 @@ { "$ref": "#/definitions/CdcConfig", "definitions": { - "CdcConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable CDC" - }, - "method": { - "type": "string", - "enum": [ - "log_based", - "trigger_based", - "query_based", - "custom" - ], - "description": "CDC method" - }, - "slotName": { - "type": "string", - "description": "Replication slot name (for log-based CDC)" - }, - "publicationName": { - "type": "string", - "description": "Publication name (for PostgreSQL)" - }, - "startPosition": { - "type": "string", - "description": "Starting position/LSN for CDC stream" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "CDC batch size" - }, - "pollIntervalMs": { - "type": "number", - "minimum": 100, - "default": 1000, - "description": "CDC polling interval in ms" - } - }, - "required": [ - "method" - ], - "additionalProperties": false - } + "CdcConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/ConflictResolution.json b/packages/spec/json-schema/integration/ConflictResolution.json index eea0fc6b6..f9dc048f1 100644 --- a/packages/spec/json-schema/integration/ConflictResolution.json +++ b/packages/spec/json-schema/integration/ConflictResolution.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/ConflictResolution", "definitions": { - "ConflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "target_wins", - "latest_wins", - "manual" - ], - "description": "Conflict resolution strategy" - } + "ConflictResolution": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/Connector.json b/packages/spec/json-schema/integration/Connector.json index 4cec73391..ced18f454 100644 --- a/packages/spec/json-schema/integration/Connector.json +++ b/packages/spec/json-schema/integration/Connector.json @@ -1,919 +1,7 @@ { "$ref": "#/definitions/Connector", "definitions": { - "Connector": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique connector identifier" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "type": { - "type": "string", - "enum": [ - "saas", - "database", - "file_storage", - "message_queue", - "api", - "custom" - ], - "description": "Connector type" - }, - "description": { - "type": "string", - "description": "Connector description" - }, - "icon": { - "type": "string", - "description": "Icon identifier" - }, - "authentication": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "oauth2", - "description": "Authentication type" - }, - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 authorization endpoint" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 token endpoint" - }, - "clientId": { - "type": "string", - "description": "OAuth2 client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth2 client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth2 scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth2 redirect URI" - }, - "refreshToken": { - "type": "string", - "description": "Refresh token for token renewal" - }, - "tokenExpiry": { - "type": "number", - "description": "Token expiry timestamp" - } - }, - "required": [ - "type", - "authorizationUrl", - "tokenUrl", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "api-key", - "description": "Authentication type" - }, - "key": { - "type": "string", - "description": "API key value" - }, - "headerName": { - "type": "string", - "default": "X-API-Key", - "description": "HTTP header name for API key" - }, - "paramName": { - "type": "string", - "description": "Query parameter name (alternative to header)" - } - }, - "required": [ - "type", - "key" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "basic", - "description": "Authentication type" - }, - "username": { - "type": "string", - "description": "Username" - }, - "password": { - "type": "string", - "description": "Password (typically from ENV)" - } - }, - "required": [ - "type", - "username", - "password" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "bearer", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Bearer token" - } - }, - "required": [ - "type", - "token" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "jwt", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Pre-generated JWT token" - }, - "secretKey": { - "type": "string", - "description": "Secret key for JWT signing" - }, - "algorithm": { - "type": "string", - "enum": [ - "HS256", - "HS384", - "HS512", - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512" - ], - "default": "HS256", - "description": "JWT signing algorithm" - }, - "issuer": { - "type": "string", - "description": "JWT issuer claim" - }, - "audience": { - "type": "string", - "description": "JWT audience claim" - }, - "subject": { - "type": "string", - "description": "JWT subject claim" - }, - "expiresIn": { - "type": "number", - "default": 3600, - "description": "Token expiry in seconds" - }, - "claims": { - "type": "object", - "additionalProperties": {}, - "description": "Additional JWT claims" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "saml", - "description": "Authentication type" - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "SAML IdP entry point URL" - }, - "issuer": { - "type": "string", - "description": "SAML service provider issuer" - }, - "certificate": { - "type": "string", - "description": "SAML IdP certificate (X.509)" - }, - "privateKey": { - "type": "string", - "description": "SAML service provider private key" - }, - "callbackUrl": { - "type": "string", - "format": "uri", - "description": "SAML assertion consumer service URL" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha1", - "sha256", - "sha512" - ], - "default": "sha256", - "description": "SAML signature algorithm" - }, - "wantAssertionsSigned": { - "type": "boolean", - "default": true, - "description": "Require signed SAML assertions" - }, - "identifierFormat": { - "type": "string", - "description": "SAML NameID format" - } - }, - "required": [ - "type", - "entryPoint", - "issuer", - "certificate" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "none", - "description": "No authentication required" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ], - "description": "Authentication configuration" - }, - "syncConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "upsert", - "append_only" - ], - "description": "Synchronization strategy", - "default": "incremental" - }, - "direction": { - "type": "string", - "enum": [ - "import", - "export", - "bidirectional" - ], - "default": "import", - "description": "Sync direction" - }, - "schedule": { - "type": "string", - "description": "Cron expression for scheduled sync" - }, - "realtimeSync": { - "type": "boolean", - "default": false, - "description": "Enable real-time sync" - }, - "timestampField": { - "type": "string", - "description": "Field to track last modification time" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "target_wins", - "latest_wins", - "manual" - ], - "description": "Conflict resolution strategy", - "default": "latest_wins" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "Records per batch" - }, - "deleteMode": { - "type": "string", - "enum": [ - "hard_delete", - "soft_delete", - "ignore" - ], - "default": "soft_delete", - "description": "Delete handling mode" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter criteria for selective sync" - } - }, - "additionalProperties": false, - "description": "Data sync configuration" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Field mapping rules" - }, - "webhooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "sync.started", - "sync.completed", - "sync.failed", - "auth.expired", - "rate_limit.exceeded" - ], - "description": "Webhook event type" - }, - "description": "Connector events to subscribe to" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "hmac_sha256", - "hmac_sha512", - "none" - ], - "description": "Webhook signature algorithm", - "default": "hmac_sha256" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Webhook configurations" - }, - "rateLimitConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "fixed_window", - "sliding_window", - "token_bucket", - "leaky_bucket" - ], - "description": "Rate limiting strategy", - "default": "token_bucket" - }, - "maxRequests": { - "type": "number", - "minimum": 1, - "description": "Maximum requests per window" - }, - "windowSeconds": { - "type": "number", - "minimum": 1, - "description": "Time window in seconds" - }, - "burstCapacity": { - "type": "number", - "minimum": 1, - "description": "Burst capacity" - }, - "respectUpstreamLimits": { - "type": "boolean", - "default": true, - "description": "Respect external rate limit headers" - }, - "rateLimitHeaders": { - "type": "object", - "properties": { - "remaining": { - "type": "string", - "default": "X-RateLimit-Remaining", - "description": "Header for remaining requests" - }, - "limit": { - "type": "string", - "default": "X-RateLimit-Limit", - "description": "Header for rate limit" - }, - "reset": { - "type": "string", - "default": "X-RateLimit-Reset", - "description": "Header for reset time" - } - }, - "additionalProperties": false, - "description": "Custom rate limit headers" - } - }, - "required": [ - "maxRequests", - "windowSeconds" - ], - "additionalProperties": false, - "description": "Rate limiting configuration" - }, - "retryConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "exponential_backoff", - "linear_backoff", - "fixed_delay", - "no_retry" - ], - "description": "Retry strategy", - "default": "exponential_backoff" - }, - "maxAttempts": { - "type": "number", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "initialDelayMs": { - "type": "number", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in ms" - }, - "maxDelayMs": { - "type": "number", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in ms" - }, - "backoffMultiplier": { - "type": "number", - "minimum": 1, - "default": 2, - "description": "Exponential backoff multiplier" - }, - "retryableStatusCodes": { - "type": "array", - "items": { - "type": "number" - }, - "default": [ - 408, - 429, - 500, - 502, - 503, - 504 - ], - "description": "HTTP status codes to retry" - }, - "retryOnNetworkError": { - "type": "boolean", - "default": true, - "description": "Retry on network errors" - }, - "jitter": { - "type": "boolean", - "default": true, - "description": "Add jitter to retry delays" - } - }, - "additionalProperties": false, - "description": "Retry configuration" - }, - "connectionTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Connection timeout in ms" - }, - "requestTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in ms" - }, - "status": { - "type": "string", - "enum": [ - "active", - "inactive", - "error", - "configuring" - ], - "description": "Connector status", - "default": "inactive" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable connector" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom connector metadata" - } - }, - "required": [ - "name", - "label", - "type", - "authentication" - ], - "additionalProperties": false - } + "Connector": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/ConnectorStatus.json b/packages/spec/json-schema/integration/ConnectorStatus.json index fd0d99f53..078d27019 100644 --- a/packages/spec/json-schema/integration/ConnectorStatus.json +++ b/packages/spec/json-schema/integration/ConnectorStatus.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/ConnectorStatus", "definitions": { - "ConnectorStatus": { - "type": "string", - "enum": [ - "active", - "inactive", - "error", - "configuring" - ], - "description": "Connector status" - } + "ConnectorStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/ConnectorType.json b/packages/spec/json-schema/integration/ConnectorType.json index 2af49a983..b1c313fd2 100644 --- a/packages/spec/json-schema/integration/ConnectorType.json +++ b/packages/spec/json-schema/integration/ConnectorType.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/ConnectorType", "definitions": { - "ConnectorType": { - "type": "string", - "enum": [ - "saas", - "database", - "file_storage", - "message_queue", - "api", - "custom" - ], - "description": "Connector type" - } + "ConnectorType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/ConsumerConfig.json b/packages/spec/json-schema/integration/ConsumerConfig.json index cf7fbc71f..96d1bd53d 100644 --- a/packages/spec/json-schema/integration/ConsumerConfig.json +++ b/packages/spec/json-schema/integration/ConsumerConfig.json @@ -1,67 +1,7 @@ { "$ref": "#/definitions/ConsumerConfig", "definitions": { - "ConsumerConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable consumer" - }, - "consumerGroup": { - "type": "string", - "description": "Consumer group ID" - }, - "concurrency": { - "type": "number", - "minimum": 1, - "maximum": 100, - "default": 1, - "description": "Number of concurrent consumers" - }, - "prefetchCount": { - "type": "number", - "minimum": 1, - "maximum": 1000, - "default": 10, - "description": "Prefetch count" - }, - "ackMode": { - "type": "string", - "enum": [ - "auto", - "manual", - "client" - ], - "description": "Message acknowledgment mode", - "default": "manual" - }, - "autoCommit": { - "type": "boolean", - "default": false, - "description": "Auto-commit offsets" - }, - "autoCommitIntervalMs": { - "type": "number", - "minimum": 100, - "default": 5000, - "description": "Auto-commit interval in ms" - }, - "sessionTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Session timeout in ms" - }, - "rebalanceTimeoutMs": { - "type": "number", - "minimum": 1000, - "description": "Rebalance timeout in ms" - } - }, - "additionalProperties": false - } + "ConsumerConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/DataSyncConfig.json b/packages/spec/json-schema/integration/DataSyncConfig.json index 17fbf42cf..5f6d0adde 100644 --- a/packages/spec/json-schema/integration/DataSyncConfig.json +++ b/packages/spec/json-schema/integration/DataSyncConfig.json @@ -1,79 +1,7 @@ { "$ref": "#/definitions/DataSyncConfig", "definitions": { - "DataSyncConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "upsert", - "append_only" - ], - "description": "Synchronization strategy", - "default": "incremental" - }, - "direction": { - "type": "string", - "enum": [ - "import", - "export", - "bidirectional" - ], - "default": "import", - "description": "Sync direction" - }, - "schedule": { - "type": "string", - "description": "Cron expression for scheduled sync" - }, - "realtimeSync": { - "type": "boolean", - "default": false, - "description": "Enable real-time sync" - }, - "timestampField": { - "type": "string", - "description": "Field to track last modification time" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "target_wins", - "latest_wins", - "manual" - ], - "description": "Conflict resolution strategy", - "default": "latest_wins" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "Records per batch" - }, - "deleteMode": { - "type": "string", - "enum": [ - "hard_delete", - "soft_delete", - "ignore" - ], - "default": "soft_delete", - "description": "Delete handling mode" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter criteria for selective sync" - } - }, - "additionalProperties": false - } + "DataSyncConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/DatabaseConnector.json b/packages/spec/json-schema/integration/DatabaseConnector.json index b327d3560..5f1e10ad6 100644 --- a/packages/spec/json-schema/integration/DatabaseConnector.json +++ b/packages/spec/json-schema/integration/DatabaseConnector.json @@ -1,1372 +1,7 @@ { "$ref": "#/definitions/DatabaseConnector", "definitions": { - "DatabaseConnector": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique connector identifier" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "type": { - "type": "string", - "const": "database" - }, - "description": { - "type": "string", - "description": "Connector description" - }, - "icon": { - "type": "string", - "description": "Icon identifier" - }, - "authentication": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "oauth2", - "description": "Authentication type" - }, - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 authorization endpoint" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 token endpoint" - }, - "clientId": { - "type": "string", - "description": "OAuth2 client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth2 client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth2 scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth2 redirect URI" - }, - "refreshToken": { - "type": "string", - "description": "Refresh token for token renewal" - }, - "tokenExpiry": { - "type": "number", - "description": "Token expiry timestamp" - } - }, - "required": [ - "type", - "authorizationUrl", - "tokenUrl", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "api-key", - "description": "Authentication type" - }, - "key": { - "type": "string", - "description": "API key value" - }, - "headerName": { - "type": "string", - "default": "X-API-Key", - "description": "HTTP header name for API key" - }, - "paramName": { - "type": "string", - "description": "Query parameter name (alternative to header)" - } - }, - "required": [ - "type", - "key" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "basic", - "description": "Authentication type" - }, - "username": { - "type": "string", - "description": "Username" - }, - "password": { - "type": "string", - "description": "Password (typically from ENV)" - } - }, - "required": [ - "type", - "username", - "password" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "bearer", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Bearer token" - } - }, - "required": [ - "type", - "token" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "jwt", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Pre-generated JWT token" - }, - "secretKey": { - "type": "string", - "description": "Secret key for JWT signing" - }, - "algorithm": { - "type": "string", - "enum": [ - "HS256", - "HS384", - "HS512", - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512" - ], - "default": "HS256", - "description": "JWT signing algorithm" - }, - "issuer": { - "type": "string", - "description": "JWT issuer claim" - }, - "audience": { - "type": "string", - "description": "JWT audience claim" - }, - "subject": { - "type": "string", - "description": "JWT subject claim" - }, - "expiresIn": { - "type": "number", - "default": 3600, - "description": "Token expiry in seconds" - }, - "claims": { - "type": "object", - "additionalProperties": {}, - "description": "Additional JWT claims" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "saml", - "description": "Authentication type" - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "SAML IdP entry point URL" - }, - "issuer": { - "type": "string", - "description": "SAML service provider issuer" - }, - "certificate": { - "type": "string", - "description": "SAML IdP certificate (X.509)" - }, - "privateKey": { - "type": "string", - "description": "SAML service provider private key" - }, - "callbackUrl": { - "type": "string", - "format": "uri", - "description": "SAML assertion consumer service URL" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha1", - "sha256", - "sha512" - ], - "default": "sha256", - "description": "SAML signature algorithm" - }, - "wantAssertionsSigned": { - "type": "boolean", - "default": true, - "description": "Require signed SAML assertions" - }, - "identifierFormat": { - "type": "string", - "description": "SAML NameID format" - } - }, - "required": [ - "type", - "entryPoint", - "issuer", - "certificate" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "none", - "description": "No authentication required" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ], - "description": "Authentication configuration" - }, - "syncConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "upsert", - "append_only" - ], - "description": "Synchronization strategy", - "default": "incremental" - }, - "direction": { - "type": "string", - "enum": [ - "import", - "export", - "bidirectional" - ], - "default": "import", - "description": "Sync direction" - }, - "schedule": { - "type": "string", - "description": "Cron expression for scheduled sync" - }, - "realtimeSync": { - "type": "boolean", - "default": false, - "description": "Enable real-time sync" - }, - "timestampField": { - "type": "string", - "description": "Field to track last modification time" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "target_wins", - "latest_wins", - "manual" - ], - "description": "Conflict resolution strategy", - "default": "latest_wins" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "Records per batch" - }, - "deleteMode": { - "type": "string", - "enum": [ - "hard_delete", - "soft_delete", - "ignore" - ], - "default": "soft_delete", - "description": "Delete handling mode" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter criteria for selective sync" - } - }, - "additionalProperties": false, - "description": "Data sync configuration" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Field mapping rules" - }, - "webhooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "sync.started", - "sync.completed", - "sync.failed", - "auth.expired", - "rate_limit.exceeded" - ], - "description": "Webhook event type" - }, - "description": "Connector events to subscribe to" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "hmac_sha256", - "hmac_sha512", - "none" - ], - "description": "Webhook signature algorithm", - "default": "hmac_sha256" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Webhook configurations" - }, - "rateLimitConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "fixed_window", - "sliding_window", - "token_bucket", - "leaky_bucket" - ], - "description": "Rate limiting strategy", - "default": "token_bucket" - }, - "maxRequests": { - "type": "number", - "minimum": 1, - "description": "Maximum requests per window" - }, - "windowSeconds": { - "type": "number", - "minimum": 1, - "description": "Time window in seconds" - }, - "burstCapacity": { - "type": "number", - "minimum": 1, - "description": "Burst capacity" - }, - "respectUpstreamLimits": { - "type": "boolean", - "default": true, - "description": "Respect external rate limit headers" - }, - "rateLimitHeaders": { - "type": "object", - "properties": { - "remaining": { - "type": "string", - "default": "X-RateLimit-Remaining", - "description": "Header for remaining requests" - }, - "limit": { - "type": "string", - "default": "X-RateLimit-Limit", - "description": "Header for rate limit" - }, - "reset": { - "type": "string", - "default": "X-RateLimit-Reset", - "description": "Header for reset time" - } - }, - "additionalProperties": false, - "description": "Custom rate limit headers" - } - }, - "required": [ - "maxRequests", - "windowSeconds" - ], - "additionalProperties": false, - "description": "Rate limiting configuration" - }, - "retryConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "exponential_backoff", - "linear_backoff", - "fixed_delay", - "no_retry" - ], - "description": "Retry strategy", - "default": "exponential_backoff" - }, - "maxAttempts": { - "type": "number", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "initialDelayMs": { - "type": "number", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in ms" - }, - "maxDelayMs": { - "type": "number", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in ms" - }, - "backoffMultiplier": { - "type": "number", - "minimum": 1, - "default": 2, - "description": "Exponential backoff multiplier" - }, - "retryableStatusCodes": { - "type": "array", - "items": { - "type": "number" - }, - "default": [ - 408, - 429, - 500, - 502, - 503, - 504 - ], - "description": "HTTP status codes to retry" - }, - "retryOnNetworkError": { - "type": "boolean", - "default": true, - "description": "Retry on network errors" - }, - "jitter": { - "type": "boolean", - "default": true, - "description": "Add jitter to retry delays" - } - }, - "additionalProperties": false, - "description": "Retry configuration" - }, - "connectionTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Connection timeout in ms" - }, - "requestTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in ms" - }, - "status": { - "type": "string", - "enum": [ - "active", - "inactive", - "error", - "configuring" - ], - "description": "Connector status", - "default": "inactive" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable connector" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom connector metadata" - }, - "provider": { - "type": "string", - "enum": [ - "postgresql", - "mysql", - "mariadb", - "mssql", - "oracle", - "mongodb", - "redis", - "cassandra", - "snowflake", - "bigquery", - "redshift", - "custom" - ], - "description": "Database provider type" - }, - "connectionConfig": { - "type": "object", - "properties": { - "host": { - "type": "string", - "description": "Database host" - }, - "port": { - "type": "number", - "minimum": 1, - "maximum": 65535, - "description": "Database port" - }, - "database": { - "type": "string", - "description": "Database name" - }, - "username": { - "type": "string", - "description": "Database username" - }, - "password": { - "type": "string", - "description": "Database password (typically from ENV)" - }, - "options": { - "type": "object", - "additionalProperties": {}, - "description": "Driver-specific connection options" - } - }, - "required": [ - "host", - "port", - "database", - "username", - "password" - ], - "additionalProperties": false, - "description": "Database connection configuration" - }, - "poolConfig": { - "type": "object", - "properties": { - "min": { - "type": "number", - "minimum": 0, - "default": 2, - "description": "Minimum connections in pool" - }, - "max": { - "type": "number", - "minimum": 1, - "default": 10, - "description": "Maximum connections in pool" - }, - "idleTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Idle connection timeout in ms" - }, - "connectionTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 10000, - "description": "Connection establishment timeout in ms" - }, - "acquireTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Connection acquisition timeout in ms" - }, - "evictionRunIntervalMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Connection eviction check interval in ms" - }, - "testOnBorrow": { - "type": "boolean", - "default": true, - "description": "Test connection before use" - } - }, - "additionalProperties": false, - "description": "Connection pool configuration" - }, - "sslConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable SSL/TLS" - }, - "rejectUnauthorized": { - "type": "boolean", - "default": true, - "description": "Reject unauthorized certificates" - }, - "ca": { - "type": "string", - "description": "Certificate Authority certificate" - }, - "cert": { - "type": "string", - "description": "Client certificate" - }, - "key": { - "type": "string", - "description": "Client private key" - } - }, - "additionalProperties": false, - "description": "SSL/TLS configuration" - }, - "tables": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Table name in ObjectStack (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "schema": { - "type": "string", - "description": "Database schema name" - }, - "tableName": { - "type": "string", - "description": "Actual table name in database" - }, - "primaryKey": { - "type": "string", - "description": "Primary key column" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable sync for this table" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Table-specific field mappings" - }, - "whereClause": { - "type": "string", - "description": "SQL WHERE clause for filtering" - } - }, - "required": [ - "name", - "label", - "tableName", - "primaryKey" - ], - "additionalProperties": false - }, - "description": "Tables to sync" - }, - "cdcConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable CDC" - }, - "method": { - "type": "string", - "enum": [ - "log_based", - "trigger_based", - "query_based", - "custom" - ], - "description": "CDC method" - }, - "slotName": { - "type": "string", - "description": "Replication slot name (for log-based CDC)" - }, - "publicationName": { - "type": "string", - "description": "Publication name (for PostgreSQL)" - }, - "startPosition": { - "type": "string", - "description": "Starting position/LSN for CDC stream" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "CDC batch size" - }, - "pollIntervalMs": { - "type": "number", - "minimum": 100, - "default": 1000, - "description": "CDC polling interval in ms" - } - }, - "required": [ - "method" - ], - "additionalProperties": false, - "description": "CDC configuration" - }, - "readReplicaConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Use read replicas" - }, - "hosts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "host": { - "type": "string", - "description": "Replica host" - }, - "port": { - "type": "number", - "minimum": 1, - "maximum": 65535, - "description": "Replica port" - }, - "weight": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 1, - "description": "Load balancing weight" - } - }, - "required": [ - "host", - "port" - ], - "additionalProperties": false - }, - "description": "Read replica hosts" - } - }, - "required": [ - "hosts" - ], - "additionalProperties": false, - "description": "Read replica configuration" - }, - "queryTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Query timeout in ms" - }, - "enableQueryLogging": { - "type": "boolean", - "default": false, - "description": "Enable SQL query logging" - } - }, - "required": [ - "name", - "label", - "type", - "authentication", - "provider", - "connectionConfig", - "tables" - ], - "additionalProperties": false - } + "DatabaseConnector": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/DatabasePoolConfig.json b/packages/spec/json-schema/integration/DatabasePoolConfig.json index 8b6fba409..ec1c78ca4 100644 --- a/packages/spec/json-schema/integration/DatabasePoolConfig.json +++ b/packages/spec/json-schema/integration/DatabasePoolConfig.json @@ -1,53 +1,7 @@ { "$ref": "#/definitions/DatabasePoolConfig", "definitions": { - "DatabasePoolConfig": { - "type": "object", - "properties": { - "min": { - "type": "number", - "minimum": 0, - "default": 2, - "description": "Minimum connections in pool" - }, - "max": { - "type": "number", - "minimum": 1, - "default": 10, - "description": "Maximum connections in pool" - }, - "idleTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Idle connection timeout in ms" - }, - "connectionTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 10000, - "description": "Connection establishment timeout in ms" - }, - "acquireTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Connection acquisition timeout in ms" - }, - "evictionRunIntervalMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Connection eviction check interval in ms" - }, - "testOnBorrow": { - "type": "boolean", - "default": true, - "description": "Test connection before use" - } - }, - "additionalProperties": false - } + "DatabasePoolConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/DatabaseProvider.json b/packages/spec/json-schema/integration/DatabaseProvider.json index 6eb33b9ff..e71c9db05 100644 --- a/packages/spec/json-schema/integration/DatabaseProvider.json +++ b/packages/spec/json-schema/integration/DatabaseProvider.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/DatabaseProvider", "definitions": { - "DatabaseProvider": { - "type": "string", - "enum": [ - "postgresql", - "mysql", - "mariadb", - "mssql", - "oracle", - "mongodb", - "redis", - "cassandra", - "snowflake", - "bigquery", - "redshift", - "custom" - ], - "description": "Database provider type" - } + "DatabaseProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/DatabaseTable.json b/packages/spec/json-schema/integration/DatabaseTable.json index f02535b7c..91d0bad94 100644 --- a/packages/spec/json-schema/integration/DatabaseTable.json +++ b/packages/spec/json-schema/integration/DatabaseTable.json @@ -1,216 +1,7 @@ { "$ref": "#/definitions/DatabaseTable", "definitions": { - "DatabaseTable": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Table name in ObjectStack (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "schema": { - "type": "string", - "description": "Database schema name" - }, - "tableName": { - "type": "string", - "description": "Actual table name in database" - }, - "primaryKey": { - "type": "string", - "description": "Primary key column" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable sync for this table" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Table-specific field mappings" - }, - "whereClause": { - "type": "string", - "description": "SQL WHERE clause for filtering" - } - }, - "required": [ - "name", - "label", - "tableName", - "primaryKey" - ], - "additionalProperties": false - } + "DatabaseTable": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/DeliveryGuarantee.json b/packages/spec/json-schema/integration/DeliveryGuarantee.json index 05a05f0aa..8f931b92b 100644 --- a/packages/spec/json-schema/integration/DeliveryGuarantee.json +++ b/packages/spec/json-schema/integration/DeliveryGuarantee.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/DeliveryGuarantee", "definitions": { - "DeliveryGuarantee": { - "type": "string", - "enum": [ - "at_most_once", - "at_least_once", - "exactly_once" - ], - "description": "Message delivery guarantee" - } + "DeliveryGuarantee": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/DeploymentConfig.json b/packages/spec/json-schema/integration/DeploymentConfig.json index ce2bb188e..66a02bb0f 100644 --- a/packages/spec/json-schema/integration/DeploymentConfig.json +++ b/packages/spec/json-schema/integration/DeploymentConfig.json @@ -1,77 +1,7 @@ { "$ref": "#/definitions/DeploymentConfig", "definitions": { - "DeploymentConfig": { - "type": "object", - "properties": { - "autoDeployment": { - "type": "boolean", - "default": true, - "description": "Enable automatic deployments" - }, - "regions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "iad1", - "sfo1", - "gru1", - "lhr1", - "fra1", - "sin1", - "syd1", - "hnd1", - "icn1" - ] - }, - "description": "Deployment regions" - }, - "enablePreview": { - "type": "boolean", - "default": true, - "description": "Enable preview deployments" - }, - "previewComments": { - "type": "boolean", - "default": true, - "description": "Post preview URLs in PR comments" - }, - "productionProtection": { - "type": "boolean", - "default": true, - "description": "Require approval for production deployments" - }, - "deployHooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Hook name" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Deploy hook URL" - }, - "branch": { - "type": "string", - "description": "Target branch" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Deploy hooks" - } - }, - "additionalProperties": false - } + "DeploymentConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/DlqConfig.json b/packages/spec/json-schema/integration/DlqConfig.json index 8ca5879ad..a1849198e 100644 --- a/packages/spec/json-schema/integration/DlqConfig.json +++ b/packages/spec/json-schema/integration/DlqConfig.json @@ -1,37 +1,7 @@ { "$ref": "#/definitions/DlqConfig", "definitions": { - "DlqConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable DLQ" - }, - "queueName": { - "type": "string", - "description": "Dead letter queue/topic name" - }, - "maxRetries": { - "type": "number", - "minimum": 0, - "maximum": 100, - "default": 3, - "description": "Max retries before DLQ" - }, - "retryDelayMs": { - "type": "number", - "minimum": 0, - "default": 60000, - "description": "Retry delay in ms" - } - }, - "required": [ - "queueName" - ], - "additionalProperties": false - } + "DlqConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/DomainConfig.json b/packages/spec/json-schema/integration/DomainConfig.json index 0664749b0..69ace9034 100644 --- a/packages/spec/json-schema/integration/DomainConfig.json +++ b/packages/spec/json-schema/integration/DomainConfig.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/DomainConfig", "definitions": { - "DomainConfig": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name (e.g., app.example.com)" - }, - "httpsRedirect": { - "type": "boolean", - "default": true, - "description": "Redirect HTTP to HTTPS" - }, - "customCertificate": { - "type": "object", - "properties": { - "cert": { - "type": "string", - "description": "SSL certificate" - }, - "key": { - "type": "string", - "description": "Private key" - }, - "ca": { - "type": "string", - "description": "Certificate authority" - } - }, - "required": [ - "cert", - "key" - ], - "additionalProperties": false, - "description": "Custom SSL certificate" - }, - "gitBranch": { - "type": "string", - "description": "Git branch to deploy to this domain" - } - }, - "required": [ - "domain" - ], - "additionalProperties": false - } + "DomainConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/EdgeFunctionConfig.json b/packages/spec/json-schema/integration/EdgeFunctionConfig.json index a3fceb50d..bc15edfa2 100644 --- a/packages/spec/json-schema/integration/EdgeFunctionConfig.json +++ b/packages/spec/json-schema/integration/EdgeFunctionConfig.json @@ -1,45 +1,7 @@ { "$ref": "#/definitions/EdgeFunctionConfig", "definitions": { - "EdgeFunctionConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Edge function name" - }, - "path": { - "type": "string", - "description": "Function path (e.g., /api/*)" - }, - "regions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Specific regions for this function" - }, - "memoryLimit": { - "type": "integer", - "minimum": 128, - "maximum": 3008, - "default": 1024, - "description": "Memory limit in MB" - }, - "timeout": { - "type": "integer", - "minimum": 1, - "maximum": 300, - "default": 10, - "description": "Timeout in seconds" - } - }, - "required": [ - "name", - "path" - ], - "additionalProperties": false - } + "EdgeFunctionConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/EnvironmentVariables.json b/packages/spec/json-schema/integration/EnvironmentVariables.json index 84b8a7c02..65e2a8b22 100644 --- a/packages/spec/json-schema/integration/EnvironmentVariables.json +++ b/packages/spec/json-schema/integration/EnvironmentVariables.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/EnvironmentVariables", "definitions": { - "EnvironmentVariables": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Environment variable name" - }, - "value": { - "type": "string", - "description": "Environment variable value" - }, - "target": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "production", - "preview", - "development" - ] - }, - "description": "Target environments" - }, - "isSecret": { - "type": "boolean", - "default": false, - "description": "Encrypt this variable" - }, - "gitBranch": { - "type": "string", - "description": "Specific git branch" - } - }, - "required": [ - "key", - "value", - "target" - ], - "additionalProperties": false - } + "EnvironmentVariables": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/FieldMapping.json b/packages/spec/json-schema/integration/FieldMapping.json index 9fb791420..77b81606f 100644 --- a/packages/spec/json-schema/integration/FieldMapping.json +++ b/packages/spec/json-schema/integration/FieldMapping.json @@ -1,170 +1,7 @@ { "$ref": "#/definitions/FieldMapping", "definitions": { - "FieldMapping": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - } + "FieldMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/FieldTransform.json b/packages/spec/json-schema/integration/FieldTransform.json index 6d8ce629f..68c45b6e5 100644 --- a/packages/spec/json-schema/integration/FieldTransform.json +++ b/packages/spec/json-schema/integration/FieldTransform.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/FieldTransform", "definitions": { - "FieldTransform": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "uppercase", - "lowercase", - "trim", - "date_format", - "number_format", - "custom" - ], - "description": "Transformation type" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Transformation parameters" - }, - "function": { - "type": "string", - "description": "Custom JavaScript function for transformation" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "FieldTransform": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/FileAccessPattern.json b/packages/spec/json-schema/integration/FileAccessPattern.json index 72e82ae87..bffcaa3d2 100644 --- a/packages/spec/json-schema/integration/FileAccessPattern.json +++ b/packages/spec/json-schema/integration/FileAccessPattern.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/FileAccessPattern", "definitions": { - "FileAccessPattern": { - "type": "string", - "enum": [ - "public_read", - "private", - "authenticated_read", - "bucket_owner_read", - "bucket_owner_full" - ], - "description": "File access pattern" - } + "FileAccessPattern": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/FileFilterConfig.json b/packages/spec/json-schema/integration/FileFilterConfig.json index 261beffff..86ef3db4d 100644 --- a/packages/spec/json-schema/integration/FileFilterConfig.json +++ b/packages/spec/json-schema/integration/FileFilterConfig.json @@ -1,50 +1,7 @@ { "$ref": "#/definitions/FileFilterConfig", "definitions": { - "FileFilterConfig": { - "type": "object", - "properties": { - "includePatterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "File patterns to include (glob)" - }, - "excludePatterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "File patterns to exclude (glob)" - }, - "minFileSize": { - "type": "number", - "minimum": 0, - "description": "Minimum file size in bytes" - }, - "maxFileSize": { - "type": "number", - "minimum": 1, - "description": "Maximum file size in bytes" - }, - "allowedExtensions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed file extensions" - }, - "blockedExtensions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked file extensions" - } - }, - "additionalProperties": false - } + "FileFilterConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/FileMetadataConfig.json b/packages/spec/json-schema/integration/FileMetadataConfig.json index b6e18bab5..f857dcab3 100644 --- a/packages/spec/json-schema/integration/FileMetadataConfig.json +++ b/packages/spec/json-schema/integration/FileMetadataConfig.json @@ -1,41 +1,7 @@ { "$ref": "#/definitions/FileMetadataConfig", "definitions": { - "FileMetadataConfig": { - "type": "object", - "properties": { - "extractMetadata": { - "type": "boolean", - "default": true, - "description": "Extract file metadata" - }, - "metadataFields": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "content_type", - "file_size", - "last_modified", - "etag", - "checksum", - "creator", - "created_at", - "custom" - ] - }, - "description": "Metadata fields to extract" - }, - "customMetadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom metadata key-value pairs" - } - }, - "additionalProperties": false - } + "FileMetadataConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/FileStorageConnector.json b/packages/spec/json-schema/integration/FileStorageConnector.json index 8b34c356d..1c9da5db5 100644 --- a/packages/spec/json-schema/integration/FileStorageConnector.json +++ b/packages/spec/json-schema/integration/FileStorageConnector.json @@ -1,1240 +1,7 @@ { "$ref": "#/definitions/FileStorageConnector", "definitions": { - "FileStorageConnector": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique connector identifier" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "type": { - "type": "string", - "const": "file_storage" - }, - "description": { - "type": "string", - "description": "Connector description" - }, - "icon": { - "type": "string", - "description": "Icon identifier" - }, - "authentication": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "oauth2", - "description": "Authentication type" - }, - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 authorization endpoint" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 token endpoint" - }, - "clientId": { - "type": "string", - "description": "OAuth2 client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth2 client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth2 scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth2 redirect URI" - }, - "refreshToken": { - "type": "string", - "description": "Refresh token for token renewal" - }, - "tokenExpiry": { - "type": "number", - "description": "Token expiry timestamp" - } - }, - "required": [ - "type", - "authorizationUrl", - "tokenUrl", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "api-key", - "description": "Authentication type" - }, - "key": { - "type": "string", - "description": "API key value" - }, - "headerName": { - "type": "string", - "default": "X-API-Key", - "description": "HTTP header name for API key" - }, - "paramName": { - "type": "string", - "description": "Query parameter name (alternative to header)" - } - }, - "required": [ - "type", - "key" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "basic", - "description": "Authentication type" - }, - "username": { - "type": "string", - "description": "Username" - }, - "password": { - "type": "string", - "description": "Password (typically from ENV)" - } - }, - "required": [ - "type", - "username", - "password" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "bearer", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Bearer token" - } - }, - "required": [ - "type", - "token" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "jwt", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Pre-generated JWT token" - }, - "secretKey": { - "type": "string", - "description": "Secret key for JWT signing" - }, - "algorithm": { - "type": "string", - "enum": [ - "HS256", - "HS384", - "HS512", - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512" - ], - "default": "HS256", - "description": "JWT signing algorithm" - }, - "issuer": { - "type": "string", - "description": "JWT issuer claim" - }, - "audience": { - "type": "string", - "description": "JWT audience claim" - }, - "subject": { - "type": "string", - "description": "JWT subject claim" - }, - "expiresIn": { - "type": "number", - "default": 3600, - "description": "Token expiry in seconds" - }, - "claims": { - "type": "object", - "additionalProperties": {}, - "description": "Additional JWT claims" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "saml", - "description": "Authentication type" - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "SAML IdP entry point URL" - }, - "issuer": { - "type": "string", - "description": "SAML service provider issuer" - }, - "certificate": { - "type": "string", - "description": "SAML IdP certificate (X.509)" - }, - "privateKey": { - "type": "string", - "description": "SAML service provider private key" - }, - "callbackUrl": { - "type": "string", - "format": "uri", - "description": "SAML assertion consumer service URL" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha1", - "sha256", - "sha512" - ], - "default": "sha256", - "description": "SAML signature algorithm" - }, - "wantAssertionsSigned": { - "type": "boolean", - "default": true, - "description": "Require signed SAML assertions" - }, - "identifierFormat": { - "type": "string", - "description": "SAML NameID format" - } - }, - "required": [ - "type", - "entryPoint", - "issuer", - "certificate" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "none", - "description": "No authentication required" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ], - "description": "Authentication configuration" - }, - "syncConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "upsert", - "append_only" - ], - "description": "Synchronization strategy", - "default": "incremental" - }, - "direction": { - "type": "string", - "enum": [ - "import", - "export", - "bidirectional" - ], - "default": "import", - "description": "Sync direction" - }, - "schedule": { - "type": "string", - "description": "Cron expression for scheduled sync" - }, - "realtimeSync": { - "type": "boolean", - "default": false, - "description": "Enable real-time sync" - }, - "timestampField": { - "type": "string", - "description": "Field to track last modification time" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "target_wins", - "latest_wins", - "manual" - ], - "description": "Conflict resolution strategy", - "default": "latest_wins" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "Records per batch" - }, - "deleteMode": { - "type": "string", - "enum": [ - "hard_delete", - "soft_delete", - "ignore" - ], - "default": "soft_delete", - "description": "Delete handling mode" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter criteria for selective sync" - } - }, - "additionalProperties": false, - "description": "Data sync configuration" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Field mapping rules" - }, - "webhooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "sync.started", - "sync.completed", - "sync.failed", - "auth.expired", - "rate_limit.exceeded" - ], - "description": "Webhook event type" - }, - "description": "Connector events to subscribe to" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "hmac_sha256", - "hmac_sha512", - "none" - ], - "description": "Webhook signature algorithm", - "default": "hmac_sha256" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Webhook configurations" - }, - "rateLimitConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "fixed_window", - "sliding_window", - "token_bucket", - "leaky_bucket" - ], - "description": "Rate limiting strategy", - "default": "token_bucket" - }, - "maxRequests": { - "type": "number", - "minimum": 1, - "description": "Maximum requests per window" - }, - "windowSeconds": { - "type": "number", - "minimum": 1, - "description": "Time window in seconds" - }, - "burstCapacity": { - "type": "number", - "minimum": 1, - "description": "Burst capacity" - }, - "respectUpstreamLimits": { - "type": "boolean", - "default": true, - "description": "Respect external rate limit headers" - }, - "rateLimitHeaders": { - "type": "object", - "properties": { - "remaining": { - "type": "string", - "default": "X-RateLimit-Remaining", - "description": "Header for remaining requests" - }, - "limit": { - "type": "string", - "default": "X-RateLimit-Limit", - "description": "Header for rate limit" - }, - "reset": { - "type": "string", - "default": "X-RateLimit-Reset", - "description": "Header for reset time" - } - }, - "additionalProperties": false, - "description": "Custom rate limit headers" - } - }, - "required": [ - "maxRequests", - "windowSeconds" - ], - "additionalProperties": false, - "description": "Rate limiting configuration" - }, - "retryConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "exponential_backoff", - "linear_backoff", - "fixed_delay", - "no_retry" - ], - "description": "Retry strategy", - "default": "exponential_backoff" - }, - "maxAttempts": { - "type": "number", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "initialDelayMs": { - "type": "number", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in ms" - }, - "maxDelayMs": { - "type": "number", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in ms" - }, - "backoffMultiplier": { - "type": "number", - "minimum": 1, - "default": 2, - "description": "Exponential backoff multiplier" - }, - "retryableStatusCodes": { - "type": "array", - "items": { - "type": "number" - }, - "default": [ - 408, - 429, - 500, - 502, - 503, - 504 - ], - "description": "HTTP status codes to retry" - }, - "retryOnNetworkError": { - "type": "boolean", - "default": true, - "description": "Retry on network errors" - }, - "jitter": { - "type": "boolean", - "default": true, - "description": "Add jitter to retry delays" - } - }, - "additionalProperties": false, - "description": "Retry configuration" - }, - "connectionTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Connection timeout in ms" - }, - "requestTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in ms" - }, - "status": { - "type": "string", - "enum": [ - "active", - "inactive", - "error", - "configuring" - ], - "description": "Connector status", - "default": "inactive" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable connector" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom connector metadata" - }, - "provider": { - "type": "string", - "enum": [ - "s3", - "azure_blob", - "gcs", - "dropbox", - "box", - "onedrive", - "google_drive", - "sharepoint", - "ftp", - "local", - "custom" - ], - "description": "File storage provider type" - }, - "storageConfig": { - "type": "object", - "properties": { - "endpoint": { - "type": "string", - "format": "uri", - "description": "Custom endpoint URL" - }, - "region": { - "type": "string", - "description": "Default region" - }, - "pathStyle": { - "type": "boolean", - "default": false, - "description": "Use path-style URLs (for S3-compatible)" - } - }, - "additionalProperties": false, - "description": "Storage configuration" - }, - "buckets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Bucket identifier in ObjectStack (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "bucketName": { - "type": "string", - "description": "Actual bucket/container name in storage system" - }, - "region": { - "type": "string", - "description": "Storage region" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable sync for this bucket" - }, - "prefix": { - "type": "string", - "description": "Prefix/path within bucket" - }, - "accessPattern": { - "type": "string", - "enum": [ - "public_read", - "private", - "authenticated_read", - "bucket_owner_read", - "bucket_owner_full" - ], - "description": "Access pattern" - }, - "fileFilters": { - "type": "object", - "properties": { - "includePatterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "File patterns to include (glob)" - }, - "excludePatterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "File patterns to exclude (glob)" - }, - "minFileSize": { - "type": "number", - "minimum": 0, - "description": "Minimum file size in bytes" - }, - "maxFileSize": { - "type": "number", - "minimum": 1, - "description": "Maximum file size in bytes" - }, - "allowedExtensions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed file extensions" - }, - "blockedExtensions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked file extensions" - } - }, - "additionalProperties": false, - "description": "File filter configuration" - } - }, - "required": [ - "name", - "label", - "bucketName" - ], - "additionalProperties": false - }, - "description": "Buckets/containers to sync" - }, - "metadataConfig": { - "type": "object", - "properties": { - "extractMetadata": { - "type": "boolean", - "default": true, - "description": "Extract file metadata" - }, - "metadataFields": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "content_type", - "file_size", - "last_modified", - "etag", - "checksum", - "creator", - "created_at", - "custom" - ] - }, - "description": "Metadata fields to extract" - }, - "customMetadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom metadata key-value pairs" - } - }, - "additionalProperties": false, - "description": "Metadata extraction configuration" - }, - "multipartConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable multipart uploads" - }, - "partSize": { - "type": "number", - "minimum": 5242880, - "default": 5242880, - "description": "Part size in bytes (min 5MB)" - }, - "maxConcurrentParts": { - "type": "number", - "minimum": 1, - "maximum": 10, - "default": 5, - "description": "Maximum concurrent part uploads" - }, - "threshold": { - "type": "number", - "minimum": 5242880, - "default": 104857600, - "description": "File size threshold for multipart upload in bytes" - } - }, - "additionalProperties": false, - "description": "Multipart upload configuration" - }, - "versioningConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable file versioning" - }, - "maxVersions": { - "type": "number", - "minimum": 1, - "maximum": 100, - "description": "Maximum versions to retain" - }, - "retentionDays": { - "type": "number", - "minimum": 1, - "description": "Version retention period in days" - } - }, - "additionalProperties": false, - "description": "File versioning configuration" - }, - "encryption": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable server-side encryption" - }, - "algorithm": { - "type": "string", - "enum": [ - "AES256", - "aws:kms", - "custom" - ], - "description": "Encryption algorithm" - }, - "kmsKeyId": { - "type": "string", - "description": "KMS key ID (for aws:kms)" - } - }, - "additionalProperties": false, - "description": "Encryption configuration" - }, - "lifecyclePolicy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable lifecycle policy" - }, - "deleteAfterDays": { - "type": "number", - "minimum": 1, - "description": "Delete files after N days" - }, - "archiveAfterDays": { - "type": "number", - "minimum": 1, - "description": "Archive files after N days" - } - }, - "additionalProperties": false, - "description": "Lifecycle policy" - }, - "contentProcessing": { - "type": "object", - "properties": { - "extractText": { - "type": "boolean", - "default": false, - "description": "Extract text from documents" - }, - "generateThumbnails": { - "type": "boolean", - "default": false, - "description": "Generate image thumbnails" - }, - "thumbnailSizes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "width": { - "type": "number", - "minimum": 1 - }, - "height": { - "type": "number", - "minimum": 1 - } - }, - "required": [ - "width", - "height" - ], - "additionalProperties": false - }, - "description": "Thumbnail sizes" - }, - "virusScan": { - "type": "boolean", - "default": false, - "description": "Scan for viruses" - } - }, - "additionalProperties": false, - "description": "Content processing configuration" - }, - "bufferSize": { - "type": "number", - "minimum": 1024, - "default": 65536, - "description": "Buffer size in bytes" - }, - "transferAcceleration": { - "type": "boolean", - "default": false, - "description": "Enable transfer acceleration" - } - }, - "required": [ - "name", - "label", - "type", - "authentication", - "provider", - "buckets" - ], - "additionalProperties": false - } + "FileStorageConnector": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/FileStorageProvider.json b/packages/spec/json-schema/integration/FileStorageProvider.json index 6dbef63e2..72b731cec 100644 --- a/packages/spec/json-schema/integration/FileStorageProvider.json +++ b/packages/spec/json-schema/integration/FileStorageProvider.json @@ -1,23 +1,7 @@ { "$ref": "#/definitions/FileStorageProvider", "definitions": { - "FileStorageProvider": { - "type": "string", - "enum": [ - "s3", - "azure_blob", - "gcs", - "dropbox", - "box", - "onedrive", - "google_drive", - "sharepoint", - "ftp", - "local", - "custom" - ], - "description": "File storage provider type" - } + "FileStorageProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/FileVersioningConfig.json b/packages/spec/json-schema/integration/FileVersioningConfig.json index fc12b87f4..f470bf5a9 100644 --- a/packages/spec/json-schema/integration/FileVersioningConfig.json +++ b/packages/spec/json-schema/integration/FileVersioningConfig.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/FileVersioningConfig", "definitions": { - "FileVersioningConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable file versioning" - }, - "maxVersions": { - "type": "number", - "minimum": 1, - "maximum": 100, - "description": "Maximum versions to retain" - }, - "retentionDays": { - "type": "number", - "minimum": 1, - "description": "Version retention period in days" - } - }, - "additionalProperties": false - } + "FileVersioningConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/GitHubActionsWorkflow.json b/packages/spec/json-schema/integration/GitHubActionsWorkflow.json index dc55b0080..25bf98588 100644 --- a/packages/spec/json-schema/integration/GitHubActionsWorkflow.json +++ b/packages/spec/json-schema/integration/GitHubActionsWorkflow.json @@ -1,58 +1,7 @@ { "$ref": "#/definitions/GitHubActionsWorkflow", "definitions": { - "GitHubActionsWorkflow": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Workflow name" - }, - "path": { - "type": "string", - "description": "Workflow file path (e.g., .github/workflows/ci.yml)" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable workflow" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "push", - "pull_request", - "release", - "schedule", - "workflow_dispatch", - "repository_dispatch" - ] - }, - "description": "Workflow triggers" - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables" - }, - "secrets": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required secrets" - } - }, - "required": [ - "name", - "path" - ], - "additionalProperties": false - } + "GitHubActionsWorkflow": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/GitHubCommitConfig.json b/packages/spec/json-schema/integration/GitHubCommitConfig.json index 9ebdad1b1..753b3a569 100644 --- a/packages/spec/json-schema/integration/GitHubCommitConfig.json +++ b/packages/spec/json-schema/integration/GitHubCommitConfig.json @@ -1,35 +1,7 @@ { "$ref": "#/definitions/GitHubCommitConfig", "definitions": { - "GitHubCommitConfig": { - "type": "object", - "properties": { - "authorName": { - "type": "string", - "description": "Commit author name" - }, - "authorEmail": { - "type": "string", - "format": "email", - "description": "Commit author email" - }, - "signCommits": { - "type": "boolean", - "default": false, - "description": "Sign commits with GPG" - }, - "messageTemplate": { - "type": "string", - "description": "Commit message template" - }, - "useConventionalCommits": { - "type": "boolean", - "default": true, - "description": "Use conventional commits format" - } - }, - "additionalProperties": false - } + "GitHubCommitConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/GitHubConnector.json b/packages/spec/json-schema/integration/GitHubConnector.json index a37103a37..89bfbef3a 100644 --- a/packages/spec/json-schema/integration/GitHubConnector.json +++ b/packages/spec/json-schema/integration/GitHubConnector.json @@ -1,1247 +1,7 @@ { "$ref": "#/definitions/GitHubConnector", "definitions": { - "GitHubConnector": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique connector identifier" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "type": { - "type": "string", - "const": "saas" - }, - "description": { - "type": "string", - "description": "Connector description" - }, - "icon": { - "type": "string", - "description": "Icon identifier" - }, - "authentication": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "oauth2", - "description": "Authentication type" - }, - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 authorization endpoint" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 token endpoint" - }, - "clientId": { - "type": "string", - "description": "OAuth2 client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth2 client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth2 scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth2 redirect URI" - }, - "refreshToken": { - "type": "string", - "description": "Refresh token for token renewal" - }, - "tokenExpiry": { - "type": "number", - "description": "Token expiry timestamp" - } - }, - "required": [ - "type", - "authorizationUrl", - "tokenUrl", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "api-key", - "description": "Authentication type" - }, - "key": { - "type": "string", - "description": "API key value" - }, - "headerName": { - "type": "string", - "default": "X-API-Key", - "description": "HTTP header name for API key" - }, - "paramName": { - "type": "string", - "description": "Query parameter name (alternative to header)" - } - }, - "required": [ - "type", - "key" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "basic", - "description": "Authentication type" - }, - "username": { - "type": "string", - "description": "Username" - }, - "password": { - "type": "string", - "description": "Password (typically from ENV)" - } - }, - "required": [ - "type", - "username", - "password" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "bearer", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Bearer token" - } - }, - "required": [ - "type", - "token" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "jwt", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Pre-generated JWT token" - }, - "secretKey": { - "type": "string", - "description": "Secret key for JWT signing" - }, - "algorithm": { - "type": "string", - "enum": [ - "HS256", - "HS384", - "HS512", - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512" - ], - "default": "HS256", - "description": "JWT signing algorithm" - }, - "issuer": { - "type": "string", - "description": "JWT issuer claim" - }, - "audience": { - "type": "string", - "description": "JWT audience claim" - }, - "subject": { - "type": "string", - "description": "JWT subject claim" - }, - "expiresIn": { - "type": "number", - "default": 3600, - "description": "Token expiry in seconds" - }, - "claims": { - "type": "object", - "additionalProperties": {}, - "description": "Additional JWT claims" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "saml", - "description": "Authentication type" - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "SAML IdP entry point URL" - }, - "issuer": { - "type": "string", - "description": "SAML service provider issuer" - }, - "certificate": { - "type": "string", - "description": "SAML IdP certificate (X.509)" - }, - "privateKey": { - "type": "string", - "description": "SAML service provider private key" - }, - "callbackUrl": { - "type": "string", - "format": "uri", - "description": "SAML assertion consumer service URL" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha1", - "sha256", - "sha512" - ], - "default": "sha256", - "description": "SAML signature algorithm" - }, - "wantAssertionsSigned": { - "type": "boolean", - "default": true, - "description": "Require signed SAML assertions" - }, - "identifierFormat": { - "type": "string", - "description": "SAML NameID format" - } - }, - "required": [ - "type", - "entryPoint", - "issuer", - "certificate" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "none", - "description": "No authentication required" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ], - "description": "Authentication configuration" - }, - "syncConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "upsert", - "append_only" - ], - "description": "Synchronization strategy", - "default": "incremental" - }, - "direction": { - "type": "string", - "enum": [ - "import", - "export", - "bidirectional" - ], - "default": "import", - "description": "Sync direction" - }, - "schedule": { - "type": "string", - "description": "Cron expression for scheduled sync" - }, - "realtimeSync": { - "type": "boolean", - "default": false, - "description": "Enable real-time sync" - }, - "timestampField": { - "type": "string", - "description": "Field to track last modification time" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "target_wins", - "latest_wins", - "manual" - ], - "description": "Conflict resolution strategy", - "default": "latest_wins" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "Records per batch" - }, - "deleteMode": { - "type": "string", - "enum": [ - "hard_delete", - "soft_delete", - "ignore" - ], - "default": "soft_delete", - "description": "Delete handling mode" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter criteria for selective sync" - } - }, - "additionalProperties": false, - "description": "Data sync configuration" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Field mapping rules" - }, - "webhooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "sync.started", - "sync.completed", - "sync.failed", - "auth.expired", - "rate_limit.exceeded" - ], - "description": "Webhook event type" - }, - "description": "Connector events to subscribe to" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "hmac_sha256", - "hmac_sha512", - "none" - ], - "description": "Webhook signature algorithm", - "default": "hmac_sha256" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Webhook configurations" - }, - "rateLimitConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "fixed_window", - "sliding_window", - "token_bucket", - "leaky_bucket" - ], - "description": "Rate limiting strategy", - "default": "token_bucket" - }, - "maxRequests": { - "type": "number", - "minimum": 1, - "description": "Maximum requests per window" - }, - "windowSeconds": { - "type": "number", - "minimum": 1, - "description": "Time window in seconds" - }, - "burstCapacity": { - "type": "number", - "minimum": 1, - "description": "Burst capacity" - }, - "respectUpstreamLimits": { - "type": "boolean", - "default": true, - "description": "Respect external rate limit headers" - }, - "rateLimitHeaders": { - "type": "object", - "properties": { - "remaining": { - "type": "string", - "default": "X-RateLimit-Remaining", - "description": "Header for remaining requests" - }, - "limit": { - "type": "string", - "default": "X-RateLimit-Limit", - "description": "Header for rate limit" - }, - "reset": { - "type": "string", - "default": "X-RateLimit-Reset", - "description": "Header for reset time" - } - }, - "additionalProperties": false, - "description": "Custom rate limit headers" - } - }, - "required": [ - "maxRequests", - "windowSeconds" - ], - "additionalProperties": false, - "description": "Rate limiting configuration" - }, - "retryConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "exponential_backoff", - "linear_backoff", - "fixed_delay", - "no_retry" - ], - "description": "Retry strategy", - "default": "exponential_backoff" - }, - "maxAttempts": { - "type": "number", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "initialDelayMs": { - "type": "number", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in ms" - }, - "maxDelayMs": { - "type": "number", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in ms" - }, - "backoffMultiplier": { - "type": "number", - "minimum": 1, - "default": 2, - "description": "Exponential backoff multiplier" - }, - "retryableStatusCodes": { - "type": "array", - "items": { - "type": "number" - }, - "default": [ - 408, - 429, - 500, - 502, - 503, - 504 - ], - "description": "HTTP status codes to retry" - }, - "retryOnNetworkError": { - "type": "boolean", - "default": true, - "description": "Retry on network errors" - }, - "jitter": { - "type": "boolean", - "default": true, - "description": "Add jitter to retry delays" - } - }, - "additionalProperties": false, - "description": "Retry configuration" - }, - "connectionTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Connection timeout in ms" - }, - "requestTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in ms" - }, - "status": { - "type": "string", - "enum": [ - "active", - "inactive", - "error", - "configuring" - ], - "description": "Connector status", - "default": "inactive" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable connector" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom connector metadata" - }, - "provider": { - "type": "string", - "enum": [ - "github", - "github_enterprise" - ], - "description": "GitHub provider" - }, - "baseUrl": { - "type": "string", - "format": "uri", - "default": "https://api.github.com", - "description": "GitHub API base URL" - }, - "repositories": { - "type": "array", - "items": { - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "Repository owner (organization or username)" - }, - "name": { - "type": "string", - "description": "Repository name" - }, - "defaultBranch": { - "type": "string", - "default": "main", - "description": "Default branch name" - }, - "autoMerge": { - "type": "boolean", - "default": false, - "description": "Enable auto-merge for pull requests" - }, - "branchProtection": { - "type": "object", - "properties": { - "requiredReviewers": { - "type": "integer", - "minimum": 0, - "default": 1, - "description": "Required number of reviewers" - }, - "requireStatusChecks": { - "type": "boolean", - "default": true, - "description": "Require status checks to pass" - }, - "enforceAdmins": { - "type": "boolean", - "default": false, - "description": "Enforce protections for admins" - }, - "allowForcePushes": { - "type": "boolean", - "default": false, - "description": "Allow force pushes" - }, - "allowDeletions": { - "type": "boolean", - "default": false, - "description": "Allow branch deletions" - } - }, - "additionalProperties": false, - "description": "Branch protection configuration" - }, - "topics": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Repository topics" - } - }, - "required": [ - "owner", - "name" - ], - "additionalProperties": false - }, - "description": "Repositories to manage" - }, - "commitConfig": { - "type": "object", - "properties": { - "authorName": { - "type": "string", - "description": "Commit author name" - }, - "authorEmail": { - "type": "string", - "format": "email", - "description": "Commit author email" - }, - "signCommits": { - "type": "boolean", - "default": false, - "description": "Sign commits with GPG" - }, - "messageTemplate": { - "type": "string", - "description": "Commit message template" - }, - "useConventionalCommits": { - "type": "boolean", - "default": true, - "description": "Use conventional commits format" - } - }, - "additionalProperties": false, - "description": "Commit configuration" - }, - "pullRequestConfig": { - "type": "object", - "properties": { - "titleTemplate": { - "type": "string", - "description": "PR title template" - }, - "bodyTemplate": { - "type": "string", - "description": "PR body template" - }, - "defaultReviewers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Default reviewers (usernames)" - }, - "defaultAssignees": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Default assignees (usernames)" - }, - "defaultLabels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Default labels" - }, - "draftByDefault": { - "type": "boolean", - "default": false, - "description": "Create draft PRs by default" - }, - "deleteHeadBranch": { - "type": "boolean", - "default": true, - "description": "Delete head branch after merge" - } - }, - "additionalProperties": false, - "description": "Pull request configuration" - }, - "workflows": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Workflow name" - }, - "path": { - "type": "string", - "description": "Workflow file path (e.g., .github/workflows/ci.yml)" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable workflow" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "push", - "pull_request", - "release", - "schedule", - "workflow_dispatch", - "repository_dispatch" - ] - }, - "description": "Workflow triggers" - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables" - }, - "secrets": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required secrets" - } - }, - "required": [ - "name", - "path" - ], - "additionalProperties": false - }, - "description": "GitHub Actions workflows" - }, - "releaseConfig": { - "type": "object", - "properties": { - "tagPattern": { - "type": "string", - "default": "v*", - "description": "Tag name pattern (e.g., v*, release/*)" - }, - "semanticVersioning": { - "type": "boolean", - "default": true, - "description": "Use semantic versioning" - }, - "autoReleaseNotes": { - "type": "boolean", - "default": true, - "description": "Generate release notes automatically" - }, - "releaseNameTemplate": { - "type": "string", - "description": "Release name template" - }, - "preReleasePattern": { - "type": "string", - "description": "Pre-release pattern (e.g., *-alpha, *-beta)" - }, - "draftByDefault": { - "type": "boolean", - "default": false, - "description": "Create draft releases by default" - } - }, - "additionalProperties": false, - "description": "Release configuration" - }, - "issueTracking": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable issue tracking" - }, - "defaultLabels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Default issue labels" - }, - "templatePaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Issue template paths" - }, - "autoAssign": { - "type": "boolean", - "default": false, - "description": "Auto-assign issues" - }, - "autoCloseStale": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "daysBeforeStale": { - "type": "integer", - "minimum": 1, - "default": 60 - }, - "daysBeforeClose": { - "type": "integer", - "minimum": 1, - "default": 7 - }, - "staleLabel": { - "type": "string", - "default": "stale" - } - }, - "additionalProperties": false, - "description": "Auto-close stale issues configuration" - } - }, - "additionalProperties": false, - "description": "Issue tracking configuration" - }, - "enableWebhooks": { - "type": "boolean", - "default": true, - "description": "Enable GitHub webhooks" - }, - "webhookEvents": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "push", - "pull_request", - "issues", - "issue_comment", - "release", - "workflow_run", - "deployment", - "deployment_status", - "check_run", - "check_suite", - "status" - ] - }, - "description": "Webhook events to subscribe to" - } - }, - "required": [ - "name", - "label", - "type", - "authentication", - "provider", - "repositories" - ], - "additionalProperties": false - } + "GitHubConnector": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/GitHubIssueTracking.json b/packages/spec/json-schema/integration/GitHubIssueTracking.json index e8715cb15..5b589324c 100644 --- a/packages/spec/json-schema/integration/GitHubIssueTracking.json +++ b/packages/spec/json-schema/integration/GitHubIssueTracking.json @@ -1,61 +1,7 @@ { "$ref": "#/definitions/GitHubIssueTracking", "definitions": { - "GitHubIssueTracking": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable issue tracking" - }, - "defaultLabels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Default issue labels" - }, - "templatePaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Issue template paths" - }, - "autoAssign": { - "type": "boolean", - "default": false, - "description": "Auto-assign issues" - }, - "autoCloseStale": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "daysBeforeStale": { - "type": "integer", - "minimum": 1, - "default": 60 - }, - "daysBeforeClose": { - "type": "integer", - "minimum": 1, - "default": 7 - }, - "staleLabel": { - "type": "string", - "default": "stale" - } - }, - "additionalProperties": false, - "description": "Auto-close stale issues configuration" - } - }, - "additionalProperties": false - } + "GitHubIssueTracking": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/GitHubProvider.json b/packages/spec/json-schema/integration/GitHubProvider.json index 30b081e29..e2156d006 100644 --- a/packages/spec/json-schema/integration/GitHubProvider.json +++ b/packages/spec/json-schema/integration/GitHubProvider.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/GitHubProvider", "definitions": { - "GitHubProvider": { - "type": "string", - "enum": [ - "github", - "github_enterprise" - ], - "description": "GitHub provider type" - } + "GitHubProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/GitHubPullRequestConfig.json b/packages/spec/json-schema/integration/GitHubPullRequestConfig.json index 24df7753e..b84634230 100644 --- a/packages/spec/json-schema/integration/GitHubPullRequestConfig.json +++ b/packages/spec/json-schema/integration/GitHubPullRequestConfig.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/GitHubPullRequestConfig", "definitions": { - "GitHubPullRequestConfig": { - "type": "object", - "properties": { - "titleTemplate": { - "type": "string", - "description": "PR title template" - }, - "bodyTemplate": { - "type": "string", - "description": "PR body template" - }, - "defaultReviewers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Default reviewers (usernames)" - }, - "defaultAssignees": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Default assignees (usernames)" - }, - "defaultLabels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Default labels" - }, - "draftByDefault": { - "type": "boolean", - "default": false, - "description": "Create draft PRs by default" - }, - "deleteHeadBranch": { - "type": "boolean", - "default": true, - "description": "Delete head branch after merge" - } - }, - "additionalProperties": false - } + "GitHubPullRequestConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/GitHubReleaseConfig.json b/packages/spec/json-schema/integration/GitHubReleaseConfig.json index f84414b20..731c33acd 100644 --- a/packages/spec/json-schema/integration/GitHubReleaseConfig.json +++ b/packages/spec/json-schema/integration/GitHubReleaseConfig.json @@ -1,40 +1,7 @@ { "$ref": "#/definitions/GitHubReleaseConfig", "definitions": { - "GitHubReleaseConfig": { - "type": "object", - "properties": { - "tagPattern": { - "type": "string", - "default": "v*", - "description": "Tag name pattern (e.g., v*, release/*)" - }, - "semanticVersioning": { - "type": "boolean", - "default": true, - "description": "Use semantic versioning" - }, - "autoReleaseNotes": { - "type": "boolean", - "default": true, - "description": "Generate release notes automatically" - }, - "releaseNameTemplate": { - "type": "string", - "description": "Release name template" - }, - "preReleasePattern": { - "type": "string", - "description": "Pre-release pattern (e.g., *-alpha, *-beta)" - }, - "draftByDefault": { - "type": "boolean", - "default": false, - "description": "Create draft releases by default" - } - }, - "additionalProperties": false - } + "GitHubReleaseConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/GitHubRepository.json b/packages/spec/json-schema/integration/GitHubRepository.json index 150529655..ce548b5a6 100644 --- a/packages/spec/json-schema/integration/GitHubRepository.json +++ b/packages/spec/json-schema/integration/GitHubRepository.json @@ -1,74 +1,7 @@ { "$ref": "#/definitions/GitHubRepository", "definitions": { - "GitHubRepository": { - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "Repository owner (organization or username)" - }, - "name": { - "type": "string", - "description": "Repository name" - }, - "defaultBranch": { - "type": "string", - "default": "main", - "description": "Default branch name" - }, - "autoMerge": { - "type": "boolean", - "default": false, - "description": "Enable auto-merge for pull requests" - }, - "branchProtection": { - "type": "object", - "properties": { - "requiredReviewers": { - "type": "integer", - "minimum": 0, - "default": 1, - "description": "Required number of reviewers" - }, - "requireStatusChecks": { - "type": "boolean", - "default": true, - "description": "Require status checks to pass" - }, - "enforceAdmins": { - "type": "boolean", - "default": false, - "description": "Enforce protections for admins" - }, - "allowForcePushes": { - "type": "boolean", - "default": false, - "description": "Allow force pushes" - }, - "allowDeletions": { - "type": "boolean", - "default": false, - "description": "Allow branch deletions" - } - }, - "additionalProperties": false, - "description": "Branch protection configuration" - }, - "topics": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Repository topics" - } - }, - "required": [ - "owner", - "name" - ], - "additionalProperties": false - } + "GitHubRepository": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/GitRepositoryConfig.json b/packages/spec/json-schema/integration/GitRepositoryConfig.json index 8419bf237..00688ee79 100644 --- a/packages/spec/json-schema/integration/GitRepositoryConfig.json +++ b/packages/spec/json-schema/integration/GitRepositoryConfig.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/GitRepositoryConfig", "definitions": { - "GitRepositoryConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "github", - "gitlab", - "bitbucket" - ], - "description": "Git provider" - }, - "repo": { - "type": "string", - "description": "Repository identifier (e.g., owner/repo)" - }, - "productionBranch": { - "type": "string", - "default": "main", - "description": "Production branch name" - }, - "autoDeployProduction": { - "type": "boolean", - "default": true, - "description": "Auto-deploy production branch" - }, - "autoDeployPreview": { - "type": "boolean", - "default": true, - "description": "Auto-deploy preview branches" - } - }, - "required": [ - "type", - "repo" - ], - "additionalProperties": false - } + "GitRepositoryConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/MessageFormat.json b/packages/spec/json-schema/integration/MessageFormat.json index a4090f8cc..abce528c8 100644 --- a/packages/spec/json-schema/integration/MessageFormat.json +++ b/packages/spec/json-schema/integration/MessageFormat.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/MessageFormat", "definitions": { - "MessageFormat": { - "type": "string", - "enum": [ - "json", - "xml", - "protobuf", - "avro", - "text", - "binary" - ], - "description": "Message format/serialization" - } + "MessageFormat": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/MessageQueueConnector.json b/packages/spec/json-schema/integration/MessageQueueConnector.json index 59d1b9817..f44dcecf5 100644 --- a/packages/spec/json-schema/integration/MessageQueueConnector.json +++ b/packages/spec/json-schema/integration/MessageQueueConnector.json @@ -1,1325 +1,7 @@ { "$ref": "#/definitions/MessageQueueConnector", "definitions": { - "MessageQueueConnector": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique connector identifier" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "type": { - "type": "string", - "const": "message_queue" - }, - "description": { - "type": "string", - "description": "Connector description" - }, - "icon": { - "type": "string", - "description": "Icon identifier" - }, - "authentication": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "oauth2", - "description": "Authentication type" - }, - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 authorization endpoint" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 token endpoint" - }, - "clientId": { - "type": "string", - "description": "OAuth2 client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth2 client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth2 scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth2 redirect URI" - }, - "refreshToken": { - "type": "string", - "description": "Refresh token for token renewal" - }, - "tokenExpiry": { - "type": "number", - "description": "Token expiry timestamp" - } - }, - "required": [ - "type", - "authorizationUrl", - "tokenUrl", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "api-key", - "description": "Authentication type" - }, - "key": { - "type": "string", - "description": "API key value" - }, - "headerName": { - "type": "string", - "default": "X-API-Key", - "description": "HTTP header name for API key" - }, - "paramName": { - "type": "string", - "description": "Query parameter name (alternative to header)" - } - }, - "required": [ - "type", - "key" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "basic", - "description": "Authentication type" - }, - "username": { - "type": "string", - "description": "Username" - }, - "password": { - "type": "string", - "description": "Password (typically from ENV)" - } - }, - "required": [ - "type", - "username", - "password" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "bearer", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Bearer token" - } - }, - "required": [ - "type", - "token" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "jwt", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Pre-generated JWT token" - }, - "secretKey": { - "type": "string", - "description": "Secret key for JWT signing" - }, - "algorithm": { - "type": "string", - "enum": [ - "HS256", - "HS384", - "HS512", - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512" - ], - "default": "HS256", - "description": "JWT signing algorithm" - }, - "issuer": { - "type": "string", - "description": "JWT issuer claim" - }, - "audience": { - "type": "string", - "description": "JWT audience claim" - }, - "subject": { - "type": "string", - "description": "JWT subject claim" - }, - "expiresIn": { - "type": "number", - "default": 3600, - "description": "Token expiry in seconds" - }, - "claims": { - "type": "object", - "additionalProperties": {}, - "description": "Additional JWT claims" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "saml", - "description": "Authentication type" - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "SAML IdP entry point URL" - }, - "issuer": { - "type": "string", - "description": "SAML service provider issuer" - }, - "certificate": { - "type": "string", - "description": "SAML IdP certificate (X.509)" - }, - "privateKey": { - "type": "string", - "description": "SAML service provider private key" - }, - "callbackUrl": { - "type": "string", - "format": "uri", - "description": "SAML assertion consumer service URL" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha1", - "sha256", - "sha512" - ], - "default": "sha256", - "description": "SAML signature algorithm" - }, - "wantAssertionsSigned": { - "type": "boolean", - "default": true, - "description": "Require signed SAML assertions" - }, - "identifierFormat": { - "type": "string", - "description": "SAML NameID format" - } - }, - "required": [ - "type", - "entryPoint", - "issuer", - "certificate" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "none", - "description": "No authentication required" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ], - "description": "Authentication configuration" - }, - "syncConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "upsert", - "append_only" - ], - "description": "Synchronization strategy", - "default": "incremental" - }, - "direction": { - "type": "string", - "enum": [ - "import", - "export", - "bidirectional" - ], - "default": "import", - "description": "Sync direction" - }, - "schedule": { - "type": "string", - "description": "Cron expression for scheduled sync" - }, - "realtimeSync": { - "type": "boolean", - "default": false, - "description": "Enable real-time sync" - }, - "timestampField": { - "type": "string", - "description": "Field to track last modification time" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "target_wins", - "latest_wins", - "manual" - ], - "description": "Conflict resolution strategy", - "default": "latest_wins" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "Records per batch" - }, - "deleteMode": { - "type": "string", - "enum": [ - "hard_delete", - "soft_delete", - "ignore" - ], - "default": "soft_delete", - "description": "Delete handling mode" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter criteria for selective sync" - } - }, - "additionalProperties": false, - "description": "Data sync configuration" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Field mapping rules" - }, - "webhooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "sync.started", - "sync.completed", - "sync.failed", - "auth.expired", - "rate_limit.exceeded" - ], - "description": "Webhook event type" - }, - "description": "Connector events to subscribe to" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "hmac_sha256", - "hmac_sha512", - "none" - ], - "description": "Webhook signature algorithm", - "default": "hmac_sha256" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Webhook configurations" - }, - "rateLimitConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "fixed_window", - "sliding_window", - "token_bucket", - "leaky_bucket" - ], - "description": "Rate limiting strategy", - "default": "token_bucket" - }, - "maxRequests": { - "type": "number", - "minimum": 1, - "description": "Maximum requests per window" - }, - "windowSeconds": { - "type": "number", - "minimum": 1, - "description": "Time window in seconds" - }, - "burstCapacity": { - "type": "number", - "minimum": 1, - "description": "Burst capacity" - }, - "respectUpstreamLimits": { - "type": "boolean", - "default": true, - "description": "Respect external rate limit headers" - }, - "rateLimitHeaders": { - "type": "object", - "properties": { - "remaining": { - "type": "string", - "default": "X-RateLimit-Remaining", - "description": "Header for remaining requests" - }, - "limit": { - "type": "string", - "default": "X-RateLimit-Limit", - "description": "Header for rate limit" - }, - "reset": { - "type": "string", - "default": "X-RateLimit-Reset", - "description": "Header for reset time" - } - }, - "additionalProperties": false, - "description": "Custom rate limit headers" - } - }, - "required": [ - "maxRequests", - "windowSeconds" - ], - "additionalProperties": false, - "description": "Rate limiting configuration" - }, - "retryConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "exponential_backoff", - "linear_backoff", - "fixed_delay", - "no_retry" - ], - "description": "Retry strategy", - "default": "exponential_backoff" - }, - "maxAttempts": { - "type": "number", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "initialDelayMs": { - "type": "number", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in ms" - }, - "maxDelayMs": { - "type": "number", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in ms" - }, - "backoffMultiplier": { - "type": "number", - "minimum": 1, - "default": 2, - "description": "Exponential backoff multiplier" - }, - "retryableStatusCodes": { - "type": "array", - "items": { - "type": "number" - }, - "default": [ - 408, - 429, - 500, - 502, - 503, - 504 - ], - "description": "HTTP status codes to retry" - }, - "retryOnNetworkError": { - "type": "boolean", - "default": true, - "description": "Retry on network errors" - }, - "jitter": { - "type": "boolean", - "default": true, - "description": "Add jitter to retry delays" - } - }, - "additionalProperties": false, - "description": "Retry configuration" - }, - "connectionTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Connection timeout in ms" - }, - "requestTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in ms" - }, - "status": { - "type": "string", - "enum": [ - "active", - "inactive", - "error", - "configuring" - ], - "description": "Connector status", - "default": "inactive" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable connector" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom connector metadata" - }, - "provider": { - "type": "string", - "enum": [ - "rabbitmq", - "kafka", - "redis_pubsub", - "redis_streams", - "aws_sqs", - "aws_sns", - "google_pubsub", - "azure_service_bus", - "azure_event_hubs", - "nats", - "pulsar", - "activemq", - "custom" - ], - "description": "Message queue provider type" - }, - "brokerConfig": { - "type": "object", - "properties": { - "brokers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Broker addresses (host:port)" - }, - "clientId": { - "type": "string", - "description": "Client ID" - }, - "connectionTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Connection timeout in ms" - }, - "requestTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Request timeout in ms" - } - }, - "required": [ - "brokers" - ], - "additionalProperties": false, - "description": "Broker connection configuration" - }, - "topics": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Topic/queue identifier in ObjectStack (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "topicName": { - "type": "string", - "description": "Actual topic/queue name in message queue system" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable sync for this topic/queue" - }, - "mode": { - "type": "string", - "enum": [ - "consumer", - "producer", - "both" - ], - "default": "both", - "description": "Consumer, producer, or both" - }, - "messageFormat": { - "type": "string", - "enum": [ - "json", - "xml", - "protobuf", - "avro", - "text", - "binary" - ], - "description": "Message format/serialization", - "default": "json" - }, - "partitions": { - "type": "number", - "minimum": 1, - "description": "Number of partitions (for Kafka)" - }, - "replicationFactor": { - "type": "number", - "minimum": 1, - "description": "Replication factor (for Kafka)" - }, - "consumerConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable consumer" - }, - "consumerGroup": { - "type": "string", - "description": "Consumer group ID" - }, - "concurrency": { - "type": "number", - "minimum": 1, - "maximum": 100, - "default": 1, - "description": "Number of concurrent consumers" - }, - "prefetchCount": { - "type": "number", - "minimum": 1, - "maximum": 1000, - "default": 10, - "description": "Prefetch count" - }, - "ackMode": { - "type": "string", - "enum": [ - "auto", - "manual", - "client" - ], - "description": "Message acknowledgment mode", - "default": "manual" - }, - "autoCommit": { - "type": "boolean", - "default": false, - "description": "Auto-commit offsets" - }, - "autoCommitIntervalMs": { - "type": "number", - "minimum": 100, - "default": 5000, - "description": "Auto-commit interval in ms" - }, - "sessionTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Session timeout in ms" - }, - "rebalanceTimeoutMs": { - "type": "number", - "minimum": 1000, - "description": "Rebalance timeout in ms" - } - }, - "additionalProperties": false, - "description": "Consumer-specific configuration" - }, - "producerConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable producer" - }, - "acks": { - "type": "string", - "enum": [ - "0", - "1", - "all" - ], - "default": "all", - "description": "Acknowledgment level" - }, - "compressionType": { - "type": "string", - "enum": [ - "none", - "gzip", - "snappy", - "lz4", - "zstd" - ], - "default": "none", - "description": "Compression type" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "default": 16384, - "description": "Batch size in bytes" - }, - "lingerMs": { - "type": "number", - "minimum": 0, - "default": 0, - "description": "Linger time in ms" - }, - "maxInFlightRequests": { - "type": "number", - "minimum": 1, - "default": 5, - "description": "Max in-flight requests" - }, - "idempotence": { - "type": "boolean", - "default": true, - "description": "Enable idempotent producer" - }, - "transactional": { - "type": "boolean", - "default": false, - "description": "Enable transactional producer" - }, - "transactionTimeoutMs": { - "type": "number", - "minimum": 1000, - "description": "Transaction timeout in ms" - } - }, - "additionalProperties": false, - "description": "Producer-specific configuration" - }, - "dlqConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable DLQ" - }, - "queueName": { - "type": "string", - "description": "Dead letter queue/topic name" - }, - "maxRetries": { - "type": "number", - "minimum": 0, - "maximum": 100, - "default": 3, - "description": "Max retries before DLQ" - }, - "retryDelayMs": { - "type": "number", - "minimum": 0, - "default": 60000, - "description": "Retry delay in ms" - } - }, - "required": [ - "queueName" - ], - "additionalProperties": false, - "description": "Dead letter queue configuration" - }, - "routingKey": { - "type": "string", - "description": "Routing key pattern" - }, - "messageFilter": { - "type": "object", - "properties": { - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Filter by message headers" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Filter by message attributes" - } - }, - "additionalProperties": false, - "description": "Message filter criteria" - } - }, - "required": [ - "name", - "label", - "topicName" - ], - "additionalProperties": false - }, - "description": "Topics/queues to sync" - }, - "deliveryGuarantee": { - "type": "string", - "enum": [ - "at_most_once", - "at_least_once", - "exactly_once" - ], - "description": "Message delivery guarantee", - "default": "at_least_once" - }, - "sslConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable SSL/TLS" - }, - "rejectUnauthorized": { - "type": "boolean", - "default": true, - "description": "Reject unauthorized certificates" - }, - "ca": { - "type": "string", - "description": "CA certificate" - }, - "cert": { - "type": "string", - "description": "Client certificate" - }, - "key": { - "type": "string", - "description": "Client private key" - } - }, - "additionalProperties": false, - "description": "SSL/TLS configuration" - }, - "saslConfig": { - "type": "object", - "properties": { - "mechanism": { - "type": "string", - "enum": [ - "plain", - "scram-sha-256", - "scram-sha-512", - "aws" - ], - "description": "SASL mechanism" - }, - "username": { - "type": "string", - "description": "SASL username" - }, - "password": { - "type": "string", - "description": "SASL password" - } - }, - "required": [ - "mechanism" - ], - "additionalProperties": false, - "description": "SASL authentication configuration" - }, - "schemaRegistry": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "description": "Schema registry URL" - }, - "auth": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "additionalProperties": false - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Schema registry configuration" - }, - "preserveOrder": { - "type": "boolean", - "default": true, - "description": "Preserve message ordering" - }, - "enableMetrics": { - "type": "boolean", - "default": true, - "description": "Enable message queue metrics" - }, - "enableTracing": { - "type": "boolean", - "default": false, - "description": "Enable distributed tracing" - } - }, - "required": [ - "name", - "label", - "type", - "authentication", - "provider", - "brokerConfig", - "topics" - ], - "additionalProperties": false - } + "MessageQueueConnector": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/MessageQueueProvider.json b/packages/spec/json-schema/integration/MessageQueueProvider.json index 748908f29..e3067a1fa 100644 --- a/packages/spec/json-schema/integration/MessageQueueProvider.json +++ b/packages/spec/json-schema/integration/MessageQueueProvider.json @@ -1,25 +1,7 @@ { "$ref": "#/definitions/MessageQueueProvider", "definitions": { - "MessageQueueProvider": { - "type": "string", - "enum": [ - "rabbitmq", - "kafka", - "redis_pubsub", - "redis_streams", - "aws_sqs", - "aws_sns", - "google_pubsub", - "azure_service_bus", - "azure_event_hubs", - "nats", - "pulsar", - "activemq", - "custom" - ], - "description": "Message queue provider type" - } + "MessageQueueProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/MultipartUploadConfig.json b/packages/spec/json-schema/integration/MultipartUploadConfig.json index 118f67295..769457515 100644 --- a/packages/spec/json-schema/integration/MultipartUploadConfig.json +++ b/packages/spec/json-schema/integration/MultipartUploadConfig.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/MultipartUploadConfig", "definitions": { - "MultipartUploadConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable multipart uploads" - }, - "partSize": { - "type": "number", - "minimum": 5242880, - "default": 5242880, - "description": "Part size in bytes (min 5MB)" - }, - "maxConcurrentParts": { - "type": "number", - "minimum": 1, - "maximum": 10, - "default": 5, - "description": "Maximum concurrent part uploads" - }, - "threshold": { - "type": "number", - "minimum": 5242880, - "default": 104857600, - "description": "File size threshold for multipart upload in bytes" - } - }, - "additionalProperties": false - } + "MultipartUploadConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/ProducerConfig.json b/packages/spec/json-schema/integration/ProducerConfig.json index fee6dd42e..b1adb9a34 100644 --- a/packages/spec/json-schema/integration/ProducerConfig.json +++ b/packages/spec/json-schema/integration/ProducerConfig.json @@ -1,72 +1,7 @@ { "$ref": "#/definitions/ProducerConfig", "definitions": { - "ProducerConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable producer" - }, - "acks": { - "type": "string", - "enum": [ - "0", - "1", - "all" - ], - "default": "all", - "description": "Acknowledgment level" - }, - "compressionType": { - "type": "string", - "enum": [ - "none", - "gzip", - "snappy", - "lz4", - "zstd" - ], - "default": "none", - "description": "Compression type" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "default": 16384, - "description": "Batch size in bytes" - }, - "lingerMs": { - "type": "number", - "minimum": 0, - "default": 0, - "description": "Linger time in ms" - }, - "maxInFlightRequests": { - "type": "number", - "minimum": 1, - "default": 5, - "description": "Max in-flight requests" - }, - "idempotence": { - "type": "boolean", - "default": true, - "description": "Enable idempotent producer" - }, - "transactional": { - "type": "boolean", - "default": false, - "description": "Enable transactional producer" - }, - "transactionTimeoutMs": { - "type": "number", - "minimum": 1000, - "description": "Transaction timeout in ms" - } - }, - "additionalProperties": false - } + "ProducerConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/RateLimitConfig.json b/packages/spec/json-schema/integration/RateLimitConfig.json index 144648410..492ba2040 100644 --- a/packages/spec/json-schema/integration/RateLimitConfig.json +++ b/packages/spec/json-schema/integration/RateLimitConfig.json @@ -1,69 +1,7 @@ { "$ref": "#/definitions/RateLimitConfig", "definitions": { - "RateLimitConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "fixed_window", - "sliding_window", - "token_bucket", - "leaky_bucket" - ], - "description": "Rate limiting strategy", - "default": "token_bucket" - }, - "maxRequests": { - "type": "number", - "minimum": 1, - "description": "Maximum requests per window" - }, - "windowSeconds": { - "type": "number", - "minimum": 1, - "description": "Time window in seconds" - }, - "burstCapacity": { - "type": "number", - "minimum": 1, - "description": "Burst capacity" - }, - "respectUpstreamLimits": { - "type": "boolean", - "default": true, - "description": "Respect external rate limit headers" - }, - "rateLimitHeaders": { - "type": "object", - "properties": { - "remaining": { - "type": "string", - "default": "X-RateLimit-Remaining", - "description": "Header for remaining requests" - }, - "limit": { - "type": "string", - "default": "X-RateLimit-Limit", - "description": "Header for rate limit" - }, - "reset": { - "type": "string", - "default": "X-RateLimit-Reset", - "description": "Header for reset time" - } - }, - "additionalProperties": false, - "description": "Custom rate limit headers" - } - }, - "required": [ - "maxRequests", - "windowSeconds" - ], - "additionalProperties": false - } + "RateLimitConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/RateLimitStrategy.json b/packages/spec/json-schema/integration/RateLimitStrategy.json index c4fae0815..46cf54c7c 100644 --- a/packages/spec/json-schema/integration/RateLimitStrategy.json +++ b/packages/spec/json-schema/integration/RateLimitStrategy.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/RateLimitStrategy", "definitions": { - "RateLimitStrategy": { - "type": "string", - "enum": [ - "fixed_window", - "sliding_window", - "token_bucket", - "leaky_bucket" - ], - "description": "Rate limiting strategy" - } + "RateLimitStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/RetryConfig.json b/packages/spec/json-schema/integration/RetryConfig.json index 8dd7fca6e..36c5692f2 100644 --- a/packages/spec/json-schema/integration/RetryConfig.json +++ b/packages/spec/json-schema/integration/RetryConfig.json @@ -1,73 +1,7 @@ { "$ref": "#/definitions/RetryConfig", "definitions": { - "RetryConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "exponential_backoff", - "linear_backoff", - "fixed_delay", - "no_retry" - ], - "description": "Retry strategy", - "default": "exponential_backoff" - }, - "maxAttempts": { - "type": "number", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "initialDelayMs": { - "type": "number", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in ms" - }, - "maxDelayMs": { - "type": "number", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in ms" - }, - "backoffMultiplier": { - "type": "number", - "minimum": 1, - "default": 2, - "description": "Exponential backoff multiplier" - }, - "retryableStatusCodes": { - "type": "array", - "items": { - "type": "number" - }, - "default": [ - 408, - 429, - 500, - 502, - 503, - 504 - ], - "description": "HTTP status codes to retry" - }, - "retryOnNetworkError": { - "type": "boolean", - "default": true, - "description": "Retry on network errors" - }, - "jitter": { - "type": "boolean", - "default": true, - "description": "Add jitter to retry delays" - } - }, - "additionalProperties": false - } + "RetryConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/RetryStrategy.json b/packages/spec/json-schema/integration/RetryStrategy.json index ebb0f30ce..595a0b773 100644 --- a/packages/spec/json-schema/integration/RetryStrategy.json +++ b/packages/spec/json-schema/integration/RetryStrategy.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/RetryStrategy", "definitions": { - "RetryStrategy": { - "type": "string", - "enum": [ - "exponential_backoff", - "linear_backoff", - "fixed_delay", - "no_retry" - ], - "description": "Retry strategy" - } + "RetryStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/SaasConnector.json b/packages/spec/json-schema/integration/SaasConnector.json index a09871674..dbda30adf 100644 --- a/packages/spec/json-schema/integration/SaasConnector.json +++ b/packages/spec/json-schema/integration/SaasConnector.json @@ -1,1267 +1,7 @@ { "$ref": "#/definitions/SaasConnector", "definitions": { - "SaasConnector": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique connector identifier" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "type": { - "type": "string", - "const": "saas" - }, - "description": { - "type": "string", - "description": "Connector description" - }, - "icon": { - "type": "string", - "description": "Icon identifier" - }, - "authentication": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "oauth2", - "description": "Authentication type" - }, - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 authorization endpoint" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 token endpoint" - }, - "clientId": { - "type": "string", - "description": "OAuth2 client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth2 client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth2 scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth2 redirect URI" - }, - "refreshToken": { - "type": "string", - "description": "Refresh token for token renewal" - }, - "tokenExpiry": { - "type": "number", - "description": "Token expiry timestamp" - } - }, - "required": [ - "type", - "authorizationUrl", - "tokenUrl", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "api-key", - "description": "Authentication type" - }, - "key": { - "type": "string", - "description": "API key value" - }, - "headerName": { - "type": "string", - "default": "X-API-Key", - "description": "HTTP header name for API key" - }, - "paramName": { - "type": "string", - "description": "Query parameter name (alternative to header)" - } - }, - "required": [ - "type", - "key" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "basic", - "description": "Authentication type" - }, - "username": { - "type": "string", - "description": "Username" - }, - "password": { - "type": "string", - "description": "Password (typically from ENV)" - } - }, - "required": [ - "type", - "username", - "password" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "bearer", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Bearer token" - } - }, - "required": [ - "type", - "token" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "jwt", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Pre-generated JWT token" - }, - "secretKey": { - "type": "string", - "description": "Secret key for JWT signing" - }, - "algorithm": { - "type": "string", - "enum": [ - "HS256", - "HS384", - "HS512", - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512" - ], - "default": "HS256", - "description": "JWT signing algorithm" - }, - "issuer": { - "type": "string", - "description": "JWT issuer claim" - }, - "audience": { - "type": "string", - "description": "JWT audience claim" - }, - "subject": { - "type": "string", - "description": "JWT subject claim" - }, - "expiresIn": { - "type": "number", - "default": 3600, - "description": "Token expiry in seconds" - }, - "claims": { - "type": "object", - "additionalProperties": {}, - "description": "Additional JWT claims" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "saml", - "description": "Authentication type" - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "SAML IdP entry point URL" - }, - "issuer": { - "type": "string", - "description": "SAML service provider issuer" - }, - "certificate": { - "type": "string", - "description": "SAML IdP certificate (X.509)" - }, - "privateKey": { - "type": "string", - "description": "SAML service provider private key" - }, - "callbackUrl": { - "type": "string", - "format": "uri", - "description": "SAML assertion consumer service URL" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha1", - "sha256", - "sha512" - ], - "default": "sha256", - "description": "SAML signature algorithm" - }, - "wantAssertionsSigned": { - "type": "boolean", - "default": true, - "description": "Require signed SAML assertions" - }, - "identifierFormat": { - "type": "string", - "description": "SAML NameID format" - } - }, - "required": [ - "type", - "entryPoint", - "issuer", - "certificate" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "none", - "description": "No authentication required" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ], - "description": "Authentication configuration" - }, - "syncConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "upsert", - "append_only" - ], - "description": "Synchronization strategy", - "default": "incremental" - }, - "direction": { - "type": "string", - "enum": [ - "import", - "export", - "bidirectional" - ], - "default": "import", - "description": "Sync direction" - }, - "schedule": { - "type": "string", - "description": "Cron expression for scheduled sync" - }, - "realtimeSync": { - "type": "boolean", - "default": false, - "description": "Enable real-time sync" - }, - "timestampField": { - "type": "string", - "description": "Field to track last modification time" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "target_wins", - "latest_wins", - "manual" - ], - "description": "Conflict resolution strategy", - "default": "latest_wins" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "Records per batch" - }, - "deleteMode": { - "type": "string", - "enum": [ - "hard_delete", - "soft_delete", - "ignore" - ], - "default": "soft_delete", - "description": "Delete handling mode" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter criteria for selective sync" - } - }, - "additionalProperties": false, - "description": "Data sync configuration" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Field mapping rules" - }, - "webhooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "sync.started", - "sync.completed", - "sync.failed", - "auth.expired", - "rate_limit.exceeded" - ], - "description": "Webhook event type" - }, - "description": "Connector events to subscribe to" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "hmac_sha256", - "hmac_sha512", - "none" - ], - "description": "Webhook signature algorithm", - "default": "hmac_sha256" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Webhook configurations" - }, - "rateLimitConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "fixed_window", - "sliding_window", - "token_bucket", - "leaky_bucket" - ], - "description": "Rate limiting strategy", - "default": "token_bucket" - }, - "maxRequests": { - "type": "number", - "minimum": 1, - "description": "Maximum requests per window" - }, - "windowSeconds": { - "type": "number", - "minimum": 1, - "description": "Time window in seconds" - }, - "burstCapacity": { - "type": "number", - "minimum": 1, - "description": "Burst capacity" - }, - "respectUpstreamLimits": { - "type": "boolean", - "default": true, - "description": "Respect external rate limit headers" - }, - "rateLimitHeaders": { - "type": "object", - "properties": { - "remaining": { - "type": "string", - "default": "X-RateLimit-Remaining", - "description": "Header for remaining requests" - }, - "limit": { - "type": "string", - "default": "X-RateLimit-Limit", - "description": "Header for rate limit" - }, - "reset": { - "type": "string", - "default": "X-RateLimit-Reset", - "description": "Header for reset time" - } - }, - "additionalProperties": false, - "description": "Custom rate limit headers" - } - }, - "required": [ - "maxRequests", - "windowSeconds" - ], - "additionalProperties": false, - "description": "Rate limiting configuration" - }, - "retryConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "exponential_backoff", - "linear_backoff", - "fixed_delay", - "no_retry" - ], - "description": "Retry strategy", - "default": "exponential_backoff" - }, - "maxAttempts": { - "type": "number", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "initialDelayMs": { - "type": "number", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in ms" - }, - "maxDelayMs": { - "type": "number", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in ms" - }, - "backoffMultiplier": { - "type": "number", - "minimum": 1, - "default": 2, - "description": "Exponential backoff multiplier" - }, - "retryableStatusCodes": { - "type": "array", - "items": { - "type": "number" - }, - "default": [ - 408, - 429, - 500, - 502, - 503, - 504 - ], - "description": "HTTP status codes to retry" - }, - "retryOnNetworkError": { - "type": "boolean", - "default": true, - "description": "Retry on network errors" - }, - "jitter": { - "type": "boolean", - "default": true, - "description": "Add jitter to retry delays" - } - }, - "additionalProperties": false, - "description": "Retry configuration" - }, - "connectionTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Connection timeout in ms" - }, - "requestTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in ms" - }, - "status": { - "type": "string", - "enum": [ - "active", - "inactive", - "error", - "configuring" - ], - "description": "Connector status", - "default": "inactive" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable connector" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom connector metadata" - }, - "provider": { - "type": "string", - "enum": [ - "salesforce", - "hubspot", - "stripe", - "shopify", - "zendesk", - "intercom", - "mailchimp", - "slack", - "microsoft_dynamics", - "servicenow", - "netsuite", - "custom" - ], - "description": "SaaS provider type" - }, - "baseUrl": { - "type": "string", - "format": "uri", - "description": "API base URL" - }, - "apiVersion": { - "type": "object", - "properties": { - "version": { - "type": "string", - "description": "API version (e.g., \"v2\", \"2023-10-01\")" - }, - "isDefault": { - "type": "boolean", - "default": false, - "description": "Is this the default version" - }, - "deprecationDate": { - "type": "string", - "description": "API version deprecation date (ISO 8601)" - }, - "sunsetDate": { - "type": "string", - "description": "API version sunset date (ISO 8601)" - } - }, - "required": [ - "version" - ], - "additionalProperties": false, - "description": "API version configuration" - }, - "objectTypes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Object type name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "apiName": { - "type": "string", - "description": "API name in external system" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable sync for this object" - }, - "supportsCreate": { - "type": "boolean", - "default": true, - "description": "Supports record creation" - }, - "supportsUpdate": { - "type": "boolean", - "default": true, - "description": "Supports record updates" - }, - "supportsDelete": { - "type": "boolean", - "default": true, - "description": "Supports record deletion" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Object-specific field mappings" - } - }, - "required": [ - "name", - "label", - "apiName" - ], - "additionalProperties": false - }, - "description": "Syncable object types" - }, - "oauthSettings": { - "type": "object", - "properties": { - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required OAuth scopes" - }, - "refreshTokenUrl": { - "type": "string", - "format": "uri", - "description": "Token refresh endpoint" - }, - "revokeTokenUrl": { - "type": "string", - "format": "uri", - "description": "Token revocation endpoint" - }, - "autoRefresh": { - "type": "boolean", - "default": true, - "description": "Automatically refresh expired tokens" - } - }, - "required": [ - "scopes" - ], - "additionalProperties": false, - "description": "OAuth-specific configuration" - }, - "paginationConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "cursor", - "offset", - "page" - ], - "default": "cursor", - "description": "Pagination type" - }, - "defaultPageSize": { - "type": "number", - "minimum": 1, - "maximum": 1000, - "default": 100, - "description": "Default page size" - }, - "maxPageSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "Maximum page size" - } - }, - "additionalProperties": false, - "description": "Pagination configuration" - }, - "sandboxConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Use sandbox environment" - }, - "baseUrl": { - "type": "string", - "format": "uri", - "description": "Sandbox API base URL" - } - }, - "additionalProperties": false, - "description": "Sandbox environment configuration" - }, - "customHeaders": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers for all requests" - } - }, - "required": [ - "name", - "label", - "type", - "authentication", - "provider", - "baseUrl", - "objectTypes" - ], - "additionalProperties": false - } + "SaasConnector": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/SaasObjectType.json b/packages/spec/json-schema/integration/SaasObjectType.json index d1f71bf48..fd3a6a55e 100644 --- a/packages/spec/json-schema/integration/SaasObjectType.json +++ b/packages/spec/json-schema/integration/SaasObjectType.json @@ -1,218 +1,7 @@ { "$ref": "#/definitions/SaasObjectType", "definitions": { - "SaasObjectType": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Object type name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "apiName": { - "type": "string", - "description": "API name in external system" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable sync for this object" - }, - "supportsCreate": { - "type": "boolean", - "default": true, - "description": "Supports record creation" - }, - "supportsUpdate": { - "type": "boolean", - "default": true, - "description": "Supports record updates" - }, - "supportsDelete": { - "type": "boolean", - "default": true, - "description": "Supports record deletion" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Object-specific field mappings" - } - }, - "required": [ - "name", - "label", - "apiName" - ], - "additionalProperties": false - } + "SaasObjectType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/SaasProvider.json b/packages/spec/json-schema/integration/SaasProvider.json index d73280ee2..e04dacd06 100644 --- a/packages/spec/json-schema/integration/SaasProvider.json +++ b/packages/spec/json-schema/integration/SaasProvider.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/SaasProvider", "definitions": { - "SaasProvider": { - "type": "string", - "enum": [ - "salesforce", - "hubspot", - "stripe", - "shopify", - "zendesk", - "intercom", - "mailchimp", - "slack", - "microsoft_dynamics", - "servicenow", - "netsuite", - "custom" - ], - "description": "SaaS provider type" - } + "SaasProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/SslConfig.json b/packages/spec/json-schema/integration/SslConfig.json index 27688e971..42224a28b 100644 --- a/packages/spec/json-schema/integration/SslConfig.json +++ b/packages/spec/json-schema/integration/SslConfig.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/SslConfig", "definitions": { - "SslConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable SSL/TLS" - }, - "rejectUnauthorized": { - "type": "boolean", - "default": true, - "description": "Reject unauthorized certificates" - }, - "ca": { - "type": "string", - "description": "Certificate Authority certificate" - }, - "cert": { - "type": "string", - "description": "Client certificate" - }, - "key": { - "type": "string", - "description": "Client private key" - } - }, - "additionalProperties": false - } + "SslConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/StorageBucket.json b/packages/spec/json-schema/integration/StorageBucket.json index a42780be9..7043de63e 100644 --- a/packages/spec/json-schema/integration/StorageBucket.json +++ b/packages/spec/json-schema/integration/StorageBucket.json @@ -1,99 +1,7 @@ { "$ref": "#/definitions/StorageBucket", "definitions": { - "StorageBucket": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Bucket identifier in ObjectStack (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "bucketName": { - "type": "string", - "description": "Actual bucket/container name in storage system" - }, - "region": { - "type": "string", - "description": "Storage region" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable sync for this bucket" - }, - "prefix": { - "type": "string", - "description": "Prefix/path within bucket" - }, - "accessPattern": { - "type": "string", - "enum": [ - "public_read", - "private", - "authenticated_read", - "bucket_owner_read", - "bucket_owner_full" - ], - "description": "Access pattern" - }, - "fileFilters": { - "type": "object", - "properties": { - "includePatterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "File patterns to include (glob)" - }, - "excludePatterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "File patterns to exclude (glob)" - }, - "minFileSize": { - "type": "number", - "minimum": 0, - "description": "Minimum file size in bytes" - }, - "maxFileSize": { - "type": "number", - "minimum": 1, - "description": "Maximum file size in bytes" - }, - "allowedExtensions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed file extensions" - }, - "blockedExtensions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked file extensions" - } - }, - "additionalProperties": false, - "description": "File filter configuration" - } - }, - "required": [ - "name", - "label", - "bucketName" - ], - "additionalProperties": false - } + "StorageBucket": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/SyncStrategy.json b/packages/spec/json-schema/integration/SyncStrategy.json index f48df7c84..0fd1e50fb 100644 --- a/packages/spec/json-schema/integration/SyncStrategy.json +++ b/packages/spec/json-schema/integration/SyncStrategy.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/SyncStrategy", "definitions": { - "SyncStrategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "upsert", - "append_only" - ], - "description": "Synchronization strategy" - } + "SyncStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/TopicQueue.json b/packages/spec/json-schema/integration/TopicQueue.json index 0860da236..05b84b90f 100644 --- a/packages/spec/json-schema/integration/TopicQueue.json +++ b/packages/spec/json-schema/integration/TopicQueue.json @@ -1,252 +1,7 @@ { "$ref": "#/definitions/TopicQueue", "definitions": { - "TopicQueue": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Topic/queue identifier in ObjectStack (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "topicName": { - "type": "string", - "description": "Actual topic/queue name in message queue system" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable sync for this topic/queue" - }, - "mode": { - "type": "string", - "enum": [ - "consumer", - "producer", - "both" - ], - "default": "both", - "description": "Consumer, producer, or both" - }, - "messageFormat": { - "type": "string", - "enum": [ - "json", - "xml", - "protobuf", - "avro", - "text", - "binary" - ], - "description": "Message format/serialization", - "default": "json" - }, - "partitions": { - "type": "number", - "minimum": 1, - "description": "Number of partitions (for Kafka)" - }, - "replicationFactor": { - "type": "number", - "minimum": 1, - "description": "Replication factor (for Kafka)" - }, - "consumerConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable consumer" - }, - "consumerGroup": { - "type": "string", - "description": "Consumer group ID" - }, - "concurrency": { - "type": "number", - "minimum": 1, - "maximum": 100, - "default": 1, - "description": "Number of concurrent consumers" - }, - "prefetchCount": { - "type": "number", - "minimum": 1, - "maximum": 1000, - "default": 10, - "description": "Prefetch count" - }, - "ackMode": { - "type": "string", - "enum": [ - "auto", - "manual", - "client" - ], - "description": "Message acknowledgment mode", - "default": "manual" - }, - "autoCommit": { - "type": "boolean", - "default": false, - "description": "Auto-commit offsets" - }, - "autoCommitIntervalMs": { - "type": "number", - "minimum": 100, - "default": 5000, - "description": "Auto-commit interval in ms" - }, - "sessionTimeoutMs": { - "type": "number", - "minimum": 1000, - "default": 30000, - "description": "Session timeout in ms" - }, - "rebalanceTimeoutMs": { - "type": "number", - "minimum": 1000, - "description": "Rebalance timeout in ms" - } - }, - "additionalProperties": false, - "description": "Consumer-specific configuration" - }, - "producerConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable producer" - }, - "acks": { - "type": "string", - "enum": [ - "0", - "1", - "all" - ], - "default": "all", - "description": "Acknowledgment level" - }, - "compressionType": { - "type": "string", - "enum": [ - "none", - "gzip", - "snappy", - "lz4", - "zstd" - ], - "default": "none", - "description": "Compression type" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "default": 16384, - "description": "Batch size in bytes" - }, - "lingerMs": { - "type": "number", - "minimum": 0, - "default": 0, - "description": "Linger time in ms" - }, - "maxInFlightRequests": { - "type": "number", - "minimum": 1, - "default": 5, - "description": "Max in-flight requests" - }, - "idempotence": { - "type": "boolean", - "default": true, - "description": "Enable idempotent producer" - }, - "transactional": { - "type": "boolean", - "default": false, - "description": "Enable transactional producer" - }, - "transactionTimeoutMs": { - "type": "number", - "minimum": 1000, - "description": "Transaction timeout in ms" - } - }, - "additionalProperties": false, - "description": "Producer-specific configuration" - }, - "dlqConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable DLQ" - }, - "queueName": { - "type": "string", - "description": "Dead letter queue/topic name" - }, - "maxRetries": { - "type": "number", - "minimum": 0, - "maximum": 100, - "default": 3, - "description": "Max retries before DLQ" - }, - "retryDelayMs": { - "type": "number", - "minimum": 0, - "default": 60000, - "description": "Retry delay in ms" - } - }, - "required": [ - "queueName" - ], - "additionalProperties": false, - "description": "Dead letter queue configuration" - }, - "routingKey": { - "type": "string", - "description": "Routing key pattern" - }, - "messageFilter": { - "type": "object", - "properties": { - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Filter by message headers" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Filter by message attributes" - } - }, - "additionalProperties": false, - "description": "Message filter criteria" - } - }, - "required": [ - "name", - "label", - "topicName" - ], - "additionalProperties": false - } + "TopicQueue": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/VercelConnector.json b/packages/spec/json-schema/integration/VercelConnector.json index 01439e0f1..9dd683c36 100644 --- a/packages/spec/json-schema/integration/VercelConnector.json +++ b/packages/spec/json-schema/integration/VercelConnector.json @@ -1,1344 +1,7 @@ { "$ref": "#/definitions/VercelConnector", "definitions": { - "VercelConnector": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique connector identifier" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "type": { - "type": "string", - "const": "saas" - }, - "description": { - "type": "string", - "description": "Connector description" - }, - "icon": { - "type": "string", - "description": "Icon identifier" - }, - "authentication": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "oauth2", - "description": "Authentication type" - }, - "authorizationUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 authorization endpoint" - }, - "tokenUrl": { - "type": "string", - "format": "uri", - "description": "OAuth2 token endpoint" - }, - "clientId": { - "type": "string", - "description": "OAuth2 client ID" - }, - "clientSecret": { - "type": "string", - "description": "OAuth2 client secret (typically from ENV)" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Requested OAuth2 scopes" - }, - "redirectUri": { - "type": "string", - "format": "uri", - "description": "OAuth2 redirect URI" - }, - "refreshToken": { - "type": "string", - "description": "Refresh token for token renewal" - }, - "tokenExpiry": { - "type": "number", - "description": "Token expiry timestamp" - } - }, - "required": [ - "type", - "authorizationUrl", - "tokenUrl", - "clientId", - "clientSecret" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "api-key", - "description": "Authentication type" - }, - "key": { - "type": "string", - "description": "API key value" - }, - "headerName": { - "type": "string", - "default": "X-API-Key", - "description": "HTTP header name for API key" - }, - "paramName": { - "type": "string", - "description": "Query parameter name (alternative to header)" - } - }, - "required": [ - "type", - "key" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "basic", - "description": "Authentication type" - }, - "username": { - "type": "string", - "description": "Username" - }, - "password": { - "type": "string", - "description": "Password (typically from ENV)" - } - }, - "required": [ - "type", - "username", - "password" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "bearer", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Bearer token" - } - }, - "required": [ - "type", - "token" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "jwt", - "description": "Authentication type" - }, - "token": { - "type": "string", - "description": "Pre-generated JWT token" - }, - "secretKey": { - "type": "string", - "description": "Secret key for JWT signing" - }, - "algorithm": { - "type": "string", - "enum": [ - "HS256", - "HS384", - "HS512", - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512" - ], - "default": "HS256", - "description": "JWT signing algorithm" - }, - "issuer": { - "type": "string", - "description": "JWT issuer claim" - }, - "audience": { - "type": "string", - "description": "JWT audience claim" - }, - "subject": { - "type": "string", - "description": "JWT subject claim" - }, - "expiresIn": { - "type": "number", - "default": 3600, - "description": "Token expiry in seconds" - }, - "claims": { - "type": "object", - "additionalProperties": {}, - "description": "Additional JWT claims" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "saml", - "description": "Authentication type" - }, - "entryPoint": { - "type": "string", - "format": "uri", - "description": "SAML IdP entry point URL" - }, - "issuer": { - "type": "string", - "description": "SAML service provider issuer" - }, - "certificate": { - "type": "string", - "description": "SAML IdP certificate (X.509)" - }, - "privateKey": { - "type": "string", - "description": "SAML service provider private key" - }, - "callbackUrl": { - "type": "string", - "format": "uri", - "description": "SAML assertion consumer service URL" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "sha1", - "sha256", - "sha512" - ], - "default": "sha256", - "description": "SAML signature algorithm" - }, - "wantAssertionsSigned": { - "type": "boolean", - "default": true, - "description": "Require signed SAML assertions" - }, - "identifierFormat": { - "type": "string", - "description": "SAML NameID format" - } - }, - "required": [ - "type", - "entryPoint", - "issuer", - "certificate" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "none", - "description": "No authentication required" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - ], - "description": "Authentication configuration" - }, - "syncConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "full", - "incremental", - "upsert", - "append_only" - ], - "description": "Synchronization strategy", - "default": "incremental" - }, - "direction": { - "type": "string", - "enum": [ - "import", - "export", - "bidirectional" - ], - "default": "import", - "description": "Sync direction" - }, - "schedule": { - "type": "string", - "description": "Cron expression for scheduled sync" - }, - "realtimeSync": { - "type": "boolean", - "default": false, - "description": "Enable real-time sync" - }, - "timestampField": { - "type": "string", - "description": "Field to track last modification time" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "source_wins", - "target_wins", - "latest_wins", - "manual" - ], - "description": "Conflict resolution strategy", - "default": "latest_wins" - }, - "batchSize": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 1000, - "description": "Records per batch" - }, - "deleteMode": { - "type": "string", - "enum": [ - "hard_delete", - "soft_delete", - "ignore" - ], - "default": "soft_delete", - "description": "Delete handling mode" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter criteria for selective sync" - } - }, - "additionalProperties": false, - "description": "Data sync configuration" - }, - "fieldMappings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date", - "datetime", - "json", - "array" - ], - "description": "Target data type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Field is required" - }, - "syncMode": { - "type": "string", - "enum": [ - "read_only", - "write_only", - "bidirectional" - ], - "default": "bidirectional", - "description": "Sync mode" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - }, - "description": "Field mapping rules" - }, - "webhooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "sync.started", - "sync.completed", - "sync.failed", - "auth.expired", - "rate_limit.exceeded" - ], - "description": "Webhook event type" - }, - "description": "Connector events to subscribe to" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "hmac_sha256", - "hmac_sha512", - "none" - ], - "description": "Webhook signature algorithm", - "default": "hmac_sha256" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Webhook configurations" - }, - "rateLimitConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "fixed_window", - "sliding_window", - "token_bucket", - "leaky_bucket" - ], - "description": "Rate limiting strategy", - "default": "token_bucket" - }, - "maxRequests": { - "type": "number", - "minimum": 1, - "description": "Maximum requests per window" - }, - "windowSeconds": { - "type": "number", - "minimum": 1, - "description": "Time window in seconds" - }, - "burstCapacity": { - "type": "number", - "minimum": 1, - "description": "Burst capacity" - }, - "respectUpstreamLimits": { - "type": "boolean", - "default": true, - "description": "Respect external rate limit headers" - }, - "rateLimitHeaders": { - "type": "object", - "properties": { - "remaining": { - "type": "string", - "default": "X-RateLimit-Remaining", - "description": "Header for remaining requests" - }, - "limit": { - "type": "string", - "default": "X-RateLimit-Limit", - "description": "Header for rate limit" - }, - "reset": { - "type": "string", - "default": "X-RateLimit-Reset", - "description": "Header for reset time" - } - }, - "additionalProperties": false, - "description": "Custom rate limit headers" - } - }, - "required": [ - "maxRequests", - "windowSeconds" - ], - "additionalProperties": false, - "description": "Rate limiting configuration" - }, - "retryConfig": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "exponential_backoff", - "linear_backoff", - "fixed_delay", - "no_retry" - ], - "description": "Retry strategy", - "default": "exponential_backoff" - }, - "maxAttempts": { - "type": "number", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "initialDelayMs": { - "type": "number", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in ms" - }, - "maxDelayMs": { - "type": "number", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in ms" - }, - "backoffMultiplier": { - "type": "number", - "minimum": 1, - "default": 2, - "description": "Exponential backoff multiplier" - }, - "retryableStatusCodes": { - "type": "array", - "items": { - "type": "number" - }, - "default": [ - 408, - 429, - 500, - 502, - 503, - 504 - ], - "description": "HTTP status codes to retry" - }, - "retryOnNetworkError": { - "type": "boolean", - "default": true, - "description": "Retry on network errors" - }, - "jitter": { - "type": "boolean", - "default": true, - "description": "Add jitter to retry delays" - } - }, - "additionalProperties": false, - "description": "Retry configuration" - }, - "connectionTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Connection timeout in ms" - }, - "requestTimeoutMs": { - "type": "number", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in ms" - }, - "status": { - "type": "string", - "enum": [ - "active", - "inactive", - "error", - "configuring" - ], - "description": "Connector status", - "default": "inactive" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable connector" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Custom connector metadata" - }, - "provider": { - "type": "string", - "enum": [ - "vercel" - ], - "description": "Vercel provider" - }, - "baseUrl": { - "type": "string", - "format": "uri", - "default": "https://api.vercel.com", - "description": "Vercel API base URL" - }, - "team": { - "type": "object", - "properties": { - "teamId": { - "type": "string", - "description": "Team ID or slug" - }, - "teamName": { - "type": "string", - "description": "Team name" - } - }, - "additionalProperties": false, - "description": "Vercel team configuration" - }, - "projects": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Vercel project name" - }, - "framework": { - "type": "string", - "enum": [ - "nextjs", - "react", - "vue", - "nuxtjs", - "gatsby", - "remix", - "astro", - "sveltekit", - "solid", - "angular", - "static", - "other" - ], - "description": "Frontend framework" - }, - "gitRepository": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "github", - "gitlab", - "bitbucket" - ], - "description": "Git provider" - }, - "repo": { - "type": "string", - "description": "Repository identifier (e.g., owner/repo)" - }, - "productionBranch": { - "type": "string", - "default": "main", - "description": "Production branch name" - }, - "autoDeployProduction": { - "type": "boolean", - "default": true, - "description": "Auto-deploy production branch" - }, - "autoDeployPreview": { - "type": "boolean", - "default": true, - "description": "Auto-deploy preview branches" - } - }, - "required": [ - "type", - "repo" - ], - "additionalProperties": false, - "description": "Git repository configuration" - }, - "buildConfig": { - "type": "object", - "properties": { - "buildCommand": { - "type": "string", - "description": "Build command (e.g., npm run build)" - }, - "outputDirectory": { - "type": "string", - "description": "Output directory (e.g., .next, dist)" - }, - "installCommand": { - "type": "string", - "description": "Install command (e.g., npm install, pnpm install)" - }, - "devCommand": { - "type": "string", - "description": "Development command (e.g., npm run dev)" - }, - "nodeVersion": { - "type": "string", - "description": "Node.js version (e.g., 18.x, 20.x)" - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Build environment variables" - } - }, - "additionalProperties": false, - "description": "Build configuration" - }, - "deploymentConfig": { - "type": "object", - "properties": { - "autoDeployment": { - "type": "boolean", - "default": true, - "description": "Enable automatic deployments" - }, - "regions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "iad1", - "sfo1", - "gru1", - "lhr1", - "fra1", - "sin1", - "syd1", - "hnd1", - "icn1" - ] - }, - "description": "Deployment regions" - }, - "enablePreview": { - "type": "boolean", - "default": true, - "description": "Enable preview deployments" - }, - "previewComments": { - "type": "boolean", - "default": true, - "description": "Post preview URLs in PR comments" - }, - "productionProtection": { - "type": "boolean", - "default": true, - "description": "Require approval for production deployments" - }, - "deployHooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Hook name" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Deploy hook URL" - }, - "branch": { - "type": "string", - "description": "Target branch" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Deploy hooks" - } - }, - "additionalProperties": false, - "description": "Deployment configuration" - }, - "domains": { - "type": "array", - "items": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name (e.g., app.example.com)" - }, - "httpsRedirect": { - "type": "boolean", - "default": true, - "description": "Redirect HTTP to HTTPS" - }, - "customCertificate": { - "type": "object", - "properties": { - "cert": { - "type": "string", - "description": "SSL certificate" - }, - "key": { - "type": "string", - "description": "Private key" - }, - "ca": { - "type": "string", - "description": "Certificate authority" - } - }, - "required": [ - "cert", - "key" - ], - "additionalProperties": false, - "description": "Custom SSL certificate" - }, - "gitBranch": { - "type": "string", - "description": "Git branch to deploy to this domain" - } - }, - "required": [ - "domain" - ], - "additionalProperties": false - }, - "description": "Custom domains" - }, - "environmentVariables": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Environment variable name" - }, - "value": { - "type": "string", - "description": "Environment variable value" - }, - "target": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "production", - "preview", - "development" - ] - }, - "description": "Target environments" - }, - "isSecret": { - "type": "boolean", - "default": false, - "description": "Encrypt this variable" - }, - "gitBranch": { - "type": "string", - "description": "Specific git branch" - } - }, - "required": [ - "key", - "value", - "target" - ], - "additionalProperties": false - }, - "description": "Environment variables" - }, - "edgeFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Edge function name" - }, - "path": { - "type": "string", - "description": "Function path (e.g., /api/*)" - }, - "regions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Specific regions for this function" - }, - "memoryLimit": { - "type": "integer", - "minimum": 128, - "maximum": 3008, - "default": 1024, - "description": "Memory limit in MB" - }, - "timeout": { - "type": "integer", - "minimum": 1, - "maximum": 300, - "default": 10, - "description": "Timeout in seconds" - } - }, - "required": [ - "name", - "path" - ], - "additionalProperties": false - }, - "description": "Edge functions" - }, - "rootDirectory": { - "type": "string", - "description": "Root directory (for monorepos)" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Vercel projects" - }, - "monitoring": { - "type": "object", - "properties": { - "enableWebAnalytics": { - "type": "boolean", - "default": false, - "description": "Enable Vercel Web Analytics" - }, - "enableSpeedInsights": { - "type": "boolean", - "default": false, - "description": "Enable Vercel Speed Insights" - }, - "logDrains": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Log drain name" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Log drain URL" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom headers" - }, - "sources": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "static", - "lambda", - "edge" - ] - }, - "description": "Log sources" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Log drains configuration" - } - }, - "additionalProperties": false, - "description": "Monitoring configuration" - }, - "enableWebhooks": { - "type": "boolean", - "default": true, - "description": "Enable Vercel webhooks" - }, - "webhookEvents": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "deployment.created", - "deployment.succeeded", - "deployment.failed", - "deployment.ready", - "deployment.error", - "deployment.canceled", - "deployment-checks-completed", - "deployment-prepared", - "project.created", - "project.removed" - ] - }, - "description": "Webhook events to subscribe to" - } - }, - "required": [ - "name", - "label", - "type", - "authentication", - "provider", - "projects" - ], - "additionalProperties": false - } + "VercelConnector": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/VercelFramework.json b/packages/spec/json-schema/integration/VercelFramework.json index 4ee534d1e..b90957dce 100644 --- a/packages/spec/json-schema/integration/VercelFramework.json +++ b/packages/spec/json-schema/integration/VercelFramework.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/VercelFramework", "definitions": { - "VercelFramework": { - "type": "string", - "enum": [ - "nextjs", - "react", - "vue", - "nuxtjs", - "gatsby", - "remix", - "astro", - "sveltekit", - "solid", - "angular", - "static", - "other" - ], - "description": "Frontend framework" - } + "VercelFramework": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/VercelMonitoring.json b/packages/spec/json-schema/integration/VercelMonitoring.json index ff197d0f3..c22378462 100644 --- a/packages/spec/json-schema/integration/VercelMonitoring.json +++ b/packages/spec/json-schema/integration/VercelMonitoring.json @@ -1,64 +1,7 @@ { "$ref": "#/definitions/VercelMonitoring", "definitions": { - "VercelMonitoring": { - "type": "object", - "properties": { - "enableWebAnalytics": { - "type": "boolean", - "default": false, - "description": "Enable Vercel Web Analytics" - }, - "enableSpeedInsights": { - "type": "boolean", - "default": false, - "description": "Enable Vercel Speed Insights" - }, - "logDrains": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Log drain name" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Log drain URL" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom headers" - }, - "sources": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "static", - "lambda", - "edge" - ] - }, - "description": "Log sources" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Log drains configuration" - } - }, - "additionalProperties": false - } + "VercelMonitoring": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/VercelProject.json b/packages/spec/json-schema/integration/VercelProject.json index 392fe9002..77b0f39d8 100644 --- a/packages/spec/json-schema/integration/VercelProject.json +++ b/packages/spec/json-schema/integration/VercelProject.json @@ -1,322 +1,7 @@ { "$ref": "#/definitions/VercelProject", "definitions": { - "VercelProject": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Vercel project name" - }, - "framework": { - "type": "string", - "enum": [ - "nextjs", - "react", - "vue", - "nuxtjs", - "gatsby", - "remix", - "astro", - "sveltekit", - "solid", - "angular", - "static", - "other" - ], - "description": "Frontend framework" - }, - "gitRepository": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "github", - "gitlab", - "bitbucket" - ], - "description": "Git provider" - }, - "repo": { - "type": "string", - "description": "Repository identifier (e.g., owner/repo)" - }, - "productionBranch": { - "type": "string", - "default": "main", - "description": "Production branch name" - }, - "autoDeployProduction": { - "type": "boolean", - "default": true, - "description": "Auto-deploy production branch" - }, - "autoDeployPreview": { - "type": "boolean", - "default": true, - "description": "Auto-deploy preview branches" - } - }, - "required": [ - "type", - "repo" - ], - "additionalProperties": false, - "description": "Git repository configuration" - }, - "buildConfig": { - "type": "object", - "properties": { - "buildCommand": { - "type": "string", - "description": "Build command (e.g., npm run build)" - }, - "outputDirectory": { - "type": "string", - "description": "Output directory (e.g., .next, dist)" - }, - "installCommand": { - "type": "string", - "description": "Install command (e.g., npm install, pnpm install)" - }, - "devCommand": { - "type": "string", - "description": "Development command (e.g., npm run dev)" - }, - "nodeVersion": { - "type": "string", - "description": "Node.js version (e.g., 18.x, 20.x)" - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Build environment variables" - } - }, - "additionalProperties": false, - "description": "Build configuration" - }, - "deploymentConfig": { - "type": "object", - "properties": { - "autoDeployment": { - "type": "boolean", - "default": true, - "description": "Enable automatic deployments" - }, - "regions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "iad1", - "sfo1", - "gru1", - "lhr1", - "fra1", - "sin1", - "syd1", - "hnd1", - "icn1" - ] - }, - "description": "Deployment regions" - }, - "enablePreview": { - "type": "boolean", - "default": true, - "description": "Enable preview deployments" - }, - "previewComments": { - "type": "boolean", - "default": true, - "description": "Post preview URLs in PR comments" - }, - "productionProtection": { - "type": "boolean", - "default": true, - "description": "Require approval for production deployments" - }, - "deployHooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Hook name" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Deploy hook URL" - }, - "branch": { - "type": "string", - "description": "Target branch" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Deploy hooks" - } - }, - "additionalProperties": false, - "description": "Deployment configuration" - }, - "domains": { - "type": "array", - "items": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name (e.g., app.example.com)" - }, - "httpsRedirect": { - "type": "boolean", - "default": true, - "description": "Redirect HTTP to HTTPS" - }, - "customCertificate": { - "type": "object", - "properties": { - "cert": { - "type": "string", - "description": "SSL certificate" - }, - "key": { - "type": "string", - "description": "Private key" - }, - "ca": { - "type": "string", - "description": "Certificate authority" - } - }, - "required": [ - "cert", - "key" - ], - "additionalProperties": false, - "description": "Custom SSL certificate" - }, - "gitBranch": { - "type": "string", - "description": "Git branch to deploy to this domain" - } - }, - "required": [ - "domain" - ], - "additionalProperties": false - }, - "description": "Custom domains" - }, - "environmentVariables": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Environment variable name" - }, - "value": { - "type": "string", - "description": "Environment variable value" - }, - "target": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "production", - "preview", - "development" - ] - }, - "description": "Target environments" - }, - "isSecret": { - "type": "boolean", - "default": false, - "description": "Encrypt this variable" - }, - "gitBranch": { - "type": "string", - "description": "Specific git branch" - } - }, - "required": [ - "key", - "value", - "target" - ], - "additionalProperties": false - }, - "description": "Environment variables" - }, - "edgeFunctions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Edge function name" - }, - "path": { - "type": "string", - "description": "Function path (e.g., /api/*)" - }, - "regions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Specific regions for this function" - }, - "memoryLimit": { - "type": "integer", - "minimum": 128, - "maximum": 3008, - "default": 1024, - "description": "Memory limit in MB" - }, - "timeout": { - "type": "integer", - "minimum": 1, - "maximum": 300, - "default": 10, - "description": "Timeout in seconds" - } - }, - "required": [ - "name", - "path" - ], - "additionalProperties": false - }, - "description": "Edge functions" - }, - "rootDirectory": { - "type": "string", - "description": "Root directory (for monorepos)" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "VercelProject": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/VercelProvider.json b/packages/spec/json-schema/integration/VercelProvider.json index e45a9ca7d..79a5bae7e 100644 --- a/packages/spec/json-schema/integration/VercelProvider.json +++ b/packages/spec/json-schema/integration/VercelProvider.json @@ -1,13 +1,7 @@ { "$ref": "#/definitions/VercelProvider", "definitions": { - "VercelProvider": { - "type": "string", - "enum": [ - "vercel" - ], - "description": "Vercel provider type" - } + "VercelProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/VercelTeam.json b/packages/spec/json-schema/integration/VercelTeam.json index b6378e3cb..b1ffdd4a1 100644 --- a/packages/spec/json-schema/integration/VercelTeam.json +++ b/packages/spec/json-schema/integration/VercelTeam.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/VercelTeam", "definitions": { - "VercelTeam": { - "type": "object", - "properties": { - "teamId": { - "type": "string", - "description": "Team ID or slug" - }, - "teamName": { - "type": "string", - "description": "Team name" - } - }, - "additionalProperties": false - } + "VercelTeam": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/WebhookConfig.json b/packages/spec/json-schema/integration/WebhookConfig.json index 21df7e2f1..043b36e2d 100644 --- a/packages/spec/json-schema/integration/WebhookConfig.json +++ b/packages/spec/json-schema/integration/WebhookConfig.json @@ -1,201 +1,7 @@ { "$ref": "#/definitions/WebhookConfig", "definitions": { - "WebhookConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Webhook unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable webhook label" - }, - "object": { - "type": "string", - "description": "Object to listen to (optional for manual webhooks)" - }, - "triggers": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "undelete", - "api" - ] - }, - "description": "Events that trigger execution" - }, - "url": { - "type": "string", - "format": "uri", - "description": "External webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "body": { - "description": "Request body payload (if not using default record data)" - }, - "payloadFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to include. Empty = All" - }, - "includeSession": { - "type": "boolean", - "default": false, - "description": "Include user session info" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Authentication type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Authentication credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "minimum": 100, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "minimum": 1000, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "minimum": 1000, - "maximum": 300000, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "secret": { - "type": "string", - "description": "Signing secret for HMAC signature verification" - }, - "isActive": { - "type": "boolean", - "default": true, - "description": "Whether webhook is active" - }, - "description": { - "type": "string", - "description": "Webhook description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for organization" - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "sync.started", - "sync.completed", - "sync.failed", - "auth.expired", - "rate_limit.exceeded" - ], - "description": "Webhook event type" - }, - "description": "Connector events to subscribe to" - }, - "signatureAlgorithm": { - "type": "string", - "enum": [ - "hmac_sha256", - "hmac_sha512", - "none" - ], - "description": "Webhook signature algorithm", - "default": "hmac_sha256" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - } + "WebhookConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/WebhookEvent.json b/packages/spec/json-schema/integration/WebhookEvent.json index 6deaf08e6..9edc95a89 100644 --- a/packages/spec/json-schema/integration/WebhookEvent.json +++ b/packages/spec/json-schema/integration/WebhookEvent.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/WebhookEvent", "definitions": { - "WebhookEvent": { - "type": "string", - "enum": [ - "record.created", - "record.updated", - "record.deleted", - "sync.started", - "sync.completed", - "sync.failed", - "auth.expired", - "rate_limit.exceeded" - ], - "description": "Webhook event type" - } + "WebhookEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/integration/WebhookSignatureAlgorithm.json b/packages/spec/json-schema/integration/WebhookSignatureAlgorithm.json index 6d6ba3efd..56fb0ff9f 100644 --- a/packages/spec/json-schema/integration/WebhookSignatureAlgorithm.json +++ b/packages/spec/json-schema/integration/WebhookSignatureAlgorithm.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/WebhookSignatureAlgorithm", "definitions": { - "WebhookSignatureAlgorithm": { - "type": "string", - "enum": [ - "hmac_sha256", - "hmac_sha512", - "none" - ], - "description": "Webhook signature algorithm" - } + "WebhookSignatureAlgorithm": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/CriteriaSharingRule.json b/packages/spec/json-schema/permission/CriteriaSharingRule.json index 9acd77e0a..1978cbf90 100644 --- a/packages/spec/json-schema/permission/CriteriaSharingRule.json +++ b/packages/spec/json-schema/permission/CriteriaSharingRule.json @@ -1,82 +1,7 @@ { "$ref": "#/definitions/CriteriaSharingRule", "definitions": { - "CriteriaSharingRule": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label" - }, - "description": { - "type": "string", - "description": "Administrative notes" - }, - "object": { - "type": "string", - "description": "Target Object Name" - }, - "active": { - "type": "boolean", - "default": true - }, - "accessLevel": { - "type": "string", - "enum": [ - "read", - "edit", - "full" - ], - "default": "read" - }, - "sharedWith": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "user", - "group", - "role", - "role_and_subordinates", - "guest" - ] - }, - "value": { - "type": "string", - "description": "ID or Code of the User/Group/Role" - } - }, - "required": [ - "type", - "value" - ], - "additionalProperties": false, - "description": "The recipient of the shared access" - }, - "type": { - "type": "string", - "const": "criteria" - }, - "condition": { - "type": "string", - "description": "Formula condition (e.g. \"department = 'Sales'\")" - } - }, - "required": [ - "name", - "object", - "sharedWith", - "type", - "condition" - ], - "additionalProperties": false - } + "CriteriaSharingRule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/FieldPermission.json b/packages/spec/json-schema/permission/FieldPermission.json index 341003d29..7535bd071 100644 --- a/packages/spec/json-schema/permission/FieldPermission.json +++ b/packages/spec/json-schema/permission/FieldPermission.json @@ -1,22 +1,7 @@ { "$ref": "#/definitions/FieldPermission", "definitions": { - "FieldPermission": { - "type": "object", - "properties": { - "readable": { - "type": "boolean", - "default": true, - "description": "Field read access" - }, - "editable": { - "type": "boolean", - "default": false, - "description": "Field edit access" - } - }, - "additionalProperties": false - } + "FieldPermission": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/OWDModel.json b/packages/spec/json-schema/permission/OWDModel.json index c141c7219..0f143c5dc 100644 --- a/packages/spec/json-schema/permission/OWDModel.json +++ b/packages/spec/json-schema/permission/OWDModel.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/OWDModel", "definitions": { - "OWDModel": { - "type": "string", - "enum": [ - "private", - "public_read", - "public_read_write", - "controlled_by_parent" - ] - } + "OWDModel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/ObjectPermission.json b/packages/spec/json-schema/permission/ObjectPermission.json index 3bbe98405..fc6eb5144 100644 --- a/packages/spec/json-schema/permission/ObjectPermission.json +++ b/packages/spec/json-schema/permission/ObjectPermission.json @@ -1,57 +1,7 @@ { "$ref": "#/definitions/ObjectPermission", "definitions": { - "ObjectPermission": { - "type": "object", - "properties": { - "allowCreate": { - "type": "boolean", - "default": false, - "description": "Create permission" - }, - "allowRead": { - "type": "boolean", - "default": false, - "description": "Read permission" - }, - "allowEdit": { - "type": "boolean", - "default": false, - "description": "Edit permission" - }, - "allowDelete": { - "type": "boolean", - "default": false, - "description": "Delete permission" - }, - "allowTransfer": { - "type": "boolean", - "default": false, - "description": "Change record ownership" - }, - "allowRestore": { - "type": "boolean", - "default": false, - "description": "Restore from trash (Undelete)" - }, - "allowPurge": { - "type": "boolean", - "default": false, - "description": "Permanently delete (Hard Delete/GDPR)" - }, - "viewAllRecords": { - "type": "boolean", - "default": false, - "description": "View All Data (Bypass Sharing)" - }, - "modifyAllRecords": { - "type": "boolean", - "default": false, - "description": "Modify All Data (Bypass Sharing)" - } - }, - "additionalProperties": false - } + "ObjectPermission": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/OwnerSharingRule.json b/packages/spec/json-schema/permission/OwnerSharingRule.json index a97ffa6bf..cc3f7889a 100644 --- a/packages/spec/json-schema/permission/OwnerSharingRule.json +++ b/packages/spec/json-schema/permission/OwnerSharingRule.json @@ -1,102 +1,7 @@ { "$ref": "#/definitions/OwnerSharingRule", "definitions": { - "OwnerSharingRule": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label" - }, - "description": { - "type": "string", - "description": "Administrative notes" - }, - "object": { - "type": "string", - "description": "Target Object Name" - }, - "active": { - "type": "boolean", - "default": true - }, - "accessLevel": { - "type": "string", - "enum": [ - "read", - "edit", - "full" - ], - "default": "read" - }, - "sharedWith": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "user", - "group", - "role", - "role_and_subordinates", - "guest" - ] - }, - "value": { - "type": "string", - "description": "ID or Code of the User/Group/Role" - } - }, - "required": [ - "type", - "value" - ], - "additionalProperties": false, - "description": "The recipient of the shared access" - }, - "type": { - "type": "string", - "const": "owner" - }, - "ownedBy": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "user", - "group", - "role", - "role_and_subordinates", - "guest" - ] - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "additionalProperties": false, - "description": "Source group/role whose records are being shared" - } - }, - "required": [ - "name", - "object", - "sharedWith", - "type", - "ownedBy" - ], - "additionalProperties": false - } + "OwnerSharingRule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/PermissionSet.json b/packages/spec/json-schema/permission/PermissionSet.json index a05f38a83..f623e1618 100644 --- a/packages/spec/json-schema/permission/PermissionSet.json +++ b/packages/spec/json-schema/permission/PermissionSet.json @@ -1,193 +1,7 @@ { "$ref": "#/definitions/PermissionSet", "definitions": { - "PermissionSet": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Permission set unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "isProfile": { - "type": "boolean", - "default": false, - "description": "Whether this is a user profile" - }, - "objects": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "allowCreate": { - "type": "boolean", - "default": false, - "description": "Create permission" - }, - "allowRead": { - "type": "boolean", - "default": false, - "description": "Read permission" - }, - "allowEdit": { - "type": "boolean", - "default": false, - "description": "Edit permission" - }, - "allowDelete": { - "type": "boolean", - "default": false, - "description": "Delete permission" - }, - "allowTransfer": { - "type": "boolean", - "default": false, - "description": "Change record ownership" - }, - "allowRestore": { - "type": "boolean", - "default": false, - "description": "Restore from trash (Undelete)" - }, - "allowPurge": { - "type": "boolean", - "default": false, - "description": "Permanently delete (Hard Delete/GDPR)" - }, - "viewAllRecords": { - "type": "boolean", - "default": false, - "description": "View All Data (Bypass Sharing)" - }, - "modifyAllRecords": { - "type": "boolean", - "default": false, - "description": "Modify All Data (Bypass Sharing)" - } - }, - "additionalProperties": false - }, - "description": "Entity permissions" - }, - "fields": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "readable": { - "type": "boolean", - "default": true, - "description": "Field read access" - }, - "editable": { - "type": "boolean", - "default": false, - "description": "Field edit access" - } - }, - "additionalProperties": false - }, - "description": "Field level security" - }, - "systemPermissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "System level capabilities" - }, - "rowLevelSecurity": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Policy unique identifier (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable policy label" - }, - "description": { - "type": "string", - "description": "Policy description and business justification" - }, - "object": { - "type": "string", - "description": "Target object name" - }, - "operation": { - "type": "string", - "enum": [ - "select", - "insert", - "update", - "delete", - "all" - ], - "description": "Database operation this policy applies to" - }, - "using": { - "type": "string", - "description": "Filter condition for SELECT/UPDATE/DELETE (PostgreSQL SQL WHERE clause syntax with parameterized context variables). Optional for INSERT-only policies." - }, - "check": { - "type": "string", - "description": "Validation condition for INSERT/UPDATE (defaults to USING clause if not specified - enforced at application level)" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles this policy applies to (omit for all roles)" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Whether this policy is active" - }, - "priority": { - "type": "integer", - "default": 0, - "description": "Policy evaluation priority (higher = evaluated first)" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Policy categorization tags" - } - }, - "required": [ - "name", - "object", - "operation" - ], - "additionalProperties": false - }, - "description": "Row-level security policies (see rls.zod.ts for full spec)" - }, - "contextVariables": { - "type": "object", - "additionalProperties": {}, - "description": "Context variables for RLS evaluation" - } - }, - "required": [ - "name", - "objects" - ], - "additionalProperties": false - } + "PermissionSet": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/RLSConfig.json b/packages/spec/json-schema/permission/RLSConfig.json index e72fd244a..7c27499d5 100644 --- a/packages/spec/json-schema/permission/RLSConfig.json +++ b/packages/spec/json-schema/permission/RLSConfig.json @@ -1,59 +1,7 @@ { "$ref": "#/definitions/RLSConfig", "definitions": { - "RLSConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable RLS enforcement globally" - }, - "defaultPolicy": { - "type": "string", - "enum": [ - "deny", - "allow" - ], - "default": "deny", - "description": "Default action when no policies match" - }, - "allowSuperuserBypass": { - "type": "boolean", - "default": true, - "description": "Allow superusers to bypass RLS" - }, - "bypassRoles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that bypass RLS (see all data)" - }, - "logEvaluations": { - "type": "boolean", - "default": false, - "description": "Log RLS policy evaluations for debugging" - }, - "cacheResults": { - "type": "boolean", - "default": true, - "description": "Cache RLS evaluation results" - }, - "cacheTtlSeconds": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 300, - "description": "Cache TTL in seconds" - }, - "prefetchUserContext": { - "type": "boolean", - "default": true, - "description": "Pre-fetch user context for performance" - } - }, - "additionalProperties": false - } + "RLSConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/RLSEvaluationResult.json b/packages/spec/json-schema/permission/RLSEvaluationResult.json index fb10439b9..b5aa78671 100644 --- a/packages/spec/json-schema/permission/RLSEvaluationResult.json +++ b/packages/spec/json-schema/permission/RLSEvaluationResult.json @@ -1,40 +1,7 @@ { "$ref": "#/definitions/RLSEvaluationResult", "definitions": { - "RLSEvaluationResult": { - "type": "object", - "properties": { - "policyName": { - "type": "string", - "description": "Policy name" - }, - "granted": { - "type": "boolean", - "description": "Whether access was granted" - }, - "durationMs": { - "type": "number", - "description": "Evaluation duration in milliseconds" - }, - "error": { - "type": "string", - "description": "Error message if evaluation failed" - }, - "usingResult": { - "type": "boolean", - "description": "USING clause evaluation result" - }, - "checkResult": { - "type": "boolean", - "description": "CHECK clause evaluation result" - } - }, - "required": [ - "policyName", - "granted" - ], - "additionalProperties": false - } + "RLSEvaluationResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/RLSOperation.json b/packages/spec/json-schema/permission/RLSOperation.json index 800e88472..c112a5a7d 100644 --- a/packages/spec/json-schema/permission/RLSOperation.json +++ b/packages/spec/json-schema/permission/RLSOperation.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/RLSOperation", "definitions": { - "RLSOperation": { - "type": "string", - "enum": [ - "select", - "insert", - "update", - "delete", - "all" - ] - } + "RLSOperation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/RLSUserContext.json b/packages/spec/json-schema/permission/RLSUserContext.json index 5f94094c4..c59cd47d0 100644 --- a/packages/spec/json-schema/permission/RLSUserContext.json +++ b/packages/spec/json-schema/permission/RLSUserContext.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/RLSUserContext", "definitions": { - "RLSUserContext": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "User ID" - }, - "email": { - "type": "string", - "format": "email", - "description": "User email" - }, - "tenantId": { - "type": "string", - "description": "Tenant/Organization ID" - }, - "role": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "User role(s)" - }, - "department": { - "type": "string", - "description": "User department" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Additional custom user attributes" - } - }, - "required": [ - "id" - ], - "additionalProperties": false - } + "RLSUserContext": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/RowLevelSecurityPolicy.json b/packages/spec/json-schema/permission/RowLevelSecurityPolicy.json index c71fe3e44..fcfadce1c 100644 --- a/packages/spec/json-schema/permission/RowLevelSecurityPolicy.json +++ b/packages/spec/json-schema/permission/RowLevelSecurityPolicy.json @@ -1,77 +1,7 @@ { "$ref": "#/definitions/RowLevelSecurityPolicy", "definitions": { - "RowLevelSecurityPolicy": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Policy unique identifier (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable policy label" - }, - "description": { - "type": "string", - "description": "Policy description and business justification" - }, - "object": { - "type": "string", - "description": "Target object name" - }, - "operation": { - "type": "string", - "enum": [ - "select", - "insert", - "update", - "delete", - "all" - ], - "description": "Database operation this policy applies to" - }, - "using": { - "type": "string", - "description": "Filter condition for SELECT/UPDATE/DELETE (PostgreSQL SQL WHERE clause syntax with parameterized context variables). Optional for INSERT-only policies." - }, - "check": { - "type": "string", - "description": "Validation condition for INSERT/UPDATE (defaults to USING clause if not specified - enforced at application level)" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles this policy applies to (omit for all roles)" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Whether this policy is active" - }, - "priority": { - "type": "integer", - "default": 0, - "description": "Policy evaluation priority (higher = evaluated first)" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Policy categorization tags" - } - }, - "required": [ - "name", - "object", - "operation" - ], - "additionalProperties": false - } + "RowLevelSecurityPolicy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/ShareRecipientType.json b/packages/spec/json-schema/permission/ShareRecipientType.json index 115442f93..76b9581c0 100644 --- a/packages/spec/json-schema/permission/ShareRecipientType.json +++ b/packages/spec/json-schema/permission/ShareRecipientType.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/ShareRecipientType", "definitions": { - "ShareRecipientType": { - "type": "string", - "enum": [ - "user", - "group", - "role", - "role_and_subordinates", - "guest" - ] - } + "ShareRecipientType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/SharingLevel.json b/packages/spec/json-schema/permission/SharingLevel.json index 352933e04..3a266e641 100644 --- a/packages/spec/json-schema/permission/SharingLevel.json +++ b/packages/spec/json-schema/permission/SharingLevel.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/SharingLevel", "definitions": { - "SharingLevel": { - "type": "string", - "enum": [ - "read", - "edit", - "full" - ] - } + "SharingLevel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/SharingRule.json b/packages/spec/json-schema/permission/SharingRule.json index 81885b288..8d7c21967 100644 --- a/packages/spec/json-schema/permission/SharingRule.json +++ b/packages/spec/json-schema/permission/SharingRule.json @@ -1,182 +1,7 @@ { "$ref": "#/definitions/SharingRule", "definitions": { - "SharingRule": { - "anyOf": [ - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label" - }, - "description": { - "type": "string", - "description": "Administrative notes" - }, - "object": { - "type": "string", - "description": "Target Object Name" - }, - "active": { - "type": "boolean", - "default": true - }, - "accessLevel": { - "type": "string", - "enum": [ - "read", - "edit", - "full" - ], - "default": "read" - }, - "sharedWith": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "user", - "group", - "role", - "role_and_subordinates", - "guest" - ] - }, - "value": { - "type": "string", - "description": "ID or Code of the User/Group/Role" - } - }, - "required": [ - "type", - "value" - ], - "additionalProperties": false, - "description": "The recipient of the shared access" - }, - "type": { - "type": "string", - "const": "criteria" - }, - "condition": { - "type": "string", - "description": "Formula condition (e.g. \"department = 'Sales'\")" - } - }, - "required": [ - "name", - "object", - "sharedWith", - "type", - "condition" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique rule name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable label" - }, - "description": { - "type": "string", - "description": "Administrative notes" - }, - "object": { - "type": "string", - "description": "Target Object Name" - }, - "active": { - "type": "boolean", - "default": true - }, - "accessLevel": { - "type": "string", - "enum": [ - "read", - "edit", - "full" - ], - "default": "read" - }, - "sharedWith": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "user", - "group", - "role", - "role_and_subordinates", - "guest" - ] - }, - "value": { - "type": "string", - "description": "ID or Code of the User/Group/Role" - } - }, - "required": [ - "type", - "value" - ], - "additionalProperties": false, - "description": "The recipient of the shared access" - }, - "type": { - "type": "string", - "const": "owner" - }, - "ownedBy": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "user", - "group", - "role", - "role_and_subordinates", - "guest" - ] - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "additionalProperties": false, - "description": "Source group/role whose records are being shared" - } - }, - "required": [ - "name", - "object", - "sharedWith", - "type", - "ownedBy" - ], - "additionalProperties": false - } - ] - } + "SharingRule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/SharingRuleType.json b/packages/spec/json-schema/permission/SharingRuleType.json index 4d3df76c8..142efcec4 100644 --- a/packages/spec/json-schema/permission/SharingRuleType.json +++ b/packages/spec/json-schema/permission/SharingRuleType.json @@ -1,13 +1,7 @@ { "$ref": "#/definitions/SharingRuleType", "definitions": { - "SharingRuleType": { - "type": "string", - "enum": [ - "owner", - "criteria" - ] - } + "SharingRuleType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/Territory.json b/packages/spec/json-schema/permission/Territory.json index 3c4a030c5..6c52b94d9 100644 --- a/packages/spec/json-schema/permission/Territory.json +++ b/packages/spec/json-schema/permission/Territory.json @@ -1,79 +1,7 @@ { "$ref": "#/definitions/Territory", "definitions": { - "Territory": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Territory unique name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Territory Label (e.g. \"West Coast\")" - }, - "modelId": { - "type": "string", - "description": "Belongs to which Territory Model" - }, - "parent": { - "type": "string", - "description": "Parent Territory" - }, - "type": { - "type": "string", - "enum": [ - "geography", - "industry", - "named_account", - "product_line" - ], - "default": "geography" - }, - "assignmentRule": { - "type": "string", - "description": "Criteria based assignment rule" - }, - "assignedUsers": { - "type": "array", - "items": { - "type": "string" - } - }, - "accountAccess": { - "type": "string", - "enum": [ - "read", - "edit" - ], - "default": "read" - }, - "opportunityAccess": { - "type": "string", - "enum": [ - "read", - "edit" - ], - "default": "read" - }, - "caseAccess": { - "type": "string", - "enum": [ - "read", - "edit" - ], - "default": "read" - } - }, - "required": [ - "name", - "label", - "modelId" - ], - "additionalProperties": false - } + "Territory": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/TerritoryModel.json b/packages/spec/json-schema/permission/TerritoryModel.json index edfeee00c..3e2772b5c 100644 --- a/packages/spec/json-schema/permission/TerritoryModel.json +++ b/packages/spec/json-schema/permission/TerritoryModel.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/TerritoryModel", "definitions": { - "TerritoryModel": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Model Name (e.g. FY24 Planning)" - }, - "state": { - "type": "string", - "enum": [ - "planning", - "active", - "archived" - ], - "default": "planning" - }, - "startDate": { - "type": "string" - }, - "endDate": { - "type": "string" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "TerritoryModel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/permission/TerritoryType.json b/packages/spec/json-schema/permission/TerritoryType.json index 04e5420d7..530b4bfff 100644 --- a/packages/spec/json-schema/permission/TerritoryType.json +++ b/packages/spec/json-schema/permission/TerritoryType.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/TerritoryType", "definitions": { - "TerritoryType": { - "type": "string", - "enum": [ - "geography", - "industry", - "named_account", - "product_line" - ] - } + "TerritoryType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/shared/CorsConfig.json b/packages/spec/json-schema/shared/CorsConfig.json index 394051f0d..c4c44fafc 100644 --- a/packages/spec/json-schema/shared/CorsConfig.json +++ b/packages/spec/json-schema/shared/CorsConfig.json @@ -1,57 +1,7 @@ { "$ref": "#/definitions/CorsConfig", "definitions": { - "CorsConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable CORS" - }, - "origins": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "default": "*", - "description": "Allowed origins (* for all)" - }, - "methods": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ] - }, - "description": "Allowed HTTP methods" - }, - "credentials": { - "type": "boolean", - "default": false, - "description": "Allow credentials (cookies, authorization headers)" - }, - "maxAge": { - "type": "integer", - "description": "Preflight cache duration in seconds" - } - }, - "additionalProperties": false - } + "CorsConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/shared/EventName.json b/packages/spec/json-schema/shared/EventName.json index 3c0e30cad..fe7526f0d 100644 --- a/packages/spec/json-schema/shared/EventName.json +++ b/packages/spec/json-schema/shared/EventName.json @@ -1,12 +1,7 @@ { "$ref": "#/definitions/EventName", "definitions": { - "EventName": { - "type": "string", - "minLength": 3, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Event name (lowercase with dot notation for namespacing)" - } + "EventName": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/shared/FieldMapping.json b/packages/spec/json-schema/shared/FieldMapping.json index 10082b8ba..77b81606f 100644 --- a/packages/spec/json-schema/shared/FieldMapping.json +++ b/packages/spec/json-schema/shared/FieldMapping.json @@ -1,142 +1,7 @@ { "$ref": "#/definitions/FieldMapping", "definitions": { - "FieldMapping": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Source field name" - }, - "target": { - "type": "string", - "description": "Target field name" - }, - "transform": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ], - "description": "Transformation to apply" - }, - "defaultValue": { - "description": "Default if source is null/undefined" - } - }, - "required": [ - "source", - "target" - ], - "additionalProperties": false - } + "FieldMapping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/shared/HttpMethod.json b/packages/spec/json-schema/shared/HttpMethod.json index 00e5b835d..8b4b271a0 100644 --- a/packages/spec/json-schema/shared/HttpMethod.json +++ b/packages/spec/json-schema/shared/HttpMethod.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/HttpMethod", "definitions": { - "HttpMethod": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ] - } + "HttpMethod": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/shared/RateLimitConfig.json b/packages/spec/json-schema/shared/RateLimitConfig.json index 16c96b1b9..492ba2040 100644 --- a/packages/spec/json-schema/shared/RateLimitConfig.json +++ b/packages/spec/json-schema/shared/RateLimitConfig.json @@ -1,27 +1,7 @@ { "$ref": "#/definitions/RateLimitConfig", "definitions": { - "RateLimitConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable rate limiting" - }, - "windowMs": { - "type": "integer", - "default": 60000, - "description": "Time window in milliseconds" - }, - "maxRequests": { - "type": "integer", - "default": 100, - "description": "Max requests per window" - } - }, - "additionalProperties": false - } + "RateLimitConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/shared/SnakeCaseIdentifier.json b/packages/spec/json-schema/shared/SnakeCaseIdentifier.json index 8887c5e86..881695571 100644 --- a/packages/spec/json-schema/shared/SnakeCaseIdentifier.json +++ b/packages/spec/json-schema/shared/SnakeCaseIdentifier.json @@ -1,12 +1,7 @@ { "$ref": "#/definitions/SnakeCaseIdentifier", "definitions": { - "SnakeCaseIdentifier": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Snake case identifier (lowercase with underscores only)" - } + "SnakeCaseIdentifier": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/shared/StaticMount.json b/packages/spec/json-schema/shared/StaticMount.json index df19f5976..c91eb9a85 100644 --- a/packages/spec/json-schema/shared/StaticMount.json +++ b/packages/spec/json-schema/shared/StaticMount.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/StaticMount", "definitions": { - "StaticMount": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "URL path to serve from" - }, - "directory": { - "type": "string", - "description": "Physical directory to serve" - }, - "cacheControl": { - "type": "string", - "description": "Cache-Control header value" - } - }, - "required": [ - "path", - "directory" - ], - "additionalProperties": false - } + "StaticMount": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/shared/SystemIdentifier.json b/packages/spec/json-schema/shared/SystemIdentifier.json index 5237b5bd9..9ca7a2dd1 100644 --- a/packages/spec/json-schema/shared/SystemIdentifier.json +++ b/packages/spec/json-schema/shared/SystemIdentifier.json @@ -1,12 +1,7 @@ { "$ref": "#/definitions/SystemIdentifier", "definitions": { - "SystemIdentifier": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "System identifier (lowercase with underscores or dots)" - } + "SystemIdentifier": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/shared/TransformType.json b/packages/spec/json-schema/shared/TransformType.json index 896a5e75c..633b669f4 100644 --- a/packages/spec/json-schema/shared/TransformType.json +++ b/packages/spec/json-schema/shared/TransformType.json @@ -1,120 +1,7 @@ { "$ref": "#/definitions/TransformType", "definitions": { - "TransformType": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "constant" - }, - "value": { - "description": "Constant value to use" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Set a constant value" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cast" - }, - "targetType": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "date" - ], - "description": "Target data type" - } - }, - "required": [ - "type", - "targetType" - ], - "additionalProperties": false, - "description": "Cast to a specific data type" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lookup" - }, - "table": { - "type": "string", - "description": "Lookup table name" - }, - "keyField": { - "type": "string", - "description": "Field to match on" - }, - "valueField": { - "type": "string", - "description": "Field to retrieve" - } - }, - "required": [ - "type", - "table", - "keyField", - "valueField" - ], - "additionalProperties": false, - "description": "Lookup value from another table" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "javascript" - }, - "expression": { - "type": "string", - "description": "JavaScript expression (e.g., \"value.toUpperCase()\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false, - "description": "Custom JavaScript transformation" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "map" - }, - "mappings": { - "type": "object", - "additionalProperties": {}, - "description": "Value mappings (e.g., {\"Active\": \"active\"})" - } - }, - "required": [ - "type", - "mappings" - ], - "additionalProperties": false, - "description": "Map values using a dictionary" - } - ] - } + "TransformType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AccessControlConfig.json b/packages/spec/json-schema/system/AccessControlConfig.json index 327e2d83e..18d416bcc 100644 --- a/packages/spec/json-schema/system/AccessControlConfig.json +++ b/packages/spec/json-schema/system/AccessControlConfig.json @@ -1,106 +1,7 @@ { "$ref": "#/definitions/AccessControlConfig", "definitions": { - "AccessControlConfig": { - "type": "object", - "properties": { - "acl": { - "type": "string", - "enum": [ - "private", - "public_read", - "public_read_write", - "authenticated_read", - "bucket_owner_read", - "bucket_owner_full_control" - ], - "description": "Default access control level", - "default": "private" - }, - "allowedOrigins": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS allowed origins" - }, - "allowedMethods": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "GET", - "PUT", - "POST", - "DELETE", - "HEAD" - ] - }, - "description": "CORS allowed HTTP methods" - }, - "allowedHeaders": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS allowed headers" - }, - "exposeHeaders": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS exposed headers" - }, - "maxAge": { - "type": "number", - "minimum": 0, - "description": "CORS preflight cache duration in seconds" - }, - "corsEnabled": { - "type": "boolean", - "default": false, - "description": "Enable CORS configuration" - }, - "publicAccess": { - "type": "object", - "properties": { - "allowPublicRead": { - "type": "boolean", - "default": false, - "description": "Allow public read access" - }, - "allowPublicWrite": { - "type": "boolean", - "default": false, - "description": "Allow public write access" - }, - "allowPublicList": { - "type": "boolean", - "default": false, - "description": "Allow public bucket listing" - } - }, - "additionalProperties": false, - "description": "Public access control" - }, - "allowedIps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed IP addresses/CIDR blocks" - }, - "blockedIps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked IP addresses/CIDR blocks" - } - }, - "additionalProperties": false - } + "AccessControlConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AnalyzerConfig.json b/packages/spec/json-schema/system/AnalyzerConfig.json index b3f8a8711..a1f73e88a 100644 --- a/packages/spec/json-schema/system/AnalyzerConfig.json +++ b/packages/spec/json-schema/system/AnalyzerConfig.json @@ -1,41 +1,7 @@ { "$ref": "#/definitions/AnalyzerConfig", "definitions": { - "AnalyzerConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "standard", - "simple", - "whitespace", - "keyword", - "pattern", - "language" - ] - }, - "language": { - "type": "string" - }, - "stopwords": { - "type": "array", - "items": { - "type": "string" - } - }, - "customFilters": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "AnalyzerConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditConfig.json b/packages/spec/json-schema/system/AuditConfig.json index 27ea79f2a..d49865e1b 100644 --- a/packages/spec/json-schema/system/AuditConfig.json +++ b/packages/spec/json-schema/system/AuditConfig.json @@ -1,587 +1,7 @@ { "$ref": "#/definitions/AuditConfig", "definitions": { - "AuditConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "maxLength": 64, - "description": "Configuration name (snake_case, max 64 chars)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable audit logging" - }, - "eventTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "data.create", - "data.read", - "data.update", - "data.delete", - "data.export", - "data.import", - "data.bulk_update", - "data.bulk_delete", - "auth.login", - "auth.login_failed", - "auth.logout", - "auth.session_created", - "auth.session_expired", - "auth.password_reset", - "auth.password_changed", - "auth.email_verified", - "auth.mfa_enabled", - "auth.mfa_disabled", - "auth.account_locked", - "auth.account_unlocked", - "authz.permission_granted", - "authz.permission_revoked", - "authz.role_assigned", - "authz.role_removed", - "authz.role_created", - "authz.role_updated", - "authz.role_deleted", - "authz.policy_created", - "authz.policy_updated", - "authz.policy_deleted", - "system.config_changed", - "system.plugin_installed", - "system.plugin_uninstalled", - "system.backup_created", - "system.backup_restored", - "system.integration_added", - "system.integration_removed", - "security.access_denied", - "security.suspicious_activity", - "security.data_breach", - "security.api_key_created", - "security.api_key_revoked" - ] - }, - "description": "Event types to audit" - }, - "excludeEventTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "data.create", - "data.read", - "data.update", - "data.delete", - "data.export", - "data.import", - "data.bulk_update", - "data.bulk_delete", - "auth.login", - "auth.login_failed", - "auth.logout", - "auth.session_created", - "auth.session_expired", - "auth.password_reset", - "auth.password_changed", - "auth.email_verified", - "auth.mfa_enabled", - "auth.mfa_disabled", - "auth.account_locked", - "auth.account_unlocked", - "authz.permission_granted", - "authz.permission_revoked", - "authz.role_assigned", - "authz.role_removed", - "authz.role_created", - "authz.role_updated", - "authz.role_deleted", - "authz.policy_created", - "authz.policy_updated", - "authz.policy_deleted", - "system.config_changed", - "system.plugin_installed", - "system.plugin_uninstalled", - "system.backup_created", - "system.backup_restored", - "system.integration_added", - "system.integration_removed", - "security.access_denied", - "security.suspicious_activity", - "security.data_breach", - "security.api_key_created", - "security.api_key_revoked" - ] - }, - "description": "Event types to exclude" - }, - "minimumSeverity": { - "type": "string", - "enum": [ - "debug", - "info", - "notice", - "warning", - "error", - "critical", - "alert", - "emergency" - ], - "default": "info", - "description": "Minimum severity level" - }, - "storage": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "database", - "elasticsearch", - "mongodb", - "clickhouse", - "s3", - "gcs", - "azure_blob", - "custom" - ], - "description": "Storage backend type" - }, - "connectionString": { - "type": "string", - "description": "Connection string" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Storage-specific configuration" - }, - "bufferEnabled": { - "type": "boolean", - "default": true, - "description": "Enable buffering" - }, - "bufferSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100, - "description": "Buffer size" - }, - "flushIntervalSeconds": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5, - "description": "Flush interval in seconds" - }, - "compression": { - "type": "boolean", - "default": true, - "description": "Enable compression" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Storage configuration" - }, - "retentionPolicy": { - "type": "object", - "properties": { - "retentionDays": { - "type": "integer", - "minimum": 1, - "default": 180, - "description": "Retention period in days" - }, - "archiveAfterRetention": { - "type": "boolean", - "default": true, - "description": "Archive logs after retention period" - }, - "archiveStorage": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "s3", - "gcs", - "azure_blob", - "filesystem" - ], - "description": "Archive storage type" - }, - "endpoint": { - "type": "string", - "description": "Storage endpoint URL" - }, - "bucket": { - "type": "string", - "description": "Storage bucket/container name" - }, - "path": { - "type": "string", - "description": "Storage path prefix" - }, - "credentials": { - "type": "object", - "additionalProperties": {}, - "description": "Storage credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Archive storage configuration" - }, - "customRetention": { - "type": "object", - "additionalProperties": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "description": "Custom retention by event type" - }, - "minimumRetentionDays": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Minimum retention for compliance" - } - }, - "additionalProperties": false, - "default": {}, - "description": "Retention policy" - }, - "suspiciousActivityRules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Rule identifier" - }, - "name": { - "type": "string", - "description": "Rule name" - }, - "description": { - "type": "string", - "description": "Rule description" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Rule enabled status" - }, - "eventTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "data.create", - "data.read", - "data.update", - "data.delete", - "data.export", - "data.import", - "data.bulk_update", - "data.bulk_delete", - "auth.login", - "auth.login_failed", - "auth.logout", - "auth.session_created", - "auth.session_expired", - "auth.password_reset", - "auth.password_changed", - "auth.email_verified", - "auth.mfa_enabled", - "auth.mfa_disabled", - "auth.account_locked", - "auth.account_unlocked", - "authz.permission_granted", - "authz.permission_revoked", - "authz.role_assigned", - "authz.role_removed", - "authz.role_created", - "authz.role_updated", - "authz.role_deleted", - "authz.policy_created", - "authz.policy_updated", - "authz.policy_deleted", - "system.config_changed", - "system.plugin_installed", - "system.plugin_uninstalled", - "system.backup_created", - "system.backup_restored", - "system.integration_added", - "system.integration_removed", - "security.access_denied", - "security.suspicious_activity", - "security.data_breach", - "security.api_key_created", - "security.api_key_revoked" - ] - }, - "description": "Event types to monitor" - }, - "condition": { - "type": "object", - "properties": { - "threshold": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Event threshold" - }, - "windowSeconds": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Time window in seconds" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Grouping criteria" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Additional filters" - } - }, - "required": [ - "threshold", - "windowSeconds" - ], - "additionalProperties": false, - "description": "Detection condition" - }, - "actions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "alert", - "lock_account", - "block_ip", - "require_mfa", - "log_critical", - "webhook" - ] - }, - "description": "Actions to take" - }, - "alertSeverity": { - "type": "string", - "enum": [ - "debug", - "info", - "notice", - "warning", - "error", - "critical", - "alert", - "emergency" - ], - "default": "warning", - "description": "Alert severity" - }, - "notifications": { - "type": "object", - "properties": { - "email": { - "type": "array", - "items": { - "type": "string", - "format": "email" - }, - "description": "Email recipients" - }, - "slack": { - "type": "string", - "format": "uri", - "description": "Slack webhook URL" - }, - "webhook": { - "type": "string", - "format": "uri", - "description": "Custom webhook URL" - } - }, - "additionalProperties": false, - "description": "Notification configuration" - } - }, - "required": [ - "id", - "name", - "eventTypes", - "condition", - "actions" - ], - "additionalProperties": false - }, - "default": [], - "description": "Suspicious activity rules" - }, - "includeSensitiveData": { - "type": "boolean", - "default": false, - "description": "Include sensitive data" - }, - "redactFields": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "password", - "passwordHash", - "token", - "apiKey", - "secret", - "creditCard", - "ssn" - ], - "description": "Fields to redact" - }, - "logReads": { - "type": "boolean", - "default": false, - "description": "Log read operations" - }, - "readSamplingRate": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.1, - "description": "Read sampling rate" - }, - "logSystemEvents": { - "type": "boolean", - "default": true, - "description": "Log system events" - }, - "customHandlers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "eventType": { - "type": "string", - "enum": [ - "data.create", - "data.read", - "data.update", - "data.delete", - "data.export", - "data.import", - "data.bulk_update", - "data.bulk_delete", - "auth.login", - "auth.login_failed", - "auth.logout", - "auth.session_created", - "auth.session_expired", - "auth.password_reset", - "auth.password_changed", - "auth.email_verified", - "auth.mfa_enabled", - "auth.mfa_disabled", - "auth.account_locked", - "auth.account_unlocked", - "authz.permission_granted", - "authz.permission_revoked", - "authz.role_assigned", - "authz.role_removed", - "authz.role_created", - "authz.role_updated", - "authz.role_deleted", - "authz.policy_created", - "authz.policy_updated", - "authz.policy_deleted", - "system.config_changed", - "system.plugin_installed", - "system.plugin_uninstalled", - "system.backup_created", - "system.backup_restored", - "system.integration_added", - "system.integration_removed", - "security.access_denied", - "security.suspicious_activity", - "security.data_breach", - "security.api_key_created", - "security.api_key_revoked" - ], - "description": "Event type to handle" - }, - "handlerId": { - "type": "string", - "description": "Unique identifier for the handler" - } - }, - "required": [ - "eventType", - "handlerId" - ], - "additionalProperties": false - }, - "description": "Custom event handler references" - }, - "compliance": { - "type": "object", - "properties": { - "standards": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "sox", - "hipaa", - "gdpr", - "pci_dss", - "iso_27001", - "fedramp" - ] - }, - "description": "Compliance standards" - }, - "immutableLogs": { - "type": "boolean", - "default": true, - "description": "Enforce immutable logs" - }, - "requireSigning": { - "type": "boolean", - "default": false, - "description": "Require log signing" - }, - "signingKey": { - "type": "string", - "description": "Signing key" - } - }, - "additionalProperties": false, - "description": "Compliance configuration" - } - }, - "required": [ - "name", - "label", - "storage" - ], - "additionalProperties": false - } + "AuditConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditEvent.json b/packages/spec/json-schema/system/AuditEvent.json index e7897b27c..aa2a83953 100644 --- a/packages/spec/json-schema/system/AuditEvent.json +++ b/packages/spec/json-schema/system/AuditEvent.json @@ -1,232 +1,7 @@ { "$ref": "#/definitions/AuditEvent", "definitions": { - "AuditEvent": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Audit event ID" - }, - "eventType": { - "type": "string", - "enum": [ - "data.create", - "data.read", - "data.update", - "data.delete", - "data.export", - "data.import", - "data.bulk_update", - "data.bulk_delete", - "auth.login", - "auth.login_failed", - "auth.logout", - "auth.session_created", - "auth.session_expired", - "auth.password_reset", - "auth.password_changed", - "auth.email_verified", - "auth.mfa_enabled", - "auth.mfa_disabled", - "auth.account_locked", - "auth.account_unlocked", - "authz.permission_granted", - "authz.permission_revoked", - "authz.role_assigned", - "authz.role_removed", - "authz.role_created", - "authz.role_updated", - "authz.role_deleted", - "authz.policy_created", - "authz.policy_updated", - "authz.policy_deleted", - "system.config_changed", - "system.plugin_installed", - "system.plugin_uninstalled", - "system.backup_created", - "system.backup_restored", - "system.integration_added", - "system.integration_removed", - "security.access_denied", - "security.suspicious_activity", - "security.data_breach", - "security.api_key_created", - "security.api_key_revoked" - ], - "description": "Event type" - }, - "severity": { - "type": "string", - "enum": [ - "debug", - "info", - "notice", - "warning", - "error", - "critical", - "alert", - "emergency" - ], - "default": "info", - "description": "Event severity" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Event timestamp" - }, - "actor": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "user", - "system", - "service", - "api_client", - "integration" - ], - "description": "Actor type" - }, - "id": { - "type": "string", - "description": "Actor identifier" - }, - "name": { - "type": "string", - "description": "Actor display name" - }, - "email": { - "type": "string", - "format": "email", - "description": "Actor email address" - }, - "ipAddress": { - "type": "string", - "description": "Actor IP address" - }, - "userAgent": { - "type": "string", - "description": "User agent string" - } - }, - "required": [ - "type", - "id" - ], - "additionalProperties": false, - "description": "Event actor" - }, - "target": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Target type" - }, - "id": { - "type": "string", - "description": "Target identifier" - }, - "name": { - "type": "string", - "description": "Target display name" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Target metadata" - } - }, - "required": [ - "type", - "id" - ], - "additionalProperties": false, - "description": "Event target" - }, - "description": { - "type": "string", - "description": "Event description" - }, - "changes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Changed field name" - }, - "oldValue": { - "description": "Previous value" - }, - "newValue": { - "description": "New value" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "List of changes" - }, - "result": { - "type": "string", - "enum": [ - "success", - "failure", - "partial" - ], - "default": "success", - "description": "Action result" - }, - "errorMessage": { - "type": "string", - "description": "Error message" - }, - "tenantId": { - "type": "string", - "description": "Tenant identifier" - }, - "requestId": { - "type": "string", - "description": "Request ID for tracing" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional metadata" - }, - "location": { - "type": "object", - "properties": { - "country": { - "type": "string" - }, - "region": { - "type": "string" - }, - "city": { - "type": "string" - } - }, - "additionalProperties": false, - "description": "Geographic location" - } - }, - "required": [ - "id", - "eventType", - "timestamp", - "actor", - "description" - ], - "additionalProperties": false - } + "AuditEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditEventActor.json b/packages/spec/json-schema/system/AuditEventActor.json index 12b50ae20..c39d70a49 100644 --- a/packages/spec/json-schema/system/AuditEventActor.json +++ b/packages/spec/json-schema/system/AuditEventActor.json @@ -1,48 +1,7 @@ { "$ref": "#/definitions/AuditEventActor", "definitions": { - "AuditEventActor": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "user", - "system", - "service", - "api_client", - "integration" - ], - "description": "Actor type" - }, - "id": { - "type": "string", - "description": "Actor identifier" - }, - "name": { - "type": "string", - "description": "Actor display name" - }, - "email": { - "type": "string", - "format": "email", - "description": "Actor email address" - }, - "ipAddress": { - "type": "string", - "description": "Actor IP address" - }, - "userAgent": { - "type": "string", - "description": "User agent string" - } - }, - "required": [ - "type", - "id" - ], - "additionalProperties": false - } + "AuditEventActor": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditEventChange.json b/packages/spec/json-schema/system/AuditEventChange.json index b60cf554d..17950fe9d 100644 --- a/packages/spec/json-schema/system/AuditEventChange.json +++ b/packages/spec/json-schema/system/AuditEventChange.json @@ -1,25 +1,7 @@ { "$ref": "#/definitions/AuditEventChange", "definitions": { - "AuditEventChange": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Changed field name" - }, - "oldValue": { - "description": "Previous value" - }, - "newValue": { - "description": "New value" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } + "AuditEventChange": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditEventFilter.json b/packages/spec/json-schema/system/AuditEventFilter.json index a4a039985..41c636d8b 100644 --- a/packages/spec/json-schema/system/AuditEventFilter.json +++ b/packages/spec/json-schema/system/AuditEventFilter.json @@ -1,127 +1,7 @@ { "$ref": "#/definitions/AuditEventFilter", "definitions": { - "AuditEventFilter": { - "type": "object", - "properties": { - "eventTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "data.create", - "data.read", - "data.update", - "data.delete", - "data.export", - "data.import", - "data.bulk_update", - "data.bulk_delete", - "auth.login", - "auth.login_failed", - "auth.logout", - "auth.session_created", - "auth.session_expired", - "auth.password_reset", - "auth.password_changed", - "auth.email_verified", - "auth.mfa_enabled", - "auth.mfa_disabled", - "auth.account_locked", - "auth.account_unlocked", - "authz.permission_granted", - "authz.permission_revoked", - "authz.role_assigned", - "authz.role_removed", - "authz.role_created", - "authz.role_updated", - "authz.role_deleted", - "authz.policy_created", - "authz.policy_updated", - "authz.policy_deleted", - "system.config_changed", - "system.plugin_installed", - "system.plugin_uninstalled", - "system.backup_created", - "system.backup_restored", - "system.integration_added", - "system.integration_removed", - "security.access_denied", - "security.suspicious_activity", - "security.data_breach", - "security.api_key_created", - "security.api_key_revoked" - ] - }, - "description": "Event types to include" - }, - "severities": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "debug", - "info", - "notice", - "warning", - "error", - "critical", - "alert", - "emergency" - ] - }, - "description": "Severity levels to include" - }, - "actorId": { - "type": "string", - "description": "Actor identifier" - }, - "tenantId": { - "type": "string", - "description": "Tenant identifier" - }, - "timeRange": { - "type": "object", - "properties": { - "from": { - "type": "string", - "format": "date-time", - "description": "Start time" - }, - "to": { - "type": "string", - "format": "date-time", - "description": "End time" - } - }, - "required": [ - "from", - "to" - ], - "additionalProperties": false, - "description": "Time range filter" - }, - "result": { - "type": "string", - "enum": [ - "success", - "failure", - "partial" - ], - "description": "Result status" - }, - "searchQuery": { - "type": "string", - "description": "Search query" - }, - "customFilters": { - "type": "object", - "additionalProperties": {}, - "description": "Custom filters" - } - }, - "additionalProperties": false - } + "AuditEventFilter": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditEventSeverity.json b/packages/spec/json-schema/system/AuditEventSeverity.json index fb4540fe8..0f752165e 100644 --- a/packages/spec/json-schema/system/AuditEventSeverity.json +++ b/packages/spec/json-schema/system/AuditEventSeverity.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/AuditEventSeverity", "definitions": { - "AuditEventSeverity": { - "type": "string", - "enum": [ - "debug", - "info", - "notice", - "warning", - "error", - "critical", - "alert", - "emergency" - ] - } + "AuditEventSeverity": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditEventTarget.json b/packages/spec/json-schema/system/AuditEventTarget.json index 9e6b21656..44735f99f 100644 --- a/packages/spec/json-schema/system/AuditEventTarget.json +++ b/packages/spec/json-schema/system/AuditEventTarget.json @@ -1,33 +1,7 @@ { "$ref": "#/definitions/AuditEventTarget", "definitions": { - "AuditEventTarget": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Target type" - }, - "id": { - "type": "string", - "description": "Target identifier" - }, - "name": { - "type": "string", - "description": "Target display name" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Target metadata" - } - }, - "required": [ - "type", - "id" - ], - "additionalProperties": false - } + "AuditEventTarget": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditEventType.json b/packages/spec/json-schema/system/AuditEventType.json index 4f90ca603..cc1ce9bfd 100644 --- a/packages/spec/json-schema/system/AuditEventType.json +++ b/packages/spec/json-schema/system/AuditEventType.json @@ -1,53 +1,7 @@ { "$ref": "#/definitions/AuditEventType", "definitions": { - "AuditEventType": { - "type": "string", - "enum": [ - "data.create", - "data.read", - "data.update", - "data.delete", - "data.export", - "data.import", - "data.bulk_update", - "data.bulk_delete", - "auth.login", - "auth.login_failed", - "auth.logout", - "auth.session_created", - "auth.session_expired", - "auth.password_reset", - "auth.password_changed", - "auth.email_verified", - "auth.mfa_enabled", - "auth.mfa_disabled", - "auth.account_locked", - "auth.account_unlocked", - "authz.permission_granted", - "authz.permission_revoked", - "authz.role_assigned", - "authz.role_removed", - "authz.role_created", - "authz.role_updated", - "authz.role_deleted", - "authz.policy_created", - "authz.policy_updated", - "authz.policy_deleted", - "system.config_changed", - "system.plugin_installed", - "system.plugin_uninstalled", - "system.backup_created", - "system.backup_restored", - "system.integration_added", - "system.integration_removed", - "security.access_denied", - "security.suspicious_activity", - "security.data_breach", - "security.api_key_created", - "security.api_key_revoked" - ] - } + "AuditEventType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditLogConfig.json b/packages/spec/json-schema/system/AuditLogConfig.json index ddc32c594..3d9cc1b14 100644 --- a/packages/spec/json-schema/system/AuditLogConfig.json +++ b/packages/spec/json-schema/system/AuditLogConfig.json @@ -1,48 +1,7 @@ { "$ref": "#/definitions/AuditLogConfig", "definitions": { - "AuditLogConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "retentionDays": { - "type": "number", - "default": 365 - }, - "immutable": { - "type": "boolean", - "default": true - }, - "signLogs": { - "type": "boolean", - "default": false - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "read", - "update", - "delete", - "export", - "permission-change", - "login", - "logout", - "failed-login" - ] - } - } - }, - "required": [ - "events" - ], - "additionalProperties": false - } + "AuditLogConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditRetentionPolicy.json b/packages/spec/json-schema/system/AuditRetentionPolicy.json index 861306ea6..0b72c7f70 100644 --- a/packages/spec/json-schema/system/AuditRetentionPolicy.json +++ b/packages/spec/json-schema/system/AuditRetentionPolicy.json @@ -1,73 +1,7 @@ { "$ref": "#/definitions/AuditRetentionPolicy", "definitions": { - "AuditRetentionPolicy": { - "type": "object", - "properties": { - "retentionDays": { - "type": "integer", - "minimum": 1, - "default": 180, - "description": "Retention period in days" - }, - "archiveAfterRetention": { - "type": "boolean", - "default": true, - "description": "Archive logs after retention period" - }, - "archiveStorage": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "s3", - "gcs", - "azure_blob", - "filesystem" - ], - "description": "Archive storage type" - }, - "endpoint": { - "type": "string", - "description": "Storage endpoint URL" - }, - "bucket": { - "type": "string", - "description": "Storage bucket/container name" - }, - "path": { - "type": "string", - "description": "Storage path prefix" - }, - "credentials": { - "type": "object", - "additionalProperties": {}, - "description": "Storage credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Archive storage configuration" - }, - "customRetention": { - "type": "object", - "additionalProperties": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "description": "Custom retention by event type" - }, - "minimumRetentionDays": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Minimum retention for compliance" - } - }, - "additionalProperties": false - } + "AuditRetentionPolicy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AuditStorageConfig.json b/packages/spec/json-schema/system/AuditStorageConfig.json index 81c5359fa..ec55f21ce 100644 --- a/packages/spec/json-schema/system/AuditStorageConfig.json +++ b/packages/spec/json-schema/system/AuditStorageConfig.json @@ -1,60 +1,7 @@ { "$ref": "#/definitions/AuditStorageConfig", "definitions": { - "AuditStorageConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "database", - "elasticsearch", - "mongodb", - "clickhouse", - "s3", - "gcs", - "azure_blob", - "custom" - ], - "description": "Storage backend type" - }, - "connectionString": { - "type": "string", - "description": "Connection string" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Storage-specific configuration" - }, - "bufferEnabled": { - "type": "boolean", - "default": true, - "description": "Enable buffering" - }, - "bufferSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100, - "description": "Buffer size" - }, - "flushIntervalSeconds": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5, - "description": "Flush interval in seconds" - }, - "compression": { - "type": "boolean", - "default": true, - "description": "Enable compression" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "AuditStorageConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AwarenessEvent.json b/packages/spec/json-schema/system/AwarenessEvent.json index 6de707dbf..0a5207eae 100644 --- a/packages/spec/json-schema/system/AwarenessEvent.json +++ b/packages/spec/json-schema/system/AwarenessEvent.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/AwarenessEvent", "definitions": { - "AwarenessEvent": { - "type": "object", - "properties": { - "eventId": { - "type": "string", - "format": "uuid", - "description": "Event identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "eventType": { - "type": "string", - "enum": [ - "user.joined", - "user.left", - "user.updated", - "session.created", - "session.ended" - ], - "description": "Type of awareness event" - }, - "userId": { - "type": "string", - "description": "User involved in event" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of event" - }, - "payload": { - "description": "Event payload" - } - }, - "required": [ - "eventId", - "sessionId", - "eventType", - "timestamp" - ], - "additionalProperties": false - } + "AwarenessEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AwarenessSession.json b/packages/spec/json-schema/system/AwarenessSession.json index f3a3401a1..0c60a5373 100644 --- a/packages/spec/json-schema/system/AwarenessSession.json +++ b/packages/spec/json-schema/system/AwarenessSession.json @@ -1,117 +1,7 @@ { "$ref": "#/definitions/AwarenessSession", "definitions": { - "AwarenessSession": { - "type": "object", - "properties": { - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "documentId": { - "type": "string", - "description": "Document ID this session is for" - }, - "users": { - "type": "array", - "items": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "userName": { - "type": "string", - "description": "Display name" - }, - "userAvatar": { - "type": "string", - "description": "User avatar URL" - }, - "status": { - "type": "string", - "enum": [ - "active", - "idle", - "viewing", - "disconnected" - ], - "description": "Current activity status" - }, - "currentDocument": { - "type": "string", - "description": "Document ID user is currently editing" - }, - "currentView": { - "type": "string", - "description": "Current view/page user is on" - }, - "lastActivity": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last activity" - }, - "joinedAt": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when user joined session" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User permissions in this session" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional user state metadata" - } - }, - "required": [ - "userId", - "sessionId", - "userName", - "status", - "lastActivity", - "joinedAt" - ], - "additionalProperties": false - }, - "description": "Active users in session" - }, - "startedAt": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when session started" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last update" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Session metadata" - } - }, - "required": [ - "sessionId", - "users", - "startedAt", - "lastUpdate" - ], - "additionalProperties": false - } + "AwarenessSession": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AwarenessUpdate.json b/packages/spec/json-schema/system/AwarenessUpdate.json index cb06679fc..adf89846a 100644 --- a/packages/spec/json-schema/system/AwarenessUpdate.json +++ b/packages/spec/json-schema/system/AwarenessUpdate.json @@ -1,35 +1,7 @@ { "$ref": "#/definitions/AwarenessUpdate", "definitions": { - "AwarenessUpdate": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "active", - "idle", - "viewing", - "disconnected" - ], - "description": "Updated status" - }, - "currentDocument": { - "type": "string", - "description": "Updated current document" - }, - "currentView": { - "type": "string", - "description": "Updated current view" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Updated metadata" - } - }, - "additionalProperties": false - } + "AwarenessUpdate": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/AwarenessUserState.json b/packages/spec/json-schema/system/AwarenessUserState.json index 0edcb1090..68241a65a 100644 --- a/packages/spec/json-schema/system/AwarenessUserState.json +++ b/packages/spec/json-schema/system/AwarenessUserState.json @@ -1,77 +1,7 @@ { "$ref": "#/definitions/AwarenessUserState", "definitions": { - "AwarenessUserState": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "userName": { - "type": "string", - "description": "Display name" - }, - "userAvatar": { - "type": "string", - "description": "User avatar URL" - }, - "status": { - "type": "string", - "enum": [ - "active", - "idle", - "viewing", - "disconnected" - ], - "description": "Current activity status" - }, - "currentDocument": { - "type": "string", - "description": "Document ID user is currently editing" - }, - "currentView": { - "type": "string", - "description": "Current view/page user is on" - }, - "lastActivity": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last activity" - }, - "joinedAt": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when user joined session" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User permissions in this session" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional user state metadata" - } - }, - "required": [ - "userId", - "sessionId", - "userName", - "status", - "lastActivity", - "joinedAt" - ], - "additionalProperties": false - } + "AwarenessUserState": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/BatchProgress.json b/packages/spec/json-schema/system/BatchProgress.json index c41c65486..7802de37c 100644 --- a/packages/spec/json-schema/system/BatchProgress.json +++ b/packages/spec/json-schema/system/BatchProgress.json @@ -1,72 +1,7 @@ { "$ref": "#/definitions/BatchProgress", "definitions": { - "BatchProgress": { - "type": "object", - "properties": { - "batchId": { - "type": "string", - "description": "Batch job identifier" - }, - "total": { - "type": "integer", - "minimum": 0, - "description": "Total number of items" - }, - "processed": { - "type": "integer", - "minimum": 0, - "default": 0, - "description": "Items processed" - }, - "succeeded": { - "type": "integer", - "minimum": 0, - "default": 0, - "description": "Items succeeded" - }, - "failed": { - "type": "integer", - "minimum": 0, - "default": 0, - "description": "Items failed" - }, - "percentage": { - "type": "number", - "minimum": 0, - "maximum": 100, - "description": "Progress percentage" - }, - "status": { - "type": "string", - "enum": [ - "pending", - "running", - "completed", - "failed", - "cancelled" - ], - "description": "Batch status" - }, - "startedAt": { - "type": "string", - "format": "date-time", - "description": "When batch started" - }, - "completedAt": { - "type": "string", - "format": "date-time", - "description": "When batch completed" - } - }, - "required": [ - "batchId", - "total", - "percentage", - "status" - ], - "additionalProperties": false - } + "BatchProgress": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/BatchTask.json b/packages/spec/json-schema/system/BatchTask.json index 98f82ec6d..76b467778 100644 --- a/packages/spec/json-schema/system/BatchTask.json +++ b/packages/spec/json-schema/system/BatchTask.json @@ -1,63 +1,7 @@ { "$ref": "#/definitions/BatchTask", "definitions": { - "BatchTask": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique batch job identifier" - }, - "type": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Task type (snake_case)" - }, - "items": { - "type": "array", - "description": "Array of items to process" - }, - "batchSize": { - "type": "integer", - "minimum": 1, - "default": 100, - "description": "Number of items per batch" - }, - "queue": { - "type": "string", - "default": "batch", - "description": "Queue for batch tasks" - }, - "priority": { - "type": "string", - "enum": [ - "critical", - "high", - "normal", - "low", - "background" - ], - "default": "normal", - "description": "Batch task priority" - }, - "parallel": { - "type": "boolean", - "default": true, - "description": "Process batches in parallel" - }, - "stopOnError": { - "type": "boolean", - "default": false, - "description": "Stop batch if any item fails" - } - }, - "required": [ - "id", - "type", - "items" - ], - "additionalProperties": false - } + "BatchTask": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/BucketConfig.json b/packages/spec/json-schema/system/BucketConfig.json index 5f6954ff6..3b2d73f27 100644 --- a/packages/spec/json-schema/system/BucketConfig.json +++ b/packages/spec/json-schema/system/BucketConfig.json @@ -1,332 +1,7 @@ { "$ref": "#/definitions/BucketConfig", "definitions": { - "BucketConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Bucket identifier in ObjectStack (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "bucketName": { - "type": "string", - "description": "Actual bucket/container name in storage provider" - }, - "region": { - "type": "string", - "description": "Storage region (e.g., us-east-1, westus)" - }, - "provider": { - "type": "string", - "enum": [ - "s3", - "azure_blob", - "gcs", - "minio", - "r2", - "spaces", - "wasabi", - "backblaze", - "local" - ], - "description": "Storage provider" - }, - "endpoint": { - "type": "string", - "description": "Custom endpoint URL (for S3-compatible providers)" - }, - "pathStyle": { - "type": "boolean", - "default": false, - "description": "Use path-style URLs (for S3-compatible providers)" - }, - "versioning": { - "type": "boolean", - "default": false, - "description": "Enable object versioning" - }, - "encryption": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable server-side encryption" - }, - "algorithm": { - "type": "string", - "enum": [ - "AES256", - "aws:kms", - "azure:kms", - "gcp:kms" - ], - "default": "AES256", - "description": "Encryption algorithm" - }, - "kmsKeyId": { - "type": "string", - "description": "KMS key ID for managed encryption" - } - }, - "additionalProperties": false, - "description": "Server-side encryption configuration" - }, - "accessControl": { - "type": "object", - "properties": { - "acl": { - "type": "string", - "enum": [ - "private", - "public_read", - "public_read_write", - "authenticated_read", - "bucket_owner_read", - "bucket_owner_full_control" - ], - "description": "Default access control level", - "default": "private" - }, - "allowedOrigins": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS allowed origins" - }, - "allowedMethods": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "GET", - "PUT", - "POST", - "DELETE", - "HEAD" - ] - }, - "description": "CORS allowed HTTP methods" - }, - "allowedHeaders": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS allowed headers" - }, - "exposeHeaders": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS exposed headers" - }, - "maxAge": { - "type": "number", - "minimum": 0, - "description": "CORS preflight cache duration in seconds" - }, - "corsEnabled": { - "type": "boolean", - "default": false, - "description": "Enable CORS configuration" - }, - "publicAccess": { - "type": "object", - "properties": { - "allowPublicRead": { - "type": "boolean", - "default": false, - "description": "Allow public read access" - }, - "allowPublicWrite": { - "type": "boolean", - "default": false, - "description": "Allow public write access" - }, - "allowPublicList": { - "type": "boolean", - "default": false, - "description": "Allow public bucket listing" - } - }, - "additionalProperties": false, - "description": "Public access control" - }, - "allowedIps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed IP addresses/CIDR blocks" - }, - "blockedIps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked IP addresses/CIDR blocks" - } - }, - "additionalProperties": false, - "description": "Access control configuration" - }, - "lifecyclePolicy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable lifecycle policies" - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Rule identifier" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable this rule" - }, - "action": { - "type": "string", - "enum": [ - "transition", - "delete", - "abort" - ], - "description": "Action to perform" - }, - "prefix": { - "type": "string", - "description": "Object key prefix filter (e.g., \"uploads/\")" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Object tag filters" - }, - "daysAfterCreation": { - "type": "number", - "minimum": 0, - "description": "Days after object creation" - }, - "daysAfterModification": { - "type": "number", - "minimum": 0, - "description": "Days after last modification" - }, - "targetStorageClass": { - "type": "string", - "enum": [ - "standard", - "intelligent", - "infrequent_access", - "glacier", - "deep_archive" - ], - "description": "Target storage class for transition action" - } - }, - "required": [ - "id", - "action" - ], - "additionalProperties": false - }, - "default": [], - "description": "Lifecycle rules" - } - }, - "additionalProperties": false, - "description": "Lifecycle policy configuration" - }, - "multipartConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable multipart uploads" - }, - "partSize": { - "type": "number", - "minimum": 5242880, - "maximum": 5368709120, - "default": 10485760, - "description": "Part size in bytes (min 5MB, max 5GB)" - }, - "maxParts": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 10000, - "description": "Maximum number of parts (max 10,000)" - }, - "threshold": { - "type": "number", - "minimum": 0, - "default": 104857600, - "description": "File size threshold to trigger multipart upload (bytes)" - }, - "maxConcurrent": { - "type": "number", - "minimum": 1, - "maximum": 100, - "default": 4, - "description": "Maximum concurrent part uploads" - }, - "abortIncompleteAfterDays": { - "type": "number", - "minimum": 1, - "description": "Auto-abort incomplete uploads after N days" - } - }, - "additionalProperties": false, - "description": "Multipart upload configuration" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Bucket tags for organization" - }, - "description": { - "type": "string", - "description": "Bucket description" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable this bucket" - } - }, - "required": [ - "name", - "label", - "bucketName", - "provider" - ], - "additionalProperties": false - } + "BucketConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CRDTMergeResult.json b/packages/spec/json-schema/system/CRDTMergeResult.json index 84640616d..e37e2c1d8 100644 --- a/packages/spec/json-schema/system/CRDTMergeResult.json +++ b/packages/spec/json-schema/system/CRDTMergeResult.json @@ -1,295 +1,7 @@ { "$ref": "#/definitions/CRDTMergeResult", "definitions": { - "CRDTMergeResult": { - "type": "object", - "properties": { - "state": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lww-register" - }, - "value": { - "description": "Current register value" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last write" - }, - "replicaId": { - "type": "string", - "description": "ID of replica that performed last write" - }, - "vectorClock": { - "type": "object", - "properties": { - "clock": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Map of replica ID to logical timestamp" - } - }, - "required": [ - "clock" - ], - "additionalProperties": false, - "description": "Optional vector clock for causality tracking" - } - }, - "required": [ - "type", - "timestamp", - "replicaId" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "g-counter" - }, - "counts": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Map of replica ID to count" - } - }, - "required": [ - "type", - "counts" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "pn-counter" - }, - "positive": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Positive increments per replica" - }, - "negative": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Negative increments per replica" - } - }, - "required": [ - "type", - "positive", - "negative" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "or-set" - }, - "elements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "description": "Element value" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Addition timestamp" - }, - "replicaId": { - "type": "string", - "description": "Replica that added the element" - }, - "uid": { - "type": "string", - "format": "uuid", - "description": "Unique identifier for this addition" - }, - "removed": { - "type": "boolean", - "default": false, - "description": "Whether element has been removed" - } - }, - "required": [ - "timestamp", - "replicaId", - "uid" - ], - "additionalProperties": false - }, - "description": "Set elements with metadata" - } - }, - "required": [ - "type", - "elements" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "text" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "content": { - "type": "string", - "description": "Current text content" - }, - "operations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "replicaId": { - "type": "string", - "description": "Replica identifier" - }, - "position": { - "type": "integer", - "minimum": 0, - "description": "Position in document" - }, - "insert": { - "type": "string", - "description": "Text to insert" - }, - "delete": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to delete" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of operation" - }, - "lamportTimestamp": { - "type": "integer", - "minimum": 0, - "description": "Lamport timestamp for ordering" - } - }, - "required": [ - "operationId", - "replicaId", - "position", - "timestamp", - "lamportTimestamp" - ], - "additionalProperties": false - }, - "description": "History of operations" - }, - "lamportClock": { - "type": "integer", - "minimum": 0, - "description": "Current Lamport clock value" - }, - "vectorClock": { - "type": "object", - "properties": { - "clock": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Map of replica ID to logical timestamp" - } - }, - "required": [ - "clock" - ], - "additionalProperties": false, - "description": "Vector clock for causality" - } - }, - "required": [ - "type", - "documentId", - "content", - "operations", - "lamportClock", - "vectorClock" - ], - "additionalProperties": false - } - ], - "description": "Merged CRDT state" - }, - "conflicts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Conflict type" - }, - "description": { - "type": "string", - "description": "Conflict description" - }, - "resolved": { - "type": "boolean", - "description": "Whether conflict was automatically resolved" - } - }, - "required": [ - "type", - "description", - "resolved" - ], - "additionalProperties": false - }, - "description": "Conflicts encountered during merge" - } - }, - "required": [ - "state" - ], - "additionalProperties": false - } + "CRDTMergeResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CRDTState.json b/packages/spec/json-schema/system/CRDTState.json index 9354aa577..fbd0fa8c9 100644 --- a/packages/spec/json-schema/system/CRDTState.json +++ b/packages/spec/json-schema/system/CRDTState.json @@ -1,258 +1,7 @@ { "$ref": "#/definitions/CRDTState", "definitions": { - "CRDTState": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lww-register" - }, - "value": { - "description": "Current register value" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last write" - }, - "replicaId": { - "type": "string", - "description": "ID of replica that performed last write" - }, - "vectorClock": { - "type": "object", - "properties": { - "clock": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Map of replica ID to logical timestamp" - } - }, - "required": [ - "clock" - ], - "additionalProperties": false, - "description": "Optional vector clock for causality tracking" - } - }, - "required": [ - "type", - "timestamp", - "replicaId" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "g-counter" - }, - "counts": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Map of replica ID to count" - } - }, - "required": [ - "type", - "counts" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "pn-counter" - }, - "positive": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Positive increments per replica" - }, - "negative": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Negative increments per replica" - } - }, - "required": [ - "type", - "positive", - "negative" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "or-set" - }, - "elements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "description": "Element value" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Addition timestamp" - }, - "replicaId": { - "type": "string", - "description": "Replica that added the element" - }, - "uid": { - "type": "string", - "format": "uuid", - "description": "Unique identifier for this addition" - }, - "removed": { - "type": "boolean", - "default": false, - "description": "Whether element has been removed" - } - }, - "required": [ - "timestamp", - "replicaId", - "uid" - ], - "additionalProperties": false - }, - "description": "Set elements with metadata" - } - }, - "required": [ - "type", - "elements" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "text" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "content": { - "type": "string", - "description": "Current text content" - }, - "operations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "replicaId": { - "type": "string", - "description": "Replica identifier" - }, - "position": { - "type": "integer", - "minimum": 0, - "description": "Position in document" - }, - "insert": { - "type": "string", - "description": "Text to insert" - }, - "delete": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to delete" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of operation" - }, - "lamportTimestamp": { - "type": "integer", - "minimum": 0, - "description": "Lamport timestamp for ordering" - } - }, - "required": [ - "operationId", - "replicaId", - "position", - "timestamp", - "lamportTimestamp" - ], - "additionalProperties": false - }, - "description": "History of operations" - }, - "lamportClock": { - "type": "integer", - "minimum": 0, - "description": "Current Lamport clock value" - }, - "vectorClock": { - "type": "object", - "properties": { - "clock": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Map of replica ID to logical timestamp" - } - }, - "required": [ - "clock" - ], - "additionalProperties": false, - "description": "Vector clock for causality" - } - }, - "required": [ - "type", - "documentId", - "content", - "operations", - "lamportClock", - "vectorClock" - ], - "additionalProperties": false - } - ] - } + "CRDTState": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CRDTType.json b/packages/spec/json-schema/system/CRDTType.json index 36d88414e..5b1b4b378 100644 --- a/packages/spec/json-schema/system/CRDTType.json +++ b/packages/spec/json-schema/system/CRDTType.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/CRDTType", "definitions": { - "CRDTType": { - "type": "string", - "enum": [ - "lww-register", - "g-counter", - "pn-counter", - "g-set", - "or-set", - "lww-map", - "text", - "tree", - "json" - ] - } + "CRDTType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CacheConfig.json b/packages/spec/json-schema/system/CacheConfig.json index 0a0a075ee..d7b78c787 100644 --- a/packages/spec/json-schema/system/CacheConfig.json +++ b/packages/spec/json-schema/system/CacheConfig.json @@ -1,121 +1,7 @@ { "$ref": "#/definitions/CacheConfig", "definitions": { - "CacheConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "tiers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "memory", - "redis", - "memcached", - "cdn" - ] - }, - "maxSize": { - "type": "number", - "description": "Max size in MB" - }, - "ttl": { - "type": "number", - "default": 300, - "description": "Default TTL in seconds" - }, - "strategy": { - "type": "string", - "enum": [ - "lru", - "lfu", - "fifo", - "ttl", - "adaptive" - ], - "default": "lru" - }, - "warmup": { - "type": "boolean", - "default": false - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "invalidation": { - "type": "array", - "items": { - "type": "object", - "properties": { - "trigger": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "manual" - ] - }, - "scope": { - "type": "string", - "enum": [ - "key", - "pattern", - "tag", - "all" - ] - }, - "pattern": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "trigger", - "scope" - ], - "additionalProperties": false - } - }, - "prefetch": { - "type": "boolean", - "default": false - }, - "compression": { - "type": "boolean", - "default": false - }, - "encryption": { - "type": "boolean", - "default": false - } - }, - "required": [ - "tiers", - "invalidation" - ], - "additionalProperties": false - } + "CacheConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CacheInvalidation.json b/packages/spec/json-schema/system/CacheInvalidation.json index b4c9ec64e..26cd91bab 100644 --- a/packages/spec/json-schema/system/CacheInvalidation.json +++ b/packages/spec/json-schema/system/CacheInvalidation.json @@ -1,43 +1,7 @@ { "$ref": "#/definitions/CacheInvalidation", "definitions": { - "CacheInvalidation": { - "type": "object", - "properties": { - "trigger": { - "type": "string", - "enum": [ - "create", - "update", - "delete", - "manual" - ] - }, - "scope": { - "type": "string", - "enum": [ - "key", - "pattern", - "tag", - "all" - ] - }, - "pattern": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "trigger", - "scope" - ], - "additionalProperties": false - } + "CacheInvalidation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CacheStrategy.json b/packages/spec/json-schema/system/CacheStrategy.json index 3a623152d..3839b1b3b 100644 --- a/packages/spec/json-schema/system/CacheStrategy.json +++ b/packages/spec/json-schema/system/CacheStrategy.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/CacheStrategy", "definitions": { - "CacheStrategy": { - "type": "string", - "enum": [ - "lru", - "lfu", - "fifo", - "ttl", - "adaptive" - ] - } + "CacheStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CacheTier.json b/packages/spec/json-schema/system/CacheTier.json index 7602d3bf7..524e72ae7 100644 --- a/packages/spec/json-schema/system/CacheTier.json +++ b/packages/spec/json-schema/system/CacheTier.json @@ -1,52 +1,7 @@ { "$ref": "#/definitions/CacheTier", "definitions": { - "CacheTier": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "memory", - "redis", - "memcached", - "cdn" - ] - }, - "maxSize": { - "type": "number", - "description": "Max size in MB" - }, - "ttl": { - "type": "number", - "default": 300, - "description": "Default TTL in seconds" - }, - "strategy": { - "type": "string", - "enum": [ - "lru", - "lfu", - "fifo", - "ttl", - "adaptive" - ], - "default": "lru" - }, - "warmup": { - "type": "boolean", - "default": false - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } + "CacheTier": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CapabilityConformanceLevel.json b/packages/spec/json-schema/system/CapabilityConformanceLevel.json index 9a2a7b051..1883bfba1 100644 --- a/packages/spec/json-schema/system/CapabilityConformanceLevel.json +++ b/packages/spec/json-schema/system/CapabilityConformanceLevel.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/CapabilityConformanceLevel", "definitions": { - "CapabilityConformanceLevel": { - "type": "string", - "enum": [ - "full", - "partial", - "experimental", - "deprecated" - ], - "description": "Level of protocol conformance" - } + "CapabilityConformanceLevel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ChangeImpact.json b/packages/spec/json-schema/system/ChangeImpact.json index ead817cbe..f7c10dd02 100644 --- a/packages/spec/json-schema/system/ChangeImpact.json +++ b/packages/spec/json-schema/system/ChangeImpact.json @@ -1,55 +1,7 @@ { "$ref": "#/definitions/ChangeImpact", "definitions": { - "ChangeImpact": { - "type": "object", - "properties": { - "level": { - "type": "string", - "enum": [ - "low", - "medium", - "high", - "critical" - ], - "description": "Impact level" - }, - "affectedSystems": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Affected systems" - }, - "affectedUsers": { - "type": "number", - "description": "Affected user count" - }, - "downtime": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Downtime required" - }, - "durationMinutes": { - "type": "number", - "description": "Downtime duration" - } - }, - "required": [ - "required" - ], - "additionalProperties": false, - "description": "Downtime information" - } - }, - "required": [ - "level", - "affectedSystems" - ], - "additionalProperties": false - } + "ChangeImpact": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ChangePriority.json b/packages/spec/json-schema/system/ChangePriority.json index cdf051598..e2e9f22bc 100644 --- a/packages/spec/json-schema/system/ChangePriority.json +++ b/packages/spec/json-schema/system/ChangePriority.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/ChangePriority", "definitions": { - "ChangePriority": { - "type": "string", - "enum": [ - "critical", - "high", - "medium", - "low" - ] - } + "ChangePriority": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ChangeRequest.json b/packages/spec/json-schema/system/ChangeRequest.json index 23bcfd1fc..e45507639 100644 --- a/packages/spec/json-schema/system/ChangeRequest.json +++ b/packages/spec/json-schema/system/ChangeRequest.json @@ -1,313 +1,7 @@ { "$ref": "#/definitions/ChangeRequest", "definitions": { - "ChangeRequest": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Change request ID" - }, - "title": { - "type": "string", - "description": "Change title" - }, - "description": { - "type": "string", - "description": "Change description" - }, - "type": { - "type": "string", - "enum": [ - "standard", - "normal", - "emergency", - "major" - ], - "description": "Change type" - }, - "priority": { - "type": "string", - "enum": [ - "critical", - "high", - "medium", - "low" - ], - "description": "Change priority" - }, - "status": { - "type": "string", - "enum": [ - "draft", - "submitted", - "in-review", - "approved", - "scheduled", - "in-progress", - "completed", - "failed", - "rolled-back", - "cancelled" - ], - "description": "Change status" - }, - "requestedBy": { - "type": "string", - "description": "Requester user ID" - }, - "requestedAt": { - "type": "number", - "description": "Request timestamp" - }, - "impact": { - "type": "object", - "properties": { - "level": { - "type": "string", - "enum": [ - "low", - "medium", - "high", - "critical" - ], - "description": "Impact level" - }, - "affectedSystems": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Affected systems" - }, - "affectedUsers": { - "type": "number", - "description": "Affected user count" - }, - "downtime": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Downtime required" - }, - "durationMinutes": { - "type": "number", - "description": "Downtime duration" - } - }, - "required": [ - "required" - ], - "additionalProperties": false, - "description": "Downtime information" - } - }, - "required": [ - "level", - "affectedSystems" - ], - "additionalProperties": false, - "description": "Impact assessment" - }, - "implementation": { - "type": "object", - "properties": { - "description": { - "type": "string", - "description": "Implementation description" - }, - "steps": { - "type": "array", - "items": { - "type": "object", - "properties": { - "order": { - "type": "number", - "description": "Step order" - }, - "description": { - "type": "string", - "description": "Step description" - }, - "estimatedMinutes": { - "type": "number", - "description": "Estimated duration" - } - }, - "required": [ - "order", - "description", - "estimatedMinutes" - ], - "additionalProperties": false - }, - "description": "Implementation steps" - }, - "testing": { - "type": "string", - "description": "Testing procedure" - } - }, - "required": [ - "description", - "steps" - ], - "additionalProperties": false, - "description": "Implementation plan" - }, - "rollbackPlan": { - "type": "object", - "properties": { - "description": { - "type": "string", - "description": "Rollback description" - }, - "steps": { - "type": "array", - "items": { - "type": "object", - "properties": { - "order": { - "type": "number", - "description": "Step order" - }, - "description": { - "type": "string", - "description": "Step description" - }, - "estimatedMinutes": { - "type": "number", - "description": "Estimated duration" - } - }, - "required": [ - "order", - "description", - "estimatedMinutes" - ], - "additionalProperties": false - }, - "description": "Rollback steps" - }, - "testProcedure": { - "type": "string", - "description": "Test procedure" - } - }, - "required": [ - "description", - "steps" - ], - "additionalProperties": false, - "description": "Rollback plan" - }, - "schedule": { - "type": "object", - "properties": { - "plannedStart": { - "type": "number", - "description": "Planned start time" - }, - "plannedEnd": { - "type": "number", - "description": "Planned end time" - }, - "actualStart": { - "type": "number", - "description": "Actual start time" - }, - "actualEnd": { - "type": "number", - "description": "Actual end time" - } - }, - "required": [ - "plannedStart", - "plannedEnd" - ], - "additionalProperties": false, - "description": "Schedule" - }, - "approval": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Approval required" - }, - "approvers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "Approver user ID" - }, - "approvedAt": { - "type": "number", - "description": "Approval timestamp" - }, - "comments": { - "type": "string", - "description": "Approver comments" - } - }, - "required": [ - "userId" - ], - "additionalProperties": false - }, - "description": "Approvers" - } - }, - "required": [ - "required", - "approvers" - ], - "additionalProperties": false, - "description": "Approval workflow" - }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Attachment name" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Attachment URL" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Attachments" - } - }, - "required": [ - "id", - "title", - "description", - "type", - "priority", - "status", - "requestedBy", - "requestedAt", - "impact", - "implementation", - "rollbackPlan" - ], - "additionalProperties": false - } + "ChangeRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ChangeStatus.json b/packages/spec/json-schema/system/ChangeStatus.json index 8fb05526f..ecc4a3efd 100644 --- a/packages/spec/json-schema/system/ChangeStatus.json +++ b/packages/spec/json-schema/system/ChangeStatus.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/ChangeStatus", "definitions": { - "ChangeStatus": { - "type": "string", - "enum": [ - "draft", - "submitted", - "in-review", - "approved", - "scheduled", - "in-progress", - "completed", - "failed", - "rolled-back", - "cancelled" - ] - } + "ChangeStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ChangeType.json b/packages/spec/json-schema/system/ChangeType.json index 7d056daa8..34eaa6ec2 100644 --- a/packages/spec/json-schema/system/ChangeType.json +++ b/packages/spec/json-schema/system/ChangeType.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/ChangeType", "definitions": { - "ChangeType": { - "type": "string", - "enum": [ - "standard", - "normal", - "emergency", - "major" - ] - } + "ChangeType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CollaborationMode.json b/packages/spec/json-schema/system/CollaborationMode.json index c5a3f3c6c..1bea8e896 100644 --- a/packages/spec/json-schema/system/CollaborationMode.json +++ b/packages/spec/json-schema/system/CollaborationMode.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/CollaborationMode", "definitions": { - "CollaborationMode": { - "type": "string", - "enum": [ - "ot", - "crdt", - "lock", - "hybrid" - ] - } + "CollaborationMode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CollaborationSession.json b/packages/spec/json-schema/system/CollaborationSession.json index 5405ce1a4..5a6880442 100644 --- a/packages/spec/json-schema/system/CollaborationSession.json +++ b/packages/spec/json-schema/system/CollaborationSession.json @@ -1,575 +1,7 @@ { "$ref": "#/definitions/CollaborationSession", "definitions": { - "CollaborationSession": { - "type": "object", - "properties": { - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "config": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "ot", - "crdt", - "lock", - "hybrid" - ], - "description": "Collaboration mode to use" - }, - "enableCursorSharing": { - "type": "boolean", - "default": true, - "description": "Enable cursor sharing" - }, - "enablePresence": { - "type": "boolean", - "default": true, - "description": "Enable presence tracking" - }, - "enableAwareness": { - "type": "boolean", - "default": true, - "description": "Enable awareness state" - }, - "maxUsers": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum concurrent users" - }, - "idleTimeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 300000, - "description": "Idle timeout in milliseconds" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "ot", - "crdt", - "manual" - ], - "default": "ot", - "description": "Conflict resolution strategy" - }, - "persistence": { - "type": "boolean", - "default": true, - "description": "Enable operation persistence" - }, - "snapshot": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable periodic snapshots" - }, - "interval": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Snapshot interval in milliseconds" - } - }, - "required": [ - "enabled", - "interval" - ], - "additionalProperties": false, - "description": "Snapshot configuration" - } - }, - "required": [ - "mode" - ], - "additionalProperties": false, - "description": "Session configuration" - }, - "users": { - "type": "array", - "items": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "userName": { - "type": "string", - "description": "Display name" - }, - "userAvatar": { - "type": "string", - "description": "User avatar URL" - }, - "status": { - "type": "string", - "enum": [ - "active", - "idle", - "viewing", - "disconnected" - ], - "description": "Current activity status" - }, - "currentDocument": { - "type": "string", - "description": "Document ID user is currently editing" - }, - "currentView": { - "type": "string", - "description": "Current view/page user is on" - }, - "lastActivity": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last activity" - }, - "joinedAt": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when user joined session" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "User permissions in this session" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional user state metadata" - } - }, - "required": [ - "userId", - "sessionId", - "userName", - "status", - "lastActivity", - "joinedAt" - ], - "additionalProperties": false - }, - "description": "Active users" - }, - "cursors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "userName": { - "type": "string", - "description": "Display name of user" - }, - "position": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Cursor line number (0-indexed)" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Cursor column number (0-indexed)" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Current cursor position" - }, - "selection": { - "type": "object", - "properties": { - "anchor": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Anchor line number" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Anchor column number" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Selection anchor (start point)" - }, - "focus": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Focus line number" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Focus column number" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Selection focus (end point)" - }, - "direction": { - "type": "string", - "enum": [ - "forward", - "backward" - ], - "description": "Selection direction" - } - }, - "required": [ - "anchor", - "focus" - ], - "additionalProperties": false, - "description": "Current text selection" - }, - "style": { - "type": "object", - "properties": { - "color": { - "anyOf": [ - { - "type": "string", - "enum": [ - "blue", - "green", - "red", - "yellow", - "purple", - "orange", - "pink", - "teal", - "indigo", - "cyan" - ] - }, - { - "type": "string" - } - ], - "description": "Cursor color (preset or custom hex)" - }, - "opacity": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 1, - "description": "Cursor opacity (0-1)" - }, - "label": { - "type": "string", - "description": "Label to display with cursor (usually username)" - }, - "showLabel": { - "type": "boolean", - "default": true, - "description": "Whether to show label" - }, - "pulseOnUpdate": { - "type": "boolean", - "default": true, - "description": "Whether to pulse when cursor moves" - } - }, - "required": [ - "color" - ], - "additionalProperties": false, - "description": "Visual style for this cursor" - }, - "isTyping": { - "type": "boolean", - "default": false, - "description": "Whether user is currently typing" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last cursor update" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional cursor metadata" - } - }, - "required": [ - "userId", - "sessionId", - "documentId", - "userName", - "position", - "style", - "lastUpdate" - ], - "additionalProperties": false - }, - "description": "Active cursors" - }, - "version": { - "type": "integer", - "minimum": 0, - "description": "Current document version" - }, - "operations": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "userId": { - "type": "string", - "description": "User who created the operation" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "components": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "insert" - }, - "text": { - "type": "string", - "description": "Text to insert" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Text formatting attributes (e.g., bold, italic)" - } - }, - "required": [ - "type", - "text" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "delete" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to delete" - } - }, - "required": [ - "type", - "count" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "retain" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to retain" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Attribute changes to apply" - } - }, - "required": [ - "type", - "count" - ], - "additionalProperties": false - } - ] - }, - "description": "Operation components" - }, - "baseVersion": { - "type": "integer", - "minimum": 0, - "description": "Document version this operation is based on" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when operation was created" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional operation metadata" - } - }, - "required": [ - "operationId", - "documentId", - "userId", - "sessionId", - "components", - "baseVersion", - "timestamp" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "replicaId": { - "type": "string", - "description": "Replica identifier" - }, - "position": { - "type": "integer", - "minimum": 0, - "description": "Position in document" - }, - "insert": { - "type": "string", - "description": "Text to insert" - }, - "delete": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to delete" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of operation" - }, - "lamportTimestamp": { - "type": "integer", - "minimum": 0, - "description": "Lamport timestamp for ordering" - } - }, - "required": [ - "operationId", - "replicaId", - "position", - "timestamp", - "lamportTimestamp" - ], - "additionalProperties": false - } - ] - }, - "description": "Recent operations" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when session was created" - }, - "lastActivity": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last activity" - }, - "status": { - "type": "string", - "enum": [ - "active", - "idle", - "ended" - ], - "description": "Session status" - } - }, - "required": [ - "sessionId", - "documentId", - "config", - "users", - "cursors", - "version", - "createdAt", - "lastActivity", - "status" - ], - "additionalProperties": false - } + "CollaborationSession": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CollaborationSessionConfig.json b/packages/spec/json-schema/system/CollaborationSessionConfig.json index cc7b97fad..9c0e0f952 100644 --- a/packages/spec/json-schema/system/CollaborationSessionConfig.json +++ b/packages/spec/json-schema/system/CollaborationSessionConfig.json @@ -1,86 +1,7 @@ { "$ref": "#/definitions/CollaborationSessionConfig", "definitions": { - "CollaborationSessionConfig": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "enum": [ - "ot", - "crdt", - "lock", - "hybrid" - ], - "description": "Collaboration mode to use" - }, - "enableCursorSharing": { - "type": "boolean", - "default": true, - "description": "Enable cursor sharing" - }, - "enablePresence": { - "type": "boolean", - "default": true, - "description": "Enable presence tracking" - }, - "enableAwareness": { - "type": "boolean", - "default": true, - "description": "Enable awareness state" - }, - "maxUsers": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum concurrent users" - }, - "idleTimeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 300000, - "description": "Idle timeout in milliseconds" - }, - "conflictResolution": { - "type": "string", - "enum": [ - "ot", - "crdt", - "manual" - ], - "default": "ot", - "description": "Conflict resolution strategy" - }, - "persistence": { - "type": "boolean", - "default": true, - "description": "Enable operation persistence" - }, - "snapshot": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable periodic snapshots" - }, - "interval": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Snapshot interval in milliseconds" - } - }, - "required": [ - "enabled", - "interval" - ], - "additionalProperties": false, - "description": "Snapshot configuration" - } - }, - "required": [ - "mode" - ], - "additionalProperties": false - } + "CollaborationSessionConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CollaborativeCursor.json b/packages/spec/json-schema/system/CollaborativeCursor.json index ccd0f62b4..06ba52d1d 100644 --- a/packages/spec/json-schema/system/CollaborativeCursor.json +++ b/packages/spec/json-schema/system/CollaborativeCursor.json @@ -1,189 +1,7 @@ { "$ref": "#/definitions/CollaborativeCursor", "definitions": { - "CollaborativeCursor": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User identifier" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "userName": { - "type": "string", - "description": "Display name of user" - }, - "position": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Cursor line number (0-indexed)" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Cursor column number (0-indexed)" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Current cursor position" - }, - "selection": { - "type": "object", - "properties": { - "anchor": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Anchor line number" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Anchor column number" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Selection anchor (start point)" - }, - "focus": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Focus line number" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Focus column number" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Selection focus (end point)" - }, - "direction": { - "type": "string", - "enum": [ - "forward", - "backward" - ], - "description": "Selection direction" - } - }, - "required": [ - "anchor", - "focus" - ], - "additionalProperties": false, - "description": "Current text selection" - }, - "style": { - "type": "object", - "properties": { - "color": { - "anyOf": [ - { - "type": "string", - "enum": [ - "blue", - "green", - "red", - "yellow", - "purple", - "orange", - "pink", - "teal", - "indigo", - "cyan" - ] - }, - { - "type": "string" - } - ], - "description": "Cursor color (preset or custom hex)" - }, - "opacity": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 1, - "description": "Cursor opacity (0-1)" - }, - "label": { - "type": "string", - "description": "Label to display with cursor (usually username)" - }, - "showLabel": { - "type": "boolean", - "default": true, - "description": "Whether to show label" - }, - "pulseOnUpdate": { - "type": "boolean", - "default": true, - "description": "Whether to pulse when cursor moves" - } - }, - "required": [ - "color" - ], - "additionalProperties": false, - "description": "Visual style for this cursor" - }, - "isTyping": { - "type": "boolean", - "default": false, - "description": "Whether user is currently typing" - }, - "lastUpdate": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last cursor update" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional cursor metadata" - } - }, - "required": [ - "userId", - "sessionId", - "documentId", - "userName", - "position", - "style", - "lastUpdate" - ], - "additionalProperties": false - } + "CollaborativeCursor": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ComplianceConfig.json b/packages/spec/json-schema/system/ComplianceConfig.json index 07babd764..3281b7abd 100644 --- a/packages/spec/json-schema/system/ComplianceConfig.json +++ b/packages/spec/json-schema/system/ComplianceConfig.json @@ -1,202 +1,7 @@ { "$ref": "#/definitions/ComplianceConfig", "definitions": { - "ComplianceConfig": { - "type": "object", - "properties": { - "gdpr": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "dataSubjectRights": { - "type": "object", - "properties": { - "rightToAccess": { - "type": "boolean", - "default": true - }, - "rightToRectification": { - "type": "boolean", - "default": true - }, - "rightToErasure": { - "type": "boolean", - "default": true - }, - "rightToRestriction": { - "type": "boolean", - "default": true - }, - "rightToPortability": { - "type": "boolean", - "default": true - }, - "rightToObjection": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - }, - "legalBasis": { - "type": "string", - "enum": [ - "consent", - "contract", - "legal-obligation", - "vital-interests", - "public-task", - "legitimate-interests" - ] - }, - "consentTracking": { - "type": "boolean", - "default": true - }, - "dataRetentionDays": { - "type": "number" - }, - "dataProcessingAgreement": { - "type": "string" - } - }, - "required": [ - "enabled", - "dataSubjectRights", - "legalBasis" - ], - "additionalProperties": false - }, - "hipaa": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "phi": { - "type": "object", - "properties": { - "encryption": { - "type": "boolean", - "default": true - }, - "accessControl": { - "type": "boolean", - "default": true - }, - "auditTrail": { - "type": "boolean", - "default": true - }, - "backupAndRecovery": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - }, - "businessAssociateAgreement": { - "type": "boolean", - "default": false - } - }, - "required": [ - "enabled", - "phi" - ], - "additionalProperties": false - }, - "pciDss": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "level": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4" - ] - }, - "cardDataFields": { - "type": "array", - "items": { - "type": "string" - } - }, - "tokenization": { - "type": "boolean", - "default": true - }, - "encryptionInTransit": { - "type": "boolean", - "default": true - }, - "encryptionAtRest": { - "type": "boolean", - "default": true - } - }, - "required": [ - "enabled", - "level", - "cardDataFields" - ], - "additionalProperties": false - }, - "auditLog": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "retentionDays": { - "type": "number", - "default": 365 - }, - "immutable": { - "type": "boolean", - "default": true - }, - "signLogs": { - "type": "boolean", - "default": false - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "create", - "read", - "update", - "delete", - "export", - "permission-change", - "login", - "logout", - "failed-login" - ] - } - } - }, - "required": [ - "events" - ], - "additionalProperties": false - } - }, - "required": [ - "auditLog" - ], - "additionalProperties": false - } + "ComplianceConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ConsoleDestinationConfig.json b/packages/spec/json-schema/system/ConsoleDestinationConfig.json index baccfc463..d36a1fc22 100644 --- a/packages/spec/json-schema/system/ConsoleDestinationConfig.json +++ b/packages/spec/json-schema/system/ConsoleDestinationConfig.json @@ -1,29 +1,7 @@ { "$ref": "#/definitions/ConsoleDestinationConfig", "definitions": { - "ConsoleDestinationConfig": { - "type": "object", - "properties": { - "stream": { - "type": "string", - "enum": [ - "stdout", - "stderr" - ], - "default": "stdout" - }, - "colors": { - "type": "boolean", - "default": true - }, - "prettyPrint": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Console destination configuration" - } + "ConsoleDestinationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ConsumerConfig.json b/packages/spec/json-schema/system/ConsumerConfig.json index 1877ea164..96d1bd53d 100644 --- a/packages/spec/json-schema/system/ConsumerConfig.json +++ b/packages/spec/json-schema/system/ConsumerConfig.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/ConsumerConfig", "definitions": { - "ConsumerConfig": { - "type": "object", - "properties": { - "groupId": { - "type": "string" - }, - "autoOffsetReset": { - "type": "string", - "enum": [ - "earliest", - "latest" - ], - "default": "latest" - }, - "enableAutoCommit": { - "type": "boolean", - "default": true - }, - "maxPollRecords": { - "type": "number", - "default": 500 - } - }, - "required": [ - "groupId" - ], - "additionalProperties": false - } + "ConsumerConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CounterOperation.json b/packages/spec/json-schema/system/CounterOperation.json index 6327546e5..2246991a3 100644 --- a/packages/spec/json-schema/system/CounterOperation.json +++ b/packages/spec/json-schema/system/CounterOperation.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/CounterOperation", "definitions": { - "CounterOperation": { - "type": "object", - "properties": { - "replicaId": { - "type": "string", - "description": "Replica identifier" - }, - "delta": { - "type": "integer", - "description": "Change amount (positive for increment, negative for decrement)" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of operation" - } - }, - "required": [ - "replicaId", - "delta", - "timestamp" - ], - "additionalProperties": false - } + "CounterOperation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CronSchedule.json b/packages/spec/json-schema/system/CronSchedule.json index 4dc3e2223..c3c1266be 100644 --- a/packages/spec/json-schema/system/CronSchedule.json +++ b/packages/spec/json-schema/system/CronSchedule.json @@ -1,29 +1,7 @@ { "$ref": "#/definitions/CronSchedule", "definitions": { - "CronSchedule": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cron" - }, - "expression": { - "type": "string", - "description": "Cron expression (e.g., \"0 0 * * *\" for daily at midnight)" - }, - "timezone": { - "type": "string", - "default": "UTC", - "description": "Timezone for cron execution (e.g., \"America/New_York\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false - } + "CronSchedule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CursorColorPreset.json b/packages/spec/json-schema/system/CursorColorPreset.json index add047298..e0ef3c056 100644 --- a/packages/spec/json-schema/system/CursorColorPreset.json +++ b/packages/spec/json-schema/system/CursorColorPreset.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/CursorColorPreset", "definitions": { - "CursorColorPreset": { - "type": "string", - "enum": [ - "blue", - "green", - "red", - "yellow", - "purple", - "orange", - "pink", - "teal", - "indigo", - "cyan" - ] - } + "CursorColorPreset": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CursorSelection.json b/packages/spec/json-schema/system/CursorSelection.json index d000f4cb9..d5c1c2312 100644 --- a/packages/spec/json-schema/system/CursorSelection.json +++ b/packages/spec/json-schema/system/CursorSelection.json @@ -1,66 +1,7 @@ { "$ref": "#/definitions/CursorSelection", "definitions": { - "CursorSelection": { - "type": "object", - "properties": { - "anchor": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Anchor line number" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Anchor column number" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Selection anchor (start point)" - }, - "focus": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Focus line number" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Focus column number" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Selection focus (end point)" - }, - "direction": { - "type": "string", - "enum": [ - "forward", - "backward" - ], - "description": "Selection direction" - } - }, - "required": [ - "anchor", - "focus" - ], - "additionalProperties": false - } + "CursorSelection": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CursorStyle.json b/packages/spec/json-schema/system/CursorStyle.json index 660db91e9..cefe303bb 100644 --- a/packages/spec/json-schema/system/CursorStyle.json +++ b/packages/spec/json-schema/system/CursorStyle.json @@ -1,59 +1,7 @@ { "$ref": "#/definitions/CursorStyle", "definitions": { - "CursorStyle": { - "type": "object", - "properties": { - "color": { - "anyOf": [ - { - "type": "string", - "enum": [ - "blue", - "green", - "red", - "yellow", - "purple", - "orange", - "pink", - "teal", - "indigo", - "cyan" - ] - }, - { - "type": "string" - } - ], - "description": "Cursor color (preset or custom hex)" - }, - "opacity": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 1, - "description": "Cursor opacity (0-1)" - }, - "label": { - "type": "string", - "description": "Label to display with cursor (usually username)" - }, - "showLabel": { - "type": "boolean", - "default": true, - "description": "Whether to show label" - }, - "pulseOnUpdate": { - "type": "boolean", - "default": true, - "description": "Whether to pulse when cursor moves" - } - }, - "required": [ - "color" - ], - "additionalProperties": false - } + "CursorStyle": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/CursorUpdate.json b/packages/spec/json-schema/system/CursorUpdate.json index 809273e4a..4d7f62e54 100644 --- a/packages/spec/json-schema/system/CursorUpdate.json +++ b/packages/spec/json-schema/system/CursorUpdate.json @@ -1,101 +1,7 @@ { "$ref": "#/definitions/CursorUpdate", "definitions": { - "CursorUpdate": { - "type": "object", - "properties": { - "position": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0 - }, - "column": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Updated cursor position" - }, - "selection": { - "type": "object", - "properties": { - "anchor": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Anchor line number" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Anchor column number" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Selection anchor (start point)" - }, - "focus": { - "type": "object", - "properties": { - "line": { - "type": "integer", - "minimum": 0, - "description": "Focus line number" - }, - "column": { - "type": "integer", - "minimum": 0, - "description": "Focus column number" - } - }, - "required": [ - "line", - "column" - ], - "additionalProperties": false, - "description": "Selection focus (end point)" - }, - "direction": { - "type": "string", - "enum": [ - "forward", - "backward" - ], - "description": "Selection direction" - } - }, - "required": [ - "anchor", - "focus" - ], - "additionalProperties": false, - "description": "Updated selection" - }, - "isTyping": { - "type": "boolean", - "description": "Updated typing state" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Updated metadata" - } - }, - "additionalProperties": false - } + "CursorUpdate": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/Datasource.json b/packages/spec/json-schema/system/Datasource.json index 2761a8a44..745e6481c 100644 --- a/packages/spec/json-schema/system/Datasource.json +++ b/packages/spec/json-schema/system/Datasource.json @@ -1,130 +1,7 @@ { "$ref": "#/definitions/Datasource", "definitions": { - "Datasource": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique datasource identifier" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "driver": { - "type": "string", - "description": "Underlying driver type" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Driver specific configuration" - }, - "pool": { - "type": "object", - "properties": { - "min": { - "type": "number", - "default": 0, - "description": "Minimum connections" - }, - "max": { - "type": "number", - "default": 10, - "description": "Maximum connections" - }, - "idleTimeoutMillis": { - "type": "number", - "default": 30000, - "description": "Idle timeout" - }, - "connectionTimeoutMillis": { - "type": "number", - "default": 3000, - "description": "Connection establishment timeout" - } - }, - "additionalProperties": false, - "description": "Connection pool settings" - }, - "readReplicas": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - }, - "description": "Read-only replica configurations" - }, - "capabilities": { - "type": "object", - "properties": { - "transactions": { - "type": "boolean", - "default": false - }, - "queryFilters": { - "type": "boolean", - "default": false - }, - "queryAggregations": { - "type": "boolean", - "default": false - }, - "querySorting": { - "type": "boolean", - "default": false - }, - "queryPagination": { - "type": "boolean", - "default": false - }, - "queryWindowFunctions": { - "type": "boolean", - "default": false - }, - "querySubqueries": { - "type": "boolean", - "default": false - }, - "joins": { - "type": "boolean", - "default": false - }, - "fullTextSearch": { - "type": "boolean", - "default": false - }, - "readOnly": { - "type": "boolean", - "default": false - }, - "dynamicSchema": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Capability overrides" - }, - "description": { - "type": "string", - "description": "Internal description" - }, - "active": { - "type": "boolean", - "default": true, - "description": "Is datasource enabled" - } - }, - "required": [ - "name", - "driver", - "config" - ], - "additionalProperties": false - } + "Datasource": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/DatasourceCapabilities.json b/packages/spec/json-schema/system/DatasourceCapabilities.json index a25ff44a4..6157c79ca 100644 --- a/packages/spec/json-schema/system/DatasourceCapabilities.json +++ b/packages/spec/json-schema/system/DatasourceCapabilities.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/DatasourceCapabilities", "definitions": { - "DatasourceCapabilities": { - "type": "object", - "properties": { - "transactions": { - "type": "boolean", - "default": false - }, - "queryFilters": { - "type": "boolean", - "default": false - }, - "queryAggregations": { - "type": "boolean", - "default": false - }, - "querySorting": { - "type": "boolean", - "default": false - }, - "queryPagination": { - "type": "boolean", - "default": false - }, - "queryWindowFunctions": { - "type": "boolean", - "default": false - }, - "querySubqueries": { - "type": "boolean", - "default": false - }, - "joins": { - "type": "boolean", - "default": false - }, - "fullTextSearch": { - "type": "boolean", - "default": false - }, - "readOnly": { - "type": "boolean", - "default": false - }, - "dynamicSchema": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false - } + "DatasourceCapabilities": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/DeadLetterQueue.json b/packages/spec/json-schema/system/DeadLetterQueue.json index 62c12bb96..d57658b20 100644 --- a/packages/spec/json-schema/system/DeadLetterQueue.json +++ b/packages/spec/json-schema/system/DeadLetterQueue.json @@ -1,26 +1,7 @@ { "$ref": "#/definitions/DeadLetterQueue", "definitions": { - "DeadLetterQueue": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "maxRetries": { - "type": "number", - "default": 3 - }, - "queueName": { - "type": "string" - } - }, - "required": [ - "queueName" - ], - "additionalProperties": false - } + "DeadLetterQueue": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/DeadLetterQueueEntry.json b/packages/spec/json-schema/system/DeadLetterQueueEntry.json index 563a396b1..8090cee4e 100644 --- a/packages/spec/json-schema/system/DeadLetterQueueEntry.json +++ b/packages/spec/json-schema/system/DeadLetterQueueEntry.json @@ -1,137 +1,7 @@ { "$ref": "#/definitions/DeadLetterQueueEntry", "definitions": { - "DeadLetterQueueEntry": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique entry identifier" - }, - "event": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique event identifier" - }, - "name": { - "type": "string", - "minLength": 3, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Event name (lowercase with dots, e.g., user.created, order.paid)" - }, - "payload": { - "description": "Event payload schema" - }, - "metadata": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Event source (e.g., plugin name, system component)" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when event was created" - }, - "userId": { - "type": "string", - "description": "User who triggered the event" - }, - "tenantId": { - "type": "string", - "description": "Tenant identifier for multi-tenant systems" - }, - "correlationId": { - "type": "string", - "description": "Correlation ID for event tracing" - }, - "causationId": { - "type": "string", - "description": "ID of the event that caused this event" - }, - "priority": { - "type": "string", - "enum": [ - "critical", - "high", - "normal", - "low", - "background" - ], - "default": "normal", - "description": "Event priority" - } - }, - "required": [ - "source", - "timestamp" - ], - "additionalProperties": false, - "description": "Event metadata" - } - }, - "required": [ - "name", - "metadata" - ], - "additionalProperties": false, - "description": "Original event" - }, - "error": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "Error message" - }, - "stack": { - "type": "string", - "description": "Error stack trace" - }, - "code": { - "type": "string", - "description": "Error code" - } - }, - "required": [ - "message" - ], - "additionalProperties": false, - "description": "Failure details" - }, - "retries": { - "type": "integer", - "minimum": 0, - "description": "Number of retry attempts" - }, - "firstFailedAt": { - "type": "string", - "format": "date-time", - "description": "When event first failed" - }, - "lastFailedAt": { - "type": "string", - "format": "date-time", - "description": "When event last failed" - }, - "failedHandler": { - "type": "string", - "description": "Handler ID that failed" - } - }, - "required": [ - "id", - "event", - "error", - "retries", - "firstFailedAt", - "lastFailedAt" - ], - "additionalProperties": false - } + "DeadLetterQueueEntry": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/DriverDefinition.json b/packages/spec/json-schema/system/DriverDefinition.json index d88b9c222..1e60ef0e7 100644 --- a/packages/spec/json-schema/system/DriverDefinition.json +++ b/packages/spec/json-schema/system/DriverDefinition.json @@ -1,86 +1,7 @@ { "$ref": "#/definitions/DriverDefinition", "definitions": { - "DriverDefinition": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique driver identifier (e.g. \"postgres\")" - }, - "label": { - "type": "string", - "description": "Display label (e.g. \"PostgreSQL\")" - }, - "description": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "configSchema": { - "type": "object", - "additionalProperties": {}, - "description": "JSON Schema for connection configuration" - }, - "capabilities": { - "type": "object", - "properties": { - "transactions": { - "type": "boolean", - "default": false - }, - "queryFilters": { - "type": "boolean", - "default": false - }, - "queryAggregations": { - "type": "boolean", - "default": false - }, - "querySorting": { - "type": "boolean", - "default": false - }, - "queryPagination": { - "type": "boolean", - "default": false - }, - "queryWindowFunctions": { - "type": "boolean", - "default": false - }, - "querySubqueries": { - "type": "boolean", - "default": false - }, - "joins": { - "type": "boolean", - "default": false - }, - "fullTextSearch": { - "type": "boolean", - "default": false - }, - "readOnly": { - "type": "boolean", - "default": false - }, - "dynamicSchema": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false - } - }, - "required": [ - "id", - "label", - "configSchema" - ], - "additionalProperties": false - } + "DriverDefinition": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/DriverType.json b/packages/spec/json-schema/system/DriverType.json index 101a3571b..c400602f5 100644 --- a/packages/spec/json-schema/system/DriverType.json +++ b/packages/spec/json-schema/system/DriverType.json @@ -1,10 +1,7 @@ { "$ref": "#/definitions/DriverType", "definitions": { - "DriverType": { - "type": "string", - "description": "Underlying driver identifier" - } + "DriverType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EmailTemplate.json b/packages/spec/json-schema/system/EmailTemplate.json index ca79574b7..b7f86e844 100644 --- a/packages/spec/json-schema/system/EmailTemplate.json +++ b/packages/spec/json-schema/system/EmailTemplate.json @@ -1,69 +1,7 @@ { "$ref": "#/definitions/EmailTemplate", "definitions": { - "EmailTemplate": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Template identifier" - }, - "subject": { - "type": "string", - "description": "Email subject" - }, - "body": { - "type": "string", - "description": "Email body content" - }, - "bodyType": { - "type": "string", - "enum": [ - "text", - "html", - "markdown" - ], - "default": "html", - "description": "Body content type" - }, - "variables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Template variables" - }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Attachment filename" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Attachment URL" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Email attachments" - } - }, - "required": [ - "id", - "subject", - "body" - ], - "additionalProperties": false - } + "EmailTemplate": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EncryptionAlgorithm.json b/packages/spec/json-schema/system/EncryptionAlgorithm.json index 7aeafe302..a48ee2bd1 100644 --- a/packages/spec/json-schema/system/EncryptionAlgorithm.json +++ b/packages/spec/json-schema/system/EncryptionAlgorithm.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/EncryptionAlgorithm", "definitions": { - "EncryptionAlgorithm": { - "type": "string", - "enum": [ - "aes-256-gcm", - "aes-256-cbc", - "chacha20-poly1305" - ] - } + "EncryptionAlgorithm": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EncryptionConfig.json b/packages/spec/json-schema/system/EncryptionConfig.json index 8f8975403..09dbf0bd5 100644 --- a/packages/spec/json-schema/system/EncryptionConfig.json +++ b/packages/spec/json-schema/system/EncryptionConfig.json @@ -1,93 +1,7 @@ { "$ref": "#/definitions/EncryptionConfig", "definitions": { - "EncryptionConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "algorithm": { - "type": "string", - "enum": [ - "aes-256-gcm", - "aes-256-cbc", - "chacha20-poly1305" - ], - "default": "aes-256-gcm" - }, - "keyManagement": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "local", - "aws-kms", - "azure-key-vault", - "gcp-kms", - "hashicorp-vault" - ] - }, - "keyId": { - "type": "string" - }, - "rotationPolicy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "frequencyDays": { - "type": "number", - "minimum": 1, - "default": 90 - }, - "retainOldVersions": { - "type": "number", - "default": 3 - }, - "autoRotate": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - "scope": { - "type": "string", - "enum": [ - "field", - "record", - "table", - "database" - ] - }, - "deterministicEncryption": { - "type": "boolean", - "default": false, - "description": "Allows equality queries on encrypted data" - }, - "searchableEncryption": { - "type": "boolean", - "default": false, - "description": "Allows search on encrypted data" - } - }, - "required": [ - "keyManagement", - "scope" - ], - "additionalProperties": false - } + "EncryptionConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/Event.json b/packages/spec/json-schema/system/Event.json index 68b491cd2..4b0c67dee 100644 --- a/packages/spec/json-schema/system/Event.json +++ b/packages/spec/json-schema/system/Event.json @@ -1,77 +1,7 @@ { "$ref": "#/definitions/Event", "definitions": { - "Event": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique event identifier" - }, - "name": { - "type": "string", - "minLength": 3, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Event name (lowercase with dots, e.g., user.created, order.paid)" - }, - "payload": { - "description": "Event payload schema" - }, - "metadata": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Event source (e.g., plugin name, system component)" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when event was created" - }, - "userId": { - "type": "string", - "description": "User who triggered the event" - }, - "tenantId": { - "type": "string", - "description": "Tenant identifier for multi-tenant systems" - }, - "correlationId": { - "type": "string", - "description": "Correlation ID for event tracing" - }, - "causationId": { - "type": "string", - "description": "ID of the event that caused this event" - }, - "priority": { - "type": "string", - "enum": [ - "critical", - "high", - "normal", - "low", - "background" - ], - "default": "normal", - "description": "Event priority" - } - }, - "required": [ - "source", - "timestamp" - ], - "additionalProperties": false, - "description": "Event metadata" - } - }, - "required": [ - "name", - "metadata" - ], - "additionalProperties": false - } + "Event": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventBusConfig.json b/packages/spec/json-schema/system/EventBusConfig.json index 700f5d692..dbbd502a8 100644 --- a/packages/spec/json-schema/system/EventBusConfig.json +++ b/packages/spec/json-schema/system/EventBusConfig.json @@ -1,552 +1,7 @@ { "$ref": "#/definitions/EventBusConfig", "definitions": { - "EventBusConfig": { - "type": "object", - "properties": { - "persistence": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable event persistence" - }, - "retention": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Days to retain persisted events" - }, - "storage": { - "type": "string", - "enum": [ - "database", - "file", - "s3", - "custom" - ], - "default": "database", - "description": "Storage backend for persisted events" - } - }, - "required": [ - "retention" - ], - "additionalProperties": false, - "description": "Event persistence configuration" - }, - "queue": { - "type": "object", - "properties": { - "name": { - "type": "string", - "default": "events", - "description": "Event queue name" - }, - "concurrency": { - "type": "integer", - "minimum": 1, - "default": 10, - "description": "Max concurrent event handlers" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Max retries for failed events" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "fixed", - "linear", - "exponential" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial retry delay" - }, - "maxDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 60000, - "description": "Maximum retry delay" - } - }, - "additionalProperties": false, - "description": "Default retry policy for events" - }, - "deadLetterQueue": { - "type": "string", - "description": "Dead letter queue name for failed events" - }, - "priorityEnabled": { - "type": "boolean", - "default": true, - "description": "Process events based on priority" - } - }, - "additionalProperties": false, - "description": "Event queue configuration" - }, - "eventSourcing": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable event sourcing" - }, - "snapshotInterval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100, - "description": "Create snapshot every N events" - }, - "snapshotRetention": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10, - "description": "Number of snapshots to retain" - }, - "retention": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 365, - "description": "Days to retain events" - }, - "aggregateTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Aggregate types to enable event sourcing for" - }, - "storage": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "database", - "file", - "s3", - "eventstore" - ], - "default": "database", - "description": "Storage backend" - }, - "options": { - "type": "object", - "additionalProperties": {}, - "description": "Storage-specific options" - } - }, - "additionalProperties": false, - "description": "Event store configuration" - } - }, - "additionalProperties": false, - "description": "Event sourcing configuration" - }, - "replay": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable event replay capability" - } - }, - "additionalProperties": false, - "description": "Event replay configuration" - }, - "webhooks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique webhook identifier" - }, - "eventPattern": { - "type": "string", - "description": "Event name pattern (supports wildcards)" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "HTTP headers" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Auth type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Auth credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Max retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "fixed", - "linear", - "exponential" - ], - "default": "exponential" - }, - "initialDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial retry delay" - }, - "maxDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 60000, - "description": "Max retry delay" - } - }, - "additionalProperties": false, - "description": "Retry policy" - }, - "timeoutMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Whether webhook is enabled" - } - }, - "required": [ - "eventPattern", - "url" - ], - "additionalProperties": false - }, - "description": "Webhook configurations" - }, - "messageQueue": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "kafka", - "rabbitmq", - "aws-sqs", - "redis-pubsub", - "google-pubsub", - "azure-service-bus" - ], - "description": "Message queue provider" - }, - "topic": { - "type": "string", - "description": "Topic or queue name" - }, - "eventPattern": { - "type": "string", - "default": "*", - "description": "Event name pattern to publish (supports wildcards)" - }, - "partitionKey": { - "type": "string", - "description": "JSON path for partition key (e.g., \"metadata.tenantId\")" - }, - "format": { - "type": "string", - "enum": [ - "json", - "avro", - "protobuf" - ], - "default": "json", - "description": "Message serialization format" - }, - "includeMetadata": { - "type": "boolean", - "default": true, - "description": "Include event metadata in message" - }, - "compression": { - "type": "string", - "enum": [ - "none", - "gzip", - "snappy", - "lz4" - ], - "default": "none", - "description": "Message compression" - }, - "batchSize": { - "type": "integer", - "minimum": 1, - "default": 1, - "description": "Batch size for publishing" - }, - "flushIntervalMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Flush interval for batching" - } - }, - "required": [ - "provider", - "topic" - ], - "additionalProperties": false, - "description": "Message queue integration" - }, - "realtime": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable real-time notifications" - }, - "protocol": { - "type": "string", - "enum": [ - "websocket", - "sse", - "long-polling" - ], - "default": "websocket", - "description": "Real-time protocol" - }, - "eventPattern": { - "type": "string", - "default": "*", - "description": "Event pattern to broadcast" - }, - "userFilter": { - "type": "boolean", - "default": true, - "description": "Filter events by user" - }, - "tenantFilter": { - "type": "boolean", - "default": true, - "description": "Filter events by tenant" - }, - "channels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Channel name" - }, - "eventPattern": { - "type": "string", - "description": "Event pattern for channel" - } - }, - "required": [ - "name", - "eventPattern" - ], - "additionalProperties": false - }, - "description": "Named channels for event broadcasting" - }, - "rateLimit": { - "type": "object", - "properties": { - "maxEventsPerSecond": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Max events per second per client" - }, - "windowMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Rate limit window" - } - }, - "required": [ - "maxEventsPerSecond" - ], - "additionalProperties": false, - "description": "Rate limiting configuration" - } - }, - "additionalProperties": false, - "description": "Real-time notification configuration" - }, - "eventTypes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 3, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Event type name (lowercase with dots)" - }, - "version": { - "type": "string", - "default": "1.0.0", - "description": "Event schema version" - }, - "schema": { - "description": "JSON Schema for event payload validation" - }, - "description": { - "type": "string", - "description": "Event type description" - }, - "deprecated": { - "type": "boolean", - "default": false, - "description": "Whether this event type is deprecated" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Event type tags" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Event type definitions" - }, - "handlers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique handler identifier" - }, - "eventName": { - "type": "string", - "description": "Name of event to handle (supports wildcards like user.*)" - }, - "priority": { - "type": "integer", - "default": 0, - "description": "Execution priority (lower numbers execute first)" - }, - "async": { - "type": "boolean", - "default": true, - "description": "Execute in background (true) or block (false)" - }, - "retry": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial backoff delay" - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2, - "description": "Backoff multiplier" - } - }, - "additionalProperties": false, - "description": "Retry policy for failed handlers" - }, - "timeoutMs": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Handler timeout in milliseconds" - } - }, - "required": [ - "eventName" - ], - "additionalProperties": false - }, - "description": "Global event handlers" - } - }, - "additionalProperties": false - } + "EventBusConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventHandler.json b/packages/spec/json-schema/system/EventHandler.json index 77e1536c8..a5c654adc 100644 --- a/packages/spec/json-schema/system/EventHandler.json +++ b/packages/spec/json-schema/system/EventHandler.json @@ -1,63 +1,7 @@ { "$ref": "#/definitions/EventHandler", "definitions": { - "EventHandler": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique handler identifier" - }, - "eventName": { - "type": "string", - "description": "Name of event to handle (supports wildcards like user.*)" - }, - "priority": { - "type": "integer", - "default": 0, - "description": "Execution priority (lower numbers execute first)" - }, - "async": { - "type": "boolean", - "default": true, - "description": "Execute in background (true) or block (false)" - }, - "retry": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial backoff delay" - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2, - "description": "Backoff multiplier" - } - }, - "additionalProperties": false, - "description": "Retry policy for failed handlers" - }, - "timeoutMs": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Handler timeout in milliseconds" - } - }, - "required": [ - "eventName" - ], - "additionalProperties": false - } + "EventHandler": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventLogEntry.json b/packages/spec/json-schema/system/EventLogEntry.json index 81885cfb7..e31dcb41e 100644 --- a/packages/spec/json-schema/system/EventLogEntry.json +++ b/packages/spec/json-schema/system/EventLogEntry.json @@ -1,153 +1,7 @@ { "$ref": "#/definitions/EventLogEntry", "definitions": { - "EventLogEntry": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique log entry identifier" - }, - "event": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique event identifier" - }, - "name": { - "type": "string", - "minLength": 3, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Event name (lowercase with dots, e.g., user.created, order.paid)" - }, - "payload": { - "description": "Event payload schema" - }, - "metadata": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Event source (e.g., plugin name, system component)" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when event was created" - }, - "userId": { - "type": "string", - "description": "User who triggered the event" - }, - "tenantId": { - "type": "string", - "description": "Tenant identifier for multi-tenant systems" - }, - "correlationId": { - "type": "string", - "description": "Correlation ID for event tracing" - }, - "causationId": { - "type": "string", - "description": "ID of the event that caused this event" - }, - "priority": { - "type": "string", - "enum": [ - "critical", - "high", - "normal", - "low", - "background" - ], - "default": "normal", - "description": "Event priority" - } - }, - "required": [ - "source", - "timestamp" - ], - "additionalProperties": false, - "description": "Event metadata" - } - }, - "required": [ - "name", - "metadata" - ], - "additionalProperties": false, - "description": "The event" - }, - "status": { - "type": "string", - "enum": [ - "pending", - "processing", - "completed", - "failed" - ], - "description": "Processing status" - }, - "handlersExecuted": { - "type": "array", - "items": { - "type": "object", - "properties": { - "handlerId": { - "type": "string", - "description": "Handler identifier" - }, - "status": { - "type": "string", - "enum": [ - "success", - "failed", - "timeout" - ], - "description": "Handler execution status" - }, - "durationMs": { - "type": "integer", - "description": "Execution duration" - }, - "error": { - "type": "string", - "description": "Error message if failed" - } - }, - "required": [ - "handlerId", - "status" - ], - "additionalProperties": false - }, - "description": "Handlers that processed this event" - }, - "receivedAt": { - "type": "string", - "format": "date-time", - "description": "When event was received" - }, - "processedAt": { - "type": "string", - "format": "date-time", - "description": "When event was processed" - }, - "totalDurationMs": { - "type": "integer", - "description": "Total processing time" - } - }, - "required": [ - "id", - "event", - "status", - "receivedAt" - ], - "additionalProperties": false - } + "EventLogEntry": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventMessageQueueConfig.json b/packages/spec/json-schema/system/EventMessageQueueConfig.json index 662855a1a..1bd927d78 100644 --- a/packages/spec/json-schema/system/EventMessageQueueConfig.json +++ b/packages/spec/json-schema/system/EventMessageQueueConfig.json @@ -1,79 +1,7 @@ { "$ref": "#/definitions/EventMessageQueueConfig", "definitions": { - "EventMessageQueueConfig": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "kafka", - "rabbitmq", - "aws-sqs", - "redis-pubsub", - "google-pubsub", - "azure-service-bus" - ], - "description": "Message queue provider" - }, - "topic": { - "type": "string", - "description": "Topic or queue name" - }, - "eventPattern": { - "type": "string", - "default": "*", - "description": "Event name pattern to publish (supports wildcards)" - }, - "partitionKey": { - "type": "string", - "description": "JSON path for partition key (e.g., \"metadata.tenantId\")" - }, - "format": { - "type": "string", - "enum": [ - "json", - "avro", - "protobuf" - ], - "default": "json", - "description": "Message serialization format" - }, - "includeMetadata": { - "type": "boolean", - "default": true, - "description": "Include event metadata in message" - }, - "compression": { - "type": "string", - "enum": [ - "none", - "gzip", - "snappy", - "lz4" - ], - "default": "none", - "description": "Message compression" - }, - "batchSize": { - "type": "integer", - "minimum": 1, - "default": 1, - "description": "Batch size for publishing" - }, - "flushIntervalMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Flush interval for batching" - } - }, - "required": [ - "provider", - "topic" - ], - "additionalProperties": false - } + "EventMessageQueueConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventMetadata.json b/packages/spec/json-schema/system/EventMetadata.json index 0eeb92963..38c7831b8 100644 --- a/packages/spec/json-schema/system/EventMetadata.json +++ b/packages/spec/json-schema/system/EventMetadata.json @@ -1,53 +1,7 @@ { "$ref": "#/definitions/EventMetadata", "definitions": { - "EventMetadata": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Event source (e.g., plugin name, system component)" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when event was created" - }, - "userId": { - "type": "string", - "description": "User who triggered the event" - }, - "tenantId": { - "type": "string", - "description": "Tenant identifier for multi-tenant systems" - }, - "correlationId": { - "type": "string", - "description": "Correlation ID for event tracing" - }, - "causationId": { - "type": "string", - "description": "ID of the event that caused this event" - }, - "priority": { - "type": "string", - "enum": [ - "critical", - "high", - "normal", - "low", - "background" - ], - "default": "normal", - "description": "Event priority" - } - }, - "required": [ - "source", - "timestamp" - ], - "additionalProperties": false - } + "EventMetadata": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventPersistence.json b/packages/spec/json-schema/system/EventPersistence.json index 416b09cb5..2f770ed63 100644 --- a/packages/spec/json-schema/system/EventPersistence.json +++ b/packages/spec/json-schema/system/EventPersistence.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/EventPersistence", "definitions": { - "EventPersistence": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable event persistence" - }, - "retention": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Days to retain persisted events" - }, - "storage": { - "type": "string", - "enum": [ - "database", - "file", - "s3", - "custom" - ], - "default": "database", - "description": "Storage backend for persisted events" - } - }, - "required": [ - "retention" - ], - "additionalProperties": false - } + "EventPersistence": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventPhase.json b/packages/spec/json-schema/system/EventPhase.json index 98e65c45f..7aec61c16 100644 --- a/packages/spec/json-schema/system/EventPhase.json +++ b/packages/spec/json-schema/system/EventPhase.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/EventPhase", "definitions": { - "EventPhase": { - "type": "string", - "enum": [ - "init", - "start", - "destroy" - ], - "description": "Plugin lifecycle phase" - } + "EventPhase": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventPriority.json b/packages/spec/json-schema/system/EventPriority.json index 4779582c1..72e63d2f1 100644 --- a/packages/spec/json-schema/system/EventPriority.json +++ b/packages/spec/json-schema/system/EventPriority.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/EventPriority", "definitions": { - "EventPriority": { - "type": "string", - "enum": [ - "critical", - "high", - "normal", - "low", - "background" - ] - } + "EventPriority": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventQueueConfig.json b/packages/spec/json-schema/system/EventQueueConfig.json index e80718062..6fa670128 100644 --- a/packages/spec/json-schema/system/EventQueueConfig.json +++ b/packages/spec/json-schema/system/EventQueueConfig.json @@ -1,67 +1,7 @@ { "$ref": "#/definitions/EventQueueConfig", "definitions": { - "EventQueueConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "default": "events", - "description": "Event queue name" - }, - "concurrency": { - "type": "integer", - "minimum": 1, - "default": 10, - "description": "Max concurrent event handlers" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Max retries for failed events" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "fixed", - "linear", - "exponential" - ], - "default": "exponential", - "description": "Backoff strategy" - }, - "initialDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial retry delay" - }, - "maxDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 60000, - "description": "Maximum retry delay" - } - }, - "additionalProperties": false, - "description": "Default retry policy for events" - }, - "deadLetterQueue": { - "type": "string", - "description": "Dead letter queue name for failed events" - }, - "priorityEnabled": { - "type": "boolean", - "default": true, - "description": "Process events based on priority" - } - }, - "additionalProperties": false - } + "EventQueueConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventReplayConfig.json b/packages/spec/json-schema/system/EventReplayConfig.json index 4f1c47c7b..a5969d081 100644 --- a/packages/spec/json-schema/system/EventReplayConfig.json +++ b/packages/spec/json-schema/system/EventReplayConfig.json @@ -1,50 +1,7 @@ { "$ref": "#/definitions/EventReplayConfig", "definitions": { - "EventReplayConfig": { - "type": "object", - "properties": { - "fromTimestamp": { - "type": "string", - "format": "date-time", - "description": "Start timestamp for replay (ISO 8601)" - }, - "toTimestamp": { - "type": "string", - "format": "date-time", - "description": "End timestamp for replay (ISO 8601)" - }, - "eventTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Event types to replay (empty = all)" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Additional filters for event selection" - }, - "speed": { - "type": "number", - "exclusiveMinimum": 0, - "default": 1, - "description": "Replay speed multiplier (1 = real-time)" - }, - "targetHandlers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Handler IDs to execute (empty = all)" - } - }, - "required": [ - "fromTimestamp" - ], - "additionalProperties": false - } + "EventReplayConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventRoute.json b/packages/spec/json-schema/system/EventRoute.json index 0734b3e12..76a3c11fd 100644 --- a/packages/spec/json-schema/system/EventRoute.json +++ b/packages/spec/json-schema/system/EventRoute.json @@ -1,27 +1,7 @@ { "$ref": "#/definitions/EventRoute", "definitions": { - "EventRoute": { - "type": "object", - "properties": { - "from": { - "type": "string", - "description": "Source event pattern (supports wildcards, e.g., user.* or *.created)" - }, - "to": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Target event names to route to" - } - }, - "required": [ - "from", - "to" - ], - "additionalProperties": false - } + "EventRoute": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventSourcingConfig.json b/packages/spec/json-schema/system/EventSourcingConfig.json index 1d4b45f71..6e2393073 100644 --- a/packages/spec/json-schema/system/EventSourcingConfig.json +++ b/packages/spec/json-schema/system/EventSourcingConfig.json @@ -1,65 +1,7 @@ { "$ref": "#/definitions/EventSourcingConfig", "definitions": { - "EventSourcingConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable event sourcing" - }, - "snapshotInterval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100, - "description": "Create snapshot every N events" - }, - "snapshotRetention": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10, - "description": "Number of snapshots to retain" - }, - "retention": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 365, - "description": "Days to retain events" - }, - "aggregateTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Aggregate types to enable event sourcing for" - }, - "storage": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "database", - "file", - "s3", - "eventstore" - ], - "default": "database", - "description": "Storage backend" - }, - "options": { - "type": "object", - "additionalProperties": {}, - "description": "Storage-specific options" - } - }, - "additionalProperties": false, - "description": "Event store configuration" - } - }, - "additionalProperties": false - } + "EventSourcingConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventTypeDefinition.json b/packages/spec/json-schema/system/EventTypeDefinition.json index a90d6ab44..35c2c46b1 100644 --- a/packages/spec/json-schema/system/EventTypeDefinition.json +++ b/packages/spec/json-schema/system/EventTypeDefinition.json @@ -1,45 +1,7 @@ { "$ref": "#/definitions/EventTypeDefinition", "definitions": { - "EventTypeDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 3, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Event type name (lowercase with dots)" - }, - "version": { - "type": "string", - "default": "1.0.0", - "description": "Event schema version" - }, - "schema": { - "description": "JSON Schema for event payload validation" - }, - "description": { - "type": "string", - "description": "Event type description" - }, - "deprecated": { - "type": "boolean", - "default": false, - "description": "Whether this event type is deprecated" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Event type tags" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "EventTypeDefinition": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/EventWebhookConfig.json b/packages/spec/json-schema/system/EventWebhookConfig.json index 36924ede0..7a1d782e8 100644 --- a/packages/spec/json-schema/system/EventWebhookConfig.json +++ b/packages/spec/json-schema/system/EventWebhookConfig.json @@ -1,119 +1,7 @@ { "$ref": "#/definitions/EventWebhookConfig", "definitions": { - "EventWebhookConfig": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique webhook identifier" - }, - "eventPattern": { - "type": "string", - "description": "Event name pattern (supports wildcards)" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Webhook endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH" - ], - "default": "POST", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "HTTP headers" - }, - "authentication": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "bearer", - "basic", - "api-key" - ], - "description": "Auth type" - }, - "credentials": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Auth credentials" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Authentication configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Max retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "fixed", - "linear", - "exponential" - ], - "default": "exponential" - }, - "initialDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial retry delay" - }, - "maxDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 60000, - "description": "Max retry delay" - } - }, - "additionalProperties": false, - "description": "Retry policy" - }, - "timeoutMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Whether webhook is enabled" - } - }, - "required": [ - "eventPattern", - "url" - ], - "additionalProperties": false - } + "EventWebhookConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ExtendedLogLevel.json b/packages/spec/json-schema/system/ExtendedLogLevel.json index 792e7a8a7..ba7f376e6 100644 --- a/packages/spec/json-schema/system/ExtendedLogLevel.json +++ b/packages/spec/json-schema/system/ExtendedLogLevel.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/ExtendedLogLevel", "definitions": { - "ExtendedLogLevel": { - "type": "string", - "enum": [ - "trace", - "debug", - "info", - "warn", - "error", - "fatal" - ], - "description": "Extended log severity level" - } + "ExtendedLogLevel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ExtensionPoint.json b/packages/spec/json-schema/system/ExtensionPoint.json index 8bd10ff88..5cba7ab72 100644 --- a/packages/spec/json-schema/system/ExtensionPoint.json +++ b/packages/spec/json-schema/system/ExtensionPoint.json @@ -1,67 +1,7 @@ { "$ref": "#/definitions/ExtensionPoint", "definitions": { - "ExtensionPoint": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+extension\\.[a-z][a-z0-9._]+$", - "description": "Unique extension point identifier" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "action", - "hook", - "widget", - "provider", - "transformer", - "validator", - "decorator" - ] - }, - "contract": { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "Input type/schema" - }, - "output": { - "type": "string", - "description": "Output type/schema" - }, - "signature": { - "type": "string", - "description": "Function signature if applicable" - } - }, - "additionalProperties": false - }, - "cardinality": { - "type": "string", - "enum": [ - "single", - "multiple" - ], - "default": "multiple", - "description": "Whether multiple extensions can register to this point" - } - }, - "required": [ - "id", - "name", - "type" - ], - "additionalProperties": false - } + "ExtensionPoint": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ExternalServiceDestinationConfig.json b/packages/spec/json-schema/system/ExternalServiceDestinationConfig.json index 3f7bd2319..f117f64eb 100644 --- a/packages/spec/json-schema/system/ExternalServiceDestinationConfig.json +++ b/packages/spec/json-schema/system/ExternalServiceDestinationConfig.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/ExternalServiceDestinationConfig", "definitions": { - "ExternalServiceDestinationConfig": { - "type": "object", - "properties": { - "endpoint": { - "type": "string", - "format": "uri" - }, - "region": { - "type": "string" - }, - "credentials": { - "type": "object", - "properties": { - "accessKeyId": { - "type": "string" - }, - "secretAccessKey": { - "type": "string" - }, - "apiKey": { - "type": "string" - }, - "projectId": { - "type": "string" - } - }, - "additionalProperties": false - }, - "logGroup": { - "type": "string" - }, - "logStream": { - "type": "string" - }, - "index": { - "type": "string" - }, - "config": { - "type": "object", - "additionalProperties": {} - } - }, - "additionalProperties": false, - "description": "External service destination configuration" - } + "ExternalServiceDestinationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/FacetConfig.json b/packages/spec/json-schema/system/FacetConfig.json index ddab61804..6257b0094 100644 --- a/packages/spec/json-schema/system/FacetConfig.json +++ b/packages/spec/json-schema/system/FacetConfig.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/FacetConfig", "definitions": { - "FacetConfig": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "maxValues": { - "type": "number", - "default": 10 - }, - "sort": { - "type": "string", - "enum": [ - "count", - "alpha" - ], - "default": "count" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } + "FacetConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/FeatureFlag.json b/packages/spec/json-schema/system/FeatureFlag.json index 851929970..6762087cf 100644 --- a/packages/spec/json-schema/system/FeatureFlag.json +++ b/packages/spec/json-schema/system/FeatureFlag.json @@ -1,87 +1,7 @@ { "$ref": "#/definitions/FeatureFlag", "definitions": { - "FeatureFlag": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Feature key (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string" - }, - "enabled": { - "type": "boolean", - "default": false, - "description": "Is globally enabled" - }, - "strategy": { - "type": "string", - "enum": [ - "boolean", - "percentage", - "user_list", - "group", - "custom" - ], - "default": "boolean" - }, - "conditions": { - "type": "object", - "properties": { - "percentage": { - "type": "number", - "minimum": 0, - "maximum": 100 - }, - "users": { - "type": "array", - "items": { - "type": "string" - } - }, - "groups": { - "type": "array", - "items": { - "type": "string" - } - }, - "expression": { - "type": "string", - "description": "Custom formula expression" - } - }, - "additionalProperties": false - }, - "environment": { - "type": "string", - "enum": [ - "dev", - "staging", - "prod", - "all" - ], - "default": "all", - "description": "Environment validity" - }, - "expiresAt": { - "type": "string", - "format": "date-time", - "description": "Feature flag expiration date" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "FeatureFlag": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/FeatureStrategy.json b/packages/spec/json-schema/system/FeatureStrategy.json index 4c2d4c1f1..07c50ba64 100644 --- a/packages/spec/json-schema/system/FeatureStrategy.json +++ b/packages/spec/json-schema/system/FeatureStrategy.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/FeatureStrategy", "definitions": { - "FeatureStrategy": { - "type": "string", - "enum": [ - "boolean", - "percentage", - "user_list", - "group", - "custom" - ] - } + "FeatureStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/FieldEncryption.json b/packages/spec/json-schema/system/FieldEncryption.json index 3ba38fc51..d37eb447d 100644 --- a/packages/spec/json-schema/system/FieldEncryption.json +++ b/packages/spec/json-schema/system/FieldEncryption.json @@ -1,110 +1,7 @@ { "$ref": "#/definitions/FieldEncryption", "definitions": { - "FieldEncryption": { - "type": "object", - "properties": { - "fieldName": { - "type": "string" - }, - "encryptionConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "algorithm": { - "type": "string", - "enum": [ - "aes-256-gcm", - "aes-256-cbc", - "chacha20-poly1305" - ], - "default": "aes-256-gcm" - }, - "keyManagement": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "local", - "aws-kms", - "azure-key-vault", - "gcp-kms", - "hashicorp-vault" - ] - }, - "keyId": { - "type": "string" - }, - "rotationPolicy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "frequencyDays": { - "type": "number", - "minimum": 1, - "default": 90 - }, - "retainOldVersions": { - "type": "number", - "default": 3 - }, - "autoRotate": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - "scope": { - "type": "string", - "enum": [ - "field", - "record", - "table", - "database" - ] - }, - "deterministicEncryption": { - "type": "boolean", - "default": false, - "description": "Allows equality queries on encrypted data" - }, - "searchableEncryption": { - "type": "boolean", - "default": false, - "description": "Allows search on encrypted data" - } - }, - "required": [ - "keyManagement", - "scope" - ], - "additionalProperties": false - }, - "indexable": { - "type": "boolean", - "default": false - } - }, - "required": [ - "fieldName", - "encryptionConfig" - ], - "additionalProperties": false - } + "FieldEncryption": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/FileDestinationConfig.json b/packages/spec/json-schema/system/FileDestinationConfig.json index 43251555b..52888aaaa 100644 --- a/packages/spec/json-schema/system/FileDestinationConfig.json +++ b/packages/spec/json-schema/system/FileDestinationConfig.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/FileDestinationConfig", "definitions": { - "FileDestinationConfig": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "Log file path" - }, - "rotation": { - "type": "object", - "properties": { - "maxSize": { - "type": "string", - "default": "10m" - }, - "maxFiles": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - }, - "compress": { - "type": "boolean", - "default": true - }, - "interval": { - "type": "string", - "enum": [ - "hourly", - "daily", - "weekly", - "monthly" - ] - } - }, - "additionalProperties": false - }, - "encoding": { - "type": "string", - "default": "utf8" - }, - "append": { - "type": "boolean", - "default": true - } - }, - "required": [ - "path" - ], - "additionalProperties": false, - "description": "File destination configuration" - } + "FileDestinationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/FileMetadata.json b/packages/spec/json-schema/system/FileMetadata.json index 95249cd7b..d11720738 100644 --- a/packages/spec/json-schema/system/FileMetadata.json +++ b/packages/spec/json-schema/system/FileMetadata.json @@ -1,50 +1,7 @@ { "$ref": "#/definitions/FileMetadata", "definitions": { - "FileMetadata": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "File path" - }, - "name": { - "type": "string", - "description": "File name" - }, - "size": { - "type": "integer", - "description": "File size in bytes" - }, - "mimeType": { - "type": "string", - "description": "MIME type" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "Last modified timestamp" - }, - "created": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp" - }, - "etag": { - "type": "string", - "description": "Entity tag" - } - }, - "required": [ - "path", - "name", - "size", - "mimeType", - "lastModified", - "created" - ], - "additionalProperties": false - } + "FileMetadata": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/GCounter.json b/packages/spec/json-schema/system/GCounter.json index 84bc81af2..4ffc73136 100644 --- a/packages/spec/json-schema/system/GCounter.json +++ b/packages/spec/json-schema/system/GCounter.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/GCounter", "definitions": { - "GCounter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "g-counter" - }, - "counts": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Map of replica ID to count" - } - }, - "required": [ - "type", - "counts" - ], - "additionalProperties": false - } + "GCounter": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/GDPRConfig.json b/packages/spec/json-schema/system/GDPRConfig.json index 812481c91..5663ea3e3 100644 --- a/packages/spec/json-schema/system/GDPRConfig.json +++ b/packages/spec/json-schema/system/GDPRConfig.json @@ -1,71 +1,7 @@ { "$ref": "#/definitions/GDPRConfig", "definitions": { - "GDPRConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "dataSubjectRights": { - "type": "object", - "properties": { - "rightToAccess": { - "type": "boolean", - "default": true - }, - "rightToRectification": { - "type": "boolean", - "default": true - }, - "rightToErasure": { - "type": "boolean", - "default": true - }, - "rightToRestriction": { - "type": "boolean", - "default": true - }, - "rightToPortability": { - "type": "boolean", - "default": true - }, - "rightToObjection": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - }, - "legalBasis": { - "type": "string", - "enum": [ - "consent", - "contract", - "legal-obligation", - "vital-interests", - "public-task", - "legitimate-interests" - ] - }, - "consentTracking": { - "type": "boolean", - "default": true - }, - "dataRetentionDays": { - "type": "number" - }, - "dataProcessingAgreement": { - "type": "string" - } - }, - "required": [ - "enabled", - "dataSubjectRights", - "legalBasis" - ], - "additionalProperties": false - } + "GDPRConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/HIPAAConfig.json b/packages/spec/json-schema/system/HIPAAConfig.json index 8163ac232..c7bab27fc 100644 --- a/packages/spec/json-schema/system/HIPAAConfig.json +++ b/packages/spec/json-schema/system/HIPAAConfig.json @@ -1,45 +1,7 @@ { "$ref": "#/definitions/HIPAAConfig", "definitions": { - "HIPAAConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "phi": { - "type": "object", - "properties": { - "encryption": { - "type": "boolean", - "default": true - }, - "accessControl": { - "type": "boolean", - "default": true - }, - "auditTrail": { - "type": "boolean", - "default": true - }, - "backupAndRecovery": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - }, - "businessAssociateAgreement": { - "type": "boolean", - "default": false - } - }, - "required": [ - "enabled", - "phi" - ], - "additionalProperties": false - } + "HIPAAConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/HealthStatus.json b/packages/spec/json-schema/system/HealthStatus.json index 0bdade787..65201a414 100644 --- a/packages/spec/json-schema/system/HealthStatus.json +++ b/packages/spec/json-schema/system/HealthStatus.json @@ -1,33 +1,7 @@ { "$ref": "#/definitions/HealthStatus", "definitions": { - "HealthStatus": { - "type": "object", - "properties": { - "healthy": { - "type": "boolean", - "description": "Whether the plugin is healthy" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds when health check was performed" - }, - "details": { - "type": "object", - "additionalProperties": {}, - "description": "Optional plugin-specific health details" - }, - "message": { - "type": "string", - "description": "Error message if plugin is unhealthy" - } - }, - "required": [ - "healthy", - "timestamp" - ], - "additionalProperties": false - } + "HealthStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/HistogramBucketConfig.json b/packages/spec/json-schema/system/HistogramBucketConfig.json index 3886e5cd2..76f43fee8 100644 --- a/packages/spec/json-schema/system/HistogramBucketConfig.json +++ b/packages/spec/json-schema/system/HistogramBucketConfig.json @@ -1,92 +1,7 @@ { "$ref": "#/definitions/HistogramBucketConfig", "definitions": { - "HistogramBucketConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "linear", - "exponential", - "explicit" - ], - "description": "Bucket type" - }, - "linear": { - "type": "object", - "properties": { - "start": { - "type": "number", - "description": "Start value" - }, - "width": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Bucket width" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of buckets" - } - }, - "required": [ - "start", - "width", - "count" - ], - "additionalProperties": false - }, - "exponential": { - "type": "object", - "properties": { - "start": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Start value" - }, - "factor": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Growth factor" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of buckets" - } - }, - "required": [ - "start", - "factor", - "count" - ], - "additionalProperties": false - }, - "explicit": { - "type": "object", - "properties": { - "boundaries": { - "type": "array", - "items": { - "type": "number" - }, - "description": "Bucket boundaries" - } - }, - "required": [ - "boundaries" - ], - "additionalProperties": false - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Histogram bucket configuration" - } + "HistogramBucketConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/HookRegisteredEvent.json b/packages/spec/json-schema/system/HookRegisteredEvent.json index 5bb10bf57..4298d8519 100644 --- a/packages/spec/json-schema/system/HookRegisteredEvent.json +++ b/packages/spec/json-schema/system/HookRegisteredEvent.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/HookRegisteredEvent", "definitions": { - "HookRegisteredEvent": { - "type": "object", - "properties": { - "hookName": { - "type": "string", - "description": "Name of the hook" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds" - }, - "handlerCount": { - "type": "integer", - "minimum": 0, - "description": "Number of handlers registered for this hook" - } - }, - "required": [ - "hookName", - "timestamp", - "handlerCount" - ], - "additionalProperties": false - } + "HookRegisteredEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/HookTriggeredEvent.json b/packages/spec/json-schema/system/HookTriggeredEvent.json index be45ddc71..891aca7fb 100644 --- a/packages/spec/json-schema/system/HookTriggeredEvent.json +++ b/packages/spec/json-schema/system/HookTriggeredEvent.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/HookTriggeredEvent", "definitions": { - "HookTriggeredEvent": { - "type": "object", - "properties": { - "hookName": { - "type": "string", - "description": "Name of the hook" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds" - }, - "args": { - "type": "array", - "description": "Arguments passed to the hook handlers" - }, - "handlerCount": { - "type": "integer", - "minimum": 0, - "description": "Number of handlers that will handle this event" - } - }, - "required": [ - "hookName", - "timestamp", - "args" - ], - "additionalProperties": false - } + "HookTriggeredEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/HttpDestinationConfig.json b/packages/spec/json-schema/system/HttpDestinationConfig.json index dcb3a30e7..5e6108291 100644 --- a/packages/spec/json-schema/system/HttpDestinationConfig.json +++ b/packages/spec/json-schema/system/HttpDestinationConfig.json @@ -1,111 +1,7 @@ { "$ref": "#/definitions/HttpDestinationConfig", "definitions": { - "HttpDestinationConfig": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "description": "HTTP endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "POST", - "PUT" - ], - "default": "POST" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "auth": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "basic", - "bearer", - "api_key" - ], - "description": "Auth type" - }, - "username": { - "type": "string" - }, - "password": { - "type": "string" - }, - "token": { - "type": "string" - }, - "apiKey": { - "type": "string" - }, - "apiKeyHeader": { - "type": "string", - "default": "X-API-Key" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "batch": { - "type": "object", - "properties": { - "maxSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100 - }, - "flushInterval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5000 - } - }, - "additionalProperties": false - }, - "retry": { - "type": "object", - "properties": { - "maxAttempts": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 3 - }, - "initialDelay": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2 - } - }, - "additionalProperties": false - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000 - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "HTTP destination configuration" - } + "HttpDestinationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/HttpServerConfig.json b/packages/spec/json-schema/system/HttpServerConfig.json index dbf929977..7a4ca0661 100644 --- a/packages/spec/json-schema/system/HttpServerConfig.json +++ b/packages/spec/json-schema/system/HttpServerConfig.json @@ -1,156 +1,7 @@ { "$ref": "#/definitions/HttpServerConfig", "definitions": { - "HttpServerConfig": { - "type": "object", - "properties": { - "port": { - "type": "integer", - "minimum": 1, - "maximum": 65535, - "default": 3000, - "description": "Port number to listen on" - }, - "host": { - "type": "string", - "default": "0.0.0.0", - "description": "Host address to bind to" - }, - "cors": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable CORS" - }, - "origins": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "default": "*", - "description": "Allowed origins (* for all)" - }, - "methods": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ] - }, - "description": "Allowed HTTP methods" - }, - "credentials": { - "type": "boolean", - "default": false, - "description": "Allow credentials (cookies, authorization headers)" - }, - "maxAge": { - "type": "integer", - "description": "Preflight cache duration in seconds" - } - }, - "additionalProperties": false, - "description": "CORS configuration" - }, - "requestTimeout": { - "type": "integer", - "default": 30000, - "description": "Request timeout in milliseconds" - }, - "bodyLimit": { - "type": "string", - "default": "10mb", - "description": "Maximum request body size" - }, - "compression": { - "type": "boolean", - "default": true, - "description": "Enable response compression" - }, - "security": { - "type": "object", - "properties": { - "helmet": { - "type": "boolean", - "default": true, - "description": "Enable security headers via helmet" - }, - "rateLimit": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable rate limiting" - }, - "windowMs": { - "type": "integer", - "default": 60000, - "description": "Time window in milliseconds" - }, - "maxRequests": { - "type": "integer", - "default": 100, - "description": "Max requests per window" - } - }, - "additionalProperties": false, - "description": "Global rate limiting configuration" - } - }, - "additionalProperties": false, - "description": "Security configuration" - }, - "static": { - "type": "array", - "items": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "URL path to serve from" - }, - "directory": { - "type": "string", - "description": "Physical directory to serve" - }, - "cacheControl": { - "type": "string", - "description": "Cache-Control header value" - } - }, - "required": [ - "path", - "directory" - ], - "additionalProperties": false - }, - "description": "Static file serving configuration" - }, - "trustProxy": { - "type": "boolean", - "default": false, - "description": "Trust X-Forwarded-* headers" - } - }, - "additionalProperties": false - } + "HttpServerConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/InAppNotification.json b/packages/spec/json-schema/system/InAppNotification.json index 314dcd25c..fcb120b69 100644 --- a/packages/spec/json-schema/system/InAppNotification.json +++ b/packages/spec/json-schema/system/InAppNotification.json @@ -1,48 +1,7 @@ { "$ref": "#/definitions/InAppNotification", "definitions": { - "InAppNotification": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Notification title" - }, - "message": { - "type": "string", - "description": "Notification message" - }, - "type": { - "type": "string", - "enum": [ - "info", - "success", - "warning", - "error" - ], - "description": "Notification type" - }, - "actionUrl": { - "type": "string", - "description": "Action URL" - }, - "dismissible": { - "type": "boolean", - "default": true, - "description": "User dismissible" - }, - "expiresAt": { - "type": "number", - "description": "Expiration timestamp" - } - }, - "required": [ - "title", - "message", - "type" - ], - "additionalProperties": false - } + "InAppNotification": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/IntervalSchedule.json b/packages/spec/json-schema/system/IntervalSchedule.json index 865d30d5a..3df5f3df6 100644 --- a/packages/spec/json-schema/system/IntervalSchedule.json +++ b/packages/spec/json-schema/system/IntervalSchedule.json @@ -1,25 +1,7 @@ { "$ref": "#/definitions/IntervalSchedule", "definitions": { - "IntervalSchedule": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "interval" - }, - "intervalMs": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Interval in milliseconds" - } - }, - "required": [ - "type", - "intervalMs" - ], - "additionalProperties": false - } + "IntervalSchedule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/Job.json b/packages/spec/json-schema/system/Job.json index 796c0543e..f647095a6 100644 --- a/packages/spec/json-schema/system/Job.json +++ b/packages/spec/json-schema/system/Job.json @@ -1,127 +1,7 @@ { "$ref": "#/definitions/Job", "definitions": { - "Job": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique job identifier" - }, - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Job name (snake_case)" - }, - "schedule": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cron" - }, - "expression": { - "type": "string", - "description": "Cron expression (e.g., \"0 0 * * *\" for daily at midnight)" - }, - "timezone": { - "type": "string", - "default": "UTC", - "description": "Timezone for cron execution (e.g., \"America/New_York\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "interval" - }, - "intervalMs": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Interval in milliseconds" - } - }, - "required": [ - "type", - "intervalMs" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "once" - }, - "at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when to execute" - } - }, - "required": [ - "type", - "at" - ], - "additionalProperties": false - } - ], - "description": "Job schedule configuration" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Maximum number of retry attempts" - }, - "backoffMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial backoff delay in milliseconds" - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2, - "description": "Multiplier for exponential backoff" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Timeout in milliseconds" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Whether the job is enabled" - } - }, - "required": [ - "id", - "name", - "schedule" - ], - "additionalProperties": false - } + "Job": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/JobExecution.json b/packages/spec/json-schema/system/JobExecution.json index a4d630d7a..9324648ae 100644 --- a/packages/spec/json-schema/system/JobExecution.json +++ b/packages/spec/json-schema/system/JobExecution.json @@ -1,49 +1,7 @@ { "$ref": "#/definitions/JobExecution", "definitions": { - "JobExecution": { - "type": "object", - "properties": { - "jobId": { - "type": "string", - "description": "Job identifier" - }, - "startedAt": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when execution started" - }, - "completedAt": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when execution completed" - }, - "status": { - "type": "string", - "enum": [ - "running", - "success", - "failed", - "timeout" - ], - "description": "Execution status" - }, - "error": { - "type": "string", - "description": "Error message if failed" - }, - "duration": { - "type": "integer", - "description": "Execution duration in milliseconds" - } - }, - "required": [ - "jobId", - "startedAt", - "status" - ], - "additionalProperties": false - } + "JobExecution": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/JobExecutionStatus.json b/packages/spec/json-schema/system/JobExecutionStatus.json index d6bfda65b..ea755b06e 100644 --- a/packages/spec/json-schema/system/JobExecutionStatus.json +++ b/packages/spec/json-schema/system/JobExecutionStatus.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/JobExecutionStatus", "definitions": { - "JobExecutionStatus": { - "type": "string", - "enum": [ - "running", - "success", - "failed", - "timeout" - ] - } + "JobExecutionStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/KernelContext.json b/packages/spec/json-schema/system/KernelContext.json index 73c80b961..6fa6aa6ee 100644 --- a/packages/spec/json-schema/system/KernelContext.json +++ b/packages/spec/json-schema/system/KernelContext.json @@ -1,62 +1,7 @@ { "$ref": "#/definitions/KernelContext", "definitions": { - "KernelContext": { - "type": "object", - "properties": { - "instanceId": { - "type": "string", - "format": "uuid", - "description": "Unique UUID for this running kernel process" - }, - "mode": { - "type": "string", - "enum": [ - "development", - "production", - "test", - "provisioning" - ], - "description": "Kernel operating mode", - "default": "production" - }, - "version": { - "type": "string", - "description": "Kernel version" - }, - "appName": { - "type": "string", - "description": "Host application name" - }, - "cwd": { - "type": "string", - "description": "Current working directory" - }, - "workspaceRoot": { - "type": "string", - "description": "Workspace root if different from cwd" - }, - "startTime": { - "type": "integer", - "description": "Boot timestamp (ms)" - }, - "features": { - "type": "object", - "additionalProperties": { - "type": "boolean" - }, - "default": {}, - "description": "Global feature toggles" - } - }, - "required": [ - "instanceId", - "version", - "cwd", - "startTime" - ], - "additionalProperties": false - } + "KernelContext": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/KernelEventBase.json b/packages/spec/json-schema/system/KernelEventBase.json index da32c3b88..a5cfe8ca1 100644 --- a/packages/spec/json-schema/system/KernelEventBase.json +++ b/packages/spec/json-schema/system/KernelEventBase.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/KernelEventBase", "definitions": { - "KernelEventBase": { - "type": "object", - "properties": { - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false - } + "KernelEventBase": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/KernelReadyEvent.json b/packages/spec/json-schema/system/KernelReadyEvent.json index 1c2d1186d..d61d80b12 100644 --- a/packages/spec/json-schema/system/KernelReadyEvent.json +++ b/packages/spec/json-schema/system/KernelReadyEvent.json @@ -1,29 +1,7 @@ { "$ref": "#/definitions/KernelReadyEvent", "definitions": { - "KernelReadyEvent": { - "type": "object", - "properties": { - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds" - }, - "duration": { - "type": "number", - "minimum": 0, - "description": "Total initialization duration in milliseconds" - }, - "pluginCount": { - "type": "integer", - "minimum": 0, - "description": "Number of plugins initialized" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false - } + "KernelReadyEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/KernelShutdownEvent.json b/packages/spec/json-schema/system/KernelShutdownEvent.json index f08388c8a..669878f50 100644 --- a/packages/spec/json-schema/system/KernelShutdownEvent.json +++ b/packages/spec/json-schema/system/KernelShutdownEvent.json @@ -1,23 +1,7 @@ { "$ref": "#/definitions/KernelShutdownEvent", "definitions": { - "KernelShutdownEvent": { - "type": "object", - "properties": { - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds" - }, - "reason": { - "type": "string", - "description": "Reason for kernel shutdown" - } - }, - "required": [ - "timestamp" - ], - "additionalProperties": false - } + "KernelShutdownEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/KeyManagementProvider.json b/packages/spec/json-schema/system/KeyManagementProvider.json index 0919ec628..fc181a129 100644 --- a/packages/spec/json-schema/system/KeyManagementProvider.json +++ b/packages/spec/json-schema/system/KeyManagementProvider.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/KeyManagementProvider", "definitions": { - "KeyManagementProvider": { - "type": "string", - "enum": [ - "local", - "aws-kms", - "azure-key-vault", - "gcp-kms", - "hashicorp-vault" - ] - } + "KeyManagementProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/KeyRotationPolicy.json b/packages/spec/json-schema/system/KeyRotationPolicy.json index d73104b80..cfa49c487 100644 --- a/packages/spec/json-schema/system/KeyRotationPolicy.json +++ b/packages/spec/json-schema/system/KeyRotationPolicy.json @@ -1,29 +1,7 @@ { "$ref": "#/definitions/KeyRotationPolicy", "definitions": { - "KeyRotationPolicy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "frequencyDays": { - "type": "number", - "minimum": 1, - "default": 90 - }, - "retainOldVersions": { - "type": "number", - "default": 3 - }, - "autoRotate": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - } + "KeyRotationPolicy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LWWRegister.json b/packages/spec/json-schema/system/LWWRegister.json index df36e449d..47c24c692 100644 --- a/packages/spec/json-schema/system/LWWRegister.json +++ b/packages/spec/json-schema/system/LWWRegister.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/LWWRegister", "definitions": { - "LWWRegister": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "lww-register" - }, - "value": { - "description": "Current register value" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of last write" - }, - "replicaId": { - "type": "string", - "description": "ID of replica that performed last write" - }, - "vectorClock": { - "type": "object", - "properties": { - "clock": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Map of replica ID to logical timestamp" - } - }, - "required": [ - "clock" - ], - "additionalProperties": false, - "description": "Optional vector clock for causality tracking" - } - }, - "required": [ - "type", - "timestamp", - "replicaId" - ], - "additionalProperties": false - } + "LWWRegister": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LifecycleAction.json b/packages/spec/json-schema/system/LifecycleAction.json index 4d503f49b..0ec8ae467 100644 --- a/packages/spec/json-schema/system/LifecycleAction.json +++ b/packages/spec/json-schema/system/LifecycleAction.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/LifecycleAction", "definitions": { - "LifecycleAction": { - "type": "string", - "enum": [ - "transition", - "delete", - "abort" - ], - "description": "Lifecycle policy action type" - } + "LifecycleAction": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LifecyclePolicyConfig.json b/packages/spec/json-schema/system/LifecyclePolicyConfig.json index 69ca2bc6c..f7b645003 100644 --- a/packages/spec/json-schema/system/LifecyclePolicyConfig.json +++ b/packages/spec/json-schema/system/LifecyclePolicyConfig.json @@ -1,84 +1,7 @@ { "$ref": "#/definitions/LifecyclePolicyConfig", "definitions": { - "LifecyclePolicyConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable lifecycle policies" - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Rule identifier" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable this rule" - }, - "action": { - "type": "string", - "enum": [ - "transition", - "delete", - "abort" - ], - "description": "Action to perform" - }, - "prefix": { - "type": "string", - "description": "Object key prefix filter (e.g., \"uploads/\")" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Object tag filters" - }, - "daysAfterCreation": { - "type": "number", - "minimum": 0, - "description": "Days after object creation" - }, - "daysAfterModification": { - "type": "number", - "minimum": 0, - "description": "Days after last modification" - }, - "targetStorageClass": { - "type": "string", - "enum": [ - "standard", - "intelligent", - "infrequent_access", - "glacier", - "deep_archive" - ], - "description": "Target storage class for transition action" - } - }, - "required": [ - "id", - "action" - ], - "additionalProperties": false - }, - "default": [], - "description": "Lifecycle rules" - } - }, - "additionalProperties": false - } + "LifecyclePolicyConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LifecyclePolicyRule.json b/packages/spec/json-schema/system/LifecyclePolicyRule.json index 86ee8a8f2..eb22e56f4 100644 --- a/packages/spec/json-schema/system/LifecyclePolicyRule.json +++ b/packages/spec/json-schema/system/LifecyclePolicyRule.json @@ -1,68 +1,7 @@ { "$ref": "#/definitions/LifecyclePolicyRule", "definitions": { - "LifecyclePolicyRule": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Rule identifier" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable this rule" - }, - "action": { - "type": "string", - "enum": [ - "transition", - "delete", - "abort" - ], - "description": "Action to perform" - }, - "prefix": { - "type": "string", - "description": "Object key prefix filter (e.g., \"uploads/\")" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Object tag filters" - }, - "daysAfterCreation": { - "type": "number", - "minimum": 0, - "description": "Days after object creation" - }, - "daysAfterModification": { - "type": "number", - "minimum": 0, - "description": "Days after last modification" - }, - "targetStorageClass": { - "type": "string", - "enum": [ - "standard", - "intelligent", - "infrequent_access", - "glacier", - "deep_archive" - ], - "description": "Target storage class for transition action" - } - }, - "required": [ - "id", - "action" - ], - "additionalProperties": false - } + "LifecyclePolicyRule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/Locale.json b/packages/spec/json-schema/system/Locale.json index 953666029..0927a986d 100644 --- a/packages/spec/json-schema/system/Locale.json +++ b/packages/spec/json-schema/system/Locale.json @@ -1,10 +1,7 @@ { "$ref": "#/definitions/Locale", "definitions": { - "Locale": { - "type": "string", - "description": "BCP-47 Language Tag (e.g. en-US, zh-CN)" - } + "Locale": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LogDestination.json b/packages/spec/json-schema/system/LogDestination.json index e92fea1ce..6dc1b9e14 100644 --- a/packages/spec/json-schema/system/LogDestination.json +++ b/packages/spec/json-schema/system/LogDestination.json @@ -1,295 +1,7 @@ { "$ref": "#/definitions/LogDestination", "definitions": { - "LogDestination": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Destination name (snake_case)" - }, - "type": { - "type": "string", - "enum": [ - "console", - "file", - "syslog", - "elasticsearch", - "cloudwatch", - "stackdriver", - "azure_monitor", - "datadog", - "splunk", - "loki", - "http", - "kafka", - "redis", - "custom" - ], - "description": "Destination type" - }, - "level": { - "type": "string", - "enum": [ - "trace", - "debug", - "info", - "warn", - "error", - "fatal" - ], - "description": "Extended log severity level", - "default": "info" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "console": { - "type": "object", - "properties": { - "stream": { - "type": "string", - "enum": [ - "stdout", - "stderr" - ], - "default": "stdout" - }, - "colors": { - "type": "boolean", - "default": true - }, - "prettyPrint": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Console destination configuration" - }, - "file": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "Log file path" - }, - "rotation": { - "type": "object", - "properties": { - "maxSize": { - "type": "string", - "default": "10m" - }, - "maxFiles": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - }, - "compress": { - "type": "boolean", - "default": true - }, - "interval": { - "type": "string", - "enum": [ - "hourly", - "daily", - "weekly", - "monthly" - ] - } - }, - "additionalProperties": false - }, - "encoding": { - "type": "string", - "default": "utf8" - }, - "append": { - "type": "boolean", - "default": true - } - }, - "required": [ - "path" - ], - "additionalProperties": false, - "description": "File destination configuration" - }, - "http": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "description": "HTTP endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "POST", - "PUT" - ], - "default": "POST" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "auth": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "basic", - "bearer", - "api_key" - ], - "description": "Auth type" - }, - "username": { - "type": "string" - }, - "password": { - "type": "string" - }, - "token": { - "type": "string" - }, - "apiKey": { - "type": "string" - }, - "apiKeyHeader": { - "type": "string", - "default": "X-API-Key" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "batch": { - "type": "object", - "properties": { - "maxSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100 - }, - "flushInterval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5000 - } - }, - "additionalProperties": false - }, - "retry": { - "type": "object", - "properties": { - "maxAttempts": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 3 - }, - "initialDelay": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2 - } - }, - "additionalProperties": false - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000 - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "HTTP destination configuration" - }, - "externalService": { - "type": "object", - "properties": { - "endpoint": { - "type": "string", - "format": "uri" - }, - "region": { - "type": "string" - }, - "credentials": { - "type": "object", - "properties": { - "accessKeyId": { - "type": "string" - }, - "secretAccessKey": { - "type": "string" - }, - "apiKey": { - "type": "string" - }, - "projectId": { - "type": "string" - } - }, - "additionalProperties": false - }, - "logGroup": { - "type": "string" - }, - "logStream": { - "type": "string" - }, - "index": { - "type": "string" - }, - "config": { - "type": "object", - "additionalProperties": {} - } - }, - "additionalProperties": false, - "description": "External service destination configuration" - }, - "format": { - "type": "string", - "enum": [ - "json", - "text", - "pretty" - ], - "default": "json" - }, - "filterId": { - "type": "string", - "description": "Filter function identifier" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false, - "description": "Log destination configuration" - } + "LogDestination": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LogDestinationType.json b/packages/spec/json-schema/system/LogDestinationType.json index c98e58747..761575aa4 100644 --- a/packages/spec/json-schema/system/LogDestinationType.json +++ b/packages/spec/json-schema/system/LogDestinationType.json @@ -1,26 +1,7 @@ { "$ref": "#/definitions/LogDestinationType", "definitions": { - "LogDestinationType": { - "type": "string", - "enum": [ - "console", - "file", - "syslog", - "elasticsearch", - "cloudwatch", - "stackdriver", - "azure_monitor", - "datadog", - "splunk", - "loki", - "http", - "kafka", - "redis", - "custom" - ], - "description": "Log destination type" - } + "LogDestinationType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LogEnrichmentConfig.json b/packages/spec/json-schema/system/LogEnrichmentConfig.json index 0f68a440a..745c2deee 100644 --- a/packages/spec/json-schema/system/LogEnrichmentConfig.json +++ b/packages/spec/json-schema/system/LogEnrichmentConfig.json @@ -1,59 +1,7 @@ { "$ref": "#/definitions/LogEnrichmentConfig", "definitions": { - "LogEnrichmentConfig": { - "type": "object", - "properties": { - "staticFields": { - "type": "object", - "additionalProperties": {}, - "description": "Static fields added to every log" - }, - "dynamicEnrichers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Dynamic enricher function IDs" - }, - "addHostname": { - "type": "boolean", - "default": true - }, - "addProcessId": { - "type": "boolean", - "default": true - }, - "addEnvironment": { - "type": "boolean", - "default": true - }, - "addTimestampFormats": { - "type": "object", - "properties": { - "unix": { - "type": "boolean", - "default": false - }, - "iso": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - }, - "addCaller": { - "type": "boolean", - "default": false - }, - "addCorrelationIds": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false, - "description": "Log enrichment configuration" - } + "LogEnrichmentConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LogEntry.json b/packages/spec/json-schema/system/LogEntry.json index b52b5b70c..69fc6e3cd 100644 --- a/packages/spec/json-schema/system/LogEntry.json +++ b/packages/spec/json-schema/system/LogEntry.json @@ -1,63 +1,7 @@ { "$ref": "#/definitions/LogEntry", "definitions": { - "LogEntry": { - "type": "object", - "properties": { - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 timestamp" - }, - "level": { - "type": "string", - "enum": [ - "debug", - "info", - "warn", - "error", - "fatal" - ], - "description": "Log severity level" - }, - "message": { - "type": "string", - "description": "Log message" - }, - "context": { - "type": "object", - "additionalProperties": {}, - "description": "Structured context data" - }, - "error": { - "type": "object", - "additionalProperties": {}, - "description": "Error object if present" - }, - "traceId": { - "type": "string", - "description": "Distributed trace ID" - }, - "spanId": { - "type": "string", - "description": "Span ID" - }, - "service": { - "type": "string", - "description": "Service name" - }, - "component": { - "type": "string", - "description": "Component name (e.g. plugin id)" - } - }, - "required": [ - "timestamp", - "level", - "message" - ], - "additionalProperties": false - } + "LogEntry": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LogFormat.json b/packages/spec/json-schema/system/LogFormat.json index b315bd508..c4f3ad3fe 100644 --- a/packages/spec/json-schema/system/LogFormat.json +++ b/packages/spec/json-schema/system/LogFormat.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/LogFormat", "definitions": { - "LogFormat": { - "type": "string", - "enum": [ - "json", - "text", - "pretty" - ], - "description": "Log output format" - } + "LogFormat": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LogLevel.json b/packages/spec/json-schema/system/LogLevel.json index b060eb1fa..f04be1ba6 100644 --- a/packages/spec/json-schema/system/LogLevel.json +++ b/packages/spec/json-schema/system/LogLevel.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/LogLevel", "definitions": { - "LogLevel": { - "type": "string", - "enum": [ - "debug", - "info", - "warn", - "error", - "fatal" - ], - "description": "Log severity level" - } + "LogLevel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LoggerConfig.json b/packages/spec/json-schema/system/LoggerConfig.json index b3247a25b..aaea1c640 100644 --- a/packages/spec/json-schema/system/LoggerConfig.json +++ b/packages/spec/json-schema/system/LoggerConfig.json @@ -1,74 +1,7 @@ { "$ref": "#/definitions/LoggerConfig", "definitions": { - "LoggerConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Logger name identifier" - }, - "level": { - "type": "string", - "enum": [ - "debug", - "info", - "warn", - "error", - "fatal" - ], - "description": "Log severity level", - "default": "info" - }, - "format": { - "type": "string", - "enum": [ - "json", - "text", - "pretty" - ], - "description": "Log output format", - "default": "json" - }, - "redact": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "password", - "token", - "secret", - "key" - ], - "description": "Keys to redact from log context" - }, - "sourceLocation": { - "type": "boolean", - "default": false, - "description": "Include file and line number" - }, - "file": { - "type": "string", - "description": "Path to log file" - }, - "rotation": { - "type": "object", - "properties": { - "maxSize": { - "type": "string", - "default": "10m" - }, - "maxFiles": { - "type": "number", - "default": 5 - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } + "LoggerConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/LoggingConfig.json b/packages/spec/json-schema/system/LoggingConfig.json index 9ef7002c8..53a090131 100644 --- a/packages/spec/json-schema/system/LoggingConfig.json +++ b/packages/spec/json-schema/system/LoggingConfig.json @@ -1,613 +1,7 @@ { "$ref": "#/definitions/LoggingConfig", "definitions": { - "LoggingConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "maxLength": 64, - "description": "Configuration name (snake_case, max 64 chars)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "level": { - "type": "string", - "enum": [ - "trace", - "debug", - "info", - "warn", - "error", - "fatal" - ], - "description": "Extended log severity level", - "default": "info" - }, - "default": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Logger name identifier" - }, - "level": { - "type": "string", - "enum": [ - "debug", - "info", - "warn", - "error", - "fatal" - ], - "description": "Log severity level", - "default": "info" - }, - "format": { - "type": "string", - "enum": [ - "json", - "text", - "pretty" - ], - "description": "Log output format", - "default": "json" - }, - "redact": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "password", - "token", - "secret", - "key" - ], - "description": "Keys to redact from log context" - }, - "sourceLocation": { - "type": "boolean", - "default": false, - "description": "Include file and line number" - }, - "file": { - "type": "string", - "description": "Path to log file" - }, - "rotation": { - "type": "object", - "properties": { - "maxSize": { - "type": "string", - "default": "10m" - }, - "maxFiles": { - "type": "number", - "default": 5 - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false, - "description": "Default logger configuration" - }, - "loggers": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Logger name identifier" - }, - "level": { - "type": "string", - "enum": [ - "debug", - "info", - "warn", - "error", - "fatal" - ], - "description": "Log severity level", - "default": "info" - }, - "format": { - "type": "string", - "enum": [ - "json", - "text", - "pretty" - ], - "description": "Log output format", - "default": "json" - }, - "redact": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "password", - "token", - "secret", - "key" - ], - "description": "Keys to redact from log context" - }, - "sourceLocation": { - "type": "boolean", - "default": false, - "description": "Include file and line number" - }, - "file": { - "type": "string", - "description": "Path to log file" - }, - "rotation": { - "type": "object", - "properties": { - "maxSize": { - "type": "string", - "default": "10m" - }, - "maxFiles": { - "type": "number", - "default": 5 - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "description": "Named logger configurations" - }, - "destinations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Destination name (snake_case)" - }, - "type": { - "type": "string", - "enum": [ - "console", - "file", - "syslog", - "elasticsearch", - "cloudwatch", - "stackdriver", - "azure_monitor", - "datadog", - "splunk", - "loki", - "http", - "kafka", - "redis", - "custom" - ], - "description": "Destination type" - }, - "level": { - "type": "string", - "enum": [ - "trace", - "debug", - "info", - "warn", - "error", - "fatal" - ], - "description": "Extended log severity level", - "default": "info" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "console": { - "type": "object", - "properties": { - "stream": { - "type": "string", - "enum": [ - "stdout", - "stderr" - ], - "default": "stdout" - }, - "colors": { - "type": "boolean", - "default": true - }, - "prettyPrint": { - "type": "boolean", - "default": false - } - }, - "additionalProperties": false, - "description": "Console destination configuration" - }, - "file": { - "type": "object", - "properties": { - "path": { - "type": "string", - "description": "Log file path" - }, - "rotation": { - "type": "object", - "properties": { - "maxSize": { - "type": "string", - "default": "10m" - }, - "maxFiles": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - }, - "compress": { - "type": "boolean", - "default": true - }, - "interval": { - "type": "string", - "enum": [ - "hourly", - "daily", - "weekly", - "monthly" - ] - } - }, - "additionalProperties": false - }, - "encoding": { - "type": "string", - "default": "utf8" - }, - "append": { - "type": "boolean", - "default": true - } - }, - "required": [ - "path" - ], - "additionalProperties": false, - "description": "File destination configuration" - }, - "http": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "description": "HTTP endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "POST", - "PUT" - ], - "default": "POST" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "auth": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "basic", - "bearer", - "api_key" - ], - "description": "Auth type" - }, - "username": { - "type": "string" - }, - "password": { - "type": "string" - }, - "token": { - "type": "string" - }, - "apiKey": { - "type": "string" - }, - "apiKeyHeader": { - "type": "string", - "default": "X-API-Key" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "batch": { - "type": "object", - "properties": { - "maxSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100 - }, - "flushInterval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5000 - } - }, - "additionalProperties": false - }, - "retry": { - "type": "object", - "properties": { - "maxAttempts": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 3 - }, - "initialDelay": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2 - } - }, - "additionalProperties": false - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000 - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "HTTP destination configuration" - }, - "externalService": { - "type": "object", - "properties": { - "endpoint": { - "type": "string", - "format": "uri" - }, - "region": { - "type": "string" - }, - "credentials": { - "type": "object", - "properties": { - "accessKeyId": { - "type": "string" - }, - "secretAccessKey": { - "type": "string" - }, - "apiKey": { - "type": "string" - }, - "projectId": { - "type": "string" - } - }, - "additionalProperties": false - }, - "logGroup": { - "type": "string" - }, - "logStream": { - "type": "string" - }, - "index": { - "type": "string" - }, - "config": { - "type": "object", - "additionalProperties": {} - } - }, - "additionalProperties": false, - "description": "External service destination configuration" - }, - "format": { - "type": "string", - "enum": [ - "json", - "text", - "pretty" - ], - "default": "json" - }, - "filterId": { - "type": "string", - "description": "Filter function identifier" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false, - "description": "Log destination configuration" - }, - "description": "Log destinations" - }, - "enrichment": { - "type": "object", - "properties": { - "staticFields": { - "type": "object", - "additionalProperties": {}, - "description": "Static fields added to every log" - }, - "dynamicEnrichers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Dynamic enricher function IDs" - }, - "addHostname": { - "type": "boolean", - "default": true - }, - "addProcessId": { - "type": "boolean", - "default": true - }, - "addEnvironment": { - "type": "boolean", - "default": true - }, - "addTimestampFormats": { - "type": "object", - "properties": { - "unix": { - "type": "boolean", - "default": false - }, - "iso": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - }, - "addCaller": { - "type": "boolean", - "default": false - }, - "addCorrelationIds": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false, - "description": "Log enrichment configuration", - "default": {} - }, - "redact": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "password", - "passwordHash", - "token", - "apiKey", - "secret", - "creditCard", - "ssn", - "authorization" - ], - "description": "Fields to redact" - }, - "sampling": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "rate": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 1 - }, - "rateByLevel": { - "type": "object", - "additionalProperties": { - "type": "number", - "minimum": 0, - "maximum": 1 - } - } - }, - "additionalProperties": false - }, - "buffer": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "size": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - }, - "flushInterval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - }, - "flushOnShutdown": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - }, - "performance": { - "type": "object", - "properties": { - "async": { - "type": "boolean", - "default": true - }, - "workers": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1 - } - }, - "additionalProperties": false - } - }, - "required": [ - "name", - "label", - "destinations" - ], - "additionalProperties": false, - "description": "Logging configuration" - } + "LoggingConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/Manifest.json b/packages/spec/json-schema/system/Manifest.json index 2b606e230..576376cfc 100644 --- a/packages/spec/json-schema/system/Manifest.json +++ b/packages/spec/json-schema/system/Manifest.json @@ -1,803 +1,7 @@ { "$ref": "#/definitions/Manifest", "definitions": { - "Manifest": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique package identifier (reverse domain style)" - }, - "version": { - "type": "string", - "pattern": "^\\d+\\.\\d+\\.\\d+$", - "description": "Package version (semantic versioning)" - }, - "type": { - "type": "string", - "enum": [ - "app", - "plugin", - "driver", - "module", - "objectql", - "gateway", - "adapter" - ], - "description": "Type of package" - }, - "name": { - "type": "string", - "description": "Human-readable package name" - }, - "description": { - "type": "string", - "description": "Package description" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of required permission strings" - }, - "objects": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Glob patterns for ObjectQL schemas files" - }, - "datasources": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Glob patterns for Datasource definitions" - }, - "dependencies": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Package dependencies" - }, - "configuration": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object" - ], - "description": "Data type of the setting" - }, - "default": { - "description": "Default value" - }, - "description": { - "type": "string", - "description": "Tooltip description" - }, - "required": { - "type": "boolean", - "description": "Is this setting required?" - }, - "secret": { - "type": "boolean", - "description": "If true, value is encrypted/masked (e.g. API Keys)" - }, - "enum": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed values for select inputs" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "description": "Map of configuration keys to their definitions" - } - }, - "required": [ - "properties" - ], - "additionalProperties": false, - "description": "Plugin configuration settings" - }, - "contributes": { - "type": "object", - "properties": { - "kinds": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The generic identifier of the kind (e.g., \"sys.bi.report\")" - }, - "globs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "File patterns to watch (e.g., [\"**/*.report.ts\"])" - }, - "description": { - "type": "string", - "description": "Description of what this kind represents" - } - }, - "required": [ - "id", - "globs" - ], - "additionalProperties": false - }, - "description": "New Metadata Types to recognize" - }, - "events": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Events this plugin listens to" - }, - "menus": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "label": { - "type": "string" - }, - "command": { - "type": "string" - } - }, - "required": [ - "id", - "label" - ], - "additionalProperties": false - } - }, - "description": "UI Menu contributions" - }, - "themes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "label": { - "type": "string" - }, - "path": { - "type": "string" - } - }, - "required": [ - "id", - "label", - "path" - ], - "additionalProperties": false - }, - "description": "Theme contributions" - }, - "translations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "locale": { - "type": "string" - }, - "path": { - "type": "string" - } - }, - "required": [ - "locale", - "path" - ], - "additionalProperties": false - }, - "description": "Translation resources" - }, - "actions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Unique action name" - }, - "label": { - "type": "string" - }, - "description": { - "type": "string" - }, - "input": { - "description": "Input validation schema" - }, - "output": { - "description": "Output schema" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Exposed server actions" - }, - "drivers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Driver unique identifier (e.g. \"postgres\", \"mongo\")" - }, - "label": { - "type": "string", - "description": "Human readable name" - }, - "description": { - "type": "string" - } - }, - "required": [ - "id", - "label" - ], - "additionalProperties": false - }, - "description": "Driver contributions" - }, - "fieldTypes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Unique field type name (e.g. \"vector\")" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string" - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false - }, - "description": "Field Type contributions" - }, - "functions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Function name (e.g. \"distance\")" - }, - "description": { - "type": "string" - }, - "args": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Argument types" - }, - "returnType": { - "type": "string" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Query Function contributions" - } - }, - "additionalProperties": false, - "description": "Platform contributions" - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "object": { - "type": "string", - "description": "Target Object Name" - }, - "records": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - }, - "description": "List of records to insert" - }, - "mode": { - "type": "string", - "enum": [ - "upsert", - "insert", - "ignore" - ], - "default": "upsert", - "description": "Seeding mode" - } - }, - "required": [ - "object", - "records" - ], - "additionalProperties": false - }, - "description": "Initial seed data" - }, - "capabilities": { - "type": "object", - "properties": { - "implements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "protocol": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+protocol\\.[a-z][a-z0-9._]*\\.v\\d+$", - "description": "Unique protocol identifier (e.g., com.objectstack.protocol.storage.v1)" - }, - "label": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "specification": { - "type": "string", - "description": "URL or path to protocol specification" - }, - "description": { - "type": "string" - } - }, - "required": [ - "id", - "label", - "version" - ], - "additionalProperties": false - }, - "conformance": { - "type": "string", - "enum": [ - "full", - "partial", - "experimental", - "deprecated" - ], - "description": "Level of protocol conformance", - "default": "full" - }, - "implementedFeatures": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of implemented feature names" - }, - "features": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Feature identifier within the protocol" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - }, - "sinceVersion": { - "type": "string", - "description": "Version when this feature was added" - }, - "deprecatedSince": { - "type": "string", - "description": "Version when deprecated" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "certified": { - "type": "boolean", - "default": false, - "description": "Has passed official conformance tests" - }, - "certificationDate": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "protocol" - ], - "additionalProperties": false - }, - "description": "List of protocols this plugin conforms to" - }, - "provides": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+interface\\.[a-z][a-z0-9._]+$", - "description": "Unique interface identifier" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "methods": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Method name" - }, - "description": { - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "description": "Type notation (e.g., string, number, User)" - }, - "required": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "returnType": { - "type": "string", - "description": "Return value type" - }, - "async": { - "type": "boolean", - "default": false, - "description": "Whether method returns a Promise" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "events": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Event name" - }, - "description": { - "type": "string" - }, - "payload": { - "type": "string", - "description": "Event payload type" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "stability": { - "type": "string", - "enum": [ - "stable", - "beta", - "alpha", - "experimental" - ], - "default": "stable" - } - }, - "required": [ - "id", - "name", - "version", - "methods" - ], - "additionalProperties": false - }, - "description": "Services/APIs this plugin offers to others" - }, - "requires": { - "type": "array", - "items": { - "type": "object", - "properties": { - "pluginId": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+[a-z][a-z0-9-]+$", - "description": "Required plugin identifier" - }, - "version": { - "type": "string", - "description": "Semantic version constraint" - }, - "optional": { - "type": "boolean", - "default": false - }, - "reason": { - "type": "string" - }, - "requiredCapabilities": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Protocol IDs the dependency must support" - } - }, - "required": [ - "pluginId", - "version" - ], - "additionalProperties": false - }, - "description": "Required plugins and their capabilities" - }, - "extensionPoints": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+extension\\.[a-z][a-z0-9._]+$", - "description": "Unique extension point identifier" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "action", - "hook", - "widget", - "provider", - "transformer", - "validator", - "decorator" - ] - }, - "contract": { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "Input type/schema" - }, - "output": { - "type": "string", - "description": "Output type/schema" - }, - "signature": { - "type": "string", - "description": "Function signature if applicable" - } - }, - "additionalProperties": false - }, - "cardinality": { - "type": "string", - "enum": [ - "single", - "multiple" - ], - "default": "multiple", - "description": "Whether multiple extensions can register to this point" - } - }, - "required": [ - "id", - "name", - "type" - ], - "additionalProperties": false - }, - "description": "Points where other plugins can extend this plugin" - }, - "extensions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "targetPluginId": { - "type": "string", - "description": "Plugin ID being extended" - }, - "extensionPointId": { - "type": "string", - "description": "Extension point identifier" - }, - "implementation": { - "type": "string", - "description": "Path to implementation module" - }, - "priority": { - "type": "integer", - "default": 100, - "description": "Registration priority (lower = higher priority)" - } - }, - "required": [ - "targetPluginId", - "extensionPointId", - "implementation" - ], - "additionalProperties": false - }, - "description": "Extensions contributed to other plugins" - } - }, - "additionalProperties": false, - "description": "Plugin capability declarations for interoperability" - }, - "extensions": { - "type": "object", - "additionalProperties": {}, - "description": "Extension points and contributions" - } - }, - "required": [ - "id", - "version", - "type", - "name" - ], - "additionalProperties": false - } + "Manifest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MaskingConfig.json b/packages/spec/json-schema/system/MaskingConfig.json index 86e5aea70..7bd9a8d3d 100644 --- a/packages/spec/json-schema/system/MaskingConfig.json +++ b/packages/spec/json-schema/system/MaskingConfig.json @@ -1,77 +1,7 @@ { "$ref": "#/definitions/MaskingConfig", "definitions": { - "MaskingConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "strategy": { - "type": "string", - "enum": [ - "redact", - "partial", - "hash", - "tokenize", - "randomize", - "nullify", - "substitute" - ] - }, - "pattern": { - "type": "string", - "description": "Regex pattern for partial masking" - }, - "preserveFormat": { - "type": "boolean", - "default": true - }, - "preserveLength": { - "type": "boolean", - "default": true - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that see masked data" - }, - "exemptRoles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that see unmasked data" - } - }, - "required": [ - "field", - "strategy" - ], - "additionalProperties": false - } - }, - "auditUnmasking": { - "type": "boolean", - "default": true - } - }, - "required": [ - "rules" - ], - "additionalProperties": false - } + "MaskingConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MaskingRule.json b/packages/spec/json-schema/system/MaskingRule.json index fbbe23000..c13eb0ac8 100644 --- a/packages/spec/json-schema/system/MaskingRule.json +++ b/packages/spec/json-schema/system/MaskingRule.json @@ -1,57 +1,7 @@ { "$ref": "#/definitions/MaskingRule", "definitions": { - "MaskingRule": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "strategy": { - "type": "string", - "enum": [ - "redact", - "partial", - "hash", - "tokenize", - "randomize", - "nullify", - "substitute" - ] - }, - "pattern": { - "type": "string", - "description": "Regex pattern for partial masking" - }, - "preserveFormat": { - "type": "boolean", - "default": true - }, - "preserveLength": { - "type": "boolean", - "default": true - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that see masked data" - }, - "exemptRoles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that see unmasked data" - } - }, - "required": [ - "field", - "strategy" - ], - "additionalProperties": false - } + "MaskingRule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MaskingStrategy.json b/packages/spec/json-schema/system/MaskingStrategy.json index 39af8c83e..0e6e2e772 100644 --- a/packages/spec/json-schema/system/MaskingStrategy.json +++ b/packages/spec/json-schema/system/MaskingStrategy.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/MaskingStrategy", "definitions": { - "MaskingStrategy": { - "type": "string", - "enum": [ - "redact", - "partial", - "hash", - "tokenize", - "randomize", - "nullify", - "substitute" - ] - } + "MaskingStrategy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MessageQueueConfig.json b/packages/spec/json-schema/system/MessageQueueConfig.json index 3ae576d8c..2138fc8e2 100644 --- a/packages/spec/json-schema/system/MessageQueueConfig.json +++ b/packages/spec/json-schema/system/MessageQueueConfig.json @@ -1,143 +1,7 @@ { "$ref": "#/definitions/MessageQueueConfig", "definitions": { - "MessageQueueConfig": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "kafka", - "rabbitmq", - "aws-sqs", - "redis-pubsub", - "google-pubsub", - "azure-service-bus" - ] - }, - "topics": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "partitions": { - "type": "number", - "default": 1 - }, - "replicationFactor": { - "type": "number", - "default": 1 - }, - "retentionMs": { - "type": "number" - }, - "compressionType": { - "type": "string", - "enum": [ - "none", - "gzip", - "snappy", - "lz4" - ], - "default": "none" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "consumers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "groupId": { - "type": "string" - }, - "autoOffsetReset": { - "type": "string", - "enum": [ - "earliest", - "latest" - ], - "default": "latest" - }, - "enableAutoCommit": { - "type": "boolean", - "default": true - }, - "maxPollRecords": { - "type": "number", - "default": 500 - } - }, - "required": [ - "groupId" - ], - "additionalProperties": false - } - }, - "deadLetterQueue": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "maxRetries": { - "type": "number", - "default": 3 - }, - "queueName": { - "type": "string" - } - }, - "required": [ - "queueName" - ], - "additionalProperties": false - }, - "ssl": { - "type": "boolean", - "default": false - }, - "sasl": { - "type": "object", - "properties": { - "mechanism": { - "type": "string", - "enum": [ - "plain", - "scram-sha-256", - "scram-sha-512" - ] - }, - "username": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "required": [ - "mechanism", - "username", - "password" - ], - "additionalProperties": false - } - }, - "required": [ - "provider", - "topics" - ], - "additionalProperties": false - } + "MessageQueueConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MessageQueueProvider.json b/packages/spec/json-schema/system/MessageQueueProvider.json index 1237510a7..e3067a1fa 100644 --- a/packages/spec/json-schema/system/MessageQueueProvider.json +++ b/packages/spec/json-schema/system/MessageQueueProvider.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/MessageQueueProvider", "definitions": { - "MessageQueueProvider": { - "type": "string", - "enum": [ - "kafka", - "rabbitmq", - "aws-sqs", - "redis-pubsub", - "google-pubsub", - "azure-service-bus" - ] - } + "MessageQueueProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataCollectionInfo.json b/packages/spec/json-schema/system/MetadataCollectionInfo.json index 68228e130..2764beb69 100644 --- a/packages/spec/json-schema/system/MetadataCollectionInfo.json +++ b/packages/spec/json-schema/system/MetadataCollectionInfo.json @@ -1,53 +1,7 @@ { "$ref": "#/definitions/MetadataCollectionInfo", "definitions": { - "MetadataCollectionInfo": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Collection type" - }, - "count": { - "type": "integer", - "minimum": 0, - "description": "Number of items" - }, - "formats": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "json", - "yaml", - "typescript", - "javascript" - ] - }, - "description": "Formats in collection" - }, - "totalSize": { - "type": "integer", - "minimum": 0, - "description": "Total size in bytes" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "Last modification date" - }, - "location": { - "type": "string", - "description": "Collection location" - } - }, - "required": [ - "type", - "count", - "formats" - ], - "additionalProperties": false - } + "MetadataCollectionInfo": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataExportOptions.json b/packages/spec/json-schema/system/MetadataExportOptions.json index b4db73416..805f225b2 100644 --- a/packages/spec/json-schema/system/MetadataExportOptions.json +++ b/packages/spec/json-schema/system/MetadataExportOptions.json @@ -1,49 +1,7 @@ { "$ref": "#/definitions/MetadataExportOptions", "definitions": { - "MetadataExportOptions": { - "type": "object", - "properties": { - "output": { - "type": "string", - "description": "Output file path" - }, - "format": { - "type": "string", - "enum": [ - "json", - "yaml", - "typescript", - "javascript" - ], - "default": "json", - "description": "Export format" - }, - "filter": { - "type": "string", - "description": "Filter items to export" - }, - "includeStats": { - "type": "boolean", - "default": false, - "description": "Include metadata statistics" - }, - "compress": { - "type": "boolean", - "default": false, - "description": "Compress output (gzip)" - }, - "prettify": { - "type": "boolean", - "default": true, - "description": "Pretty print output" - } - }, - "required": [ - "output" - ], - "additionalProperties": false - } + "MetadataExportOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataFormat.json b/packages/spec/json-schema/system/MetadataFormat.json index 5f515c0ec..42526732a 100644 --- a/packages/spec/json-schema/system/MetadataFormat.json +++ b/packages/spec/json-schema/system/MetadataFormat.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/MetadataFormat", "definitions": { - "MetadataFormat": { - "type": "string", - "enum": [ - "json", - "yaml", - "typescript", - "javascript" - ] - } + "MetadataFormat": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataImportOptions.json b/packages/spec/json-schema/system/MetadataImportOptions.json index 7e9460abe..be6204218 100644 --- a/packages/spec/json-schema/system/MetadataImportOptions.json +++ b/packages/spec/json-schema/system/MetadataImportOptions.json @@ -1,42 +1,7 @@ { "$ref": "#/definitions/MetadataImportOptions", "definitions": { - "MetadataImportOptions": { - "type": "object", - "properties": { - "conflictResolution": { - "type": "string", - "enum": [ - "skip", - "overwrite", - "merge", - "fail" - ], - "default": "merge", - "description": "How to handle existing items" - }, - "validate": { - "type": "boolean", - "default": true, - "description": "Validate before import" - }, - "dryRun": { - "type": "boolean", - "default": false, - "description": "Simulate import without saving" - }, - "continueOnError": { - "type": "boolean", - "default": false, - "description": "Continue if validation fails" - }, - "transform": { - "type": "string", - "description": "Transform items before import" - } - }, - "additionalProperties": false - } + "MetadataImportOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataLoadOptions.json b/packages/spec/json-schema/system/MetadataLoadOptions.json index 3a6fa7edf..96b108480 100644 --- a/packages/spec/json-schema/system/MetadataLoadOptions.json +++ b/packages/spec/json-schema/system/MetadataLoadOptions.json @@ -1,52 +1,7 @@ { "$ref": "#/definitions/MetadataLoadOptions", "definitions": { - "MetadataLoadOptions": { - "type": "object", - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "File glob patterns" - }, - "ifNoneMatch": { - "type": "string", - "description": "ETag for conditional request" - }, - "ifModifiedSince": { - "type": "string", - "format": "date-time", - "description": "Only load if modified after this date" - }, - "validate": { - "type": "boolean", - "default": true, - "description": "Validate against schema" - }, - "useCache": { - "type": "boolean", - "default": true, - "description": "Enable caching" - }, - "filter": { - "type": "string", - "description": "Filter predicate as string" - }, - "limit": { - "type": "integer", - "minimum": 1, - "description": "Maximum items to load" - }, - "recursive": { - "type": "boolean", - "default": true, - "description": "Search subdirectories" - } - }, - "additionalProperties": false - } + "MetadataLoadOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataLoadResult.json b/packages/spec/json-schema/system/MetadataLoadResult.json index 6d246d031..d0c335f6a 100644 --- a/packages/spec/json-schema/system/MetadataLoadResult.json +++ b/packages/spec/json-schema/system/MetadataLoadResult.json @@ -1,86 +1,7 @@ { "$ref": "#/definitions/MetadataLoadResult", "definitions": { - "MetadataLoadResult": { - "type": "object", - "properties": { - "data": { - "anyOf": [ - {}, - { - "type": "null" - } - ], - "description": "Loaded metadata" - }, - "fromCache": { - "type": "boolean", - "default": false, - "description": "Loaded from cache" - }, - "notModified": { - "type": "boolean", - "default": false, - "description": "Not modified since last request" - }, - "etag": { - "type": "string", - "description": "Entity tag" - }, - "stats": { - "type": "object", - "properties": { - "size": { - "type": "integer", - "minimum": 0, - "description": "File size in bytes" - }, - "modifiedAt": { - "type": "string", - "format": "date-time", - "description": "Last modified date" - }, - "etag": { - "type": "string", - "description": "Entity tag for cache validation" - }, - "format": { - "type": "string", - "enum": [ - "json", - "yaml", - "typescript", - "javascript" - ], - "description": "Serialization format" - }, - "path": { - "type": "string", - "description": "File system path" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Provider-specific metadata" - } - }, - "required": [ - "size", - "modifiedAt", - "etag", - "format" - ], - "additionalProperties": false, - "description": "Metadata statistics" - }, - "loadTime": { - "type": "number", - "minimum": 0, - "description": "Load duration in ms" - } - }, - "additionalProperties": false - } + "MetadataLoadResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataLoaderContract.json b/packages/spec/json-schema/system/MetadataLoaderContract.json index 199008433..e60f3d114 100644 --- a/packages/spec/json-schema/system/MetadataLoaderContract.json +++ b/packages/spec/json-schema/system/MetadataLoaderContract.json @@ -1,48 +1,7 @@ { "$ref": "#/definitions/MetadataLoaderContract", "definitions": { - "MetadataLoaderContract": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Loader identifier" - }, - "supportedFormats": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "json", - "yaml", - "typescript", - "javascript" - ] - }, - "description": "Supported formats" - }, - "supportsWatch": { - "type": "boolean", - "default": false, - "description": "Supports file watching" - }, - "supportsWrite": { - "type": "boolean", - "default": true, - "description": "Supports write operations" - }, - "supportsCache": { - "type": "boolean", - "default": true, - "description": "Supports caching" - } - }, - "required": [ - "name", - "supportedFormats" - ], - "additionalProperties": false - } + "MetadataLoaderContract": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataManagerConfig.json b/packages/spec/json-schema/system/MetadataManagerConfig.json index 6dbbf076e..127b57316 100644 --- a/packages/spec/json-schema/system/MetadataManagerConfig.json +++ b/packages/spec/json-schema/system/MetadataManagerConfig.json @@ -1,108 +1,7 @@ { "$ref": "#/definitions/MetadataManagerConfig", "definitions": { - "MetadataManagerConfig": { - "type": "object", - "properties": { - "rootDir": { - "type": "string", - "description": "Root directory path" - }, - "formats": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "json", - "yaml", - "typescript", - "javascript" - ] - }, - "default": [ - "typescript", - "json", - "yaml" - ], - "description": "Enabled formats" - }, - "cache": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable caching" - }, - "ttl": { - "type": "integer", - "minimum": 0, - "default": 3600, - "description": "Cache TTL in seconds" - }, - "maxSize": { - "type": "integer", - "minimum": 0, - "description": "Max cache size in bytes" - } - }, - "additionalProperties": false, - "description": "Cache settings" - }, - "watch": { - "type": "boolean", - "default": false, - "description": "Enable file watching" - }, - "watchOptions": { - "type": "object", - "properties": { - "ignored": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Patterns to ignore" - }, - "persistent": { - "type": "boolean", - "default": true, - "description": "Keep process running" - }, - "ignoreInitial": { - "type": "boolean", - "default": true, - "description": "Ignore initial add events" - } - }, - "additionalProperties": false, - "description": "File watcher options" - }, - "validation": { - "type": "object", - "properties": { - "strict": { - "type": "boolean", - "default": true, - "description": "Strict validation" - }, - "throwOnError": { - "type": "boolean", - "default": true, - "description": "Throw on validation error" - } - }, - "additionalProperties": false, - "description": "Validation settings" - }, - "loaderOptions": { - "type": "object", - "additionalProperties": {}, - "description": "Loader-specific configuration" - } - }, - "additionalProperties": false - } + "MetadataManagerConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataSaveOptions.json b/packages/spec/json-schema/system/MetadataSaveOptions.json index c749961eb..23f230d16 100644 --- a/packages/spec/json-schema/system/MetadataSaveOptions.json +++ b/packages/spec/json-schema/system/MetadataSaveOptions.json @@ -1,64 +1,7 @@ { "$ref": "#/definitions/MetadataSaveOptions", "definitions": { - "MetadataSaveOptions": { - "type": "object", - "properties": { - "format": { - "type": "string", - "enum": [ - "json", - "yaml", - "typescript", - "javascript" - ], - "default": "typescript", - "description": "Output format" - }, - "prettify": { - "type": "boolean", - "default": true, - "description": "Format with indentation" - }, - "indent": { - "type": "integer", - "minimum": 0, - "maximum": 8, - "default": 2, - "description": "Indentation spaces" - }, - "sortKeys": { - "type": "boolean", - "default": false, - "description": "Sort object keys" - }, - "includeDefaults": { - "type": "boolean", - "default": false, - "description": "Include default values" - }, - "backup": { - "type": "boolean", - "default": false, - "description": "Create backup file" - }, - "overwrite": { - "type": "boolean", - "default": true, - "description": "Overwrite existing file" - }, - "atomic": { - "type": "boolean", - "default": true, - "description": "Use atomic write operation" - }, - "path": { - "type": "string", - "description": "Custom output path" - } - }, - "additionalProperties": false - } + "MetadataSaveOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataSaveResult.json b/packages/spec/json-schema/system/MetadataSaveResult.json index ef378699f..76beaa4dc 100644 --- a/packages/spec/json-schema/system/MetadataSaveResult.json +++ b/packages/spec/json-schema/system/MetadataSaveResult.json @@ -1,42 +1,7 @@ { "$ref": "#/definitions/MetadataSaveResult", "definitions": { - "MetadataSaveResult": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "description": "Save successful" - }, - "path": { - "type": "string", - "description": "Output path" - }, - "etag": { - "type": "string", - "description": "Generated entity tag" - }, - "size": { - "type": "integer", - "minimum": 0, - "description": "File size" - }, - "saveTime": { - "type": "number", - "minimum": 0, - "description": "Save duration in ms" - }, - "backupPath": { - "type": "string", - "description": "Backup file path" - } - }, - "required": [ - "success", - "path" - ], - "additionalProperties": false - } + "MetadataSaveResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataStats.json b/packages/spec/json-schema/system/MetadataStats.json index eea204916..c2cae196b 100644 --- a/packages/spec/json-schema/system/MetadataStats.json +++ b/packages/spec/json-schema/system/MetadataStats.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/MetadataStats", "definitions": { - "MetadataStats": { - "type": "object", - "properties": { - "size": { - "type": "integer", - "minimum": 0, - "description": "File size in bytes" - }, - "modifiedAt": { - "type": "string", - "format": "date-time", - "description": "Last modified date" - }, - "etag": { - "type": "string", - "description": "Entity tag for cache validation" - }, - "format": { - "type": "string", - "enum": [ - "json", - "yaml", - "typescript", - "javascript" - ], - "description": "Serialization format" - }, - "path": { - "type": "string", - "description": "File system path" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Provider-specific metadata" - } - }, - "required": [ - "size", - "modifiedAt", - "etag", - "format" - ], - "additionalProperties": false - } + "MetadataStats": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetadataWatchEvent.json b/packages/spec/json-schema/system/MetadataWatchEvent.json index 25b4e5b0d..77de33f29 100644 --- a/packages/spec/json-schema/system/MetadataWatchEvent.json +++ b/packages/spec/json-schema/system/MetadataWatchEvent.json @@ -1,48 +1,7 @@ { "$ref": "#/definitions/MetadataWatchEvent", "definitions": { - "MetadataWatchEvent": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "added", - "changed", - "deleted" - ], - "description": "Event type" - }, - "metadataType": { - "type": "string", - "description": "Type of metadata" - }, - "name": { - "type": "string", - "description": "Item identifier" - }, - "path": { - "type": "string", - "description": "File path" - }, - "data": { - "description": "Item data" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Event timestamp" - } - }, - "required": [ - "type", - "metadataType", - "name", - "path", - "timestamp" - ], - "additionalProperties": false - } + "MetadataWatchEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetricAggregationConfig.json b/packages/spec/json-schema/system/MetricAggregationConfig.json index 07e3d09ba..30778f5fc 100644 --- a/packages/spec/json-schema/system/MetricAggregationConfig.json +++ b/packages/spec/json-schema/system/MetricAggregationConfig.json @@ -1,69 +1,7 @@ { "$ref": "#/definitions/MetricAggregationConfig", "definitions": { - "MetricAggregationConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "sum", - "avg", - "min", - "max", - "count", - "p50", - "p75", - "p90", - "p95", - "p99", - "p999", - "rate", - "stddev" - ], - "description": "Aggregation type" - }, - "window": { - "type": "object", - "properties": { - "size": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Window size in seconds" - }, - "sliding": { - "type": "boolean", - "default": false - }, - "slideInterval": { - "type": "integer", - "exclusiveMinimum": 0 - } - }, - "required": [ - "size" - ], - "additionalProperties": false - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Group by label names" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter criteria" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Metric aggregation configuration" - } + "MetricAggregationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetricAggregationType.json b/packages/spec/json-schema/system/MetricAggregationType.json index cc0e65e7d..8ab0b876c 100644 --- a/packages/spec/json-schema/system/MetricAggregationType.json +++ b/packages/spec/json-schema/system/MetricAggregationType.json @@ -1,25 +1,7 @@ { "$ref": "#/definitions/MetricAggregationType", "definitions": { - "MetricAggregationType": { - "type": "string", - "enum": [ - "sum", - "avg", - "min", - "max", - "count", - "p50", - "p75", - "p90", - "p95", - "p99", - "p999", - "rate", - "stddev" - ], - "description": "Metric aggregation type" - } + "MetricAggregationType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetricDataPoint.json b/packages/spec/json-schema/system/MetricDataPoint.json index 73a87027a..e9b9b9b41 100644 --- a/packages/spec/json-schema/system/MetricDataPoint.json +++ b/packages/spec/json-schema/system/MetricDataPoint.json @@ -1,135 +1,7 @@ { "$ref": "#/definitions/MetricDataPoint", "definitions": { - "MetricDataPoint": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Metric name" - }, - "type": { - "type": "string", - "enum": [ - "counter", - "gauge", - "histogram", - "summary" - ], - "description": "Metric type" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Observation timestamp" - }, - "value": { - "type": "number", - "description": "Metric value" - }, - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Metric labels" - }, - "histogram": { - "type": "object", - "properties": { - "count": { - "type": "integer", - "minimum": 0, - "description": "Total count" - }, - "sum": { - "type": "number", - "description": "Sum of all values" - }, - "buckets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "upperBound": { - "type": "number", - "description": "Upper bound of bucket" - }, - "count": { - "type": "integer", - "minimum": 0, - "description": "Count in bucket" - } - }, - "required": [ - "upperBound", - "count" - ], - "additionalProperties": false - }, - "description": "Histogram buckets" - } - }, - "required": [ - "count", - "sum", - "buckets" - ], - "additionalProperties": false - }, - "summary": { - "type": "object", - "properties": { - "count": { - "type": "integer", - "minimum": 0, - "description": "Total count" - }, - "sum": { - "type": "number", - "description": "Sum of all values" - }, - "quantiles": { - "type": "array", - "items": { - "type": "object", - "properties": { - "quantile": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Quantile (0-1)" - }, - "value": { - "type": "number", - "description": "Quantile value" - } - }, - "required": [ - "quantile", - "value" - ], - "additionalProperties": false - }, - "description": "Summary quantiles" - } - }, - "required": [ - "count", - "sum", - "quantiles" - ], - "additionalProperties": false - } - }, - "required": [ - "name", - "type", - "timestamp" - ], - "additionalProperties": false, - "description": "Metric data point" - } + "MetricDataPoint": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetricDefinition.json b/packages/spec/json-schema/system/MetricDefinition.json index 2e0fed2b4..9d10710bb 100644 --- a/packages/spec/json-schema/system/MetricDefinition.json +++ b/packages/spec/json-schema/system/MetricDefinition.json @@ -1,193 +1,7 @@ { "$ref": "#/definitions/MetricDefinition", "definitions": { - "MetricDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Metric name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "type": { - "type": "string", - "enum": [ - "counter", - "gauge", - "histogram", - "summary" - ], - "description": "Metric type" - }, - "unit": { - "type": "string", - "enum": [ - "nanoseconds", - "microseconds", - "milliseconds", - "seconds", - "minutes", - "hours", - "days", - "bytes", - "kilobytes", - "megabytes", - "gigabytes", - "terabytes", - "requests_per_second", - "events_per_second", - "bytes_per_second", - "percent", - "ratio", - "count", - "operations", - "custom" - ], - "description": "Metric unit" - }, - "description": { - "type": "string", - "description": "Metric description" - }, - "labelNames": { - "type": "array", - "items": { - "type": "string" - }, - "default": [], - "description": "Label names" - }, - "histogram": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "linear", - "exponential", - "explicit" - ], - "description": "Bucket type" - }, - "linear": { - "type": "object", - "properties": { - "start": { - "type": "number", - "description": "Start value" - }, - "width": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Bucket width" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of buckets" - } - }, - "required": [ - "start", - "width", - "count" - ], - "additionalProperties": false - }, - "exponential": { - "type": "object", - "properties": { - "start": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Start value" - }, - "factor": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Growth factor" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of buckets" - } - }, - "required": [ - "start", - "factor", - "count" - ], - "additionalProperties": false - }, - "explicit": { - "type": "object", - "properties": { - "boundaries": { - "type": "array", - "items": { - "type": "number" - }, - "description": "Bucket boundaries" - } - }, - "required": [ - "boundaries" - ], - "additionalProperties": false - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Histogram bucket configuration" - }, - "summary": { - "type": "object", - "properties": { - "quantiles": { - "type": "array", - "items": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "default": [ - 0.5, - 0.9, - 0.99 - ] - }, - "maxAge": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 600 - }, - "ageBuckets": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - } - }, - "additionalProperties": false - }, - "enabled": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false, - "description": "Metric definition" - } + "MetricDefinition": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetricExportConfig.json b/packages/spec/json-schema/system/MetricExportConfig.json index ee43677f5..b584fedd8 100644 --- a/packages/spec/json-schema/system/MetricExportConfig.json +++ b/packages/spec/json-schema/system/MetricExportConfig.json @@ -1,93 +1,7 @@ { "$ref": "#/definitions/MetricExportConfig", "definitions": { - "MetricExportConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "prometheus", - "openmetrics", - "graphite", - "statsd", - "influxdb", - "datadog", - "cloudwatch", - "stackdriver", - "azure_monitor", - "http", - "custom" - ], - "description": "Export type" - }, - "endpoint": { - "type": "string", - "description": "Export endpoint" - }, - "interval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 60 - }, - "batch": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "size": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - } - }, - "additionalProperties": false - }, - "auth": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "basic", - "bearer", - "api_key" - ], - "description": "Auth type" - }, - "username": { - "type": "string" - }, - "password": { - "type": "string" - }, - "token": { - "type": "string" - }, - "apiKey": { - "type": "string" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Additional configuration" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Metric export configuration" - } + "MetricExportConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetricLabels.json b/packages/spec/json-schema/system/MetricLabels.json index f410dd225..46db0c6a0 100644 --- a/packages/spec/json-schema/system/MetricLabels.json +++ b/packages/spec/json-schema/system/MetricLabels.json @@ -1,13 +1,7 @@ { "$ref": "#/definitions/MetricLabels", "definitions": { - "MetricLabels": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Metric labels" - } + "MetricLabels": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetricType.json b/packages/spec/json-schema/system/MetricType.json index 1238e26db..97809a9bb 100644 --- a/packages/spec/json-schema/system/MetricType.json +++ b/packages/spec/json-schema/system/MetricType.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/MetricType", "definitions": { - "MetricType": { - "type": "string", - "enum": [ - "counter", - "gauge", - "histogram", - "summary" - ], - "description": "Metric type" - } + "MetricType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetricUnit.json b/packages/spec/json-schema/system/MetricUnit.json index eaf599516..0b54574ca 100644 --- a/packages/spec/json-schema/system/MetricUnit.json +++ b/packages/spec/json-schema/system/MetricUnit.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/MetricUnit", "definitions": { - "MetricUnit": { - "type": "string", - "enum": [ - "nanoseconds", - "microseconds", - "milliseconds", - "seconds", - "minutes", - "hours", - "days", - "bytes", - "kilobytes", - "megabytes", - "gigabytes", - "terabytes", - "requests_per_second", - "events_per_second", - "bytes_per_second", - "percent", - "ratio", - "count", - "operations", - "custom" - ], - "description": "Metric unit" - } + "MetricUnit": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MetricsConfig.json b/packages/spec/json-schema/system/MetricsConfig.json index b11d5b2db..7b4b3e4df 100644 --- a/packages/spec/json-schema/system/MetricsConfig.json +++ b/packages/spec/json-schema/system/MetricsConfig.json @@ -1,718 +1,7 @@ { "$ref": "#/definitions/MetricsConfig", "definitions": { - "MetricsConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "maxLength": 64, - "description": "Configuration name (snake_case, max 64 chars)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "metrics": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Metric name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "type": { - "type": "string", - "enum": [ - "counter", - "gauge", - "histogram", - "summary" - ], - "description": "Metric type" - }, - "unit": { - "type": "string", - "enum": [ - "nanoseconds", - "microseconds", - "milliseconds", - "seconds", - "minutes", - "hours", - "days", - "bytes", - "kilobytes", - "megabytes", - "gigabytes", - "terabytes", - "requests_per_second", - "events_per_second", - "bytes_per_second", - "percent", - "ratio", - "count", - "operations", - "custom" - ], - "description": "Metric unit" - }, - "description": { - "type": "string", - "description": "Metric description" - }, - "labelNames": { - "type": "array", - "items": { - "type": "string" - }, - "default": [], - "description": "Label names" - }, - "histogram": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "linear", - "exponential", - "explicit" - ], - "description": "Bucket type" - }, - "linear": { - "type": "object", - "properties": { - "start": { - "type": "number", - "description": "Start value" - }, - "width": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Bucket width" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of buckets" - } - }, - "required": [ - "start", - "width", - "count" - ], - "additionalProperties": false - }, - "exponential": { - "type": "object", - "properties": { - "start": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Start value" - }, - "factor": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Growth factor" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of buckets" - } - }, - "required": [ - "start", - "factor", - "count" - ], - "additionalProperties": false - }, - "explicit": { - "type": "object", - "properties": { - "boundaries": { - "type": "array", - "items": { - "type": "number" - }, - "description": "Bucket boundaries" - } - }, - "required": [ - "boundaries" - ], - "additionalProperties": false - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Histogram bucket configuration" - }, - "summary": { - "type": "object", - "properties": { - "quantiles": { - "type": "array", - "items": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "default": [ - 0.5, - 0.9, - 0.99 - ] - }, - "maxAge": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 600 - }, - "ageBuckets": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5 - } - }, - "additionalProperties": false - }, - "enabled": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false, - "description": "Metric definition" - }, - "default": [] - }, - "defaultLabels": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Metric labels", - "default": {} - }, - "aggregations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "sum", - "avg", - "min", - "max", - "count", - "p50", - "p75", - "p90", - "p95", - "p99", - "p999", - "rate", - "stddev" - ], - "description": "Aggregation type" - }, - "window": { - "type": "object", - "properties": { - "size": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Window size in seconds" - }, - "sliding": { - "type": "boolean", - "default": false - }, - "slideInterval": { - "type": "integer", - "exclusiveMinimum": 0 - } - }, - "required": [ - "size" - ], - "additionalProperties": false - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Group by label names" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Filter criteria" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Metric aggregation configuration" - }, - "default": [] - }, - "slis": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "SLI name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string", - "description": "SLI description" - }, - "metric": { - "type": "string", - "description": "Base metric name" - }, - "type": { - "type": "string", - "enum": [ - "availability", - "latency", - "throughput", - "error_rate", - "saturation", - "custom" - ], - "description": "SLI type" - }, - "successCriteria": { - "type": "object", - "properties": { - "threshold": { - "type": "number", - "description": "Threshold value" - }, - "operator": { - "type": "string", - "enum": [ - "lt", - "lte", - "gt", - "gte", - "eq" - ], - "description": "Comparison operator" - }, - "percentile": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Percentile (0-1)" - } - }, - "required": [ - "threshold", - "operator" - ], - "additionalProperties": false, - "description": "Success criteria" - }, - "window": { - "type": "object", - "properties": { - "size": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Window size in seconds" - }, - "rolling": { - "type": "boolean", - "default": true - } - }, - "required": [ - "size" - ], - "additionalProperties": false, - "description": "Measurement window" - }, - "enabled": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "label", - "metric", - "type", - "successCriteria", - "window" - ], - "additionalProperties": false, - "description": "Service Level Indicator" - }, - "default": [] - }, - "slos": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "SLO name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string", - "description": "SLO description" - }, - "sli": { - "type": "string", - "description": "SLI name" - }, - "target": { - "type": "number", - "minimum": 0, - "maximum": 100, - "description": "Target percentage" - }, - "period": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rolling", - "calendar" - ], - "description": "Period type" - }, - "duration": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Duration in seconds" - }, - "calendar": { - "type": "string", - "enum": [ - "daily", - "weekly", - "monthly", - "quarterly", - "yearly" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Time period" - }, - "errorBudget": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "alertThreshold": { - "type": "number", - "minimum": 0, - "maximum": 100, - "default": 80 - }, - "burnRateWindows": { - "type": "array", - "items": { - "type": "object", - "properties": { - "window": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Window size" - }, - "threshold": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Burn rate threshold" - } - }, - "required": [ - "window", - "threshold" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false - }, - "alerts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Alert name" - }, - "severity": { - "type": "string", - "enum": [ - "info", - "warning", - "critical" - ], - "description": "Alert severity" - }, - "condition": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "slo_breach", - "error_budget", - "burn_rate" - ], - "description": "Condition type" - }, - "threshold": { - "type": "number", - "description": "Threshold value" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Alert condition" - } - }, - "required": [ - "name", - "severity", - "condition" - ], - "additionalProperties": false - }, - "default": [] - }, - "enabled": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "label", - "sli", - "target", - "period" - ], - "additionalProperties": false, - "description": "Service Level Objective" - }, - "default": [] - }, - "exports": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "prometheus", - "openmetrics", - "graphite", - "statsd", - "influxdb", - "datadog", - "cloudwatch", - "stackdriver", - "azure_monitor", - "http", - "custom" - ], - "description": "Export type" - }, - "endpoint": { - "type": "string", - "description": "Export endpoint" - }, - "interval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 60 - }, - "batch": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "size": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000 - } - }, - "additionalProperties": false - }, - "auth": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "basic", - "bearer", - "api_key" - ], - "description": "Auth type" - }, - "username": { - "type": "string" - }, - "password": { - "type": "string" - }, - "token": { - "type": "string" - }, - "apiKey": { - "type": "string" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Additional configuration" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Metric export configuration" - }, - "default": [] - }, - "collectionInterval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 15 - }, - "retention": { - "type": "object", - "properties": { - "period": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 604800 - }, - "downsampling": { - "type": "array", - "items": { - "type": "object", - "properties": { - "afterSeconds": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Downsample after seconds" - }, - "resolution": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Downsampled resolution" - } - }, - "required": [ - "afterSeconds", - "resolution" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false - }, - "cardinalityLimits": { - "type": "object", - "properties": { - "maxLabelCombinations": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10000 - }, - "onLimitExceeded": { - "type": "string", - "enum": [ - "drop", - "sample", - "alert" - ], - "default": "alert" - } - }, - "additionalProperties": false - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false, - "description": "Metrics configuration" - } + "MetricsConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MiddlewareConfig.json b/packages/spec/json-schema/system/MiddlewareConfig.json index 28a6889e7..7b4263aca 100644 --- a/packages/spec/json-schema/system/MiddlewareConfig.json +++ b/packages/spec/json-schema/system/MiddlewareConfig.json @@ -1,70 +1,7 @@ { "$ref": "#/definitions/MiddlewareConfig", "definitions": { - "MiddlewareConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Middleware name (snake_case)" - }, - "type": { - "type": "string", - "enum": [ - "authentication", - "authorization", - "logging", - "validation", - "transformation", - "error", - "custom" - ], - "description": "Middleware type" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Whether middleware is enabled" - }, - "order": { - "type": "integer", - "default": 100, - "description": "Execution order priority" - }, - "config": { - "type": "object", - "additionalProperties": {}, - "description": "Middleware configuration object" - }, - "paths": { - "type": "object", - "properties": { - "include": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Include path patterns (glob)" - }, - "exclude": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Exclude path patterns (glob)" - } - }, - "additionalProperties": false, - "description": "Path filtering" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } + "MiddlewareConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MiddlewareType.json b/packages/spec/json-schema/system/MiddlewareType.json index 25a33d6f9..e05887a67 100644 --- a/packages/spec/json-schema/system/MiddlewareType.json +++ b/packages/spec/json-schema/system/MiddlewareType.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/MiddlewareType", "definitions": { - "MiddlewareType": { - "type": "string", - "enum": [ - "authentication", - "authorization", - "logging", - "validation", - "transformation", - "error", - "custom" - ] - } + "MiddlewareType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/MultipartUploadConfig.json b/packages/spec/json-schema/system/MultipartUploadConfig.json index 7389c9fd7..769457515 100644 --- a/packages/spec/json-schema/system/MultipartUploadConfig.json +++ b/packages/spec/json-schema/system/MultipartUploadConfig.json @@ -1,49 +1,7 @@ { "$ref": "#/definitions/MultipartUploadConfig", "definitions": { - "MultipartUploadConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable multipart uploads" - }, - "partSize": { - "type": "number", - "minimum": 5242880, - "maximum": 5368709120, - "default": 10485760, - "description": "Part size in bytes (min 5MB, max 5GB)" - }, - "maxParts": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 10000, - "description": "Maximum number of parts (max 10,000)" - }, - "threshold": { - "type": "number", - "minimum": 0, - "default": 104857600, - "description": "File size threshold to trigger multipart upload (bytes)" - }, - "maxConcurrent": { - "type": "number", - "minimum": 1, - "maximum": 100, - "default": 4, - "description": "Maximum concurrent part uploads" - }, - "abortIncompleteAfterDays": { - "type": "number", - "minimum": 1, - "description": "Auto-abort incomplete uploads after N days" - } - }, - "additionalProperties": false - } + "MultipartUploadConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/NotificationChannel.json b/packages/spec/json-schema/system/NotificationChannel.json index badc6d0ea..beb5776a4 100644 --- a/packages/spec/json-schema/system/NotificationChannel.json +++ b/packages/spec/json-schema/system/NotificationChannel.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/NotificationChannel", "definitions": { - "NotificationChannel": { - "type": "string", - "enum": [ - "email", - "sms", - "push", - "in-app", - "slack", - "teams", - "webhook" - ] - } + "NotificationChannel": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/NotificationConfig.json b/packages/spec/json-schema/system/NotificationConfig.json index 2fe8a753a..f65ccc3fe 100644 --- a/packages/spec/json-schema/system/NotificationConfig.json +++ b/packages/spec/json-schema/system/NotificationConfig.json @@ -1,343 +1,7 @@ { "$ref": "#/definitions/NotificationConfig", "definitions": { - "NotificationConfig": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Notification ID" - }, - "name": { - "type": "string", - "description": "Notification name" - }, - "channel": { - "type": "string", - "enum": [ - "email", - "sms", - "push", - "in-app", - "slack", - "teams", - "webhook" - ], - "description": "Notification channel" - }, - "template": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Template identifier" - }, - "subject": { - "type": "string", - "description": "Email subject" - }, - "body": { - "type": "string", - "description": "Email body content" - }, - "bodyType": { - "type": "string", - "enum": [ - "text", - "html", - "markdown" - ], - "default": "html", - "description": "Body content type" - }, - "variables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Template variables" - }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Attachment filename" - }, - "url": { - "type": "string", - "format": "uri", - "description": "Attachment URL" - } - }, - "required": [ - "name", - "url" - ], - "additionalProperties": false - }, - "description": "Email attachments" - } - }, - "required": [ - "id", - "subject", - "body" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Template identifier" - }, - "message": { - "type": "string", - "description": "SMS message content" - }, - "maxLength": { - "type": "number", - "default": 160, - "description": "Maximum message length" - }, - "variables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Template variables" - } - }, - "required": [ - "id", - "message" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Notification title" - }, - "body": { - "type": "string", - "description": "Notification body" - }, - "icon": { - "type": "string", - "format": "uri", - "description": "Notification icon URL" - }, - "badge": { - "type": "number", - "description": "Badge count" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Custom data" - }, - "actions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "action": { - "type": "string", - "description": "Action identifier" - }, - "title": { - "type": "string", - "description": "Action button title" - } - }, - "required": [ - "action", - "title" - ], - "additionalProperties": false - }, - "description": "Notification actions" - } - }, - "required": [ - "title", - "body" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Notification title" - }, - "message": { - "type": "string", - "description": "Notification message" - }, - "type": { - "type": "string", - "enum": [ - "info", - "success", - "warning", - "error" - ], - "description": "Notification type" - }, - "actionUrl": { - "type": "string", - "description": "Action URL" - }, - "dismissible": { - "type": "boolean", - "default": true, - "description": "User dismissible" - }, - "expiresAt": { - "type": "number", - "description": "Expiration timestamp" - } - }, - "required": [ - "title", - "message", - "type" - ], - "additionalProperties": false - } - ], - "description": "Notification template" - }, - "recipients": { - "type": "object", - "properties": { - "to": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Primary recipients" - }, - "cc": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CC recipients" - }, - "bcc": { - "type": "array", - "items": { - "type": "string" - }, - "description": "BCC recipients" - } - }, - "required": [ - "to" - ], - "additionalProperties": false, - "description": "Recipients" - }, - "schedule": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "immediate", - "delayed", - "scheduled" - ], - "description": "Schedule type" - }, - "delay": { - "type": "number", - "description": "Delay in milliseconds" - }, - "scheduledAt": { - "type": "number", - "description": "Scheduled timestamp" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Scheduling" - }, - "retryPolicy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable retries" - }, - "maxRetries": { - "type": "number", - "default": 3, - "description": "Max retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "exponential", - "linear", - "fixed" - ], - "description": "Backoff strategy" - } - }, - "required": [ - "backoffStrategy" - ], - "additionalProperties": false, - "description": "Retry policy" - }, - "tracking": { - "type": "object", - "properties": { - "trackOpens": { - "type": "boolean", - "default": false, - "description": "Track opens" - }, - "trackClicks": { - "type": "boolean", - "default": false, - "description": "Track clicks" - }, - "trackDelivery": { - "type": "boolean", - "default": true, - "description": "Track delivery" - } - }, - "additionalProperties": false, - "description": "Tracking configuration" - } - }, - "required": [ - "id", - "name", - "channel", - "template", - "recipients" - ], - "additionalProperties": false - } + "NotificationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ORSet.json b/packages/spec/json-schema/system/ORSet.json index 5ac438d3d..1c581d0d4 100644 --- a/packages/spec/json-schema/system/ORSet.json +++ b/packages/spec/json-schema/system/ORSet.json @@ -1,57 +1,7 @@ { "$ref": "#/definitions/ORSet", "definitions": { - "ORSet": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "or-set" - }, - "elements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "description": "Element value" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Addition timestamp" - }, - "replicaId": { - "type": "string", - "description": "Replica that added the element" - }, - "uid": { - "type": "string", - "format": "uuid", - "description": "Unique identifier for this addition" - }, - "removed": { - "type": "boolean", - "default": false, - "description": "Whether element has been removed" - } - }, - "required": [ - "timestamp", - "replicaId", - "uid" - ], - "additionalProperties": false - }, - "description": "Set elements with metadata" - } - }, - "required": [ - "type", - "elements" - ], - "additionalProperties": false - } + "ORSet": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ORSetElement.json b/packages/spec/json-schema/system/ORSetElement.json index 6c40e698b..a43cccf68 100644 --- a/packages/spec/json-schema/system/ORSetElement.json +++ b/packages/spec/json-schema/system/ORSetElement.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/ORSetElement", "definitions": { - "ORSetElement": { - "type": "object", - "properties": { - "value": { - "description": "Element value" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Addition timestamp" - }, - "replicaId": { - "type": "string", - "description": "Replica that added the element" - }, - "uid": { - "type": "string", - "format": "uuid", - "description": "Unique identifier for this addition" - }, - "removed": { - "type": "boolean", - "default": false, - "description": "Whether element has been removed" - } - }, - "required": [ - "timestamp", - "replicaId", - "uid" - ], - "additionalProperties": false - } + "ORSetElement": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/OTComponent.json b/packages/spec/json-schema/system/OTComponent.json index 164e148fc..244ab5ca4 100644 --- a/packages/spec/json-schema/system/OTComponent.json +++ b/packages/spec/json-schema/system/OTComponent.json @@ -1,76 +1,7 @@ { "$ref": "#/definitions/OTComponent", "definitions": { - "OTComponent": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "insert" - }, - "text": { - "type": "string", - "description": "Text to insert" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Text formatting attributes (e.g., bold, italic)" - } - }, - "required": [ - "type", - "text" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "delete" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to delete" - } - }, - "required": [ - "type", - "count" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "retain" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to retain" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Attribute changes to apply" - } - }, - "required": [ - "type", - "count" - ], - "additionalProperties": false - } - ] - } + "OTComponent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/OTOperation.json b/packages/spec/json-schema/system/OTOperation.json index b650bc858..81e6e2e26 100644 --- a/packages/spec/json-schema/system/OTOperation.json +++ b/packages/spec/json-schema/system/OTOperation.json @@ -1,128 +1,7 @@ { "$ref": "#/definitions/OTOperation", "definitions": { - "OTOperation": { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "userId": { - "type": "string", - "description": "User who created the operation" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "components": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "insert" - }, - "text": { - "type": "string", - "description": "Text to insert" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Text formatting attributes (e.g., bold, italic)" - } - }, - "required": [ - "type", - "text" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "delete" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to delete" - } - }, - "required": [ - "type", - "count" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "retain" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to retain" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Attribute changes to apply" - } - }, - "required": [ - "type", - "count" - ], - "additionalProperties": false - } - ] - }, - "description": "Operation components" - }, - "baseVersion": { - "type": "integer", - "minimum": 0, - "description": "Document version this operation is based on" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when operation was created" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional operation metadata" - } - }, - "required": [ - "operationId", - "documentId", - "userId", - "sessionId", - "components", - "baseVersion", - "timestamp" - ], - "additionalProperties": false - } + "OTOperation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/OTOperationType.json b/packages/spec/json-schema/system/OTOperationType.json index 38bdd8e49..a9837456a 100644 --- a/packages/spec/json-schema/system/OTOperationType.json +++ b/packages/spec/json-schema/system/OTOperationType.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/OTOperationType", "definitions": { - "OTOperationType": { - "type": "string", - "enum": [ - "insert", - "delete", - "retain" - ] - } + "OTOperationType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/OTTransformResult.json b/packages/spec/json-schema/system/OTTransformResult.json index 593b076a3..a50bb55c9 100644 --- a/packages/spec/json-schema/system/OTTransformResult.json +++ b/packages/spec/json-schema/system/OTTransformResult.json @@ -1,150 +1,7 @@ { "$ref": "#/definitions/OTTransformResult", "definitions": { - "OTTransformResult": { - "type": "object", - "properties": { - "operation": { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "userId": { - "type": "string", - "description": "User who created the operation" - }, - "sessionId": { - "type": "string", - "format": "uuid", - "description": "Session identifier" - }, - "components": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "insert" - }, - "text": { - "type": "string", - "description": "Text to insert" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Text formatting attributes (e.g., bold, italic)" - } - }, - "required": [ - "type", - "text" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "delete" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to delete" - } - }, - "required": [ - "type", - "count" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "retain" - }, - "count": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to retain" - }, - "attributes": { - "type": "object", - "additionalProperties": {}, - "description": "Attribute changes to apply" - } - }, - "required": [ - "type", - "count" - ], - "additionalProperties": false - } - ] - }, - "description": "Operation components" - }, - "baseVersion": { - "type": "integer", - "minimum": 0, - "description": "Document version this operation is based on" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when operation was created" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional operation metadata" - } - }, - "required": [ - "operationId", - "documentId", - "userId", - "sessionId", - "components", - "baseVersion", - "timestamp" - ], - "additionalProperties": false, - "description": "Transformed operation" - }, - "transformed": { - "type": "boolean", - "description": "Whether transformation was applied" - }, - "conflicts": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Conflict descriptions if any" - } - }, - "required": [ - "operation", - "transformed" - ], - "additionalProperties": false - } + "OTTransformResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ObjectMetadata.json b/packages/spec/json-schema/system/ObjectMetadata.json index 891db14a4..918fa7550 100644 --- a/packages/spec/json-schema/system/ObjectMetadata.json +++ b/packages/spec/json-schema/system/ObjectMetadata.json @@ -1,90 +1,7 @@ { "$ref": "#/definitions/ObjectMetadata", "definitions": { - "ObjectMetadata": { - "type": "object", - "properties": { - "contentType": { - "type": "string", - "description": "MIME type (e.g., image/jpeg, application/pdf)" - }, - "contentLength": { - "type": "number", - "minimum": 0, - "description": "File size in bytes" - }, - "contentEncoding": { - "type": "string", - "description": "Content encoding (e.g., gzip)" - }, - "contentDisposition": { - "type": "string", - "description": "Content disposition header" - }, - "contentLanguage": { - "type": "string", - "description": "Content language" - }, - "cacheControl": { - "type": "string", - "description": "Cache control directives" - }, - "etag": { - "type": "string", - "description": "Entity tag for versioning/caching" - }, - "lastModified": { - "type": "string", - "format": "date-time", - "description": "Last modification timestamp" - }, - "versionId": { - "type": "string", - "description": "Object version identifier" - }, - "storageClass": { - "type": "string", - "enum": [ - "standard", - "intelligent", - "infrequent_access", - "glacier", - "deep_archive" - ], - "description": "Storage class/tier" - }, - "encryption": { - "type": "object", - "properties": { - "algorithm": { - "type": "string", - "description": "Encryption algorithm (e.g., AES256, aws:kms)" - }, - "keyId": { - "type": "string", - "description": "KMS key ID if using managed encryption" - } - }, - "required": [ - "algorithm" - ], - "additionalProperties": false, - "description": "Server-side encryption configuration" - }, - "custom": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom user-defined metadata" - } - }, - "required": [ - "contentType", - "contentLength" - ], - "additionalProperties": false - } + "ObjectMetadata": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ObjectStorageConfig.json b/packages/spec/json-schema/system/ObjectStorageConfig.json index 1e506d4a3..eb1d62ff5 100644 --- a/packages/spec/json-schema/system/ObjectStorageConfig.json +++ b/packages/spec/json-schema/system/ObjectStorageConfig.json @@ -1,475 +1,7 @@ { "$ref": "#/definitions/ObjectStorageConfig", "definitions": { - "ObjectStorageConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Storage configuration identifier" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "provider": { - "type": "string", - "enum": [ - "s3", - "azure_blob", - "gcs", - "minio", - "r2", - "spaces", - "wasabi", - "backblaze", - "local" - ], - "description": "Primary storage provider" - }, - "scope": { - "type": "string", - "enum": [ - "global", - "tenant", - "user", - "session", - "temp", - "cache", - "data", - "logs", - "config", - "public" - ], - "description": "Storage scope", - "default": "global" - }, - "connection": { - "type": "object", - "properties": { - "accessKeyId": { - "type": "string", - "description": "AWS access key ID or MinIO access key" - }, - "secretAccessKey": { - "type": "string", - "description": "AWS secret access key or MinIO secret key" - }, - "sessionToken": { - "type": "string", - "description": "AWS session token for temporary credentials" - }, - "accountName": { - "type": "string", - "description": "Azure storage account name" - }, - "accountKey": { - "type": "string", - "description": "Azure storage account key" - }, - "sasToken": { - "type": "string", - "description": "Azure SAS token" - }, - "projectId": { - "type": "string", - "description": "GCP project ID" - }, - "credentials": { - "type": "string", - "description": "GCP service account credentials JSON" - }, - "endpoint": { - "type": "string", - "description": "Custom endpoint URL" - }, - "region": { - "type": "string", - "description": "Default region" - }, - "useSSL": { - "type": "boolean", - "default": true, - "description": "Use SSL/TLS for connections" - }, - "timeout": { - "type": "number", - "minimum": 0, - "description": "Connection timeout in milliseconds" - } - }, - "additionalProperties": false, - "description": "Connection credentials" - }, - "buckets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Bucket identifier in ObjectStack (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "bucketName": { - "type": "string", - "description": "Actual bucket/container name in storage provider" - }, - "region": { - "type": "string", - "description": "Storage region (e.g., us-east-1, westus)" - }, - "provider": { - "type": "string", - "enum": [ - "s3", - "azure_blob", - "gcs", - "minio", - "r2", - "spaces", - "wasabi", - "backblaze", - "local" - ], - "description": "Storage provider" - }, - "endpoint": { - "type": "string", - "description": "Custom endpoint URL (for S3-compatible providers)" - }, - "pathStyle": { - "type": "boolean", - "default": false, - "description": "Use path-style URLs (for S3-compatible providers)" - }, - "versioning": { - "type": "boolean", - "default": false, - "description": "Enable object versioning" - }, - "encryption": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable server-side encryption" - }, - "algorithm": { - "type": "string", - "enum": [ - "AES256", - "aws:kms", - "azure:kms", - "gcp:kms" - ], - "default": "AES256", - "description": "Encryption algorithm" - }, - "kmsKeyId": { - "type": "string", - "description": "KMS key ID for managed encryption" - } - }, - "additionalProperties": false, - "description": "Server-side encryption configuration" - }, - "accessControl": { - "type": "object", - "properties": { - "acl": { - "type": "string", - "enum": [ - "private", - "public_read", - "public_read_write", - "authenticated_read", - "bucket_owner_read", - "bucket_owner_full_control" - ], - "description": "Default access control level", - "default": "private" - }, - "allowedOrigins": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS allowed origins" - }, - "allowedMethods": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "GET", - "PUT", - "POST", - "DELETE", - "HEAD" - ] - }, - "description": "CORS allowed HTTP methods" - }, - "allowedHeaders": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS allowed headers" - }, - "exposeHeaders": { - "type": "array", - "items": { - "type": "string" - }, - "description": "CORS exposed headers" - }, - "maxAge": { - "type": "number", - "minimum": 0, - "description": "CORS preflight cache duration in seconds" - }, - "corsEnabled": { - "type": "boolean", - "default": false, - "description": "Enable CORS configuration" - }, - "publicAccess": { - "type": "object", - "properties": { - "allowPublicRead": { - "type": "boolean", - "default": false, - "description": "Allow public read access" - }, - "allowPublicWrite": { - "type": "boolean", - "default": false, - "description": "Allow public write access" - }, - "allowPublicList": { - "type": "boolean", - "default": false, - "description": "Allow public bucket listing" - } - }, - "additionalProperties": false, - "description": "Public access control" - }, - "allowedIps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed IP addresses/CIDR blocks" - }, - "blockedIps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked IP addresses/CIDR blocks" - } - }, - "additionalProperties": false, - "description": "Access control configuration" - }, - "lifecyclePolicy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable lifecycle policies" - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Rule identifier" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable this rule" - }, - "action": { - "type": "string", - "enum": [ - "transition", - "delete", - "abort" - ], - "description": "Action to perform" - }, - "prefix": { - "type": "string", - "description": "Object key prefix filter (e.g., \"uploads/\")" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Object tag filters" - }, - "daysAfterCreation": { - "type": "number", - "minimum": 0, - "description": "Days after object creation" - }, - "daysAfterModification": { - "type": "number", - "minimum": 0, - "description": "Days after last modification" - }, - "targetStorageClass": { - "type": "string", - "enum": [ - "standard", - "intelligent", - "infrequent_access", - "glacier", - "deep_archive" - ], - "description": "Target storage class for transition action" - } - }, - "required": [ - "id", - "action" - ], - "additionalProperties": false - }, - "default": [], - "description": "Lifecycle rules" - } - }, - "additionalProperties": false, - "description": "Lifecycle policy configuration" - }, - "multipartConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable multipart uploads" - }, - "partSize": { - "type": "number", - "minimum": 5242880, - "maximum": 5368709120, - "default": 10485760, - "description": "Part size in bytes (min 5MB, max 5GB)" - }, - "maxParts": { - "type": "number", - "minimum": 1, - "maximum": 10000, - "default": 10000, - "description": "Maximum number of parts (max 10,000)" - }, - "threshold": { - "type": "number", - "minimum": 0, - "default": 104857600, - "description": "File size threshold to trigger multipart upload (bytes)" - }, - "maxConcurrent": { - "type": "number", - "minimum": 1, - "maximum": 100, - "default": 4, - "description": "Maximum concurrent part uploads" - }, - "abortIncompleteAfterDays": { - "type": "number", - "minimum": 1, - "description": "Auto-abort incomplete uploads after N days" - } - }, - "additionalProperties": false, - "description": "Multipart upload configuration" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Bucket tags for organization" - }, - "description": { - "type": "string", - "description": "Bucket description" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable this bucket" - } - }, - "required": [ - "name", - "label", - "bucketName", - "provider" - ], - "additionalProperties": false - }, - "default": [], - "description": "Configured buckets" - }, - "defaultBucket": { - "type": "string", - "description": "Default bucket name for operations" - }, - "location": { - "type": "string", - "description": "Root path (local) or base location" - }, - "quota": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Max size in bytes" - }, - "options": { - "type": "object", - "additionalProperties": {}, - "description": "Provider-specific configuration options" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable this storage configuration" - }, - "description": { - "type": "string", - "description": "Configuration description" - } - }, - "required": [ - "name", - "label", - "provider", - "connection" - ], - "additionalProperties": false - } + "ObjectStorageConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/OnceSchedule.json b/packages/spec/json-schema/system/OnceSchedule.json index 150bb7dc4..e912c88f7 100644 --- a/packages/spec/json-schema/system/OnceSchedule.json +++ b/packages/spec/json-schema/system/OnceSchedule.json @@ -1,25 +1,7 @@ { "$ref": "#/definitions/OnceSchedule", "definitions": { - "OnceSchedule": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "once" - }, - "at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when to execute" - } - }, - "required": [ - "type", - "at" - ], - "additionalProperties": false - } + "OnceSchedule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/OpenTelemetryCompatibility.json b/packages/spec/json-schema/system/OpenTelemetryCompatibility.json index 8d438da12..4b4445a84 100644 --- a/packages/spec/json-schema/system/OpenTelemetryCompatibility.json +++ b/packages/spec/json-schema/system/OpenTelemetryCompatibility.json @@ -1,196 +1,7 @@ { "$ref": "#/definitions/OpenTelemetryCompatibility", "definitions": { - "OpenTelemetryCompatibility": { - "type": "object", - "properties": { - "sdkVersion": { - "type": "string", - "description": "OTel SDK version" - }, - "exporter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "otlp_http", - "otlp_grpc", - "jaeger", - "zipkin", - "console", - "datadog", - "honeycomb", - "lightstep", - "newrelic", - "custom" - ], - "description": "Exporter type" - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "Exporter endpoint" - }, - "protocol": { - "type": "string", - "description": "Protocol version" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "HTTP headers" - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10000 - }, - "compression": { - "type": "string", - "enum": [ - "none", - "gzip" - ], - "default": "none" - }, - "batch": { - "type": "object", - "properties": { - "maxBatchSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 512 - }, - "maxQueueSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 2048 - }, - "exportTimeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000 - }, - "scheduledDelay": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5000 - } - }, - "additionalProperties": false - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Exporter configuration" - }, - "resource": { - "type": "object", - "properties": { - "serviceName": { - "type": "string", - "description": "Service name" - }, - "serviceVersion": { - "type": "string", - "description": "Service version" - }, - "serviceInstanceId": { - "type": "string", - "description": "Service instance ID" - }, - "serviceNamespace": { - "type": "string", - "description": "Service namespace" - }, - "deploymentEnvironment": { - "type": "string", - "description": "Deployment environment" - }, - "attributes": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "array", - "items": { - "type": "boolean" - } - } - ], - "description": "Span attribute value" - }, - "description": "Additional resource attributes" - } - }, - "required": [ - "serviceName" - ], - "additionalProperties": false, - "description": "Resource attributes" - }, - "instrumentation": { - "type": "object", - "properties": { - "autoInstrumentation": { - "type": "boolean", - "default": true - }, - "libraries": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Enabled libraries" - }, - "disabledLibraries": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Disabled libraries" - } - }, - "additionalProperties": false - }, - "semanticConventionsVersion": { - "type": "string", - "description": "Semantic conventions version" - } - }, - "required": [ - "exporter", - "resource" - ], - "additionalProperties": false, - "description": "OpenTelemetry compatibility configuration" - } + "OpenTelemetryCompatibility": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/OtelExporterType.json b/packages/spec/json-schema/system/OtelExporterType.json index d1ad43ed7..30341e0a1 100644 --- a/packages/spec/json-schema/system/OtelExporterType.json +++ b/packages/spec/json-schema/system/OtelExporterType.json @@ -1,22 +1,7 @@ { "$ref": "#/definitions/OtelExporterType", "definitions": { - "OtelExporterType": { - "type": "string", - "enum": [ - "otlp_http", - "otlp_grpc", - "jaeger", - "zipkin", - "console", - "datadog", - "honeycomb", - "lightstep", - "newrelic", - "custom" - ], - "description": "OpenTelemetry exporter type" - } + "OtelExporterType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PCIDSSConfig.json b/packages/spec/json-schema/system/PCIDSSConfig.json index fcc61613e..5676ae12f 100644 --- a/packages/spec/json-schema/system/PCIDSSConfig.json +++ b/packages/spec/json-schema/system/PCIDSSConfig.json @@ -1,47 +1,7 @@ { "$ref": "#/definitions/PCIDSSConfig", "definitions": { - "PCIDSSConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "level": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4" - ] - }, - "cardDataFields": { - "type": "array", - "items": { - "type": "string" - } - }, - "tokenization": { - "type": "boolean", - "default": true - }, - "encryptionInTransit": { - "type": "boolean", - "default": true - }, - "encryptionAtRest": { - "type": "boolean", - "default": true - } - }, - "required": [ - "enabled", - "level", - "cardDataFields" - ], - "additionalProperties": false - } + "PCIDSSConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PNCounter.json b/packages/spec/json-schema/system/PNCounter.json index a33588423..864a843a6 100644 --- a/packages/spec/json-schema/system/PNCounter.json +++ b/packages/spec/json-schema/system/PNCounter.json @@ -1,37 +1,7 @@ { "$ref": "#/definitions/PNCounter", "definitions": { - "PNCounter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "pn-counter" - }, - "positive": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Positive increments per replica" - }, - "negative": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Negative increments per replica" - } - }, - "required": [ - "type", - "positive", - "negative" - ], - "additionalProperties": false - } + "PNCounter": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/Plugin.json b/packages/spec/json-schema/system/Plugin.json index 063b8d5b4..80fb00652 100644 --- a/packages/spec/json-schema/system/Plugin.json +++ b/packages/spec/json-schema/system/Plugin.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/Plugin", "definitions": { - "Plugin": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 1, - "description": "Unique Plugin ID (e.g. com.example.crm)" - }, - "version": { - "type": "string", - "pattern": "^\\d+\\.\\d+\\.\\d+$", - "description": "Semantic Version" - }, - "description": { - "type": "string" - }, - "author": { - "type": "string" - }, - "homepage": { - "type": "string", - "format": "uri" - } - }, - "additionalProperties": false - } + "Plugin": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginCapability.json b/packages/spec/json-schema/system/PluginCapability.json index 6396762bf..d618ce030 100644 --- a/packages/spec/json-schema/system/PluginCapability.json +++ b/packages/spec/json-schema/system/PluginCapability.json @@ -1,127 +1,7 @@ { "$ref": "#/definitions/PluginCapability", "definitions": { - "PluginCapability": { - "type": "object", - "properties": { - "protocol": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+protocol\\.[a-z][a-z0-9._]*\\.v\\d+$", - "description": "Unique protocol identifier (e.g., com.objectstack.protocol.storage.v1)" - }, - "label": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "specification": { - "type": "string", - "description": "URL or path to protocol specification" - }, - "description": { - "type": "string" - } - }, - "required": [ - "id", - "label", - "version" - ], - "additionalProperties": false - }, - "conformance": { - "type": "string", - "enum": [ - "full", - "partial", - "experimental", - "deprecated" - ], - "description": "Level of protocol conformance", - "default": "full" - }, - "implementedFeatures": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of implemented feature names" - }, - "features": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Feature identifier within the protocol" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - }, - "sinceVersion": { - "type": "string", - "description": "Version when this feature was added" - }, - "deprecatedSince": { - "type": "string", - "description": "Version when deprecated" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "certified": { - "type": "boolean", - "default": false, - "description": "Has passed official conformance tests" - }, - "certificationDate": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "protocol" - ], - "additionalProperties": false - } + "PluginCapability": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginCapabilityManifest.json b/packages/spec/json-schema/system/PluginCapabilityManifest.json index fa05a19e7..88d783b84 100644 --- a/packages/spec/json-schema/system/PluginCapabilityManifest.json +++ b/packages/spec/json-schema/system/PluginCapabilityManifest.json @@ -1,410 +1,7 @@ { "$ref": "#/definitions/PluginCapabilityManifest", "definitions": { - "PluginCapabilityManifest": { - "type": "object", - "properties": { - "implements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "protocol": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+protocol\\.[a-z][a-z0-9._]*\\.v\\d+$", - "description": "Unique protocol identifier (e.g., com.objectstack.protocol.storage.v1)" - }, - "label": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "specification": { - "type": "string", - "description": "URL or path to protocol specification" - }, - "description": { - "type": "string" - } - }, - "required": [ - "id", - "label", - "version" - ], - "additionalProperties": false - }, - "conformance": { - "type": "string", - "enum": [ - "full", - "partial", - "experimental", - "deprecated" - ], - "description": "Level of protocol conformance", - "default": "full" - }, - "implementedFeatures": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of implemented feature names" - }, - "features": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Feature identifier within the protocol" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - }, - "sinceVersion": { - "type": "string", - "description": "Version when this feature was added" - }, - "deprecatedSince": { - "type": "string", - "description": "Version when deprecated" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "certified": { - "type": "boolean", - "default": false, - "description": "Has passed official conformance tests" - }, - "certificationDate": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "protocol" - ], - "additionalProperties": false - }, - "description": "List of protocols this plugin conforms to" - }, - "provides": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+interface\\.[a-z][a-z0-9._]+$", - "description": "Unique interface identifier" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "methods": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Method name" - }, - "description": { - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "description": "Type notation (e.g., string, number, User)" - }, - "required": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "returnType": { - "type": "string", - "description": "Return value type" - }, - "async": { - "type": "boolean", - "default": false, - "description": "Whether method returns a Promise" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "events": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Event name" - }, - "description": { - "type": "string" - }, - "payload": { - "type": "string", - "description": "Event payload type" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "stability": { - "type": "string", - "enum": [ - "stable", - "beta", - "alpha", - "experimental" - ], - "default": "stable" - } - }, - "required": [ - "id", - "name", - "version", - "methods" - ], - "additionalProperties": false - }, - "description": "Services/APIs this plugin offers to others" - }, - "requires": { - "type": "array", - "items": { - "type": "object", - "properties": { - "pluginId": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+[a-z][a-z0-9-]+$", - "description": "Required plugin identifier" - }, - "version": { - "type": "string", - "description": "Semantic version constraint" - }, - "optional": { - "type": "boolean", - "default": false - }, - "reason": { - "type": "string" - }, - "requiredCapabilities": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Protocol IDs the dependency must support" - } - }, - "required": [ - "pluginId", - "version" - ], - "additionalProperties": false - }, - "description": "Required plugins and their capabilities" - }, - "extensionPoints": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+extension\\.[a-z][a-z0-9._]+$", - "description": "Unique extension point identifier" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "action", - "hook", - "widget", - "provider", - "transformer", - "validator", - "decorator" - ] - }, - "contract": { - "type": "object", - "properties": { - "input": { - "type": "string", - "description": "Input type/schema" - }, - "output": { - "type": "string", - "description": "Output type/schema" - }, - "signature": { - "type": "string", - "description": "Function signature if applicable" - } - }, - "additionalProperties": false - }, - "cardinality": { - "type": "string", - "enum": [ - "single", - "multiple" - ], - "default": "multiple", - "description": "Whether multiple extensions can register to this point" - } - }, - "required": [ - "id", - "name", - "type" - ], - "additionalProperties": false - }, - "description": "Points where other plugins can extend this plugin" - }, - "extensions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "targetPluginId": { - "type": "string", - "description": "Plugin ID being extended" - }, - "extensionPointId": { - "type": "string", - "description": "Extension point identifier" - }, - "implementation": { - "type": "string", - "description": "Path to implementation module" - }, - "priority": { - "type": "integer", - "default": 100, - "description": "Registration priority (lower = higher priority)" - } - }, - "required": [ - "targetPluginId", - "extensionPointId", - "implementation" - ], - "additionalProperties": false - }, - "description": "Extensions contributed to other plugins" - } - }, - "additionalProperties": false - } + "PluginCapabilityManifest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginContext.json b/packages/spec/json-schema/system/PluginContext.json index c4a6c6084..5039362f0 100644 --- a/packages/spec/json-schema/system/PluginContext.json +++ b/packages/spec/json-schema/system/PluginContext.json @@ -1,82 +1,7 @@ { "$ref": "#/definitions/PluginContext", "definitions": { - "PluginContext": { - "type": "object", - "properties": { - "ql": { - "type": "object", - "properties": {}, - "additionalProperties": true, - "description": "ObjectQL Engine Interface" - }, - "os": { - "type": "object", - "properties": {}, - "additionalProperties": true, - "description": "ObjectStack Kernel Interface" - }, - "logger": { - "type": "object", - "properties": {}, - "additionalProperties": true, - "description": "Logger Interface" - }, - "storage": { - "type": "object", - "properties": {}, - "additionalProperties": true, - "description": "Storage Interface" - }, - "i18n": { - "type": "object", - "properties": {}, - "additionalProperties": true, - "description": "Internationalization Interface" - }, - "metadata": { - "type": "object", - "additionalProperties": {} - }, - "events": { - "type": "object", - "additionalProperties": {} - }, - "app": { - "type": "object", - "properties": { - "router": { - "type": "object", - "properties": {}, - "additionalProperties": true - } - }, - "required": [ - "router" - ], - "additionalProperties": true, - "description": "App Framework Interface" - }, - "drivers": { - "type": "object", - "properties": {}, - "additionalProperties": true, - "description": "Driver Registry" - } - }, - "required": [ - "ql", - "os", - "logger", - "storage", - "i18n", - "metadata", - "events", - "app", - "drivers" - ], - "additionalProperties": false - } + "PluginContext": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginDependency.json b/packages/spec/json-schema/system/PluginDependency.json index 0daf3a3f1..e3c5d7fe4 100644 --- a/packages/spec/json-schema/system/PluginDependency.json +++ b/packages/spec/json-schema/system/PluginDependency.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/PluginDependency", "definitions": { - "PluginDependency": { - "type": "object", - "properties": { - "pluginId": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+[a-z][a-z0-9-]+$", - "description": "Required plugin identifier" - }, - "version": { - "type": "string", - "description": "Semantic version constraint" - }, - "optional": { - "type": "boolean", - "default": false - }, - "reason": { - "type": "string" - }, - "requiredCapabilities": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Protocol IDs the dependency must support" - } - }, - "required": [ - "pluginId", - "version" - ], - "additionalProperties": false - } + "PluginDependency": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginErrorEvent.json b/packages/spec/json-schema/system/PluginErrorEvent.json index 2288a245d..e98216284 100644 --- a/packages/spec/json-schema/system/PluginErrorEvent.json +++ b/packages/spec/json-schema/system/PluginErrorEvent.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/PluginErrorEvent", "definitions": { - "PluginErrorEvent": { - "type": "object", - "properties": { - "pluginName": { - "type": "string", - "description": "Name of the plugin" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds when event occurred" - }, - "error": { - "description": "Error object" - }, - "phase": { - "type": "string", - "enum": [ - "init", - "start", - "destroy" - ], - "description": "Lifecycle phase where error occurred" - }, - "errorMessage": { - "type": "string", - "description": "Error message" - }, - "errorStack": { - "type": "string", - "description": "Error stack trace" - } - }, - "required": [ - "pluginName", - "timestamp", - "error", - "phase" - ], - "additionalProperties": false - } + "PluginErrorEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginEventBase.json b/packages/spec/json-schema/system/PluginEventBase.json index 2b5200217..8be21663c 100644 --- a/packages/spec/json-schema/system/PluginEventBase.json +++ b/packages/spec/json-schema/system/PluginEventBase.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/PluginEventBase", "definitions": { - "PluginEventBase": { - "type": "object", - "properties": { - "pluginName": { - "type": "string", - "description": "Name of the plugin" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds when event occurred" - } - }, - "required": [ - "pluginName", - "timestamp" - ], - "additionalProperties": false - } + "PluginEventBase": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginInterface.json b/packages/spec/json-schema/system/PluginInterface.json index 397bcd9ee..97fc4b1f1 100644 --- a/packages/spec/json-schema/system/PluginInterface.json +++ b/packages/spec/json-schema/system/PluginInterface.json @@ -1,141 +1,7 @@ { "$ref": "#/definitions/PluginInterface", "definitions": { - "PluginInterface": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+interface\\.[a-z][a-z0-9._]+$", - "description": "Unique interface identifier" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "methods": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Method name" - }, - "description": { - "type": "string" - }, - "parameters": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "description": "Type notation (e.g., string, number, User)" - }, - "required": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "returnType": { - "type": "string", - "description": "Return value type" - }, - "async": { - "type": "boolean", - "default": false, - "description": "Whether method returns a Promise" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "events": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Event name" - }, - "description": { - "type": "string" - }, - "payload": { - "type": "string", - "description": "Event payload type" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "stability": { - "type": "string", - "enum": [ - "stable", - "beta", - "alpha", - "experimental" - ], - "default": "stable" - } - }, - "required": [ - "id", - "name", - "version", - "methods" - ], - "additionalProperties": false - } + "PluginInterface": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginLifecycle.json b/packages/spec/json-schema/system/PluginLifecycle.json index 4f50e0abf..4a3fd438a 100644 --- a/packages/spec/json-schema/system/PluginLifecycle.json +++ b/packages/spec/json-schema/system/PluginLifecycle.json @@ -1,11 +1,7 @@ { "$ref": "#/definitions/PluginLifecycle", "definitions": { - "PluginLifecycle": { - "type": "object", - "properties": {}, - "additionalProperties": false - } + "PluginLifecycle": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginLifecycleEventType.json b/packages/spec/json-schema/system/PluginLifecycleEventType.json index 2df7897c3..f05e4e4c9 100644 --- a/packages/spec/json-schema/system/PluginLifecycleEventType.json +++ b/packages/spec/json-schema/system/PluginLifecycleEventType.json @@ -1,31 +1,7 @@ { "$ref": "#/definitions/PluginLifecycleEventType", "definitions": { - "PluginLifecycleEventType": { - "type": "string", - "enum": [ - "kernel:ready", - "kernel:shutdown", - "kernel:before-init", - "kernel:after-init", - "plugin:registered", - "plugin:before-init", - "plugin:init", - "plugin:after-init", - "plugin:before-start", - "plugin:started", - "plugin:after-start", - "plugin:before-destroy", - "plugin:destroyed", - "plugin:after-destroy", - "plugin:error", - "service:registered", - "service:unregistered", - "hook:registered", - "hook:triggered" - ], - "description": "Plugin lifecycle event type" - } + "PluginLifecycleEventType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginLifecyclePhaseEvent.json b/packages/spec/json-schema/system/PluginLifecyclePhaseEvent.json index f34210b28..17960cf5b 100644 --- a/packages/spec/json-schema/system/PluginLifecyclePhaseEvent.json +++ b/packages/spec/json-schema/system/PluginLifecyclePhaseEvent.json @@ -1,38 +1,7 @@ { "$ref": "#/definitions/PluginLifecyclePhaseEvent", "definitions": { - "PluginLifecyclePhaseEvent": { - "type": "object", - "properties": { - "pluginName": { - "type": "string", - "description": "Name of the plugin" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds when event occurred" - }, - "duration": { - "type": "number", - "minimum": 0, - "description": "Duration of the lifecycle phase in milliseconds" - }, - "phase": { - "type": "string", - "enum": [ - "init", - "start", - "destroy" - ], - "description": "Lifecycle phase" - } - }, - "required": [ - "pluginName", - "timestamp" - ], - "additionalProperties": false - } + "PluginLifecyclePhaseEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginMetadata.json b/packages/spec/json-schema/system/PluginMetadata.json index 6a2029223..5dcc63c30 100644 --- a/packages/spec/json-schema/system/PluginMetadata.json +++ b/packages/spec/json-schema/system/PluginMetadata.json @@ -1,37 +1,7 @@ { "$ref": "#/definitions/PluginMetadata", "definitions": { - "PluginMetadata": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "description": "Unique plugin identifier" - }, - "version": { - "type": "string", - "pattern": "^\\d+\\.\\d+\\.\\d+$", - "description": "Semantic version (e.g., 1.0.0)" - }, - "dependencies": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of plugin names this plugin depends on" - }, - "signature": { - "type": "string", - "description": "Cryptographic signature for plugin verification" - } - }, - "required": [ - "name" - ], - "additionalProperties": true, - "description": "Plugin metadata for validation" - } + "PluginMetadata": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginRegisteredEvent.json b/packages/spec/json-schema/system/PluginRegisteredEvent.json index 9150891da..e68956bbe 100644 --- a/packages/spec/json-schema/system/PluginRegisteredEvent.json +++ b/packages/spec/json-schema/system/PluginRegisteredEvent.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/PluginRegisteredEvent", "definitions": { - "PluginRegisteredEvent": { - "type": "object", - "properties": { - "pluginName": { - "type": "string", - "description": "Name of the plugin" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds when event occurred" - }, - "version": { - "type": "string", - "description": "Plugin version" - } - }, - "required": [ - "pluginName", - "timestamp" - ], - "additionalProperties": false - } + "PluginRegisteredEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PluginStartupResult.json b/packages/spec/json-schema/system/PluginStartupResult.json index 1f8bc5e06..5cfea5e77 100644 --- a/packages/spec/json-schema/system/PluginStartupResult.json +++ b/packages/spec/json-schema/system/PluginStartupResult.json @@ -1,73 +1,7 @@ { "$ref": "#/definitions/PluginStartupResult", "definitions": { - "PluginStartupResult": { - "type": "object", - "properties": { - "plugin": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name" - ], - "additionalProperties": true, - "description": "Plugin metadata" - }, - "success": { - "type": "boolean", - "description": "Whether the plugin started successfully" - }, - "duration": { - "type": "number", - "minimum": 0, - "description": "Time taken to start the plugin in milliseconds" - }, - "error": { - "description": "Error object if startup failed" - }, - "health": { - "type": "object", - "properties": { - "healthy": { - "type": "boolean", - "description": "Whether the plugin is healthy" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds when health check was performed" - }, - "details": { - "type": "object", - "additionalProperties": {}, - "description": "Optional plugin-specific health details" - }, - "message": { - "type": "string", - "description": "Error message if plugin is unhealthy" - } - }, - "required": [ - "healthy", - "timestamp" - ], - "additionalProperties": false, - "description": "Health status after startup if health check was enabled" - } - }, - "required": [ - "plugin", - "success", - "duration" - ], - "additionalProperties": false - } + "PluginStartupResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PresignedUrlConfig.json b/packages/spec/json-schema/system/PresignedUrlConfig.json index 09e6afd58..a41a9da1a 100644 --- a/packages/spec/json-schema/system/PresignedUrlConfig.json +++ b/packages/spec/json-schema/system/PresignedUrlConfig.json @@ -1,49 +1,7 @@ { "$ref": "#/definitions/PresignedUrlConfig", "definitions": { - "PresignedUrlConfig": { - "type": "object", - "properties": { - "operation": { - "type": "string", - "enum": [ - "get", - "put", - "delete", - "head" - ], - "description": "Allowed operation" - }, - "expiresIn": { - "type": "number", - "minimum": 1, - "maximum": 604800, - "description": "Expiration time in seconds (max 7 days)" - }, - "contentType": { - "type": "string", - "description": "Required content type for PUT operations" - }, - "maxSize": { - "type": "number", - "minimum": 0, - "description": "Maximum file size in bytes for PUT operations" - }, - "responseContentType": { - "type": "string", - "description": "Override content-type for GET operations" - }, - "responseContentDisposition": { - "type": "string", - "description": "Override content-disposition for GET operations" - } - }, - "required": [ - "operation", - "expiresIn" - ], - "additionalProperties": false - } + "PresignedUrlConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ProtocolFeature.json b/packages/spec/json-schema/system/ProtocolFeature.json index 7f38fba4b..e28563446 100644 --- a/packages/spec/json-schema/system/ProtocolFeature.json +++ b/packages/spec/json-schema/system/ProtocolFeature.json @@ -1,34 +1,7 @@ { "$ref": "#/definitions/ProtocolFeature", "definitions": { - "ProtocolFeature": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Feature identifier within the protocol" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "description": { - "type": "string" - }, - "sinceVersion": { - "type": "string", - "description": "Version when this feature was added" - }, - "deprecatedSince": { - "type": "string", - "description": "Version when deprecated" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "ProtocolFeature": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ProtocolReference.json b/packages/spec/json-schema/system/ProtocolReference.json index f47c51479..ede8667d5 100644 --- a/packages/spec/json-schema/system/ProtocolReference.json +++ b/packages/spec/json-schema/system/ProtocolReference.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/ProtocolReference", "definitions": { - "ProtocolReference": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^([a-z][a-z0-9]*\\.)+protocol\\.[a-z][a-z0-9._]*\\.v\\d+$", - "description": "Unique protocol identifier (e.g., com.objectstack.protocol.storage.v1)" - }, - "label": { - "type": "string" - }, - "version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - }, - "specification": { - "type": "string", - "description": "URL or path to protocol specification" - }, - "description": { - "type": "string" - } - }, - "required": [ - "id", - "label", - "version" - ], - "additionalProperties": false - } + "ProtocolReference": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ProtocolVersion.json b/packages/spec/json-schema/system/ProtocolVersion.json index 811ba3254..61d98e32c 100644 --- a/packages/spec/json-schema/system/ProtocolVersion.json +++ b/packages/spec/json-schema/system/ProtocolVersion.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/ProtocolVersion", "definitions": { - "ProtocolVersion": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "major", - "minor", - "patch" - ], - "additionalProperties": false, - "description": "Semantic version of the protocol" - } + "ProtocolVersion": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/PushNotification.json b/packages/spec/json-schema/system/PushNotification.json index d98ffcabe..0f4fa95a0 100644 --- a/packages/spec/json-schema/system/PushNotification.json +++ b/packages/spec/json-schema/system/PushNotification.json @@ -1,60 +1,7 @@ { "$ref": "#/definitions/PushNotification", "definitions": { - "PushNotification": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Notification title" - }, - "body": { - "type": "string", - "description": "Notification body" - }, - "icon": { - "type": "string", - "format": "uri", - "description": "Notification icon URL" - }, - "badge": { - "type": "number", - "description": "Badge count" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Custom data" - }, - "actions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "action": { - "type": "string", - "description": "Action identifier" - }, - "title": { - "type": "string", - "description": "Action button title" - } - }, - "required": [ - "action", - "title" - ], - "additionalProperties": false - }, - "description": "Notification actions" - } - }, - "required": [ - "title", - "body" - ], - "additionalProperties": false - } + "PushNotification": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/QueueConfig.json b/packages/spec/json-schema/system/QueueConfig.json index 3943f8af5..0c6d17a2c 100644 --- a/packages/spec/json-schema/system/QueueConfig.json +++ b/packages/spec/json-schema/system/QueueConfig.json @@ -1,133 +1,7 @@ { "$ref": "#/definitions/QueueConfig", "definitions": { - "QueueConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Queue name (snake_case)" - }, - "concurrency": { - "type": "integer", - "minimum": 1, - "default": 5, - "description": "Max concurrent task executions" - }, - "rateLimit": { - "type": "object", - "properties": { - "max": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum tasks per duration" - }, - "duration": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Duration in milliseconds" - } - }, - "required": [ - "max", - "duration" - ], - "additionalProperties": false, - "description": "Rate limit configuration" - }, - "defaultRetryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "fixed", - "linear", - "exponential" - ], - "default": "exponential", - "description": "Backoff strategy between retries" - }, - "initialDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2, - "description": "Multiplier for exponential backoff" - } - }, - "additionalProperties": false, - "description": "Default retry policy for tasks" - }, - "deadLetterQueue": { - "type": "string", - "description": "Dead letter queue name" - }, - "priority": { - "type": "integer", - "minimum": 0, - "default": 0, - "description": "Queue priority (lower = higher priority)" - }, - "autoScale": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable auto-scaling" - }, - "minWorkers": { - "type": "integer", - "minimum": 1, - "default": 1, - "description": "Minimum workers" - }, - "maxWorkers": { - "type": "integer", - "minimum": 1, - "default": 10, - "description": "Maximum workers" - }, - "scaleUpThreshold": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100, - "description": "Queue size to scale up" - }, - "scaleDownThreshold": { - "type": "integer", - "minimum": 0, - "default": 10, - "description": "Queue size to scale down" - } - }, - "additionalProperties": false, - "description": "Auto-scaling configuration" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "QueueConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/RealTimeNotificationConfig.json b/packages/spec/json-schema/system/RealTimeNotificationConfig.json index 9b72239d1..d53d84f26 100644 --- a/packages/spec/json-schema/system/RealTimeNotificationConfig.json +++ b/packages/spec/json-schema/system/RealTimeNotificationConfig.json @@ -1,85 +1,7 @@ { "$ref": "#/definitions/RealTimeNotificationConfig", "definitions": { - "RealTimeNotificationConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true, - "description": "Enable real-time notifications" - }, - "protocol": { - "type": "string", - "enum": [ - "websocket", - "sse", - "long-polling" - ], - "default": "websocket", - "description": "Real-time protocol" - }, - "eventPattern": { - "type": "string", - "default": "*", - "description": "Event pattern to broadcast" - }, - "userFilter": { - "type": "boolean", - "default": true, - "description": "Filter events by user" - }, - "tenantFilter": { - "type": "boolean", - "default": true, - "description": "Filter events by tenant" - }, - "channels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Channel name" - }, - "eventPattern": { - "type": "string", - "description": "Event pattern for channel" - } - }, - "required": [ - "name", - "eventPattern" - ], - "additionalProperties": false - }, - "description": "Named channels for event broadcasting" - }, - "rateLimit": { - "type": "object", - "properties": { - "maxEventsPerSecond": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Max events per second per client" - }, - "windowMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Rate limit window" - } - }, - "required": [ - "maxEventsPerSecond" - ], - "additionalProperties": false, - "description": "Rate limiting configuration" - } - }, - "additionalProperties": false - } + "RealTimeNotificationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/RetryPolicy.json b/packages/spec/json-schema/system/RetryPolicy.json index c21b9fa32..d55dcc478 100644 --- a/packages/spec/json-schema/system/RetryPolicy.json +++ b/packages/spec/json-schema/system/RetryPolicy.json @@ -1,30 +1,7 @@ { "$ref": "#/definitions/RetryPolicy", "definitions": { - "RetryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Maximum number of retry attempts" - }, - "backoffMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial backoff delay in milliseconds" - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2, - "description": "Multiplier for exponential backoff" - } - }, - "additionalProperties": false - } + "RetryPolicy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/RollbackPlan.json b/packages/spec/json-schema/system/RollbackPlan.json index a8f8d03d0..4ddfcf45c 100644 --- a/packages/spec/json-schema/system/RollbackPlan.json +++ b/packages/spec/json-schema/system/RollbackPlan.json @@ -1,51 +1,7 @@ { "$ref": "#/definitions/RollbackPlan", "definitions": { - "RollbackPlan": { - "type": "object", - "properties": { - "description": { - "type": "string", - "description": "Rollback description" - }, - "steps": { - "type": "array", - "items": { - "type": "object", - "properties": { - "order": { - "type": "number", - "description": "Step order" - }, - "description": { - "type": "string", - "description": "Step description" - }, - "estimatedMinutes": { - "type": "number", - "description": "Estimated duration" - } - }, - "required": [ - "order", - "description", - "estimatedMinutes" - ], - "additionalProperties": false - }, - "description": "Rollback steps" - }, - "testProcedure": { - "type": "string", - "description": "Test procedure" - } - }, - "required": [ - "description", - "steps" - ], - "additionalProperties": false - } + "RollbackPlan": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/RouteHandlerMetadata.json b/packages/spec/json-schema/system/RouteHandlerMetadata.json index 5d866f3d5..1ca898a7f 100644 --- a/packages/spec/json-schema/system/RouteHandlerMetadata.json +++ b/packages/spec/json-schema/system/RouteHandlerMetadata.json @@ -1,85 +1,7 @@ { "$ref": "#/definitions/RouteHandlerMetadata", "definitions": { - "RouteHandlerMetadata": { - "type": "object", - "properties": { - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH", - "HEAD", - "OPTIONS" - ], - "description": "HTTP method" - }, - "path": { - "type": "string", - "description": "URL path pattern" - }, - "handler": { - "type": "string", - "description": "Handler identifier or name" - }, - "metadata": { - "type": "object", - "properties": { - "summary": { - "type": "string", - "description": "Route summary for documentation" - }, - "description": { - "type": "string", - "description": "Route description" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for grouping" - }, - "operationId": { - "type": "string", - "description": "Unique operation identifier" - } - }, - "additionalProperties": false - }, - "security": { - "type": "object", - "properties": { - "authRequired": { - "type": "boolean", - "default": true, - "description": "Require authentication" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required permissions" - }, - "rateLimit": { - "type": "string", - "description": "Rate limit policy override" - } - }, - "additionalProperties": false - } - }, - "required": [ - "method", - "path", - "handler" - ], - "additionalProperties": false - } + "RouteHandlerMetadata": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/RuntimeMode.json b/packages/spec/json-schema/system/RuntimeMode.json index 612db25a9..1d6565b1f 100644 --- a/packages/spec/json-schema/system/RuntimeMode.json +++ b/packages/spec/json-schema/system/RuntimeMode.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/RuntimeMode", "definitions": { - "RuntimeMode": { - "type": "string", - "enum": [ - "development", - "production", - "test", - "provisioning" - ], - "description": "Kernel operating mode" - } + "RuntimeMode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SMSTemplate.json b/packages/spec/json-schema/system/SMSTemplate.json index a1a5ceb17..4054b8c62 100644 --- a/packages/spec/json-schema/system/SMSTemplate.json +++ b/packages/spec/json-schema/system/SMSTemplate.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/SMSTemplate", "definitions": { - "SMSTemplate": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Template identifier" - }, - "message": { - "type": "string", - "description": "SMS message content" - }, - "maxLength": { - "type": "number", - "default": 160, - "description": "Maximum message length" - }, - "variables": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Template variables" - } - }, - "required": [ - "id", - "message" - ], - "additionalProperties": false - } + "SMSTemplate": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SamplingDecision.json b/packages/spec/json-schema/system/SamplingDecision.json index b006b764f..9ca5430ca 100644 --- a/packages/spec/json-schema/system/SamplingDecision.json +++ b/packages/spec/json-schema/system/SamplingDecision.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/SamplingDecision", "definitions": { - "SamplingDecision": { - "type": "string", - "enum": [ - "drop", - "record_only", - "record_and_sample" - ], - "description": "Sampling decision" - } + "SamplingDecision": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SamplingStrategyType.json b/packages/spec/json-schema/system/SamplingStrategyType.json index 621e44384..65b684e21 100644 --- a/packages/spec/json-schema/system/SamplingStrategyType.json +++ b/packages/spec/json-schema/system/SamplingStrategyType.json @@ -1,20 +1,7 @@ { "$ref": "#/definitions/SamplingStrategyType", "definitions": { - "SamplingStrategyType": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Sampling strategy type" - } + "SamplingStrategyType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/Schedule.json b/packages/spec/json-schema/system/Schedule.json index 8efefca3b..38b1f3010 100644 --- a/packages/spec/json-schema/system/Schedule.json +++ b/packages/spec/json-schema/system/Schedule.json @@ -1,71 +1,7 @@ { "$ref": "#/definitions/Schedule", "definitions": { - "Schedule": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "cron" - }, - "expression": { - "type": "string", - "description": "Cron expression (e.g., \"0 0 * * *\" for daily at midnight)" - }, - "timezone": { - "type": "string", - "default": "UTC", - "description": "Timezone for cron execution (e.g., \"America/New_York\")" - } - }, - "required": [ - "type", - "expression" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "interval" - }, - "intervalMs": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Interval in milliseconds" - } - }, - "required": [ - "type", - "intervalMs" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "once" - }, - "at": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime when to execute" - } - }, - "required": [ - "type", - "at" - ], - "additionalProperties": false - } - ] - } + "Schedule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ScopeConfig.json b/packages/spec/json-schema/system/ScopeConfig.json index 0595a63a4..a6d98a1bd 100644 --- a/packages/spec/json-schema/system/ScopeConfig.json +++ b/packages/spec/json-schema/system/ScopeConfig.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/ScopeConfig", "definitions": { - "ScopeConfig": { - "type": "object", - "properties": { - "scopeType": { - "type": "string", - "description": "Type of scope" - }, - "scopeId": { - "type": "string", - "description": "Unique scope identifier" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Scope-specific context metadata" - } - }, - "required": [ - "scopeType" - ], - "additionalProperties": false - } + "ScopeConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ScopeInfo.json b/packages/spec/json-schema/system/ScopeInfo.json index dee9480ff..5c9eba508 100644 --- a/packages/spec/json-schema/system/ScopeInfo.json +++ b/packages/spec/json-schema/system/ScopeInfo.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/ScopeInfo", "definitions": { - "ScopeInfo": { - "type": "object", - "properties": { - "scopeId": { - "type": "string", - "description": "Unique scope identifier" - }, - "scopeType": { - "type": "string", - "description": "Type of scope" - }, - "createdAt": { - "type": "integer", - "description": "Unix timestamp in milliseconds when scope was created" - }, - "serviceCount": { - "type": "integer", - "minimum": 0, - "description": "Number of services registered in this scope" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Scope-specific context metadata" - } - }, - "required": [ - "scopeId", - "scopeType", - "createdAt" - ], - "additionalProperties": false - } + "ScopeInfo": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SearchConfig.json b/packages/spec/json-schema/system/SearchConfig.json index dbd4c7629..dae9fff4c 100644 --- a/packages/spec/json-schema/system/SearchConfig.json +++ b/packages/spec/json-schema/system/SearchConfig.json @@ -1,195 +1,7 @@ { "$ref": "#/definitions/SearchConfig", "definitions": { - "SearchConfig": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "elasticsearch", - "algolia", - "meilisearch", - "typesense", - "opensearch" - ] - }, - "indexes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "indexName": { - "type": "string" - }, - "objectName": { - "type": "string", - "description": "Source ObjectQL object" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "text", - "keyword", - "number", - "date", - "boolean", - "geo" - ] - }, - "analyzer": { - "type": "string" - }, - "searchable": { - "type": "boolean", - "default": true - }, - "filterable": { - "type": "boolean", - "default": false - }, - "sortable": { - "type": "boolean", - "default": false - }, - "boost": { - "type": "number", - "default": 1 - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "replicas": { - "type": "number", - "default": 1 - }, - "shards": { - "type": "number", - "default": 1 - } - }, - "required": [ - "indexName", - "objectName", - "fields" - ], - "additionalProperties": false - } - }, - "analyzers": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "standard", - "simple", - "whitespace", - "keyword", - "pattern", - "language" - ] - }, - "language": { - "type": "string" - }, - "stopwords": { - "type": "array", - "items": { - "type": "string" - } - }, - "customFilters": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } - }, - "facets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "maxValues": { - "type": "number", - "default": 10 - }, - "sort": { - "type": "string", - "enum": [ - "count", - "alpha" - ], - "default": "count" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - }, - "typoTolerance": { - "type": "boolean", - "default": true - }, - "synonyms": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "ranking": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "typo", - "geo", - "words", - "filters", - "proximity", - "attribute", - "exact", - "custom" - ] - } - } - }, - "required": [ - "provider", - "indexes" - ], - "additionalProperties": false - } + "SearchConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SearchIndexConfig.json b/packages/spec/json-schema/system/SearchIndexConfig.json index 9ae292132..40c790762 100644 --- a/packages/spec/json-schema/system/SearchIndexConfig.json +++ b/packages/spec/json-schema/system/SearchIndexConfig.json @@ -1,78 +1,7 @@ { "$ref": "#/definitions/SearchIndexConfig", "definitions": { - "SearchIndexConfig": { - "type": "object", - "properties": { - "indexName": { - "type": "string" - }, - "objectName": { - "type": "string", - "description": "Source ObjectQL object" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "text", - "keyword", - "number", - "date", - "boolean", - "geo" - ] - }, - "analyzer": { - "type": "string" - }, - "searchable": { - "type": "boolean", - "default": true - }, - "filterable": { - "type": "boolean", - "default": false - }, - "sortable": { - "type": "boolean", - "default": false - }, - "boost": { - "type": "number", - "default": 1 - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } - }, - "replicas": { - "type": "number", - "default": 1 - }, - "shards": { - "type": "number", - "default": 1 - } - }, - "required": [ - "indexName", - "objectName", - "fields" - ], - "additionalProperties": false - } + "SearchIndexConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SearchProvider.json b/packages/spec/json-schema/system/SearchProvider.json index 29fdf0182..308a61027 100644 --- a/packages/spec/json-schema/system/SearchProvider.json +++ b/packages/spec/json-schema/system/SearchProvider.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/SearchProvider", "definitions": { - "SearchProvider": { - "type": "string", - "enum": [ - "elasticsearch", - "algolia", - "meilisearch", - "typesense", - "opensearch" - ] - } + "SearchProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServerCapabilities.json b/packages/spec/json-schema/system/ServerCapabilities.json index 84118b9ed..bcf5bb5ad 100644 --- a/packages/spec/json-schema/system/ServerCapabilities.json +++ b/packages/spec/json-schema/system/ServerCapabilities.json @@ -1,63 +1,7 @@ { "$ref": "#/definitions/ServerCapabilities", "definitions": { - "ServerCapabilities": { - "type": "object", - "properties": { - "httpVersions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "1.0", - "1.1", - "2.0", - "3.0" - ] - }, - "default": [ - "1.1" - ], - "description": "Supported HTTP versions" - }, - "websocket": { - "type": "boolean", - "default": false, - "description": "WebSocket support" - }, - "sse": { - "type": "boolean", - "default": false, - "description": "Server-Sent Events support" - }, - "serverPush": { - "type": "boolean", - "default": false, - "description": "HTTP/2 Server Push support" - }, - "streaming": { - "type": "boolean", - "default": true, - "description": "Response streaming support" - }, - "middleware": { - "type": "boolean", - "default": true, - "description": "Middleware chain support" - }, - "routeParams": { - "type": "boolean", - "default": true, - "description": "URL parameter support (/users/:id)" - }, - "compression": { - "type": "boolean", - "default": true, - "description": "Built-in compression support" - } - }, - "additionalProperties": false - } + "ServerCapabilities": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServerEvent.json b/packages/spec/json-schema/system/ServerEvent.json index 07a2426cc..8f8339e28 100644 --- a/packages/spec/json-schema/system/ServerEvent.json +++ b/packages/spec/json-schema/system/ServerEvent.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/ServerEvent", "definitions": { - "ServerEvent": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "starting", - "started", - "stopping", - "stopped", - "request", - "response", - "error" - ], - "description": "Event type" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Event timestamp (ISO 8601)" - }, - "data": { - "type": "object", - "additionalProperties": {}, - "description": "Event-specific data" - } - }, - "required": [ - "type", - "timestamp" - ], - "additionalProperties": false - } + "ServerEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServerEventType.json b/packages/spec/json-schema/system/ServerEventType.json index 1fdee3001..ebfb9c863 100644 --- a/packages/spec/json-schema/system/ServerEventType.json +++ b/packages/spec/json-schema/system/ServerEventType.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/ServerEventType", "definitions": { - "ServerEventType": { - "type": "string", - "enum": [ - "starting", - "started", - "stopping", - "stopped", - "request", - "response", - "error" - ] - } + "ServerEventType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServerStatus.json b/packages/spec/json-schema/system/ServerStatus.json index 0151995fb..58d4ca13f 100644 --- a/packages/spec/json-schema/system/ServerStatus.json +++ b/packages/spec/json-schema/system/ServerStatus.json @@ -1,93 +1,7 @@ { "$ref": "#/definitions/ServerStatus", "definitions": { - "ServerStatus": { - "type": "object", - "properties": { - "state": { - "type": "string", - "enum": [ - "stopped", - "starting", - "running", - "stopping", - "error" - ], - "description": "Current server state" - }, - "uptime": { - "type": "integer", - "description": "Server uptime in milliseconds" - }, - "server": { - "type": "object", - "properties": { - "port": { - "type": "integer", - "description": "Listening port" - }, - "host": { - "type": "string", - "description": "Bound host" - }, - "url": { - "type": "string", - "description": "Full server URL" - } - }, - "required": [ - "port", - "host" - ], - "additionalProperties": false - }, - "connections": { - "type": "object", - "properties": { - "active": { - "type": "integer", - "description": "Active connections" - }, - "total": { - "type": "integer", - "description": "Total connections handled" - } - }, - "required": [ - "active", - "total" - ], - "additionalProperties": false - }, - "requests": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total requests processed" - }, - "success": { - "type": "integer", - "description": "Successful requests" - }, - "errors": { - "type": "integer", - "description": "Failed requests" - } - }, - "required": [ - "total", - "success", - "errors" - ], - "additionalProperties": false - } - }, - "required": [ - "state" - ], - "additionalProperties": false - } + "ServerStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServiceFactoryRegistration.json b/packages/spec/json-schema/system/ServiceFactoryRegistration.json index 898448719..d4e24457c 100644 --- a/packages/spec/json-schema/system/ServiceFactoryRegistration.json +++ b/packages/spec/json-schema/system/ServiceFactoryRegistration.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/ServiceFactoryRegistration", "definitions": { - "ServiceFactoryRegistration": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "description": "Unique service name identifier" - }, - "scope": { - "type": "string", - "enum": [ - "singleton", - "transient", - "scoped" - ], - "description": "Service scope type", - "default": "singleton" - }, - "factoryType": { - "type": "string", - "enum": [ - "sync", - "async" - ], - "default": "sync", - "description": "Whether factory is synchronous or asynchronous" - }, - "singleton": { - "type": "boolean", - "default": true, - "description": "Whether to cache the factory result (singleton pattern)" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "ServiceFactoryRegistration": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServiceLevelIndicator.json b/packages/spec/json-schema/system/ServiceLevelIndicator.json index 4038c4d16..210f739c0 100644 --- a/packages/spec/json-schema/system/ServiceLevelIndicator.json +++ b/packages/spec/json-schema/system/ServiceLevelIndicator.json @@ -1,105 +1,7 @@ { "$ref": "#/definitions/ServiceLevelIndicator", "definitions": { - "ServiceLevelIndicator": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "SLI name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string", - "description": "SLI description" - }, - "metric": { - "type": "string", - "description": "Base metric name" - }, - "type": { - "type": "string", - "enum": [ - "availability", - "latency", - "throughput", - "error_rate", - "saturation", - "custom" - ], - "description": "SLI type" - }, - "successCriteria": { - "type": "object", - "properties": { - "threshold": { - "type": "number", - "description": "Threshold value" - }, - "operator": { - "type": "string", - "enum": [ - "lt", - "lte", - "gt", - "gte", - "eq" - ], - "description": "Comparison operator" - }, - "percentile": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Percentile (0-1)" - } - }, - "required": [ - "threshold", - "operator" - ], - "additionalProperties": false, - "description": "Success criteria" - }, - "window": { - "type": "object", - "properties": { - "size": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Window size in seconds" - }, - "rolling": { - "type": "boolean", - "default": true - } - }, - "required": [ - "size" - ], - "additionalProperties": false, - "description": "Measurement window" - }, - "enabled": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "label", - "metric", - "type", - "successCriteria", - "window" - ], - "additionalProperties": false, - "description": "Service Level Indicator" - } + "ServiceLevelIndicator": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServiceLevelObjective.json b/packages/spec/json-schema/system/ServiceLevelObjective.json index 799b9adf1..dd634ac52 100644 --- a/packages/spec/json-schema/system/ServiceLevelObjective.json +++ b/packages/spec/json-schema/system/ServiceLevelObjective.json @@ -1,170 +1,7 @@ { "$ref": "#/definitions/ServiceLevelObjective", "definitions": { - "ServiceLevelObjective": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "SLO name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "description": { - "type": "string", - "description": "SLO description" - }, - "sli": { - "type": "string", - "description": "SLI name" - }, - "target": { - "type": "number", - "minimum": 0, - "maximum": 100, - "description": "Target percentage" - }, - "period": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "rolling", - "calendar" - ], - "description": "Period type" - }, - "duration": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Duration in seconds" - }, - "calendar": { - "type": "string", - "enum": [ - "daily", - "weekly", - "monthly", - "quarterly", - "yearly" - ] - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Time period" - }, - "errorBudget": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "alertThreshold": { - "type": "number", - "minimum": 0, - "maximum": 100, - "default": 80 - }, - "burnRateWindows": { - "type": "array", - "items": { - "type": "object", - "properties": { - "window": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Window size" - }, - "threshold": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Burn rate threshold" - } - }, - "required": [ - "window", - "threshold" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false - }, - "alerts": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Alert name" - }, - "severity": { - "type": "string", - "enum": [ - "info", - "warning", - "critical" - ], - "description": "Alert severity" - }, - "condition": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "slo_breach", - "error_budget", - "burn_rate" - ], - "description": "Condition type" - }, - "threshold": { - "type": "number", - "description": "Threshold value" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Alert condition" - } - }, - "required": [ - "name", - "severity", - "condition" - ], - "additionalProperties": false - }, - "default": [] - }, - "enabled": { - "type": "boolean", - "default": true - } - }, - "required": [ - "name", - "label", - "sli", - "target", - "period" - ], - "additionalProperties": false, - "description": "Service Level Objective" - } + "ServiceLevelObjective": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServiceMetadata.json b/packages/spec/json-schema/system/ServiceMetadata.json index 2b5d46345..81b6dc26f 100644 --- a/packages/spec/json-schema/system/ServiceMetadata.json +++ b/packages/spec/json-schema/system/ServiceMetadata.json @@ -1,43 +1,7 @@ { "$ref": "#/definitions/ServiceMetadata", "definitions": { - "ServiceMetadata": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "description": "Unique service name identifier" - }, - "scope": { - "type": "string", - "enum": [ - "singleton", - "transient", - "scoped" - ], - "description": "Service scope type", - "default": "singleton" - }, - "type": { - "type": "string", - "description": "Service type or interface name" - }, - "registeredAt": { - "type": "integer", - "description": "Unix timestamp in milliseconds when service was registered" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional service-specific metadata" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "ServiceMetadata": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServiceRegisteredEvent.json b/packages/spec/json-schema/system/ServiceRegisteredEvent.json index c40f63b0c..79f348979 100644 --- a/packages/spec/json-schema/system/ServiceRegisteredEvent.json +++ b/packages/spec/json-schema/system/ServiceRegisteredEvent.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/ServiceRegisteredEvent", "definitions": { - "ServiceRegisteredEvent": { - "type": "object", - "properties": { - "serviceName": { - "type": "string", - "description": "Name of the registered service" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds" - }, - "serviceType": { - "type": "string", - "description": "Type or interface name of the service" - } - }, - "required": [ - "serviceName", - "timestamp" - ], - "additionalProperties": false - } + "ServiceRegisteredEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServiceRegistryConfig.json b/packages/spec/json-schema/system/ServiceRegistryConfig.json index 5ceed685f..49e73bfb2 100644 --- a/packages/spec/json-schema/system/ServiceRegistryConfig.json +++ b/packages/spec/json-schema/system/ServiceRegistryConfig.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/ServiceRegistryConfig", "definitions": { - "ServiceRegistryConfig": { - "type": "object", - "properties": { - "strictMode": { - "type": "boolean", - "default": true, - "description": "Throw errors on invalid operations (duplicate registration, service not found, etc.)" - }, - "allowOverwrite": { - "type": "boolean", - "default": false, - "description": "Allow overwriting existing service registrations" - }, - "enableLogging": { - "type": "boolean", - "default": false, - "description": "Enable logging for service registration and retrieval" - }, - "scopeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Supported scope types" - }, - "maxServices": { - "type": "integer", - "minimum": 1, - "description": "Maximum number of services that can be registered" - } - }, - "additionalProperties": false - } + "ServiceRegistryConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServiceScopeType.json b/packages/spec/json-schema/system/ServiceScopeType.json index daee672f1..05e2ab644 100644 --- a/packages/spec/json-schema/system/ServiceScopeType.json +++ b/packages/spec/json-schema/system/ServiceScopeType.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/ServiceScopeType", "definitions": { - "ServiceScopeType": { - "type": "string", - "enum": [ - "singleton", - "transient", - "scoped" - ], - "description": "Service scope type" - } + "ServiceScopeType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ServiceUnregisteredEvent.json b/packages/spec/json-schema/system/ServiceUnregisteredEvent.json index 950bee8cf..980c53c12 100644 --- a/packages/spec/json-schema/system/ServiceUnregisteredEvent.json +++ b/packages/spec/json-schema/system/ServiceUnregisteredEvent.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/ServiceUnregisteredEvent", "definitions": { - "ServiceUnregisteredEvent": { - "type": "object", - "properties": { - "serviceName": { - "type": "string", - "description": "Name of the unregistered service" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds" - } - }, - "required": [ - "serviceName", - "timestamp" - ], - "additionalProperties": false - } + "ServiceUnregisteredEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/Span.json b/packages/spec/json-schema/system/Span.json index ab3329870..4be321ea3 100644 --- a/packages/spec/json-schema/system/Span.json +++ b/packages/spec/json-schema/system/Span.json @@ -1,387 +1,7 @@ { "$ref": "#/definitions/Span", "definitions": { - "Span": { - "type": "object", - "properties": { - "context": { - "type": "object", - "properties": { - "traceId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Trace ID (32 hex chars)" - }, - "spanId": { - "type": "string", - "pattern": "^[0-9a-f]{16}$", - "description": "Span ID (16 hex chars)" - }, - "traceFlags": { - "type": "integer", - "minimum": 0, - "maximum": 255, - "description": "Trace flags bitmap", - "default": 1 - }, - "traceState": { - "type": "object", - "properties": { - "entries": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Trace state entries" - } - }, - "required": [ - "entries" - ], - "additionalProperties": false, - "description": "Trace state" - }, - "parentSpanId": { - "type": "string", - "pattern": "^[0-9a-f]{16}$", - "description": "Parent span ID (16 hex chars)" - }, - "sampled": { - "type": "boolean", - "default": true - }, - "remote": { - "type": "boolean", - "default": false - } - }, - "required": [ - "traceId", - "spanId" - ], - "additionalProperties": false, - "description": "Trace context" - }, - "name": { - "type": "string", - "description": "Span name" - }, - "kind": { - "type": "string", - "enum": [ - "internal", - "server", - "client", - "producer", - "consumer" - ], - "description": "Span kind", - "default": "internal" - }, - "startTime": { - "type": "string", - "format": "date-time", - "description": "Span start time" - }, - "endTime": { - "type": "string", - "format": "date-time", - "description": "Span end time" - }, - "duration": { - "type": "number", - "minimum": 0, - "description": "Duration in milliseconds" - }, - "status": { - "type": "object", - "properties": { - "code": { - "type": "string", - "enum": [ - "unset", - "ok", - "error" - ], - "description": "Status code" - }, - "message": { - "type": "string", - "description": "Status message" - } - }, - "required": [ - "code" - ], - "additionalProperties": false - }, - "attributes": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "array", - "items": { - "type": "boolean" - } - } - ], - "description": "Span attribute value" - }, - "description": "Span attributes", - "default": {} - }, - "events": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Event name" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Event timestamp" - }, - "attributes": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "array", - "items": { - "type": "boolean" - } - } - ], - "description": "Span attribute value" - }, - "description": "Event attributes" - } - }, - "required": [ - "name", - "timestamp" - ], - "additionalProperties": false, - "description": "Span event" - }, - "default": [] - }, - "links": { - "type": "array", - "items": { - "type": "object", - "properties": { - "context": { - "type": "object", - "properties": { - "traceId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Trace ID (32 hex chars)" - }, - "spanId": { - "type": "string", - "pattern": "^[0-9a-f]{16}$", - "description": "Span ID (16 hex chars)" - }, - "traceFlags": { - "type": "integer", - "minimum": 0, - "maximum": 255, - "description": "Trace flags bitmap", - "default": 1 - }, - "traceState": { - "type": "object", - "properties": { - "entries": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Trace state entries" - } - }, - "required": [ - "entries" - ], - "additionalProperties": false, - "description": "Trace state" - }, - "parentSpanId": { - "type": "string", - "pattern": "^[0-9a-f]{16}$", - "description": "Parent span ID (16 hex chars)" - }, - "sampled": { - "type": "boolean", - "default": true - }, - "remote": { - "type": "boolean", - "default": false - } - }, - "required": [ - "traceId", - "spanId" - ], - "additionalProperties": false, - "description": "Linked trace context" - }, - "attributes": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "array", - "items": { - "type": "boolean" - } - } - ], - "description": "Span attribute value" - }, - "description": "Link attributes" - } - }, - "required": [ - "context" - ], - "additionalProperties": false, - "description": "Span link" - }, - "default": [] - }, - "resource": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "array", - "items": { - "type": "boolean" - } - } - ], - "description": "Span attribute value" - }, - "description": "Resource attributes" - }, - "instrumentationLibrary": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Library name" - }, - "version": { - "type": "string", - "description": "Library version" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } - }, - "required": [ - "context", - "name", - "startTime" - ], - "additionalProperties": false, - "description": "OpenTelemetry span" - } + "Span": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SpanAttributeValue.json b/packages/spec/json-schema/system/SpanAttributeValue.json index 8bce5a1af..125ff0208 100644 --- a/packages/spec/json-schema/system/SpanAttributeValue.json +++ b/packages/spec/json-schema/system/SpanAttributeValue.json @@ -1,38 +1,7 @@ { "$ref": "#/definitions/SpanAttributeValue", "definitions": { - "SpanAttributeValue": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "array", - "items": { - "type": "boolean" - } - } - ], - "description": "Span attribute value" - } + "SpanAttributeValue": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SpanAttributes.json b/packages/spec/json-schema/system/SpanAttributes.json index 1c9fdd3c9..99c250e33 100644 --- a/packages/spec/json-schema/system/SpanAttributes.json +++ b/packages/spec/json-schema/system/SpanAttributes.json @@ -1,42 +1,7 @@ { "$ref": "#/definitions/SpanAttributes", "definitions": { - "SpanAttributes": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "array", - "items": { - "type": "boolean" - } - } - ], - "description": "Span attribute value" - }, - "description": "Span attributes" - } + "SpanAttributes": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SpanEvent.json b/packages/spec/json-schema/system/SpanEvent.json index 9a12e94f8..9db6859ac 100644 --- a/packages/spec/json-schema/system/SpanEvent.json +++ b/packages/spec/json-schema/system/SpanEvent.json @@ -1,62 +1,7 @@ { "$ref": "#/definitions/SpanEvent", "definitions": { - "SpanEvent": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Event name" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Event timestamp" - }, - "attributes": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "array", - "items": { - "type": "boolean" - } - } - ], - "description": "Span attribute value" - }, - "description": "Event attributes" - } - }, - "required": [ - "name", - "timestamp" - ], - "additionalProperties": false, - "description": "Span event" - } + "SpanEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SpanKind.json b/packages/spec/json-schema/system/SpanKind.json index e77e8ce7c..0a0572c2b 100644 --- a/packages/spec/json-schema/system/SpanKind.json +++ b/packages/spec/json-schema/system/SpanKind.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/SpanKind", "definitions": { - "SpanKind": { - "type": "string", - "enum": [ - "internal", - "server", - "client", - "producer", - "consumer" - ], - "description": "Span kind" - } + "SpanKind": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SpanLink.json b/packages/spec/json-schema/system/SpanLink.json index 18f4a1a3f..6743fdef4 100644 --- a/packages/spec/json-schema/system/SpanLink.json +++ b/packages/spec/json-schema/system/SpanLink.json @@ -1,110 +1,7 @@ { "$ref": "#/definitions/SpanLink", "definitions": { - "SpanLink": { - "type": "object", - "properties": { - "context": { - "type": "object", - "properties": { - "traceId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Trace ID (32 hex chars)" - }, - "spanId": { - "type": "string", - "pattern": "^[0-9a-f]{16}$", - "description": "Span ID (16 hex chars)" - }, - "traceFlags": { - "type": "integer", - "minimum": 0, - "maximum": 255, - "description": "Trace flags bitmap", - "default": 1 - }, - "traceState": { - "type": "object", - "properties": { - "entries": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Trace state entries" - } - }, - "required": [ - "entries" - ], - "additionalProperties": false, - "description": "Trace state" - }, - "parentSpanId": { - "type": "string", - "pattern": "^[0-9a-f]{16}$", - "description": "Parent span ID (16 hex chars)" - }, - "sampled": { - "type": "boolean", - "default": true - }, - "remote": { - "type": "boolean", - "default": false - } - }, - "required": [ - "traceId", - "spanId" - ], - "additionalProperties": false, - "description": "Linked trace context" - }, - "attributes": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "array", - "items": { - "type": "boolean" - } - } - ], - "description": "Span attribute value" - }, - "description": "Link attributes" - } - }, - "required": [ - "context" - ], - "additionalProperties": false, - "description": "Span link" - } + "SpanLink": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SpanStatus.json b/packages/spec/json-schema/system/SpanStatus.json index 93ae8a4d5..25b2fdbeb 100644 --- a/packages/spec/json-schema/system/SpanStatus.json +++ b/packages/spec/json-schema/system/SpanStatus.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/SpanStatus", "definitions": { - "SpanStatus": { - "type": "string", - "enum": [ - "unset", - "ok", - "error" - ], - "description": "Span status" - } + "SpanStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/StartupOptions.json b/packages/spec/json-schema/system/StartupOptions.json index bd1d00bb1..7be5ceb57 100644 --- a/packages/spec/json-schema/system/StartupOptions.json +++ b/packages/spec/json-schema/system/StartupOptions.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/StartupOptions", "definitions": { - "StartupOptions": { - "type": "object", - "properties": { - "timeout": { - "type": "integer", - "minimum": 0, - "default": 30000, - "description": "Maximum time in milliseconds to wait for each plugin to start" - }, - "rollbackOnFailure": { - "type": "boolean", - "default": true, - "description": "Whether to rollback already-started plugins if any plugin fails" - }, - "healthCheck": { - "type": "boolean", - "default": false, - "description": "Whether to run health checks after plugin startup" - }, - "parallel": { - "type": "boolean", - "default": false, - "description": "Whether to start plugins in parallel when dependencies allow" - }, - "context": { - "description": "Custom context object to pass to plugin lifecycle methods" - } - }, - "additionalProperties": false - } + "StartupOptions": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/StartupOrchestrationResult.json b/packages/spec/json-schema/system/StartupOrchestrationResult.json index 8926058c7..ce8e147c1 100644 --- a/packages/spec/json-schema/system/StartupOrchestrationResult.json +++ b/packages/spec/json-schema/system/StartupOrchestrationResult.json @@ -1,104 +1,7 @@ { "$ref": "#/definitions/StartupOrchestrationResult", "definitions": { - "StartupOrchestrationResult": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "plugin": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name" - ], - "additionalProperties": true, - "description": "Plugin metadata" - }, - "success": { - "type": "boolean", - "description": "Whether the plugin started successfully" - }, - "duration": { - "type": "number", - "minimum": 0, - "description": "Time taken to start the plugin in milliseconds" - }, - "error": { - "description": "Error object if startup failed" - }, - "health": { - "type": "object", - "properties": { - "healthy": { - "type": "boolean", - "description": "Whether the plugin is healthy" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp in milliseconds when health check was performed" - }, - "details": { - "type": "object", - "additionalProperties": {}, - "description": "Optional plugin-specific health details" - }, - "message": { - "type": "string", - "description": "Error message if plugin is unhealthy" - } - }, - "required": [ - "healthy", - "timestamp" - ], - "additionalProperties": false, - "description": "Health status after startup if health check was enabled" - } - }, - "required": [ - "plugin", - "success", - "duration" - ], - "additionalProperties": false - }, - "description": "Startup results for each plugin" - }, - "totalDuration": { - "type": "number", - "minimum": 0, - "description": "Total time taken for all plugins in milliseconds" - }, - "allSuccessful": { - "type": "boolean", - "description": "Whether all plugins started successfully" - }, - "rolledBack": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Names of plugins that were rolled back" - } - }, - "required": [ - "results", - "totalDuration", - "allSuccessful" - ], - "additionalProperties": false - } + "StartupOrchestrationResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/StorageAcl.json b/packages/spec/json-schema/system/StorageAcl.json index 713497519..1a7f061c1 100644 --- a/packages/spec/json-schema/system/StorageAcl.json +++ b/packages/spec/json-schema/system/StorageAcl.json @@ -1,18 +1,7 @@ { "$ref": "#/definitions/StorageAcl", "definitions": { - "StorageAcl": { - "type": "string", - "enum": [ - "private", - "public_read", - "public_read_write", - "authenticated_read", - "bucket_owner_read", - "bucket_owner_full_control" - ], - "description": "Storage access control level" - } + "StorageAcl": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/StorageClass.json b/packages/spec/json-schema/system/StorageClass.json index 158e2215c..bdd3fca0f 100644 --- a/packages/spec/json-schema/system/StorageClass.json +++ b/packages/spec/json-schema/system/StorageClass.json @@ -1,17 +1,7 @@ { "$ref": "#/definitions/StorageClass", "definitions": { - "StorageClass": { - "type": "string", - "enum": [ - "standard", - "intelligent", - "infrequent_access", - "glacier", - "deep_archive" - ], - "description": "Storage class/tier for cost optimization" - } + "StorageClass": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/StorageConnection.json b/packages/spec/json-schema/system/StorageConnection.json index f69626b4e..c715bcaf9 100644 --- a/packages/spec/json-schema/system/StorageConnection.json +++ b/packages/spec/json-schema/system/StorageConnection.json @@ -1,62 +1,7 @@ { "$ref": "#/definitions/StorageConnection", "definitions": { - "StorageConnection": { - "type": "object", - "properties": { - "accessKeyId": { - "type": "string", - "description": "AWS access key ID or MinIO access key" - }, - "secretAccessKey": { - "type": "string", - "description": "AWS secret access key or MinIO secret key" - }, - "sessionToken": { - "type": "string", - "description": "AWS session token for temporary credentials" - }, - "accountName": { - "type": "string", - "description": "Azure storage account name" - }, - "accountKey": { - "type": "string", - "description": "Azure storage account key" - }, - "sasToken": { - "type": "string", - "description": "Azure SAS token" - }, - "projectId": { - "type": "string", - "description": "GCP project ID" - }, - "credentials": { - "type": "string", - "description": "GCP service account credentials JSON" - }, - "endpoint": { - "type": "string", - "description": "Custom endpoint URL" - }, - "region": { - "type": "string", - "description": "Default region" - }, - "useSSL": { - "type": "boolean", - "default": true, - "description": "Use SSL/TLS for connections" - }, - "timeout": { - "type": "number", - "minimum": 0, - "description": "Connection timeout in milliseconds" - } - }, - "additionalProperties": false - } + "StorageConnection": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/StorageProvider.json b/packages/spec/json-schema/system/StorageProvider.json index c2984bb7d..5fa0e5fcd 100644 --- a/packages/spec/json-schema/system/StorageProvider.json +++ b/packages/spec/json-schema/system/StorageProvider.json @@ -1,21 +1,7 @@ { "$ref": "#/definitions/StorageProvider", "definitions": { - "StorageProvider": { - "type": "string", - "enum": [ - "s3", - "azure_blob", - "gcs", - "minio", - "r2", - "spaces", - "wasabi", - "backblaze", - "local" - ], - "description": "Storage provider type" - } + "StorageProvider": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/StorageScope.json b/packages/spec/json-schema/system/StorageScope.json index da1e5e59e..ac8c2f0c2 100644 --- a/packages/spec/json-schema/system/StorageScope.json +++ b/packages/spec/json-schema/system/StorageScope.json @@ -1,22 +1,7 @@ { "$ref": "#/definitions/StorageScope", "definitions": { - "StorageScope": { - "type": "string", - "enum": [ - "global", - "tenant", - "user", - "session", - "temp", - "cache", - "data", - "logs", - "config", - "public" - ], - "description": "Storage scope classification" - } + "StorageScope": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/StructuredLogEntry.json b/packages/spec/json-schema/system/StructuredLogEntry.json index df60a3df3..1719ab141 100644 --- a/packages/spec/json-schema/system/StructuredLogEntry.json +++ b/packages/spec/json-schema/system/StructuredLogEntry.json @@ -1,191 +1,7 @@ { "$ref": "#/definitions/StructuredLogEntry", "definitions": { - "StructuredLogEntry": { - "type": "object", - "properties": { - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 timestamp" - }, - "level": { - "type": "string", - "enum": [ - "trace", - "debug", - "info", - "warn", - "error", - "fatal" - ], - "description": "Log severity level" - }, - "message": { - "type": "string", - "description": "Log message" - }, - "context": { - "type": "object", - "additionalProperties": {}, - "description": "Structured context" - }, - "error": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "message": { - "type": "string" - }, - "stack": { - "type": "string" - }, - "code": { - "type": "string" - }, - "details": { - "type": "object", - "additionalProperties": {} - } - }, - "additionalProperties": false, - "description": "Error details" - }, - "trace": { - "type": "object", - "properties": { - "traceId": { - "type": "string", - "description": "Trace ID" - }, - "spanId": { - "type": "string", - "description": "Span ID" - }, - "parentSpanId": { - "type": "string", - "description": "Parent span ID" - }, - "traceFlags": { - "type": "integer", - "description": "Trace flags" - } - }, - "required": [ - "traceId", - "spanId" - ], - "additionalProperties": false, - "description": "Distributed tracing context" - }, - "source": { - "type": "object", - "properties": { - "service": { - "type": "string", - "description": "Service name" - }, - "component": { - "type": "string", - "description": "Component name" - }, - "file": { - "type": "string", - "description": "Source file" - }, - "line": { - "type": "integer", - "description": "Line number" - }, - "function": { - "type": "string", - "description": "Function name" - } - }, - "additionalProperties": false, - "description": "Source information" - }, - "host": { - "type": "object", - "properties": { - "hostname": { - "type": "string" - }, - "pid": { - "type": "integer" - }, - "ip": { - "type": "string" - } - }, - "additionalProperties": false, - "description": "Host information" - }, - "environment": { - "type": "string", - "description": "Environment (e.g., production, staging)" - }, - "user": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "username": { - "type": "string" - }, - "email": { - "type": "string" - } - }, - "additionalProperties": false, - "description": "User context" - }, - "request": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "method": { - "type": "string" - }, - "path": { - "type": "string" - }, - "userAgent": { - "type": "string" - }, - "ip": { - "type": "string" - } - }, - "additionalProperties": false, - "description": "Request context" - }, - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom labels" - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Additional metadata" - } - }, - "required": [ - "timestamp", - "level", - "message" - ], - "additionalProperties": false, - "description": "Structured log entry" - } + "StructuredLogEntry": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/SuspiciousActivityRule.json b/packages/spec/json-schema/system/SuspiciousActivityRule.json index a1ad4d3d2..8bbbb60b1 100644 --- a/packages/spec/json-schema/system/SuspiciousActivityRule.json +++ b/packages/spec/json-schema/system/SuspiciousActivityRule.json @@ -1,175 +1,7 @@ { "$ref": "#/definitions/SuspiciousActivityRule", "definitions": { - "SuspiciousActivityRule": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Rule identifier" - }, - "name": { - "type": "string", - "description": "Rule name" - }, - "description": { - "type": "string", - "description": "Rule description" - }, - "enabled": { - "type": "boolean", - "default": true, - "description": "Rule enabled status" - }, - "eventTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "data.create", - "data.read", - "data.update", - "data.delete", - "data.export", - "data.import", - "data.bulk_update", - "data.bulk_delete", - "auth.login", - "auth.login_failed", - "auth.logout", - "auth.session_created", - "auth.session_expired", - "auth.password_reset", - "auth.password_changed", - "auth.email_verified", - "auth.mfa_enabled", - "auth.mfa_disabled", - "auth.account_locked", - "auth.account_unlocked", - "authz.permission_granted", - "authz.permission_revoked", - "authz.role_assigned", - "authz.role_removed", - "authz.role_created", - "authz.role_updated", - "authz.role_deleted", - "authz.policy_created", - "authz.policy_updated", - "authz.policy_deleted", - "system.config_changed", - "system.plugin_installed", - "system.plugin_uninstalled", - "system.backup_created", - "system.backup_restored", - "system.integration_added", - "system.integration_removed", - "security.access_denied", - "security.suspicious_activity", - "security.data_breach", - "security.api_key_created", - "security.api_key_revoked" - ] - }, - "description": "Event types to monitor" - }, - "condition": { - "type": "object", - "properties": { - "threshold": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Event threshold" - }, - "windowSeconds": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Time window in seconds" - }, - "groupBy": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Grouping criteria" - }, - "filters": { - "type": "object", - "additionalProperties": {}, - "description": "Additional filters" - } - }, - "required": [ - "threshold", - "windowSeconds" - ], - "additionalProperties": false, - "description": "Detection condition" - }, - "actions": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "alert", - "lock_account", - "block_ip", - "require_mfa", - "log_critical", - "webhook" - ] - }, - "description": "Actions to take" - }, - "alertSeverity": { - "type": "string", - "enum": [ - "debug", - "info", - "notice", - "warning", - "error", - "critical", - "alert", - "emergency" - ], - "default": "warning", - "description": "Alert severity" - }, - "notifications": { - "type": "object", - "properties": { - "email": { - "type": "array", - "items": { - "type": "string", - "format": "email" - }, - "description": "Email recipients" - }, - "slack": { - "type": "string", - "format": "uri", - "description": "Slack webhook URL" - }, - "webhook": { - "type": "string", - "format": "uri", - "description": "Custom webhook URL" - } - }, - "additionalProperties": false, - "description": "Notification configuration" - } - }, - "required": [ - "id", - "name", - "eventTypes", - "condition", - "actions" - ], - "additionalProperties": false - } + "SuspiciousActivityRule": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/Task.json b/packages/spec/json-schema/system/Task.json index af048cccc..b9a121e11 100644 --- a/packages/spec/json-schema/system/Task.json +++ b/packages/spec/json-schema/system/Task.json @@ -1,145 +1,7 @@ { "$ref": "#/definitions/Task", "definitions": { - "Task": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique task identifier" - }, - "type": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Task type (snake_case)" - }, - "payload": { - "description": "Task payload data" - }, - "queue": { - "type": "string", - "default": "default", - "description": "Queue name" - }, - "priority": { - "type": "string", - "enum": [ - "critical", - "high", - "normal", - "low", - "background" - ], - "default": "normal", - "description": "Task priority level" - }, - "retryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "fixed", - "linear", - "exponential" - ], - "default": "exponential", - "description": "Backoff strategy between retries" - }, - "initialDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2, - "description": "Multiplier for exponential backoff" - } - }, - "additionalProperties": false, - "description": "Retry policy configuration" - }, - "timeoutMs": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Task timeout in milliseconds" - }, - "scheduledAt": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime to execute task" - }, - "attempts": { - "type": "integer", - "minimum": 0, - "default": 0, - "description": "Number of execution attempts" - }, - "status": { - "type": "string", - "enum": [ - "pending", - "queued", - "processing", - "completed", - "failed", - "cancelled", - "timeout", - "dead" - ], - "default": "pending", - "description": "Current task status" - }, - "metadata": { - "type": "object", - "properties": { - "createdAt": { - "type": "string", - "format": "date-time", - "description": "When task was created" - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "Last update time" - }, - "createdBy": { - "type": "string", - "description": "User who created task" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Task tags for filtering" - } - }, - "additionalProperties": false, - "description": "Task metadata" - } - }, - "required": [ - "id", - "type" - ], - "additionalProperties": false - } + "Task": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TaskExecutionResult.json b/packages/spec/json-schema/system/TaskExecutionResult.json index 1931cd288..065b6d466 100644 --- a/packages/spec/json-schema/system/TaskExecutionResult.json +++ b/packages/spec/json-schema/system/TaskExecutionResult.json @@ -1,85 +1,7 @@ { "$ref": "#/definitions/TaskExecutionResult", "definitions": { - "TaskExecutionResult": { - "type": "object", - "properties": { - "taskId": { - "type": "string", - "description": "Task identifier" - }, - "status": { - "type": "string", - "enum": [ - "pending", - "queued", - "processing", - "completed", - "failed", - "cancelled", - "timeout", - "dead" - ], - "description": "Execution status" - }, - "result": { - "description": "Execution result data" - }, - "error": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "Error message" - }, - "stack": { - "type": "string", - "description": "Error stack trace" - }, - "code": { - "type": "string", - "description": "Error code" - } - }, - "required": [ - "message" - ], - "additionalProperties": false, - "description": "Error details if failed" - }, - "durationMs": { - "type": "integer", - "description": "Execution duration in milliseconds" - }, - "startedAt": { - "type": "string", - "format": "date-time", - "description": "When execution started" - }, - "completedAt": { - "type": "string", - "format": "date-time", - "description": "When execution completed" - }, - "attempt": { - "type": "integer", - "minimum": 1, - "description": "Attempt number (1-indexed)" - }, - "willRetry": { - "type": "boolean", - "description": "Whether task will be retried" - } - }, - "required": [ - "taskId", - "status", - "startedAt", - "attempt", - "willRetry" - ], - "additionalProperties": false - } + "TaskExecutionResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TaskPriority.json b/packages/spec/json-schema/system/TaskPriority.json index af5f4d8a5..45195a417 100644 --- a/packages/spec/json-schema/system/TaskPriority.json +++ b/packages/spec/json-schema/system/TaskPriority.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/TaskPriority", "definitions": { - "TaskPriority": { - "type": "string", - "enum": [ - "critical", - "high", - "normal", - "low", - "background" - ] - } + "TaskPriority": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TaskRetryPolicy.json b/packages/spec/json-schema/system/TaskRetryPolicy.json index e38b1d11c..dee8962cc 100644 --- a/packages/spec/json-schema/system/TaskRetryPolicy.json +++ b/packages/spec/json-schema/system/TaskRetryPolicy.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/TaskRetryPolicy", "definitions": { - "TaskRetryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "fixed", - "linear", - "exponential" - ], - "default": "exponential", - "description": "Backoff strategy between retries" - }, - "initialDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2, - "description": "Multiplier for exponential backoff" - } - }, - "additionalProperties": false - } + "TaskRetryPolicy": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TaskStatus.json b/packages/spec/json-schema/system/TaskStatus.json index 69356ead3..24ea11e19 100644 --- a/packages/spec/json-schema/system/TaskStatus.json +++ b/packages/spec/json-schema/system/TaskStatus.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/TaskStatus", "definitions": { - "TaskStatus": { - "type": "string", - "enum": [ - "pending", - "queued", - "processing", - "completed", - "failed", - "cancelled", - "timeout", - "dead" - ] - } + "TaskStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TextCRDTOperation.json b/packages/spec/json-schema/system/TextCRDTOperation.json index 3e91c3360..9c929dde9 100644 --- a/packages/spec/json-schema/system/TextCRDTOperation.json +++ b/packages/spec/json-schema/system/TextCRDTOperation.json @@ -1,52 +1,7 @@ { "$ref": "#/definitions/TextCRDTOperation", "definitions": { - "TextCRDTOperation": { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "replicaId": { - "type": "string", - "description": "Replica identifier" - }, - "position": { - "type": "integer", - "minimum": 0, - "description": "Position in document" - }, - "insert": { - "type": "string", - "description": "Text to insert" - }, - "delete": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to delete" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of operation" - }, - "lamportTimestamp": { - "type": "integer", - "minimum": 0, - "description": "Lamport timestamp for ordering" - } - }, - "required": [ - "operationId", - "replicaId", - "position", - "timestamp", - "lamportTimestamp" - ], - "additionalProperties": false - } + "TextCRDTOperation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TextCRDTState.json b/packages/spec/json-schema/system/TextCRDTState.json index 28be84cae..b2e03706d 100644 --- a/packages/spec/json-schema/system/TextCRDTState.json +++ b/packages/spec/json-schema/system/TextCRDTState.json @@ -1,105 +1,7 @@ { "$ref": "#/definitions/TextCRDTState", "definitions": { - "TextCRDTState": { - "type": "object", - "properties": { - "type": { - "type": "string", - "const": "text" - }, - "documentId": { - "type": "string", - "description": "Document identifier" - }, - "content": { - "type": "string", - "description": "Current text content" - }, - "operations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "operationId": { - "type": "string", - "format": "uuid", - "description": "Unique operation identifier" - }, - "replicaId": { - "type": "string", - "description": "Replica identifier" - }, - "position": { - "type": "integer", - "minimum": 0, - "description": "Position in document" - }, - "insert": { - "type": "string", - "description": "Text to insert" - }, - "delete": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Number of characters to delete" - }, - "timestamp": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 datetime of operation" - }, - "lamportTimestamp": { - "type": "integer", - "minimum": 0, - "description": "Lamport timestamp for ordering" - } - }, - "required": [ - "operationId", - "replicaId", - "position", - "timestamp", - "lamportTimestamp" - ], - "additionalProperties": false - }, - "description": "History of operations" - }, - "lamportClock": { - "type": "integer", - "minimum": 0, - "description": "Current Lamport clock value" - }, - "vectorClock": { - "type": "object", - "properties": { - "clock": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Map of replica ID to logical timestamp" - } - }, - "required": [ - "clock" - ], - "additionalProperties": false, - "description": "Vector clock for causality" - } - }, - "required": [ - "type", - "documentId", - "content", - "operations", - "lamportClock", - "vectorClock" - ], - "additionalProperties": false - } + "TextCRDTState": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TimeSeries.json b/packages/spec/json-schema/system/TimeSeries.json index 939a828db..518d06f21 100644 --- a/packages/spec/json-schema/system/TimeSeries.json +++ b/packages/spec/json-schema/system/TimeSeries.json @@ -1,69 +1,7 @@ { "$ref": "#/definitions/TimeSeries", "definitions": { - "TimeSeries": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Series name" - }, - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Series labels" - }, - "dataPoints": { - "type": "array", - "items": { - "type": "object", - "properties": { - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Timestamp" - }, - "value": { - "type": "number", - "description": "Value" - }, - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Labels" - } - }, - "required": [ - "timestamp", - "value" - ], - "additionalProperties": false, - "description": "Time series data point" - }, - "description": "Data points" - }, - "startTime": { - "type": "string", - "format": "date-time", - "description": "Start time" - }, - "endTime": { - "type": "string", - "format": "date-time", - "description": "End time" - } - }, - "required": [ - "name", - "dataPoints" - ], - "additionalProperties": false, - "description": "Time series" - } + "TimeSeries": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TimeSeriesDataPoint.json b/packages/spec/json-schema/system/TimeSeriesDataPoint.json index bb34dbb76..535e17620 100644 --- a/packages/spec/json-schema/system/TimeSeriesDataPoint.json +++ b/packages/spec/json-schema/system/TimeSeriesDataPoint.json @@ -1,33 +1,7 @@ { "$ref": "#/definitions/TimeSeriesDataPoint", "definitions": { - "TimeSeriesDataPoint": { - "type": "object", - "properties": { - "timestamp": { - "type": "string", - "format": "date-time", - "description": "Timestamp" - }, - "value": { - "type": "number", - "description": "Value" - }, - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Labels" - } - }, - "required": [ - "timestamp", - "value" - ], - "additionalProperties": false, - "description": "Time series data point" - } + "TimeSeriesDataPoint": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TopicConfig.json b/packages/spec/json-schema/system/TopicConfig.json index c3212b699..f1bff9d60 100644 --- a/packages/spec/json-schema/system/TopicConfig.json +++ b/packages/spec/json-schema/system/TopicConfig.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/TopicConfig", "definitions": { - "TopicConfig": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "partitions": { - "type": "number", - "default": 1 - }, - "replicationFactor": { - "type": "number", - "default": 1 - }, - "retentionMs": { - "type": "number" - }, - "compressionType": { - "type": "string", - "enum": [ - "none", - "gzip", - "snappy", - "lz4" - ], - "default": "none" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "TopicConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TraceContext.json b/packages/spec/json-schema/system/TraceContext.json index 595973d3e..9b9c51ced 100644 --- a/packages/spec/json-schema/system/TraceContext.json +++ b/packages/spec/json-schema/system/TraceContext.json @@ -1,64 +1,7 @@ { "$ref": "#/definitions/TraceContext", "definitions": { - "TraceContext": { - "type": "object", - "properties": { - "traceId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Trace ID (32 hex chars)" - }, - "spanId": { - "type": "string", - "pattern": "^[0-9a-f]{16}$", - "description": "Span ID (16 hex chars)" - }, - "traceFlags": { - "type": "integer", - "minimum": 0, - "maximum": 255, - "description": "Trace flags bitmap", - "default": 1 - }, - "traceState": { - "type": "object", - "properties": { - "entries": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Trace state entries" - } - }, - "required": [ - "entries" - ], - "additionalProperties": false, - "description": "Trace state" - }, - "parentSpanId": { - "type": "string", - "pattern": "^[0-9a-f]{16}$", - "description": "Parent span ID (16 hex chars)" - }, - "sampled": { - "type": "boolean", - "default": true - }, - "remote": { - "type": "boolean", - "default": false - } - }, - "required": [ - "traceId", - "spanId" - ], - "additionalProperties": false, - "description": "Trace context (W3C Trace Context)" - } + "TraceContext": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TraceContextPropagation.json b/packages/spec/json-schema/system/TraceContextPropagation.json index 7f22465da..a96b13af3 100644 --- a/packages/spec/json-schema/system/TraceContextPropagation.json +++ b/packages/spec/json-schema/system/TraceContextPropagation.json @@ -1,79 +1,7 @@ { "$ref": "#/definitions/TraceContextPropagation", "definitions": { - "TraceContextPropagation": { - "type": "object", - "properties": { - "formats": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "w3c", - "b3", - "b3_multi", - "jaeger", - "xray", - "ottrace", - "custom" - ], - "description": "Trace propagation format" - }, - "default": [ - "w3c" - ] - }, - "extract": { - "type": "boolean", - "default": true - }, - "inject": { - "type": "boolean", - "default": true - }, - "headers": { - "type": "object", - "properties": { - "traceId": { - "type": "string" - }, - "spanId": { - "type": "string" - }, - "traceFlags": { - "type": "string" - }, - "traceState": { - "type": "string" - } - }, - "additionalProperties": false - }, - "baggage": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "maxSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 8192 - }, - "allowedKeys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false, - "description": "Trace context propagation" - } + "TraceContextPropagation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TraceFlags.json b/packages/spec/json-schema/system/TraceFlags.json index 28bce107a..457bb20ed 100644 --- a/packages/spec/json-schema/system/TraceFlags.json +++ b/packages/spec/json-schema/system/TraceFlags.json @@ -1,12 +1,7 @@ { "$ref": "#/definitions/TraceFlags", "definitions": { - "TraceFlags": { - "type": "integer", - "minimum": 0, - "maximum": 255, - "description": "Trace flags bitmap" - } + "TraceFlags": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TracePropagationFormat.json b/packages/spec/json-schema/system/TracePropagationFormat.json index bac694169..e8d55e117 100644 --- a/packages/spec/json-schema/system/TracePropagationFormat.json +++ b/packages/spec/json-schema/system/TracePropagationFormat.json @@ -1,19 +1,7 @@ { "$ref": "#/definitions/TracePropagationFormat", "definitions": { - "TracePropagationFormat": { - "type": "string", - "enum": [ - "w3c", - "b3", - "b3_multi", - "jaeger", - "xray", - "ottrace", - "custom" - ], - "description": "Trace propagation format" - } + "TracePropagationFormat": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TraceSamplingConfig.json b/packages/spec/json-schema/system/TraceSamplingConfig.json index 77dcf2e17..62553de52 100644 --- a/packages/spec/json-schema/system/TraceSamplingConfig.json +++ b/packages/spec/json-schema/system/TraceSamplingConfig.json @@ -1,186 +1,7 @@ { "$ref": "#/definitions/TraceSamplingConfig", "definitions": { - "TraceSamplingConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Sampling strategy" - }, - "ratio": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Sample ratio (0-1)" - }, - "rateLimit": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Traces per second" - }, - "parentBased": { - "type": "object", - "properties": { - "whenParentSampled": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Sampling strategy type", - "default": "always_on" - }, - "whenParentNotSampled": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Sampling strategy type", - "default": "always_off" - }, - "root": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Sampling strategy type", - "default": "trace_id_ratio" - }, - "rootRatio": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.1 - } - }, - "additionalProperties": false - }, - "composite": { - "type": "array", - "items": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Strategy type" - }, - "ratio": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "condition": { - "type": "object", - "additionalProperties": {}, - "description": "Condition for this strategy" - } - }, - "required": [ - "strategy" - ], - "additionalProperties": false - } - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Rule name" - }, - "match": { - "type": "object", - "properties": { - "service": { - "type": "string" - }, - "spanName": { - "type": "string" - }, - "attributes": { - "type": "object", - "additionalProperties": {} - } - }, - "additionalProperties": false - }, - "decision": { - "type": "string", - "enum": [ - "drop", - "record_only", - "record_and_sample" - ], - "description": "Sampling decision" - }, - "rate": { - "type": "number", - "minimum": 0, - "maximum": 1 - } - }, - "required": [ - "name", - "decision" - ], - "additionalProperties": false - }, - "default": [] - }, - "customSamplerId": { - "type": "string", - "description": "Custom sampler identifier" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Trace sampling configuration" - } + "TraceSamplingConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TraceState.json b/packages/spec/json-schema/system/TraceState.json index 3202bab79..60277e018 100644 --- a/packages/spec/json-schema/system/TraceState.json +++ b/packages/spec/json-schema/system/TraceState.json @@ -1,23 +1,7 @@ { "$ref": "#/definitions/TraceState", "definitions": { - "TraceState": { - "type": "object", - "properties": { - "entries": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Trace state entries" - } - }, - "required": [ - "entries" - ], - "additionalProperties": false, - "description": "Trace state" - } + "TraceState": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TracingConfig.json b/packages/spec/json-schema/system/TracingConfig.json index f36960e6b..b7ba1578a 100644 --- a/packages/spec/json-schema/system/TracingConfig.json +++ b/packages/spec/json-schema/system/TracingConfig.json @@ -1,536 +1,7 @@ { "$ref": "#/definitions/TracingConfig", "definitions": { - "TracingConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "maxLength": 64, - "description": "Configuration name (snake_case, max 64 chars)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "enabled": { - "type": "boolean", - "default": true - }, - "sampling": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Sampling strategy" - }, - "ratio": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Sample ratio (0-1)" - }, - "rateLimit": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Traces per second" - }, - "parentBased": { - "type": "object", - "properties": { - "whenParentSampled": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Sampling strategy type", - "default": "always_on" - }, - "whenParentNotSampled": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Sampling strategy type", - "default": "always_off" - }, - "root": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Sampling strategy type", - "default": "trace_id_ratio" - }, - "rootRatio": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0.1 - } - }, - "additionalProperties": false - }, - "composite": { - "type": "array", - "items": { - "type": "object", - "properties": { - "strategy": { - "type": "string", - "enum": [ - "always_on", - "always_off", - "trace_id_ratio", - "rate_limiting", - "parent_based", - "probability", - "composite", - "custom" - ], - "description": "Strategy type" - }, - "ratio": { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - "condition": { - "type": "object", - "additionalProperties": {}, - "description": "Condition for this strategy" - } - }, - "required": [ - "strategy" - ], - "additionalProperties": false - } - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Rule name" - }, - "match": { - "type": "object", - "properties": { - "service": { - "type": "string" - }, - "spanName": { - "type": "string" - }, - "attributes": { - "type": "object", - "additionalProperties": {} - } - }, - "additionalProperties": false - }, - "decision": { - "type": "string", - "enum": [ - "drop", - "record_only", - "record_and_sample" - ], - "description": "Sampling decision" - }, - "rate": { - "type": "number", - "minimum": 0, - "maximum": 1 - } - }, - "required": [ - "name", - "decision" - ], - "additionalProperties": false - }, - "default": [] - }, - "customSamplerId": { - "type": "string", - "description": "Custom sampler identifier" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Trace sampling configuration", - "default": { - "type": "always_on" - } - }, - "propagation": { - "type": "object", - "properties": { - "formats": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "w3c", - "b3", - "b3_multi", - "jaeger", - "xray", - "ottrace", - "custom" - ], - "description": "Trace propagation format" - }, - "default": [ - "w3c" - ] - }, - "extract": { - "type": "boolean", - "default": true - }, - "inject": { - "type": "boolean", - "default": true - }, - "headers": { - "type": "object", - "properties": { - "traceId": { - "type": "string" - }, - "spanId": { - "type": "string" - }, - "traceFlags": { - "type": "string" - }, - "traceState": { - "type": "string" - } - }, - "additionalProperties": false - }, - "baggage": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": true - }, - "maxSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 8192 - }, - "allowedKeys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false, - "description": "Trace context propagation", - "default": { - "formats": [ - "w3c" - ] - } - }, - "openTelemetry": { - "type": "object", - "properties": { - "sdkVersion": { - "type": "string", - "description": "OTel SDK version" - }, - "exporter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "otlp_http", - "otlp_grpc", - "jaeger", - "zipkin", - "console", - "datadog", - "honeycomb", - "lightstep", - "newrelic", - "custom" - ], - "description": "Exporter type" - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "Exporter endpoint" - }, - "protocol": { - "type": "string", - "description": "Protocol version" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "HTTP headers" - }, - "timeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 10000 - }, - "compression": { - "type": "string", - "enum": [ - "none", - "gzip" - ], - "default": "none" - }, - "batch": { - "type": "object", - "properties": { - "maxBatchSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 512 - }, - "maxQueueSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 2048 - }, - "exportTimeout": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000 - }, - "scheduledDelay": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5000 - } - }, - "additionalProperties": false - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Exporter configuration" - }, - "resource": { - "type": "object", - "properties": { - "serviceName": { - "type": "string", - "description": "Service name" - }, - "serviceVersion": { - "type": "string", - "description": "Service version" - }, - "serviceInstanceId": { - "type": "string", - "description": "Service instance ID" - }, - "serviceNamespace": { - "type": "string", - "description": "Service namespace" - }, - "deploymentEnvironment": { - "type": "string", - "description": "Deployment environment" - }, - "attributes": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "array", - "items": { - "type": "boolean" - } - } - ], - "description": "Span attribute value" - }, - "description": "Additional resource attributes" - } - }, - "required": [ - "serviceName" - ], - "additionalProperties": false, - "description": "Resource attributes" - }, - "instrumentation": { - "type": "object", - "properties": { - "autoInstrumentation": { - "type": "boolean", - "default": true - }, - "libraries": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Enabled libraries" - }, - "disabledLibraries": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Disabled libraries" - } - }, - "additionalProperties": false - }, - "semanticConventionsVersion": { - "type": "string", - "description": "Semantic conventions version" - } - }, - "required": [ - "exporter", - "resource" - ], - "additionalProperties": false, - "description": "OpenTelemetry compatibility configuration" - }, - "spanLimits": { - "type": "object", - "properties": { - "maxAttributes": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 128 - }, - "maxEvents": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 128 - }, - "maxLinks": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 128 - }, - "maxAttributeValueLength": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 4096 - } - }, - "additionalProperties": false - }, - "traceIdGenerator": { - "type": "string", - "enum": [ - "random", - "uuid", - "custom" - ], - "default": "random" - }, - "customTraceIdGeneratorId": { - "type": "string", - "description": "Custom generator identifier" - }, - "performance": { - "type": "object", - "properties": { - "asyncExport": { - "type": "boolean", - "default": true - }, - "exportInterval": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 5000 - } - }, - "additionalProperties": false - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false, - "description": "Tracing configuration" - } + "TracingConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TranslationBundle.json b/packages/spec/json-schema/system/TranslationBundle.json index 794a9c34f..8b9ab634a 100644 --- a/packages/spec/json-schema/system/TranslationBundle.json +++ b/packages/spec/json-schema/system/TranslationBundle.json @@ -1,78 +1,7 @@ { "$ref": "#/definitions/TranslationBundle", "definitions": { - "TranslationBundle": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "objects": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "pluralLabel": { - "type": "string" - }, - "fields": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "help": { - "type": "string" - }, - "options": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - }, - "required": [ - "label" - ], - "additionalProperties": false - } - }, - "apps": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "required": [ - "label" - ], - "additionalProperties": false - } - }, - "messages": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } + "TranslationBundle": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/TranslationData.json b/packages/spec/json-schema/system/TranslationData.json index 90175481b..9022ab21a 100644 --- a/packages/spec/json-schema/system/TranslationData.json +++ b/packages/spec/json-schema/system/TranslationData.json @@ -1,75 +1,7 @@ { "$ref": "#/definitions/TranslationData", "definitions": { - "TranslationData": { - "type": "object", - "properties": { - "objects": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "pluralLabel": { - "type": "string" - }, - "fields": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "help": { - "type": "string" - }, - "options": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - }, - "required": [ - "label" - ], - "additionalProperties": false - } - }, - "apps": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "required": [ - "label" - ], - "additionalProperties": false - } - }, - "messages": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "additionalProperties": false - } + "TranslationData": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/UserActivityStatus.json b/packages/spec/json-schema/system/UserActivityStatus.json index 89425cd95..d87df8a26 100644 --- a/packages/spec/json-schema/system/UserActivityStatus.json +++ b/packages/spec/json-schema/system/UserActivityStatus.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/UserActivityStatus", "definitions": { - "UserActivityStatus": { - "type": "string", - "enum": [ - "active", - "idle", - "viewing", - "disconnected" - ] - } + "UserActivityStatus": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ValidationError.json b/packages/spec/json-schema/system/ValidationError.json index 35040bf2f..c50fda4b3 100644 --- a/packages/spec/json-schema/system/ValidationError.json +++ b/packages/spec/json-schema/system/ValidationError.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/ValidationError", "definitions": { - "ValidationError": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name that failed validation" - }, - "message": { - "type": "string", - "description": "Human-readable error message" - }, - "code": { - "type": "string", - "description": "Machine-readable error code" - } - }, - "required": [ - "field", - "message" - ], - "additionalProperties": false - } + "ValidationError": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ValidationResult.json b/packages/spec/json-schema/system/ValidationResult.json index d5d53a047..d1c35b3bd 100644 --- a/packages/spec/json-schema/system/ValidationResult.json +++ b/packages/spec/json-schema/system/ValidationResult.json @@ -1,71 +1,7 @@ { "$ref": "#/definitions/ValidationResult", "definitions": { - "ValidationResult": { - "type": "object", - "properties": { - "valid": { - "type": "boolean", - "description": "Whether the plugin passed validation" - }, - "errors": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name that failed validation" - }, - "message": { - "type": "string", - "description": "Human-readable error message" - }, - "code": { - "type": "string", - "description": "Machine-readable error code" - } - }, - "required": [ - "field", - "message" - ], - "additionalProperties": false - }, - "description": "Validation errors" - }, - "warnings": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name with warning" - }, - "message": { - "type": "string", - "description": "Human-readable warning message" - }, - "code": { - "type": "string", - "description": "Machine-readable warning code" - } - }, - "required": [ - "field", - "message" - ], - "additionalProperties": false - }, - "description": "Validation warnings" - } - }, - "required": [ - "valid" - ], - "additionalProperties": false - } + "ValidationResult": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/ValidationWarning.json b/packages/spec/json-schema/system/ValidationWarning.json index c6251b28b..d4b88f5fd 100644 --- a/packages/spec/json-schema/system/ValidationWarning.json +++ b/packages/spec/json-schema/system/ValidationWarning.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/ValidationWarning", "definitions": { - "ValidationWarning": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name with warning" - }, - "message": { - "type": "string", - "description": "Human-readable warning message" - }, - "code": { - "type": "string", - "description": "Machine-readable warning code" - } - }, - "required": [ - "field", - "message" - ], - "additionalProperties": false - } + "ValidationWarning": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/VectorClock.json b/packages/spec/json-schema/system/VectorClock.json index a57199880..4fe280820 100644 --- a/packages/spec/json-schema/system/VectorClock.json +++ b/packages/spec/json-schema/system/VectorClock.json @@ -1,23 +1,7 @@ { "$ref": "#/definitions/VectorClock", "definitions": { - "VectorClock": { - "type": "object", - "properties": { - "clock": { - "type": "object", - "additionalProperties": { - "type": "integer", - "minimum": 0 - }, - "description": "Map of replica ID to logical timestamp" - } - }, - "required": [ - "clock" - ], - "additionalProperties": false - } + "VectorClock": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/WorkerConfig.json b/packages/spec/json-schema/system/WorkerConfig.json index f32e01765..f1d75f884 100644 --- a/packages/spec/json-schema/system/WorkerConfig.json +++ b/packages/spec/json-schema/system/WorkerConfig.json @@ -1,188 +1,7 @@ { "$ref": "#/definitions/WorkerConfig", "definitions": { - "WorkerConfig": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Worker name" - }, - "queues": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "description": "Queue names to process" - }, - "queueConfigs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Queue name (snake_case)" - }, - "concurrency": { - "type": "integer", - "minimum": 1, - "default": 5, - "description": "Max concurrent task executions" - }, - "rateLimit": { - "type": "object", - "properties": { - "max": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Maximum tasks per duration" - }, - "duration": { - "type": "integer", - "exclusiveMinimum": 0, - "description": "Duration in milliseconds" - } - }, - "required": [ - "max", - "duration" - ], - "additionalProperties": false, - "description": "Rate limit configuration" - }, - "defaultRetryPolicy": { - "type": "object", - "properties": { - "maxRetries": { - "type": "integer", - "minimum": 0, - "default": 3, - "description": "Maximum retry attempts" - }, - "backoffStrategy": { - "type": "string", - "enum": [ - "fixed", - "linear", - "exponential" - ], - "default": "exponential", - "description": "Backoff strategy between retries" - }, - "initialDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Initial retry delay in milliseconds" - }, - "maxDelayMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 60000, - "description": "Maximum retry delay in milliseconds" - }, - "backoffMultiplier": { - "type": "number", - "exclusiveMinimum": 0, - "default": 2, - "description": "Multiplier for exponential backoff" - } - }, - "additionalProperties": false, - "description": "Default retry policy for tasks" - }, - "deadLetterQueue": { - "type": "string", - "description": "Dead letter queue name" - }, - "priority": { - "type": "integer", - "minimum": 0, - "default": 0, - "description": "Queue priority (lower = higher priority)" - }, - "autoScale": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false, - "description": "Enable auto-scaling" - }, - "minWorkers": { - "type": "integer", - "minimum": 1, - "default": 1, - "description": "Minimum workers" - }, - "maxWorkers": { - "type": "integer", - "minimum": 1, - "default": 10, - "description": "Maximum workers" - }, - "scaleUpThreshold": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 100, - "description": "Queue size to scale up" - }, - "scaleDownThreshold": { - "type": "integer", - "minimum": 0, - "default": 10, - "description": "Queue size to scale down" - } - }, - "additionalProperties": false, - "description": "Auto-scaling configuration" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Queue configurations" - }, - "pollIntervalMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 1000, - "description": "Queue polling interval in milliseconds" - }, - "visibilityTimeoutMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000, - "description": "How long a task is invisible after being claimed" - }, - "defaultTimeoutMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 300000, - "description": "Default task timeout in milliseconds" - }, - "shutdownTimeoutMs": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 30000, - "description": "Graceful shutdown timeout in milliseconds" - }, - "handlers": { - "type": "object", - "additionalProperties": true, - "description": "Task type handlers" - } - }, - "required": [ - "name", - "queues" - ], - "additionalProperties": false - } + "WorkerConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/system/WorkerStats.json b/packages/spec/json-schema/system/WorkerStats.json index e284e39db..46bb12680 100644 --- a/packages/spec/json-schema/system/WorkerStats.json +++ b/packages/spec/json-schema/system/WorkerStats.json @@ -1,90 +1,7 @@ { "$ref": "#/definitions/WorkerStats", "definitions": { - "WorkerStats": { - "type": "object", - "properties": { - "workerName": { - "type": "string", - "description": "Worker name" - }, - "totalProcessed": { - "type": "integer", - "minimum": 0, - "description": "Total tasks processed" - }, - "succeeded": { - "type": "integer", - "minimum": 0, - "description": "Successful tasks" - }, - "failed": { - "type": "integer", - "minimum": 0, - "description": "Failed tasks" - }, - "active": { - "type": "integer", - "minimum": 0, - "description": "Currently active tasks" - }, - "avgExecutionMs": { - "type": "number", - "minimum": 0, - "description": "Average execution time in milliseconds" - }, - "uptimeMs": { - "type": "integer", - "minimum": 0, - "description": "Worker uptime in milliseconds" - }, - "queues": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "pending": { - "type": "integer", - "minimum": 0, - "description": "Pending tasks" - }, - "active": { - "type": "integer", - "minimum": 0, - "description": "Active tasks" - }, - "completed": { - "type": "integer", - "minimum": 0, - "description": "Completed tasks" - }, - "failed": { - "type": "integer", - "minimum": 0, - "description": "Failed tasks" - } - }, - "required": [ - "pending", - "active", - "completed", - "failed" - ], - "additionalProperties": false - }, - "description": "Per-queue statistics" - } - }, - "required": [ - "workerName", - "totalProcessed", - "succeeded", - "failed", - "active", - "uptimeMs" - ], - "additionalProperties": false - } + "WorkerStats": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/Action.json b/packages/spec/json-schema/ui/Action.json index 86f0ce424..bc783bdbc 100644 --- a/packages/spec/json-schema/ui/Action.json +++ b/packages/spec/json-schema/ui/Action.json @@ -1,186 +1,7 @@ { "$ref": "#/definitions/Action", "definitions": { - "Action": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Machine name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "locations": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "list_toolbar", - "list_item", - "record_header", - "record_more", - "record_related", - "global_nav" - ] - }, - "description": "Locations where this action is visible" - }, - "component": { - "type": "string", - "enum": [ - "action:button", - "action:icon", - "action:menu", - "action:group" - ], - "description": "Visual component override" - }, - "location": {}, - "type": { - "type": "string", - "enum": [ - "script", - "url", - "modal", - "flow", - "api" - ], - "default": "script", - "description": "Action functionality type" - }, - "target": { - "type": "string", - "description": "URL, Script Name, Flow ID, or API Endpoint" - }, - "execute": { - "type": "string", - "description": "Legacy execution logic" - }, - "params": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "label": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "text", - "textarea", - "email", - "url", - "phone", - "password", - "markdown", - "html", - "richtext", - "number", - "currency", - "percent", - "date", - "datetime", - "time", - "boolean", - "toggle", - "select", - "multiselect", - "radio", - "checkboxes", - "lookup", - "master_detail", - "tree", - "image", - "file", - "avatar", - "video", - "audio", - "formula", - "summary", - "autonumber", - "location", - "address", - "code", - "json", - "color", - "rating", - "slider", - "signature", - "qrcode", - "progress", - "tags", - "vector" - ] - }, - "required": { - "type": "boolean", - "default": false - }, - "options": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "additionalProperties": false - } - } - }, - "required": [ - "name", - "label", - "type" - ], - "additionalProperties": false - }, - "description": "Input parameters required from user" - }, - "confirmText": { - "type": "string", - "description": "Confirmation message before execution" - }, - "successMessage": { - "type": "string", - "description": "Success message to show after execution" - }, - "refreshAfter": { - "type": "boolean", - "default": false, - "description": "Refresh view after execution" - }, - "visible": { - "type": "string", - "description": "Formula returning boolean" - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false - } + "Action": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ActionParam.json b/packages/spec/json-schema/ui/ActionParam.json index 93ae8d6cd..b6af596ca 100644 --- a/packages/spec/json-schema/ui/ActionParam.json +++ b/packages/spec/json-schema/ui/ActionParam.json @@ -1,95 +1,7 @@ { "$ref": "#/definitions/ActionParam", "definitions": { - "ActionParam": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "label": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "text", - "textarea", - "email", - "url", - "phone", - "password", - "markdown", - "html", - "richtext", - "number", - "currency", - "percent", - "date", - "datetime", - "time", - "boolean", - "toggle", - "select", - "multiselect", - "radio", - "checkboxes", - "lookup", - "master_detail", - "tree", - "image", - "file", - "avatar", - "video", - "audio", - "formula", - "summary", - "autonumber", - "location", - "address", - "code", - "json", - "color", - "rating", - "slider", - "signature", - "qrcode", - "progress", - "tags", - "vector" - ] - }, - "required": { - "type": "boolean", - "default": false - }, - "options": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "additionalProperties": false - } - } - }, - "required": [ - "name", - "label", - "type" - ], - "additionalProperties": false - } + "ActionParam": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/Animation.json b/packages/spec/json-schema/ui/Animation.json index ec60c5efb..9eaa24624 100644 --- a/packages/spec/json-schema/ui/Animation.json +++ b/packages/spec/json-schema/ui/Animation.json @@ -1,56 +1,7 @@ { "$ref": "#/definitions/Animation", "definitions": { - "Animation": { - "type": "object", - "properties": { - "duration": { - "type": "object", - "properties": { - "fast": { - "type": "string", - "description": "Fast animation (e.g., 150ms)" - }, - "base": { - "type": "string", - "description": "Base animation (e.g., 300ms)" - }, - "slow": { - "type": "string", - "description": "Slow animation (e.g., 500ms)" - } - }, - "additionalProperties": false - }, - "timing": { - "type": "object", - "properties": { - "linear": { - "type": "string", - "description": "Linear timing function" - }, - "ease": { - "type": "string", - "description": "Ease timing function" - }, - "easeIn": { - "type": "string", - "description": "Ease-in timing function" - }, - "easeOut": { - "type": "string", - "description": "Ease-out timing function" - }, - "easeInOut": { - "type": "string", - "description": "Ease-in-out timing function" - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } + "Animation": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/App.json b/packages/spec/json-schema/ui/App.json index f5c2f10e8..40c1e714f 100644 --- a/packages/spec/json-schema/ui/App.json +++ b/packages/spec/json-schema/ui/App.json @@ -1,308 +1,7 @@ { "$ref": "#/definitions/App", "definitions": { - "App": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "App unique machine name (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "App display label" - }, - "version": { - "type": "string", - "description": "App version" - }, - "description": { - "type": "string", - "description": "App description" - }, - "icon": { - "type": "string", - "description": "App icon used in the App Launcher" - }, - "branding": { - "type": "object", - "properties": { - "primaryColor": { - "type": "string", - "description": "Primary theme color hex code" - }, - "logo": { - "type": "string", - "description": "Custom logo URL for this app" - }, - "favicon": { - "type": "string", - "description": "Custom favicon URL for this app" - } - }, - "additionalProperties": false, - "description": "App-specific branding" - }, - "active": { - "type": "boolean", - "default": true, - "description": "Whether the app is enabled" - }, - "isDefault": { - "type": "boolean", - "default": false, - "description": "Is default app" - }, - "navigation": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "object" - }, - "objectName": { - "type": "string", - "description": "Target object name" - }, - "viewName": { - "type": "string", - "description": "Default list view to open. Defaults to \"all\"" - } - }, - "required": [ - "id", - "label", - "type", - "objectName" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "dashboard" - }, - "dashboardName": { - "type": "string", - "description": "Target dashboard name" - } - }, - "required": [ - "id", - "label", - "type", - "dashboardName" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "page" - }, - "pageName": { - "type": "string", - "description": "Target custom page component name" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Parameters passed to the page context" - } - }, - "required": [ - "id", - "label", - "type", - "pageName" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "url" - }, - "url": { - "type": "string", - "description": "Target external URL" - }, - "target": { - "type": "string", - "enum": [ - "_self", - "_blank" - ], - "default": "_self", - "description": "Link target window" - } - }, - "required": [ - "id", - "label", - "type", - "url" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "group" - }, - "expanded": { - "type": "boolean", - "default": false, - "description": "Default expansion state in sidebar" - }, - "children": { - "type": "array", - "items": {}, - "description": "Child navigation items" - } - }, - "required": [ - "id", - "label", - "type", - "children" - ], - "additionalProperties": false - } - ] - }, - "description": "Structured navigation menu tree" - }, - "homePageId": { - "type": "string", - "description": "ID of the navigation item to serve as landing page" - }, - "requiredPermissions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Permissions required to access this app" - }, - "objects": { - "type": "array", - "description": "Objects belonging to this app" - }, - "apis": { - "type": "array", - "description": "Custom APIs belonging to this app" - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false - } + "App": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/AppBranding.json b/packages/spec/json-schema/ui/AppBranding.json index ea5299432..aa9e8691f 100644 --- a/packages/spec/json-schema/ui/AppBranding.json +++ b/packages/spec/json-schema/ui/AppBranding.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/AppBranding", "definitions": { - "AppBranding": { - "type": "object", - "properties": { - "primaryColor": { - "type": "string", - "description": "Primary theme color hex code" - }, - "logo": { - "type": "string", - "description": "Custom logo URL for this app" - }, - "favicon": { - "type": "string", - "description": "Custom favicon URL for this app" - } - }, - "additionalProperties": false - } + "AppBranding": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/BorderRadius.json b/packages/spec/json-schema/ui/BorderRadius.json index 5c35832e4..b37a537f3 100644 --- a/packages/spec/json-schema/ui/BorderRadius.json +++ b/packages/spec/json-schema/ui/BorderRadius.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/BorderRadius", "definitions": { - "BorderRadius": { - "type": "object", - "properties": { - "none": { - "type": "string", - "description": "No border radius (0)" - }, - "sm": { - "type": "string", - "description": "Small border radius (e.g., 0.125rem)" - }, - "base": { - "type": "string", - "description": "Base border radius (e.g., 0.25rem)" - }, - "md": { - "type": "string", - "description": "Medium border radius (e.g., 0.375rem)" - }, - "lg": { - "type": "string", - "description": "Large border radius (e.g., 0.5rem)" - }, - "xl": { - "type": "string", - "description": "Extra large border radius (e.g., 0.75rem)" - }, - "2xl": { - "type": "string", - "description": "2X large border radius (e.g., 1rem)" - }, - "full": { - "type": "string", - "description": "Full border radius (50%)" - } - }, - "additionalProperties": false - } + "BorderRadius": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/Breakpoints.json b/packages/spec/json-schema/ui/Breakpoints.json index 772b21185..e7ca667f6 100644 --- a/packages/spec/json-schema/ui/Breakpoints.json +++ b/packages/spec/json-schema/ui/Breakpoints.json @@ -1,36 +1,7 @@ { "$ref": "#/definitions/Breakpoints", "definitions": { - "Breakpoints": { - "type": "object", - "properties": { - "xs": { - "type": "string", - "description": "Extra small breakpoint (e.g., 480px)" - }, - "sm": { - "type": "string", - "description": "Small breakpoint (e.g., 640px)" - }, - "md": { - "type": "string", - "description": "Medium breakpoint (e.g., 768px)" - }, - "lg": { - "type": "string", - "description": "Large breakpoint (e.g., 1024px)" - }, - "xl": { - "type": "string", - "description": "Extra large breakpoint (e.g., 1280px)" - }, - "2xl": { - "type": "string", - "description": "2X large breakpoint (e.g., 1536px)" - } - }, - "additionalProperties": false - } + "Breakpoints": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/CalendarConfig.json b/packages/spec/json-schema/ui/CalendarConfig.json index 8c3a47b81..bb74ff467 100644 --- a/packages/spec/json-schema/ui/CalendarConfig.json +++ b/packages/spec/json-schema/ui/CalendarConfig.json @@ -1,28 +1,7 @@ { "$ref": "#/definitions/CalendarConfig", "definitions": { - "CalendarConfig": { - "type": "object", - "properties": { - "startDateField": { - "type": "string" - }, - "endDateField": { - "type": "string" - }, - "titleField": { - "type": "string" - }, - "colorField": { - "type": "string" - } - }, - "required": [ - "startDateField", - "titleField" - ], - "additionalProperties": false - } + "CalendarConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ChartConfig.json b/packages/spec/json-schema/ui/ChartConfig.json index 112ffbc92..b7fc4ff9c 100644 --- a/packages/spec/json-schema/ui/ChartConfig.json +++ b/packages/spec/json-schema/ui/ChartConfig.json @@ -1,74 +1,7 @@ { "$ref": "#/definitions/ChartConfig", "definitions": { - "ChartConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "bar", - "horizontal-bar", - "column", - "grouped-bar", - "stacked-bar", - "line", - "area", - "stacked-area", - "step-line", - "pie", - "donut", - "funnel", - "scatter", - "bubble", - "treemap", - "sunburst", - "sankey", - "gauge", - "metric", - "kpi", - "choropleth", - "bubble-map", - "heatmap", - "radar", - "waterfall", - "box-plot", - "violin", - "table", - "pivot" - ] - }, - "title": { - "type": "string", - "description": "Chart title" - }, - "description": { - "type": "string", - "description": "Chart description" - }, - "showLegend": { - "type": "boolean", - "default": true, - "description": "Display legend" - }, - "showDataLabels": { - "type": "boolean", - "default": false, - "description": "Display data labels on chart" - }, - "colors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Custom color palette" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - } + "ChartConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ChartType.json b/packages/spec/json-schema/ui/ChartType.json index fe550d0b2..2f163c1a4 100644 --- a/packages/spec/json-schema/ui/ChartType.json +++ b/packages/spec/json-schema/ui/ChartType.json @@ -1,40 +1,7 @@ { "$ref": "#/definitions/ChartType", "definitions": { - "ChartType": { - "type": "string", - "enum": [ - "bar", - "horizontal-bar", - "column", - "grouped-bar", - "stacked-bar", - "line", - "area", - "stacked-area", - "step-line", - "pie", - "donut", - "funnel", - "scatter", - "bubble", - "treemap", - "sunburst", - "sankey", - "gauge", - "metric", - "kpi", - "choropleth", - "bubble-map", - "heatmap", - "radar", - "waterfall", - "box-plot", - "violin", - "table", - "pivot" - ] - } + "ChartType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ColorPalette.json b/packages/spec/json-schema/ui/ColorPalette.json index bd15708c1..d7e11a244 100644 --- a/packages/spec/json-schema/ui/ColorPalette.json +++ b/packages/spec/json-schema/ui/ColorPalette.json @@ -1,83 +1,7 @@ { "$ref": "#/definitions/ColorPalette", "definitions": { - "ColorPalette": { - "type": "object", - "properties": { - "primary": { - "type": "string", - "description": "Primary brand color (hex, rgb, or hsl)" - }, - "secondary": { - "type": "string", - "description": "Secondary brand color" - }, - "accent": { - "type": "string", - "description": "Accent color for highlights" - }, - "success": { - "type": "string", - "description": "Success state color (default: green)" - }, - "warning": { - "type": "string", - "description": "Warning state color (default: yellow)" - }, - "error": { - "type": "string", - "description": "Error state color (default: red)" - }, - "info": { - "type": "string", - "description": "Info state color (default: blue)" - }, - "background": { - "type": "string", - "description": "Background color" - }, - "surface": { - "type": "string", - "description": "Surface/card background color" - }, - "text": { - "type": "string", - "description": "Primary text color" - }, - "textSecondary": { - "type": "string", - "description": "Secondary text color" - }, - "border": { - "type": "string", - "description": "Border color" - }, - "disabled": { - "type": "string", - "description": "Disabled state color" - }, - "primaryLight": { - "type": "string", - "description": "Lighter shade of primary" - }, - "primaryDark": { - "type": "string", - "description": "Darker shade of primary" - }, - "secondaryLight": { - "type": "string", - "description": "Lighter shade of secondary" - }, - "secondaryDark": { - "type": "string", - "description": "Darker shade of secondary" - } - }, - "required": [ - "primary" - ], - "additionalProperties": false - } + "ColorPalette": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/Dashboard.json b/packages/spec/json-schema/ui/Dashboard.json index e1eab378b..3f25eb211 100644 --- a/packages/spec/json-schema/ui/Dashboard.json +++ b/packages/spec/json-schema/ui/Dashboard.json @@ -1,227 +1,7 @@ { "$ref": "#/definitions/Dashboard", "definitions": { - "Dashboard": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Dashboard unique name" - }, - "label": { - "type": "string", - "description": "Dashboard label" - }, - "description": { - "type": "string", - "description": "Dashboard description" - }, - "widgets": { - "type": "array", - "items": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Widget title" - }, - "type": { - "type": "string", - "enum": [ - "bar", - "horizontal-bar", - "column", - "grouped-bar", - "stacked-bar", - "line", - "area", - "stacked-area", - "step-line", - "pie", - "donut", - "funnel", - "scatter", - "bubble", - "treemap", - "sunburst", - "sankey", - "gauge", - "metric", - "kpi", - "choropleth", - "bubble-map", - "heatmap", - "radar", - "waterfall", - "box-plot", - "violin", - "table", - "pivot" - ], - "default": "metric", - "description": "Visualization type" - }, - "chartConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "bar", - "horizontal-bar", - "column", - "grouped-bar", - "stacked-bar", - "line", - "area", - "stacked-area", - "step-line", - "pie", - "donut", - "funnel", - "scatter", - "bubble", - "treemap", - "sunburst", - "sankey", - "gauge", - "metric", - "kpi", - "choropleth", - "bubble-map", - "heatmap", - "radar", - "waterfall", - "box-plot", - "violin", - "table", - "pivot" - ] - }, - "title": { - "type": "string", - "description": "Chart title" - }, - "description": { - "type": "string", - "description": "Chart description" - }, - "showLegend": { - "type": "boolean", - "default": true, - "description": "Display legend" - }, - "showDataLabels": { - "type": "boolean", - "default": false, - "description": "Display data labels on chart" - }, - "colors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Custom color palette" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Chart visualization configuration" - }, - "object": { - "type": "string", - "description": "Data source object name" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Data filter criteria" - }, - "categoryField": { - "type": "string", - "description": "Field for grouping (X-Axis)" - }, - "valueField": { - "type": "string", - "description": "Field for values (Y-Axis)" - }, - "aggregate": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max" - ], - "default": "count", - "description": "Aggregate function" - }, - "layout": { - "type": "object", - "properties": { - "x": { - "type": "number" - }, - "y": { - "type": "number" - }, - "w": { - "type": "number" - }, - "h": { - "type": "number" - } - }, - "required": [ - "x", - "y", - "w", - "h" - ], - "additionalProperties": false, - "description": "Grid layout position" - }, - "options": { - "description": "Widget specific configuration" - } - }, - "required": [ - "layout" - ], - "additionalProperties": false - }, - "description": "Widgets to display" - } - }, - "required": [ - "name", - "label", - "widgets" - ], - "additionalProperties": false - } + "Dashboard": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/DashboardNavItem.json b/packages/spec/json-schema/ui/DashboardNavItem.json index b923cfb6b..5d87c6541 100644 --- a/packages/spec/json-schema/ui/DashboardNavItem.json +++ b/packages/spec/json-schema/ui/DashboardNavItem.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/DashboardNavItem", "definitions": { - "DashboardNavItem": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "dashboard" - }, - "dashboardName": { - "type": "string", - "description": "Target dashboard name" - } - }, - "required": [ - "id", - "label", - "type", - "dashboardName" - ], - "additionalProperties": false - } + "DashboardNavItem": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/DashboardWidget.json b/packages/spec/json-schema/ui/DashboardWidget.json index 5b8c23bf6..bc5325db8 100644 --- a/packages/spec/json-schema/ui/DashboardWidget.json +++ b/packages/spec/json-schema/ui/DashboardWidget.json @@ -1,199 +1,7 @@ { "$ref": "#/definitions/DashboardWidget", "definitions": { - "DashboardWidget": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Widget title" - }, - "type": { - "type": "string", - "enum": [ - "bar", - "horizontal-bar", - "column", - "grouped-bar", - "stacked-bar", - "line", - "area", - "stacked-area", - "step-line", - "pie", - "donut", - "funnel", - "scatter", - "bubble", - "treemap", - "sunburst", - "sankey", - "gauge", - "metric", - "kpi", - "choropleth", - "bubble-map", - "heatmap", - "radar", - "waterfall", - "box-plot", - "violin", - "table", - "pivot" - ], - "default": "metric", - "description": "Visualization type" - }, - "chartConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "bar", - "horizontal-bar", - "column", - "grouped-bar", - "stacked-bar", - "line", - "area", - "stacked-area", - "step-line", - "pie", - "donut", - "funnel", - "scatter", - "bubble", - "treemap", - "sunburst", - "sankey", - "gauge", - "metric", - "kpi", - "choropleth", - "bubble-map", - "heatmap", - "radar", - "waterfall", - "box-plot", - "violin", - "table", - "pivot" - ] - }, - "title": { - "type": "string", - "description": "Chart title" - }, - "description": { - "type": "string", - "description": "Chart description" - }, - "showLegend": { - "type": "boolean", - "default": true, - "description": "Display legend" - }, - "showDataLabels": { - "type": "boolean", - "default": false, - "description": "Display data labels on chart" - }, - "colors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Custom color palette" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Chart visualization configuration" - }, - "object": { - "type": "string", - "description": "Data source object name" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Data filter criteria" - }, - "categoryField": { - "type": "string", - "description": "Field for grouping (X-Axis)" - }, - "valueField": { - "type": "string", - "description": "Field for values (Y-Axis)" - }, - "aggregate": { - "type": "string", - "enum": [ - "count", - "sum", - "avg", - "min", - "max" - ], - "default": "count", - "description": "Aggregate function" - }, - "layout": { - "type": "object", - "properties": { - "x": { - "type": "number" - }, - "y": { - "type": "number" - }, - "w": { - "type": "number" - }, - "h": { - "type": "number" - } - }, - "required": [ - "x", - "y", - "w", - "h" - ], - "additionalProperties": false, - "description": "Grid layout position" - }, - "options": { - "description": "Widget specific configuration" - } - }, - "required": [ - "layout" - ], - "additionalProperties": false - } + "DashboardWidget": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/FieldWidgetProps.json b/packages/spec/json-schema/ui/FieldWidgetProps.json index 6ce31c3f1..348af2bc7 100644 --- a/packages/spec/json-schema/ui/FieldWidgetProps.json +++ b/packages/spec/json-schema/ui/FieldWidgetProps.json @@ -1,898 +1,7 @@ { "$ref": "#/definitions/FieldWidgetProps", "definitions": { - "FieldWidgetProps": { - "type": "object", - "properties": { - "value": { - "description": "Current field value" - }, - "readonly": { - "type": "boolean", - "default": false, - "description": "Read-only mode flag" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Required field flag" - }, - "error": { - "type": "string", - "description": "Validation error message" - }, - "field": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Machine name (snake_case)" - }, - "label": { - "type": "string", - "description": "Human readable label" - }, - "type": { - "type": "string", - "enum": [ - "text", - "textarea", - "email", - "url", - "phone", - "password", - "markdown", - "html", - "richtext", - "number", - "currency", - "percent", - "date", - "datetime", - "time", - "boolean", - "toggle", - "select", - "multiselect", - "radio", - "checkboxes", - "lookup", - "master_detail", - "tree", - "image", - "file", - "avatar", - "video", - "audio", - "formula", - "summary", - "autonumber", - "location", - "address", - "code", - "json", - "color", - "rating", - "slider", - "signature", - "qrcode", - "progress", - "tags", - "vector" - ], - "description": "Field Data Type" - }, - "description": { - "type": "string", - "description": "Tooltip/Help text" - }, - "format": { - "type": "string", - "description": "Format string (e.g. email, phone)" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Is required" - }, - "searchable": { - "type": "boolean", - "default": false, - "description": "Is searchable" - }, - "multiple": { - "type": "boolean", - "default": false, - "description": "Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image." - }, - "unique": { - "type": "boolean", - "default": false, - "description": "Is unique constraint" - }, - "defaultValue": { - "description": "Default value" - }, - "maxLength": { - "type": "number", - "description": "Max character length" - }, - "minLength": { - "type": "number", - "description": "Min character length" - }, - "precision": { - "type": "number", - "description": "Total digits" - }, - "scale": { - "type": "number", - "description": "Decimal places" - }, - "min": { - "type": "number", - "description": "Minimum value" - }, - "max": { - "type": "number", - "description": "Maximum value" - }, - "options": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Display label (human-readable, any case allowed)" - }, - "value": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_.]*$", - "description": "Stored value (lowercase machine identifier)" - }, - "color": { - "type": "string", - "description": "Color code for badges/charts" - }, - "default": { - "type": "boolean", - "description": "Is default option" - } - }, - "required": [ - "label", - "value" - ], - "additionalProperties": false - }, - "description": "Static options for select/multiselect" - }, - "reference": { - "type": "string", - "description": "Target Object Name" - }, - "referenceFilters": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filters applied to lookup dialogs (e.g. \"active = true\")" - }, - "writeRequiresMasterRead": { - "type": "boolean", - "description": "If true, user needs read access to master record to edit this field" - }, - "deleteBehavior": { - "type": "string", - "enum": [ - "set_null", - "cascade", - "restrict" - ], - "default": "set_null", - "description": "What happens if referenced record is deleted" - }, - "expression": { - "type": "string", - "description": "Formula expression" - }, - "formula": { - "type": "string", - "description": "Deprecated: Use expression" - }, - "summaryOperations": { - "type": "object", - "properties": { - "object": { - "type": "string" - }, - "field": { - "type": "string" - }, - "function": { - "type": "string", - "enum": [ - "count", - "sum", - "min", - "max", - "avg" - ] - } - }, - "required": [ - "object", - "field", - "function" - ], - "additionalProperties": false, - "description": "Roll-up summary definition" - }, - "language": { - "type": "string", - "description": "Programming language for syntax highlighting (e.g., javascript, python, sql)" - }, - "theme": { - "type": "string", - "description": "Code editor theme (e.g., dark, light, monokai)" - }, - "lineNumbers": { - "type": "boolean", - "description": "Show line numbers in code editor" - }, - "maxRating": { - "type": "number", - "description": "Maximum rating value (default: 5)" - }, - "allowHalf": { - "type": "boolean", - "description": "Allow half-star ratings" - }, - "displayMap": { - "type": "boolean", - "description": "Display map widget for location field" - }, - "allowGeocoding": { - "type": "boolean", - "description": "Allow address-to-coordinate conversion" - }, - "addressFormat": { - "type": "string", - "enum": [ - "us", - "uk", - "international" - ], - "description": "Address format template" - }, - "colorFormat": { - "type": "string", - "enum": [ - "hex", - "rgb", - "rgba", - "hsl" - ], - "description": "Color value format" - }, - "allowAlpha": { - "type": "boolean", - "description": "Allow transparency/alpha channel" - }, - "presetColors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Preset color options" - }, - "step": { - "type": "number", - "description": "Step increment for slider (default: 1)" - }, - "showValue": { - "type": "boolean", - "description": "Display current value on slider" - }, - "marks": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})" - }, - "barcodeFormat": { - "type": "string", - "enum": [ - "qr", - "ean13", - "ean8", - "code128", - "code39", - "upca", - "upce" - ], - "description": "Barcode format type" - }, - "qrErrorCorrection": { - "type": "string", - "enum": [ - "L", - "M", - "Q", - "H" - ], - "description": "QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\"" - }, - "displayValue": { - "type": "boolean", - "description": "Display human-readable value below barcode/QR code" - }, - "allowScanning": { - "type": "boolean", - "description": "Enable camera scanning for barcode/QR code input" - }, - "currencyConfig": { - "type": "object", - "properties": { - "precision": { - "type": "integer", - "minimum": 0, - "maximum": 10, - "default": 2, - "description": "Decimal precision (default: 2)" - }, - "currencyMode": { - "type": "string", - "enum": [ - "dynamic", - "fixed" - ], - "default": "dynamic", - "description": "Currency mode: dynamic (user selectable) or fixed (single currency)" - }, - "defaultCurrency": { - "type": "string", - "minLength": 3, - "maxLength": 3, - "default": "CNY", - "description": "Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)" - } - }, - "additionalProperties": false, - "description": "Configuration for currency field type" - }, - "vectorConfig": { - "type": "object", - "properties": { - "dimensions": { - "type": "integer", - "minimum": 1, - "maximum": 10000, - "description": "Vector dimensionality (e.g., 1536 for OpenAI embeddings)" - }, - "distanceMetric": { - "type": "string", - "enum": [ - "cosine", - "euclidean", - "dotProduct", - "manhattan" - ], - "default": "cosine", - "description": "Distance/similarity metric for vector search" - }, - "normalized": { - "type": "boolean", - "default": false, - "description": "Whether vectors are normalized (unit length)" - }, - "indexed": { - "type": "boolean", - "default": true, - "description": "Whether to create a vector index for fast similarity search" - }, - "indexType": { - "type": "string", - "enum": [ - "hnsw", - "ivfflat", - "flat" - ], - "description": "Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)" - } - }, - "required": [ - "dimensions" - ], - "additionalProperties": false, - "description": "Configuration for vector field type (AI/ML embeddings)" - }, - "fileAttachmentConfig": { - "type": "object", - "properties": { - "minSize": { - "type": "number", - "minimum": 0, - "description": "Minimum file size in bytes" - }, - "maxSize": { - "type": "number", - "minimum": 1, - "description": "Maximum file size in bytes (e.g., 10485760 = 10MB)" - }, - "allowedTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed file extensions (e.g., [\".pdf\", \".docx\", \".jpg\"])" - }, - "blockedTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked file extensions (e.g., [\".exe\", \".bat\", \".sh\"])" - }, - "allowedMimeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Allowed MIME types (e.g., [\"image/jpeg\", \"application/pdf\"])" - }, - "blockedMimeTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Blocked MIME types" - }, - "virusScan": { - "type": "boolean", - "default": false, - "description": "Enable virus scanning for uploaded files" - }, - "virusScanProvider": { - "type": "string", - "enum": [ - "clamav", - "virustotal", - "metadefender", - "custom" - ], - "description": "Virus scanning service provider" - }, - "virusScanOnUpload": { - "type": "boolean", - "default": true, - "description": "Scan files immediately on upload" - }, - "quarantineOnThreat": { - "type": "boolean", - "default": true, - "description": "Quarantine files if threat detected" - }, - "storageProvider": { - "type": "string", - "description": "Object storage provider name (references ObjectStorageConfig)" - }, - "storageBucket": { - "type": "string", - "description": "Target bucket name" - }, - "storagePrefix": { - "type": "string", - "description": "Storage path prefix (e.g., \"uploads/documents/\")" - }, - "imageValidation": { - "type": "object", - "properties": { - "minWidth": { - "type": "number", - "minimum": 1, - "description": "Minimum image width in pixels" - }, - "maxWidth": { - "type": "number", - "minimum": 1, - "description": "Maximum image width in pixels" - }, - "minHeight": { - "type": "number", - "minimum": 1, - "description": "Minimum image height in pixels" - }, - "maxHeight": { - "type": "number", - "minimum": 1, - "description": "Maximum image height in pixels" - }, - "aspectRatio": { - "type": "string", - "description": "Required aspect ratio (e.g., \"16:9\", \"1:1\")" - }, - "generateThumbnails": { - "type": "boolean", - "default": false, - "description": "Auto-generate thumbnails" - }, - "thumbnailSizes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Thumbnail variant name (e.g., \"small\", \"medium\", \"large\")" - }, - "width": { - "type": "number", - "minimum": 1, - "description": "Thumbnail width in pixels" - }, - "height": { - "type": "number", - "minimum": 1, - "description": "Thumbnail height in pixels" - }, - "crop": { - "type": "boolean", - "default": false, - "description": "Crop to exact dimensions" - } - }, - "required": [ - "name", - "width", - "height" - ], - "additionalProperties": false - }, - "description": "Thumbnail size configurations" - }, - "preserveMetadata": { - "type": "boolean", - "default": false, - "description": "Preserve EXIF metadata" - }, - "autoRotate": { - "type": "boolean", - "default": true, - "description": "Auto-rotate based on EXIF orientation" - } - }, - "additionalProperties": false, - "description": "Image-specific validation rules" - }, - "allowMultiple": { - "type": "boolean", - "default": false, - "description": "Allow multiple file uploads (overrides field.multiple)" - }, - "allowReplace": { - "type": "boolean", - "default": true, - "description": "Allow replacing existing files" - }, - "allowDelete": { - "type": "boolean", - "default": true, - "description": "Allow deleting uploaded files" - }, - "requireUpload": { - "type": "boolean", - "default": false, - "description": "Require at least one file when field is required" - }, - "extractMetadata": { - "type": "boolean", - "default": true, - "description": "Extract file metadata (name, size, type, etc.)" - }, - "extractText": { - "type": "boolean", - "default": false, - "description": "Extract text content from documents (OCR/parsing)" - }, - "versioningEnabled": { - "type": "boolean", - "default": false, - "description": "Keep previous versions of replaced files" - }, - "maxVersions": { - "type": "number", - "minimum": 1, - "description": "Maximum number of versions to retain" - }, - "publicRead": { - "type": "boolean", - "default": false, - "description": "Allow public read access to uploaded files" - }, - "presignedUrlExpiry": { - "type": "number", - "minimum": 60, - "maximum": 604800, - "default": 3600, - "description": "Presigned URL expiration in seconds (default: 1 hour)" - } - }, - "additionalProperties": false, - "description": "Configuration for file and attachment field types" - }, - "encryptionConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "algorithm": { - "type": "string", - "enum": [ - "aes-256-gcm", - "aes-256-cbc", - "chacha20-poly1305" - ], - "default": "aes-256-gcm" - }, - "keyManagement": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "enum": [ - "local", - "aws-kms", - "azure-key-vault", - "gcp-kms", - "hashicorp-vault" - ] - }, - "keyId": { - "type": "string" - }, - "rotationPolicy": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "default": false - }, - "frequencyDays": { - "type": "number", - "minimum": 1, - "default": 90 - }, - "retainOldVersions": { - "type": "number", - "default": 3 - }, - "autoRotate": { - "type": "boolean", - "default": true - } - }, - "additionalProperties": false - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - "scope": { - "type": "string", - "enum": [ - "field", - "record", - "table", - "database" - ] - }, - "deterministicEncryption": { - "type": "boolean", - "default": false, - "description": "Allows equality queries on encrypted data" - }, - "searchableEncryption": { - "type": "boolean", - "default": false, - "description": "Allows search on encrypted data" - } - }, - "required": [ - "keyManagement", - "scope" - ], - "additionalProperties": false, - "description": "Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)" - }, - "maskingRule": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "strategy": { - "type": "string", - "enum": [ - "redact", - "partial", - "hash", - "tokenize", - "randomize", - "nullify", - "substitute" - ] - }, - "pattern": { - "type": "string", - "description": "Regex pattern for partial masking" - }, - "preserveFormat": { - "type": "boolean", - "default": true - }, - "preserveLength": { - "type": "boolean", - "default": true - }, - "roles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that see masked data" - }, - "exemptRoles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Roles that see unmasked data" - } - }, - "required": [ - "field", - "strategy" - ], - "additionalProperties": false, - "description": "Data masking rules for PII protection" - }, - "auditTrail": { - "type": "boolean", - "default": false, - "description": "Enable detailed audit trail for this field (tracks all changes with user and timestamp)" - }, - "dependencies": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of field names that this field depends on (for formulas, visibility rules, etc.)" - }, - "cached": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Enable caching for computed field results" - }, - "ttl": { - "type": "number", - "minimum": 0, - "description": "Cache TTL in seconds (0 = no expiration)" - }, - "invalidateOn": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Field paths that invalidate cache (e.g., [\"inventory.quantity\", \"pricing.base_price\"])" - } - }, - "required": [ - "enabled", - "ttl", - "invalidateOn" - ], - "additionalProperties": false, - "description": "Caching configuration for computed/formula fields" - }, - "dataQuality": { - "type": "object", - "properties": { - "uniqueness": { - "type": "boolean", - "default": false, - "description": "Enforce unique values across all records" - }, - "completeness": { - "type": "number", - "minimum": 0, - "maximum": 1, - "default": 0, - "description": "Minimum ratio of non-null values (0-1, default: 0 = no requirement)" - }, - "accuracy": { - "type": "object", - "properties": { - "source": { - "type": "string", - "description": "Reference data source for validation (e.g., \"api.verify.com\", \"master_data\")" - }, - "threshold": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)" - } - }, - "required": [ - "source", - "threshold" - ], - "additionalProperties": false, - "description": "Accuracy validation configuration" - } - }, - "additionalProperties": false, - "description": "Data quality validation and monitoring rules" - }, - "hidden": { - "type": "boolean", - "default": false, - "description": "Hidden from default UI" - }, - "readonly": { - "type": "boolean", - "default": false, - "description": "Read-only in UI" - }, - "encryption": { - "type": "boolean", - "default": false, - "description": "Deprecated: Use encryptionConfig for enhanced encryption features. Simple flag for backward compatibility." - }, - "index": { - "type": "boolean", - "default": false, - "description": "Create standard database index" - }, - "externalId": { - "type": "boolean", - "default": false, - "description": "Is external ID for upsert operations" - } - }, - "required": [ - "type" - ], - "additionalProperties": false, - "description": "Field schema definition" - }, - "record": { - "type": "object", - "additionalProperties": {}, - "description": "Complete record data" - }, - "options": { - "type": "object", - "additionalProperties": {}, - "description": "Custom widget options" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } + "FieldWidgetProps": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/FormField.json b/packages/spec/json-schema/ui/FormField.json index f8bfdf621..3869d9074 100644 --- a/packages/spec/json-schema/ui/FormField.json +++ b/packages/spec/json-schema/ui/FormField.json @@ -1,61 +1,7 @@ { "$ref": "#/definitions/FormField", "definitions": { - "FormField": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - }, - "helpText": { - "type": "string", - "description": "Help/hint text" - }, - "readonly": { - "type": "boolean", - "description": "Read-only override" - }, - "required": { - "type": "boolean", - "description": "Required override" - }, - "hidden": { - "type": "boolean", - "description": "Hidden override" - }, - "colSpan": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "description": "Column span in grid layout (1-4)" - }, - "widget": { - "type": "string", - "description": "Custom widget/component name" - }, - "dependsOn": { - "type": "string", - "description": "Parent field name for cascading" - }, - "visibleOn": { - "type": "string", - "description": "Visibility condition expression" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } + "FormField": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/FormSection.json b/packages/spec/json-schema/ui/FormSection.json index 1b0289e96..dac469e23 100644 --- a/packages/spec/json-schema/ui/FormSection.json +++ b/packages/spec/json-schema/ui/FormSection.json @@ -1,101 +1,7 @@ { "$ref": "#/definitions/FormSection", "definitions": { - "FormSection": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "collapsible": { - "type": "boolean", - "default": false - }, - "collapsed": { - "type": "boolean", - "default": false - }, - "columns": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4" - ], - "default": "2" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - }, - "helpText": { - "type": "string", - "description": "Help/hint text" - }, - "readonly": { - "type": "boolean", - "description": "Read-only override" - }, - "required": { - "type": "boolean", - "description": "Required override" - }, - "hidden": { - "type": "boolean", - "description": "Hidden override" - }, - "colSpan": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "description": "Column span in grid layout (1-4)" - }, - "widget": { - "type": "string", - "description": "Custom widget/component name" - }, - "dependsOn": { - "type": "string", - "description": "Parent field name for cascading" - }, - "visibleOn": { - "type": "string", - "description": "Visibility condition expression" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - } - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - } + "FormSection": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/FormView.json b/packages/spec/json-schema/ui/FormView.json index e2f57d938..d1385d94c 100644 --- a/packages/spec/json-schema/ui/FormView.json +++ b/packages/spec/json-schema/ui/FormView.json @@ -1,357 +1,7 @@ { "$ref": "#/definitions/FormView", "definitions": { - "FormView": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "simple", - "tabbed", - "wizard", - "split", - "drawer", - "modal" - ], - "default": "simple" - }, - "data": { - "anyOf": [ - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "object" - }, - "object": { - "type": "string", - "description": "Target object name" - } - }, - "required": [ - "provider", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "api" - }, - "read": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for fetching data" - }, - "write": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for submitting data (for forms/editable tables)" - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "value" - }, - "items": { - "type": "array", - "items": {}, - "description": "Static data array" - } - }, - "required": [ - "provider", - "items" - ], - "additionalProperties": false - } - ], - "description": "Data source configuration (defaults to \"object\" provider)" - }, - "sections": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "collapsible": { - "type": "boolean", - "default": false - }, - "collapsed": { - "type": "boolean", - "default": false - }, - "columns": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4" - ], - "default": "2" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - }, - "helpText": { - "type": "string", - "description": "Help/hint text" - }, - "readonly": { - "type": "boolean", - "description": "Read-only override" - }, - "required": { - "type": "boolean", - "description": "Required override" - }, - "hidden": { - "type": "boolean", - "description": "Hidden override" - }, - "colSpan": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "description": "Column span in grid layout (1-4)" - }, - "widget": { - "type": "string", - "description": "Custom widget/component name" - }, - "dependsOn": { - "type": "string", - "description": "Parent field name for cascading" - }, - "visibleOn": { - "type": "string", - "description": "Visibility condition expression" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - } - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - } - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "collapsible": { - "type": "boolean", - "default": false - }, - "collapsed": { - "type": "boolean", - "default": false - }, - "columns": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4" - ], - "default": "2" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - }, - "helpText": { - "type": "string", - "description": "Help/hint text" - }, - "readonly": { - "type": "boolean", - "description": "Read-only override" - }, - "required": { - "type": "boolean", - "description": "Required override" - }, - "hidden": { - "type": "boolean", - "description": "Hidden override" - }, - "colSpan": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "description": "Column span in grid layout (1-4)" - }, - "widget": { - "type": "string", - "description": "Custom widget/component name" - }, - "dependsOn": { - "type": "string", - "description": "Parent field name for cascading" - }, - "visibleOn": { - "type": "string", - "description": "Visibility condition expression" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - } - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false - } + "FormView": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/GanttConfig.json b/packages/spec/json-schema/ui/GanttConfig.json index a7b87acfd..135339021 100644 --- a/packages/spec/json-schema/ui/GanttConfig.json +++ b/packages/spec/json-schema/ui/GanttConfig.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/GanttConfig", "definitions": { - "GanttConfig": { - "type": "object", - "properties": { - "startDateField": { - "type": "string" - }, - "endDateField": { - "type": "string" - }, - "titleField": { - "type": "string" - }, - "progressField": { - "type": "string" - }, - "dependenciesField": { - "type": "string" - } - }, - "required": [ - "startDateField", - "endDateField", - "titleField" - ], - "additionalProperties": false - } + "GanttConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/GroupNavItem.json b/packages/spec/json-schema/ui/GroupNavItem.json index cdab19e62..d3e2e27b9 100644 --- a/packages/spec/json-schema/ui/GroupNavItem.json +++ b/packages/spec/json-schema/ui/GroupNavItem.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/GroupNavItem", "definitions": { - "GroupNavItem": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "group" - }, - "expanded": { - "type": "boolean", - "default": false, - "description": "Default expansion state in sidebar" - } - }, - "required": [ - "id", - "label", - "type" - ], - "additionalProperties": false - } + "GroupNavItem": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/HttpMethod.json b/packages/spec/json-schema/ui/HttpMethod.json index 4036e3350..8b4b271a0 100644 --- a/packages/spec/json-schema/ui/HttpMethod.json +++ b/packages/spec/json-schema/ui/HttpMethod.json @@ -1,16 +1,7 @@ { "$ref": "#/definitions/HttpMethod", "definitions": { - "HttpMethod": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ] - } + "HttpMethod": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/HttpRequest.json b/packages/spec/json-schema/ui/HttpRequest.json index b95a99894..6663ab7e3 100644 --- a/packages/spec/json-schema/ui/HttpRequest.json +++ b/packages/spec/json-schema/ui/HttpRequest.json @@ -1,46 +1,7 @@ { "$ref": "#/definitions/HttpRequest", "definitions": { - "HttpRequest": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false - } + "HttpRequest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/KanbanConfig.json b/packages/spec/json-schema/ui/KanbanConfig.json index e44bc8f2b..4a76c3c85 100644 --- a/packages/spec/json-schema/ui/KanbanConfig.json +++ b/packages/spec/json-schema/ui/KanbanConfig.json @@ -1,31 +1,7 @@ { "$ref": "#/definitions/KanbanConfig", "definitions": { - "KanbanConfig": { - "type": "object", - "properties": { - "groupByField": { - "type": "string", - "description": "Field to group columns by (usually status/select)" - }, - "summarizeField": { - "type": "string", - "description": "Field to sum at top of column (e.g. amount)" - }, - "columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to show on cards" - } - }, - "required": [ - "groupByField", - "columns" - ], - "additionalProperties": false - } + "KanbanConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ListColumn.json b/packages/spec/json-schema/ui/ListColumn.json index f3ed157f8..4e763c0dc 100644 --- a/packages/spec/json-schema/ui/ListColumn.json +++ b/packages/spec/json-schema/ui/ListColumn.json @@ -1,57 +1,7 @@ { "$ref": "#/definitions/ListColumn", "definitions": { - "ListColumn": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "width": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Column width in pixels" - }, - "align": { - "type": "string", - "enum": [ - "left", - "center", - "right" - ], - "description": "Text alignment" - }, - "hidden": { - "type": "boolean", - "description": "Hide column by default" - }, - "sortable": { - "type": "boolean", - "description": "Allow sorting by this column" - }, - "resizable": { - "type": "boolean", - "description": "Allow resizing this column" - }, - "wrap": { - "type": "boolean", - "description": "Allow text wrapping" - }, - "type": { - "type": "string", - "description": "Renderer type override (e.g., \"currency\", \"date\")" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } + "ListColumn": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ListView.json b/packages/spec/json-schema/ui/ListView.json index ed36a8ff1..7fab07920 100644 --- a/packages/spec/json-schema/ui/ListView.json +++ b/packages/spec/json-schema/ui/ListView.json @@ -1,404 +1,7 @@ { "$ref": "#/definitions/ListView", "definitions": { - "ListView": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Internal view name (lowercase snake_case)" - }, - "label": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "grid", - "spreadsheet", - "kanban", - "gallery", - "calendar", - "timeline", - "gantt", - "map" - ], - "default": "grid" - }, - "data": { - "anyOf": [ - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "object" - }, - "object": { - "type": "string", - "description": "Target object name" - } - }, - "required": [ - "provider", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "api" - }, - "read": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for fetching data" - }, - "write": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for submitting data (for forms/editable tables)" - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "value" - }, - "items": { - "type": "array", - "items": {}, - "description": "Static data array" - } - }, - "required": [ - "provider", - "items" - ], - "additionalProperties": false - } - ], - "description": "Data source configuration (defaults to \"object\" provider)" - }, - "columns": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "width": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Column width in pixels" - }, - "align": { - "type": "string", - "enum": [ - "left", - "center", - "right" - ], - "description": "Text alignment" - }, - "hidden": { - "type": "boolean", - "description": "Hide column by default" - }, - "sortable": { - "type": "boolean", - "description": "Allow sorting by this column" - }, - "resizable": { - "type": "boolean", - "description": "Allow resizing this column" - }, - "wrap": { - "type": "boolean", - "description": "Allow text wrapping" - }, - "type": { - "type": "string", - "description": "Renderer type override (e.g., \"currency\", \"date\")" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Fields to display as columns" - }, - "filter": { - "type": "array", - "description": "Filter criteria (JSON Rules)" - }, - "sort": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - "required": [ - "field", - "order" - ], - "additionalProperties": false - } - } - ] - }, - "searchableFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields enabled for search" - }, - "resizable": { - "type": "boolean", - "description": "Enable column resizing" - }, - "striped": { - "type": "boolean", - "description": "Striped row styling" - }, - "bordered": { - "type": "boolean", - "description": "Show borders" - }, - "selection": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "single", - "multiple" - ], - "default": "none", - "description": "Selection mode" - } - }, - "additionalProperties": false, - "description": "Row selection configuration" - }, - "pagination": { - "type": "object", - "properties": { - "pageSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 25, - "description": "Number of records per page" - }, - "pageSizeOptions": { - "type": "array", - "items": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "description": "Available page size options" - } - }, - "additionalProperties": false, - "description": "Pagination configuration" - }, - "kanban": { - "type": "object", - "properties": { - "groupByField": { - "type": "string", - "description": "Field to group columns by (usually status/select)" - }, - "summarizeField": { - "type": "string", - "description": "Field to sum at top of column (e.g. amount)" - }, - "columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to show on cards" - } - }, - "required": [ - "groupByField", - "columns" - ], - "additionalProperties": false - }, - "calendar": { - "type": "object", - "properties": { - "startDateField": { - "type": "string" - }, - "endDateField": { - "type": "string" - }, - "titleField": { - "type": "string" - }, - "colorField": { - "type": "string" - } - }, - "required": [ - "startDateField", - "titleField" - ], - "additionalProperties": false - }, - "gantt": { - "type": "object", - "properties": { - "startDateField": { - "type": "string" - }, - "endDateField": { - "type": "string" - }, - "titleField": { - "type": "string" - }, - "progressField": { - "type": "string" - }, - "dependenciesField": { - "type": "string" - } - }, - "required": [ - "startDateField", - "endDateField", - "titleField" - ], - "additionalProperties": false - } - }, - "required": [ - "columns" - ], - "additionalProperties": false - } + "ListView": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/NavigationItem.json b/packages/spec/json-schema/ui/NavigationItem.json index 65a32315f..86e64f1c7 100644 --- a/packages/spec/json-schema/ui/NavigationItem.json +++ b/packages/spec/json-schema/ui/NavigationItem.json @@ -1,224 +1,7 @@ { "$ref": "#/definitions/NavigationItem", "definitions": { - "NavigationItem": { - "anyOf": [ - { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "object" - }, - "objectName": { - "type": "string", - "description": "Target object name" - }, - "viewName": { - "type": "string", - "description": "Default list view to open. Defaults to \"all\"" - } - }, - "required": [ - "id", - "label", - "type", - "objectName" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "dashboard" - }, - "dashboardName": { - "type": "string", - "description": "Target dashboard name" - } - }, - "required": [ - "id", - "label", - "type", - "dashboardName" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "page" - }, - "pageName": { - "type": "string", - "description": "Target custom page component name" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Parameters passed to the page context" - } - }, - "required": [ - "id", - "label", - "type", - "pageName" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "url" - }, - "url": { - "type": "string", - "description": "Target external URL" - }, - "target": { - "type": "string", - "enum": [ - "_self", - "_blank" - ], - "default": "_self", - "description": "Link target window" - } - }, - "required": [ - "id", - "label", - "type", - "url" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "group" - }, - "expanded": { - "type": "boolean", - "default": false, - "description": "Default expansion state in sidebar" - }, - "children": { - "type": "array", - "items": {}, - "description": "Child navigation items" - } - }, - "required": [ - "id", - "label", - "type", - "children" - ], - "additionalProperties": false - } - ] - } + "NavigationItem": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ObjectNavItem.json b/packages/spec/json-schema/ui/ObjectNavItem.json index e6f6ebfef..05256e2fb 100644 --- a/packages/spec/json-schema/ui/ObjectNavItem.json +++ b/packages/spec/json-schema/ui/ObjectNavItem.json @@ -1,48 +1,7 @@ { "$ref": "#/definitions/ObjectNavItem", "definitions": { - "ObjectNavItem": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "object" - }, - "objectName": { - "type": "string", - "description": "Target object name" - }, - "viewName": { - "type": "string", - "description": "Default list view to open. Defaults to \"all\"" - } - }, - "required": [ - "id", - "label", - "type", - "objectName" - ], - "additionalProperties": false - } + "ObjectNavItem": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/Page.json b/packages/spec/json-schema/ui/Page.json index 3a12703c3..fbef9864f 100644 --- a/packages/spec/json-schema/ui/Page.json +++ b/packages/spec/json-schema/ui/Page.json @@ -1,149 +1,7 @@ { "$ref": "#/definitions/Page", "definitions": { - "Page": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Page unique name (lowercase snake_case)" - }, - "label": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "record", - "home", - "app", - "utility" - ], - "default": "record" - }, - "object": { - "type": "string", - "description": "Bound object (for Record pages)" - }, - "template": { - "type": "string", - "default": "default", - "description": "Layout template name (e.g. \"header-sidebar-main\")" - }, - "regions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Region name (e.g. \"sidebar\", \"main\", \"header\")" - }, - "width": { - "type": "string", - "enum": [ - "small", - "medium", - "large", - "full" - ] - }, - "components": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "page:header", - "page:footer", - "page:sidebar", - "page:tabs", - "page:accordion", - "page:card", - "page:section", - "record:details", - "record:highlights", - "record:related_list", - "record:activity", - "record:chatter", - "record:path", - "app:launcher", - "nav:menu", - "nav:breadcrumb", - "global:search", - "global:notifications", - "user:profile", - "ai:chat_window", - "ai:suggestion" - ] - }, - { - "type": "string" - } - ], - "description": "Component Type (Standard enum or custom string)" - }, - "id": { - "type": "string", - "description": "Unique instance ID" - }, - "label": { - "type": "string" - }, - "properties": { - "type": "object", - "additionalProperties": {}, - "description": "Component props passed to the widget. See component.zod.ts for schemas." - }, - "visibility": { - "type": "string", - "description": "Visibility filter/formula" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - "description": "Components in this region" - } - }, - "required": [ - "name", - "components" - ], - "additionalProperties": false - }, - "description": "Defined regions with components" - }, - "isDefault": { - "type": "boolean", - "default": false - }, - "assignedProfiles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "name", - "label", - "regions" - ], - "additionalProperties": false - } + "Page": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/PageCardProps.json b/packages/spec/json-schema/ui/PageCardProps.json index 6107b3e5e..4eb8a480b 100644 --- a/packages/spec/json-schema/ui/PageCardProps.json +++ b/packages/spec/json-schema/ui/PageCardProps.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/PageCardProps", "definitions": { - "PageCardProps": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "bordered": { - "type": "boolean", - "default": true - }, - "actions": { - "type": "array", - "items": { - "type": "string" - } - }, - "children": { - "type": "array", - "description": "Card content" - } - }, - "required": [ - "children" - ], - "additionalProperties": false - } + "PageCardProps": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/PageComponent.json b/packages/spec/json-schema/ui/PageComponent.json index 24fef20b6..4e445e012 100644 --- a/packages/spec/json-schema/ui/PageComponent.json +++ b/packages/spec/json-schema/ui/PageComponent.json @@ -1,66 +1,7 @@ { "$ref": "#/definitions/PageComponent", "definitions": { - "PageComponent": { - "type": "object", - "properties": { - "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "page:header", - "page:footer", - "page:sidebar", - "page:tabs", - "page:accordion", - "page:card", - "page:section", - "record:details", - "record:highlights", - "record:related_list", - "record:activity", - "record:chatter", - "record:path", - "app:launcher", - "nav:menu", - "nav:breadcrumb", - "global:search", - "global:notifications", - "user:profile", - "ai:chat_window", - "ai:suggestion" - ] - }, - { - "type": "string" - } - ], - "description": "Component Type (Standard enum or custom string)" - }, - "id": { - "type": "string", - "description": "Unique instance ID" - }, - "label": { - "type": "string" - }, - "properties": { - "type": "object", - "additionalProperties": {}, - "description": "Component props passed to the widget. See component.zod.ts for schemas." - }, - "visibility": { - "type": "string", - "description": "Visibility filter/formula" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - } + "PageComponent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/PageComponentType.json b/packages/spec/json-schema/ui/PageComponentType.json index a95d2097f..d6bd91da0 100644 --- a/packages/spec/json-schema/ui/PageComponentType.json +++ b/packages/spec/json-schema/ui/PageComponentType.json @@ -1,32 +1,7 @@ { "$ref": "#/definitions/PageComponentType", "definitions": { - "PageComponentType": { - "type": "string", - "enum": [ - "page:header", - "page:footer", - "page:sidebar", - "page:tabs", - "page:accordion", - "page:card", - "page:section", - "record:details", - "record:highlights", - "record:related_list", - "record:activity", - "record:chatter", - "record:path", - "app:launcher", - "nav:menu", - "nav:breadcrumb", - "global:search", - "global:notifications", - "user:profile", - "ai:chat_window", - "ai:suggestion" - ] - } + "PageComponentType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/PageHeaderProps.json b/packages/spec/json-schema/ui/PageHeaderProps.json index 3cf50e4bd..457576129 100644 --- a/packages/spec/json-schema/ui/PageHeaderProps.json +++ b/packages/spec/json-schema/ui/PageHeaderProps.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/PageHeaderProps", "definitions": { - "PageHeaderProps": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Page title" - }, - "subtitle": { - "type": "string", - "description": "Page subtitle" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "breadcrumb": { - "type": "boolean", - "default": true, - "description": "Show breadcrumb" - }, - "actions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Action IDs to show in header" - } - }, - "required": [ - "title" - ], - "additionalProperties": false - } + "PageHeaderProps": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/PageNavItem.json b/packages/spec/json-schema/ui/PageNavItem.json index e16ce0467..adf1e32d5 100644 --- a/packages/spec/json-schema/ui/PageNavItem.json +++ b/packages/spec/json-schema/ui/PageNavItem.json @@ -1,49 +1,7 @@ { "$ref": "#/definitions/PageNavItem", "definitions": { - "PageNavItem": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "page" - }, - "pageName": { - "type": "string", - "description": "Target custom page component name" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Parameters passed to the page context" - } - }, - "required": [ - "id", - "label", - "type", - "pageName" - ], - "additionalProperties": false - } + "PageNavItem": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/PageRegion.json b/packages/spec/json-schema/ui/PageRegion.json index 02d33437c..cd1ac1504 100644 --- a/packages/spec/json-schema/ui/PageRegion.json +++ b/packages/spec/json-schema/ui/PageRegion.json @@ -1,93 +1,7 @@ { "$ref": "#/definitions/PageRegion", "definitions": { - "PageRegion": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Region name (e.g. \"sidebar\", \"main\", \"header\")" - }, - "width": { - "type": "string", - "enum": [ - "small", - "medium", - "large", - "full" - ] - }, - "components": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "anyOf": [ - { - "type": "string", - "enum": [ - "page:header", - "page:footer", - "page:sidebar", - "page:tabs", - "page:accordion", - "page:card", - "page:section", - "record:details", - "record:highlights", - "record:related_list", - "record:activity", - "record:chatter", - "record:path", - "app:launcher", - "nav:menu", - "nav:breadcrumb", - "global:search", - "global:notifications", - "user:profile", - "ai:chat_window", - "ai:suggestion" - ] - }, - { - "type": "string" - } - ], - "description": "Component Type (Standard enum or custom string)" - }, - "id": { - "type": "string", - "description": "Unique instance ID" - }, - "label": { - "type": "string" - }, - "properties": { - "type": "object", - "additionalProperties": {}, - "description": "Component props passed to the widget. See component.zod.ts for schemas." - }, - "visibility": { - "type": "string", - "description": "Visibility filter/formula" - } - }, - "required": [ - "type", - "properties" - ], - "additionalProperties": false - }, - "description": "Components in this region" - } - }, - "required": [ - "name", - "components" - ], - "additionalProperties": false - } + "PageRegion": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/PageTabsProps.json b/packages/spec/json-schema/ui/PageTabsProps.json index 5fe21c1b6..a720219e4 100644 --- a/packages/spec/json-schema/ui/PageTabsProps.json +++ b/packages/spec/json-schema/ui/PageTabsProps.json @@ -1,55 +1,7 @@ { "$ref": "#/definitions/PageTabsProps", "definitions": { - "PageTabsProps": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "line", - "card", - "pill" - ], - "default": "line" - }, - "position": { - "type": "string", - "enum": [ - "top", - "left" - ], - "default": "top" - }, - "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "children": { - "type": "array", - "description": "Child components" - } - }, - "required": [ - "label", - "children" - ], - "additionalProperties": false - } - } - }, - "required": [ - "items" - ], - "additionalProperties": false - } + "PageTabsProps": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/PaginationConfig.json b/packages/spec/json-schema/ui/PaginationConfig.json index 663980d3b..bfe4fcdce 100644 --- a/packages/spec/json-schema/ui/PaginationConfig.json +++ b/packages/spec/json-schema/ui/PaginationConfig.json @@ -1,26 +1,7 @@ { "$ref": "#/definitions/PaginationConfig", "definitions": { - "PaginationConfig": { - "type": "object", - "properties": { - "pageSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 25, - "description": "Number of records per page" - }, - "pageSizeOptions": { - "type": "array", - "items": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "description": "Available page size options" - } - }, - "additionalProperties": false - } + "PaginationConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/RecordDetailsProps.json b/packages/spec/json-schema/ui/RecordDetailsProps.json index a8eb5281e..91a875010 100644 --- a/packages/spec/json-schema/ui/RecordDetailsProps.json +++ b/packages/spec/json-schema/ui/RecordDetailsProps.json @@ -1,37 +1,7 @@ { "$ref": "#/definitions/RecordDetailsProps", "definitions": { - "RecordDetailsProps": { - "type": "object", - "properties": { - "columns": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4" - ], - "default": "2" - }, - "layout": { - "type": "string", - "enum": [ - "auto", - "custom" - ], - "default": "auto" - }, - "sections": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Section IDs to show" - } - }, - "additionalProperties": false - } + "RecordDetailsProps": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/RecordHighlightsProps.json b/packages/spec/json-schema/ui/RecordHighlightsProps.json index d1bcea243..8b915a238 100644 --- a/packages/spec/json-schema/ui/RecordHighlightsProps.json +++ b/packages/spec/json-schema/ui/RecordHighlightsProps.json @@ -1,24 +1,7 @@ { "$ref": "#/definitions/RecordHighlightsProps", "definitions": { - "RecordHighlightsProps": { - "type": "object", - "properties": { - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 7, - "description": "Key fields to highlights (max 7)" - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - } + "RecordHighlightsProps": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/RecordRelatedListProps.json b/packages/spec/json-schema/ui/RecordRelatedListProps.json index baa28d207..c35e7b7c7 100644 --- a/packages/spec/json-schema/ui/RecordRelatedListProps.json +++ b/packages/spec/json-schema/ui/RecordRelatedListProps.json @@ -1,39 +1,7 @@ { "$ref": "#/definitions/RecordRelatedListProps", "definitions": { - "RecordRelatedListProps": { - "type": "object", - "properties": { - "objectName": { - "type": "string", - "description": "Related object name" - }, - "relationshipField": { - "type": "string", - "description": "Field on related object that points to this record" - }, - "columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to display" - }, - "sort": { - "type": "string" - }, - "limit": { - "type": "number", - "default": 5 - } - }, - "required": [ - "objectName", - "relationshipField", - "columns" - ], - "additionalProperties": false - } + "RecordRelatedListProps": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/Report.json b/packages/spec/json-schema/ui/Report.json index 318305d42..df0501f65 100644 --- a/packages/spec/json-schema/ui/Report.json +++ b/packages/spec/json-schema/ui/Report.json @@ -1,256 +1,7 @@ { "$ref": "#/definitions/Report", "definitions": { - "Report": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Report unique name" - }, - "label": { - "type": "string", - "description": "Report label" - }, - "description": { - "type": "string" - }, - "objectName": { - "type": "string", - "description": "Primary object" - }, - "type": { - "type": "string", - "enum": [ - "tabular", - "summary", - "matrix", - "joined" - ], - "default": "tabular", - "description": "Report format type" - }, - "columns": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "label": { - "type": "string", - "description": "Override label" - }, - "aggregate": { - "type": "string", - "enum": [ - "sum", - "avg", - "max", - "min", - "count", - "unique" - ], - "description": "Aggregation function" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Columns to display" - }, - "groupingsDown": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field to group by" - }, - "sortOrder": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - }, - "dateGranularity": { - "type": "string", - "enum": [ - "day", - "week", - "month", - "quarter", - "year" - ], - "description": "For date fields" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Row groupings" - }, - "groupingsAcross": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field to group by" - }, - "sortOrder": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - }, - "dateGranularity": { - "type": "string", - "enum": [ - "day", - "week", - "month", - "quarter", - "year" - ], - "description": "For date fields" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - }, - "description": "Column groupings (Matrix only)" - }, - "filter": { - "allOf": [ - { - "type": "object", - "additionalProperties": {} - }, - { - "type": "object", - "properties": { - "$and": { - "type": "array", - "items": {} - }, - "$or": { - "type": "array", - "items": {} - }, - "$not": {} - } - } - ], - "description": "Filter criteria" - }, - "chart": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "bar", - "horizontal-bar", - "column", - "grouped-bar", - "stacked-bar", - "line", - "area", - "stacked-area", - "step-line", - "pie", - "donut", - "funnel", - "scatter", - "bubble", - "treemap", - "sunburst", - "sankey", - "gauge", - "metric", - "kpi", - "choropleth", - "bubble-map", - "heatmap", - "radar", - "waterfall", - "box-plot", - "violin", - "table", - "pivot" - ] - }, - "title": { - "type": "string", - "description": "Chart title" - }, - "description": { - "type": "string", - "description": "Chart description" - }, - "showLegend": { - "type": "boolean", - "default": true, - "description": "Display legend" - }, - "showDataLabels": { - "type": "boolean", - "default": false, - "description": "Display data labels on chart" - }, - "colors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Custom color palette" - }, - "xAxis": { - "type": "string", - "description": "Grouping field for X-Axis" - }, - "yAxis": { - "type": "string", - "description": "Summary field for Y-Axis" - }, - "groupBy": { - "type": "string", - "description": "Additional grouping field" - } - }, - "required": [ - "type", - "xAxis", - "yAxis" - ], - "additionalProperties": false, - "description": "Embedded chart configuration" - } - }, - "required": [ - "name", - "label", - "objectName", - "columns" - ], - "additionalProperties": false - } + "Report": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ReportChart.json b/packages/spec/json-schema/ui/ReportChart.json index e616ab45b..ff3befd2e 100644 --- a/packages/spec/json-schema/ui/ReportChart.json +++ b/packages/spec/json-schema/ui/ReportChart.json @@ -1,88 +1,7 @@ { "$ref": "#/definitions/ReportChart", "definitions": { - "ReportChart": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "bar", - "horizontal-bar", - "column", - "grouped-bar", - "stacked-bar", - "line", - "area", - "stacked-area", - "step-line", - "pie", - "donut", - "funnel", - "scatter", - "bubble", - "treemap", - "sunburst", - "sankey", - "gauge", - "metric", - "kpi", - "choropleth", - "bubble-map", - "heatmap", - "radar", - "waterfall", - "box-plot", - "violin", - "table", - "pivot" - ] - }, - "title": { - "type": "string", - "description": "Chart title" - }, - "description": { - "type": "string", - "description": "Chart description" - }, - "showLegend": { - "type": "boolean", - "default": true, - "description": "Display legend" - }, - "showDataLabels": { - "type": "boolean", - "default": false, - "description": "Display data labels on chart" - }, - "colors": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Custom color palette" - }, - "xAxis": { - "type": "string", - "description": "Grouping field for X-Axis" - }, - "yAxis": { - "type": "string", - "description": "Summary field for Y-Axis" - }, - "groupBy": { - "type": "string", - "description": "Additional grouping field" - } - }, - "required": [ - "type", - "xAxis", - "yAxis" - ], - "additionalProperties": false - } + "ReportChart": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ReportColumn.json b/packages/spec/json-schema/ui/ReportColumn.json index 0b2f8a7de..24c809312 100644 --- a/packages/spec/json-schema/ui/ReportColumn.json +++ b/packages/spec/json-schema/ui/ReportColumn.json @@ -1,35 +1,7 @@ { "$ref": "#/definitions/ReportColumn", "definitions": { - "ReportColumn": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name" - }, - "label": { - "type": "string", - "description": "Override label" - }, - "aggregate": { - "type": "string", - "enum": [ - "sum", - "avg", - "max", - "min", - "count", - "unique" - ], - "description": "Aggregation function" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } + "ReportColumn": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ReportGrouping.json b/packages/spec/json-schema/ui/ReportGrouping.json index 11c689f4d..6b2412758 100644 --- a/packages/spec/json-schema/ui/ReportGrouping.json +++ b/packages/spec/json-schema/ui/ReportGrouping.json @@ -1,38 +1,7 @@ { "$ref": "#/definitions/ReportGrouping", "definitions": { - "ReportGrouping": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field to group by" - }, - "sortOrder": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - }, - "dateGranularity": { - "type": "string", - "enum": [ - "day", - "week", - "month", - "quarter", - "year" - ], - "description": "For date fields" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } + "ReportGrouping": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ReportType.json b/packages/spec/json-schema/ui/ReportType.json index 59dad8dba..a2041b57f 100644 --- a/packages/spec/json-schema/ui/ReportType.json +++ b/packages/spec/json-schema/ui/ReportType.json @@ -1,15 +1,7 @@ { "$ref": "#/definitions/ReportType", "definitions": { - "ReportType": { - "type": "string", - "enum": [ - "tabular", - "summary", - "matrix", - "joined" - ] - } + "ReportType": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/SelectionConfig.json b/packages/spec/json-schema/ui/SelectionConfig.json index b45a17c5e..e4b135107 100644 --- a/packages/spec/json-schema/ui/SelectionConfig.json +++ b/packages/spec/json-schema/ui/SelectionConfig.json @@ -1,22 +1,7 @@ { "$ref": "#/definitions/SelectionConfig", "definitions": { - "SelectionConfig": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "single", - "multiple" - ], - "default": "none", - "description": "Selection mode" - } - }, - "additionalProperties": false - } + "SelectionConfig": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/Shadow.json b/packages/spec/json-schema/ui/Shadow.json index 30b96ea17..037d09328 100644 --- a/packages/spec/json-schema/ui/Shadow.json +++ b/packages/spec/json-schema/ui/Shadow.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/Shadow", "definitions": { - "Shadow": { - "type": "object", - "properties": { - "none": { - "type": "string", - "description": "No shadow" - }, - "sm": { - "type": "string", - "description": "Small shadow" - }, - "base": { - "type": "string", - "description": "Base shadow" - }, - "md": { - "type": "string", - "description": "Medium shadow" - }, - "lg": { - "type": "string", - "description": "Large shadow" - }, - "xl": { - "type": "string", - "description": "Extra large shadow" - }, - "2xl": { - "type": "string", - "description": "2X large shadow" - }, - "inner": { - "type": "string", - "description": "Inner shadow (inset)" - } - }, - "additionalProperties": false - } + "Shadow": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/Spacing.json b/packages/spec/json-schema/ui/Spacing.json index 9d70891f8..0b26aca30 100644 --- a/packages/spec/json-schema/ui/Spacing.json +++ b/packages/spec/json-schema/ui/Spacing.json @@ -1,64 +1,7 @@ { "$ref": "#/definitions/Spacing", "definitions": { - "Spacing": { - "type": "object", - "properties": { - "0": { - "type": "string", - "description": "0 spacing (0)" - }, - "1": { - "type": "string", - "description": "Spacing unit 1 (e.g., 0.25rem)" - }, - "2": { - "type": "string", - "description": "Spacing unit 2 (e.g., 0.5rem)" - }, - "3": { - "type": "string", - "description": "Spacing unit 3 (e.g., 0.75rem)" - }, - "4": { - "type": "string", - "description": "Spacing unit 4 (e.g., 1rem)" - }, - "5": { - "type": "string", - "description": "Spacing unit 5 (e.g., 1.25rem)" - }, - "6": { - "type": "string", - "description": "Spacing unit 6 (e.g., 1.5rem)" - }, - "8": { - "type": "string", - "description": "Spacing unit 8 (e.g., 2rem)" - }, - "10": { - "type": "string", - "description": "Spacing unit 10 (e.g., 2.5rem)" - }, - "12": { - "type": "string", - "description": "Spacing unit 12 (e.g., 3rem)" - }, - "16": { - "type": "string", - "description": "Spacing unit 16 (e.g., 4rem)" - }, - "20": { - "type": "string", - "description": "Spacing unit 20 (e.g., 5rem)" - }, - "24": { - "type": "string", - "description": "Spacing unit 24 (e.g., 6rem)" - } - }, - "additionalProperties": false - } + "Spacing": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/Theme.json b/packages/spec/json-schema/ui/Theme.json index 92f43b884..01f3d15d3 100644 --- a/packages/spec/json-schema/ui/Theme.json +++ b/packages/spec/json-schema/ui/Theme.json @@ -1,543 +1,7 @@ { "$ref": "#/definitions/Theme", "definitions": { - "Theme": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Unique theme identifier (snake_case)" - }, - "label": { - "type": "string", - "description": "Human-readable theme name" - }, - "description": { - "type": "string", - "description": "Theme description" - }, - "mode": { - "type": "string", - "enum": [ - "light", - "dark", - "auto" - ], - "default": "light", - "description": "Theme mode (light, dark, or auto)" - }, - "colors": { - "type": "object", - "properties": { - "primary": { - "type": "string", - "description": "Primary brand color (hex, rgb, or hsl)" - }, - "secondary": { - "type": "string", - "description": "Secondary brand color" - }, - "accent": { - "type": "string", - "description": "Accent color for highlights" - }, - "success": { - "type": "string", - "description": "Success state color (default: green)" - }, - "warning": { - "type": "string", - "description": "Warning state color (default: yellow)" - }, - "error": { - "type": "string", - "description": "Error state color (default: red)" - }, - "info": { - "type": "string", - "description": "Info state color (default: blue)" - }, - "background": { - "type": "string", - "description": "Background color" - }, - "surface": { - "type": "string", - "description": "Surface/card background color" - }, - "text": { - "type": "string", - "description": "Primary text color" - }, - "textSecondary": { - "type": "string", - "description": "Secondary text color" - }, - "border": { - "type": "string", - "description": "Border color" - }, - "disabled": { - "type": "string", - "description": "Disabled state color" - }, - "primaryLight": { - "type": "string", - "description": "Lighter shade of primary" - }, - "primaryDark": { - "type": "string", - "description": "Darker shade of primary" - }, - "secondaryLight": { - "type": "string", - "description": "Lighter shade of secondary" - }, - "secondaryDark": { - "type": "string", - "description": "Darker shade of secondary" - } - }, - "required": [ - "primary" - ], - "additionalProperties": false, - "description": "Color palette configuration" - }, - "typography": { - "type": "object", - "properties": { - "fontFamily": { - "type": "object", - "properties": { - "base": { - "type": "string", - "description": "Base font family (default: system fonts)" - }, - "heading": { - "type": "string", - "description": "Heading font family" - }, - "mono": { - "type": "string", - "description": "Monospace font family for code" - } - }, - "additionalProperties": false - }, - "fontSize": { - "type": "object", - "properties": { - "xs": { - "type": "string", - "description": "Extra small font size (e.g., 0.75rem)" - }, - "sm": { - "type": "string", - "description": "Small font size (e.g., 0.875rem)" - }, - "base": { - "type": "string", - "description": "Base font size (e.g., 1rem)" - }, - "lg": { - "type": "string", - "description": "Large font size (e.g., 1.125rem)" - }, - "xl": { - "type": "string", - "description": "Extra large font size (e.g., 1.25rem)" - }, - "2xl": { - "type": "string", - "description": "2X large font size (e.g., 1.5rem)" - }, - "3xl": { - "type": "string", - "description": "3X large font size (e.g., 1.875rem)" - }, - "4xl": { - "type": "string", - "description": "4X large font size (e.g., 2.25rem)" - } - }, - "additionalProperties": false - }, - "fontWeight": { - "type": "object", - "properties": { - "light": { - "type": "number", - "description": "Light weight (default: 300)" - }, - "normal": { - "type": "number", - "description": "Normal weight (default: 400)" - }, - "medium": { - "type": "number", - "description": "Medium weight (default: 500)" - }, - "semibold": { - "type": "number", - "description": "Semibold weight (default: 600)" - }, - "bold": { - "type": "number", - "description": "Bold weight (default: 700)" - } - }, - "additionalProperties": false - }, - "lineHeight": { - "type": "object", - "properties": { - "tight": { - "type": "string", - "description": "Tight line height (e.g., 1.25)" - }, - "normal": { - "type": "string", - "description": "Normal line height (e.g., 1.5)" - }, - "relaxed": { - "type": "string", - "description": "Relaxed line height (e.g., 1.75)" - }, - "loose": { - "type": "string", - "description": "Loose line height (e.g., 2)" - } - }, - "additionalProperties": false - }, - "letterSpacing": { - "type": "object", - "properties": { - "tighter": { - "type": "string", - "description": "Tighter letter spacing (e.g., -0.05em)" - }, - "tight": { - "type": "string", - "description": "Tight letter spacing (e.g., -0.025em)" - }, - "normal": { - "type": "string", - "description": "Normal letter spacing (e.g., 0)" - }, - "wide": { - "type": "string", - "description": "Wide letter spacing (e.g., 0.025em)" - }, - "wider": { - "type": "string", - "description": "Wider letter spacing (e.g., 0.05em)" - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false, - "description": "Typography settings" - }, - "spacing": { - "type": "object", - "properties": { - "0": { - "type": "string", - "description": "0 spacing (0)" - }, - "1": { - "type": "string", - "description": "Spacing unit 1 (e.g., 0.25rem)" - }, - "2": { - "type": "string", - "description": "Spacing unit 2 (e.g., 0.5rem)" - }, - "3": { - "type": "string", - "description": "Spacing unit 3 (e.g., 0.75rem)" - }, - "4": { - "type": "string", - "description": "Spacing unit 4 (e.g., 1rem)" - }, - "5": { - "type": "string", - "description": "Spacing unit 5 (e.g., 1.25rem)" - }, - "6": { - "type": "string", - "description": "Spacing unit 6 (e.g., 1.5rem)" - }, - "8": { - "type": "string", - "description": "Spacing unit 8 (e.g., 2rem)" - }, - "10": { - "type": "string", - "description": "Spacing unit 10 (e.g., 2.5rem)" - }, - "12": { - "type": "string", - "description": "Spacing unit 12 (e.g., 3rem)" - }, - "16": { - "type": "string", - "description": "Spacing unit 16 (e.g., 4rem)" - }, - "20": { - "type": "string", - "description": "Spacing unit 20 (e.g., 5rem)" - }, - "24": { - "type": "string", - "description": "Spacing unit 24 (e.g., 6rem)" - } - }, - "additionalProperties": false, - "description": "Spacing scale" - }, - "borderRadius": { - "type": "object", - "properties": { - "none": { - "type": "string", - "description": "No border radius (0)" - }, - "sm": { - "type": "string", - "description": "Small border radius (e.g., 0.125rem)" - }, - "base": { - "type": "string", - "description": "Base border radius (e.g., 0.25rem)" - }, - "md": { - "type": "string", - "description": "Medium border radius (e.g., 0.375rem)" - }, - "lg": { - "type": "string", - "description": "Large border radius (e.g., 0.5rem)" - }, - "xl": { - "type": "string", - "description": "Extra large border radius (e.g., 0.75rem)" - }, - "2xl": { - "type": "string", - "description": "2X large border radius (e.g., 1rem)" - }, - "full": { - "type": "string", - "description": "Full border radius (50%)" - } - }, - "additionalProperties": false, - "description": "Border radius scale" - }, - "shadows": { - "type": "object", - "properties": { - "none": { - "type": "string", - "description": "No shadow" - }, - "sm": { - "type": "string", - "description": "Small shadow" - }, - "base": { - "type": "string", - "description": "Base shadow" - }, - "md": { - "type": "string", - "description": "Medium shadow" - }, - "lg": { - "type": "string", - "description": "Large shadow" - }, - "xl": { - "type": "string", - "description": "Extra large shadow" - }, - "2xl": { - "type": "string", - "description": "2X large shadow" - }, - "inner": { - "type": "string", - "description": "Inner shadow (inset)" - } - }, - "additionalProperties": false, - "description": "Box shadow effects" - }, - "breakpoints": { - "type": "object", - "properties": { - "xs": { - "type": "string", - "description": "Extra small breakpoint (e.g., 480px)" - }, - "sm": { - "type": "string", - "description": "Small breakpoint (e.g., 640px)" - }, - "md": { - "type": "string", - "description": "Medium breakpoint (e.g., 768px)" - }, - "lg": { - "type": "string", - "description": "Large breakpoint (e.g., 1024px)" - }, - "xl": { - "type": "string", - "description": "Extra large breakpoint (e.g., 1280px)" - }, - "2xl": { - "type": "string", - "description": "2X large breakpoint (e.g., 1536px)" - } - }, - "additionalProperties": false, - "description": "Responsive breakpoints" - }, - "animation": { - "type": "object", - "properties": { - "duration": { - "type": "object", - "properties": { - "fast": { - "type": "string", - "description": "Fast animation (e.g., 150ms)" - }, - "base": { - "type": "string", - "description": "Base animation (e.g., 300ms)" - }, - "slow": { - "type": "string", - "description": "Slow animation (e.g., 500ms)" - } - }, - "additionalProperties": false - }, - "timing": { - "type": "object", - "properties": { - "linear": { - "type": "string", - "description": "Linear timing function" - }, - "ease": { - "type": "string", - "description": "Ease timing function" - }, - "easeIn": { - "type": "string", - "description": "Ease-in timing function" - }, - "easeOut": { - "type": "string", - "description": "Ease-out timing function" - }, - "easeInOut": { - "type": "string", - "description": "Ease-in-out timing function" - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false, - "description": "Animation settings" - }, - "zIndex": { - "type": "object", - "properties": { - "base": { - "type": "number", - "description": "Base z-index (e.g., 0)" - }, - "dropdown": { - "type": "number", - "description": "Dropdown z-index (e.g., 1000)" - }, - "sticky": { - "type": "number", - "description": "Sticky z-index (e.g., 1020)" - }, - "fixed": { - "type": "number", - "description": "Fixed z-index (e.g., 1030)" - }, - "modalBackdrop": { - "type": "number", - "description": "Modal backdrop z-index (e.g., 1040)" - }, - "modal": { - "type": "number", - "description": "Modal z-index (e.g., 1050)" - }, - "popover": { - "type": "number", - "description": "Popover z-index (e.g., 1060)" - }, - "tooltip": { - "type": "number", - "description": "Tooltip z-index (e.g., 1070)" - } - }, - "additionalProperties": false, - "description": "Z-index scale for layering" - }, - "customVars": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom CSS variables (key-value pairs)" - }, - "logo": { - "type": "object", - "properties": { - "light": { - "type": "string", - "description": "Logo URL for light mode" - }, - "dark": { - "type": "string", - "description": "Logo URL for dark mode" - }, - "favicon": { - "type": "string", - "description": "Favicon URL" - } - }, - "additionalProperties": false, - "description": "Logo assets" - }, - "extends": { - "type": "string", - "description": "Base theme to extend from" - } - }, - "required": [ - "name", - "label", - "colors" - ], - "additionalProperties": false - } + "Theme": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ThemeMode.json b/packages/spec/json-schema/ui/ThemeMode.json index 92a3c1e95..59ad803eb 100644 --- a/packages/spec/json-schema/ui/ThemeMode.json +++ b/packages/spec/json-schema/ui/ThemeMode.json @@ -1,14 +1,7 @@ { "$ref": "#/definitions/ThemeMode", "definitions": { - "ThemeMode": { - "type": "string", - "enum": [ - "light", - "dark", - "auto" - ] - } + "ThemeMode": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/Typography.json b/packages/spec/json-schema/ui/Typography.json index e6add092f..4bb2c2d9d 100644 --- a/packages/spec/json-schema/ui/Typography.json +++ b/packages/spec/json-schema/ui/Typography.json @@ -1,142 +1,7 @@ { "$ref": "#/definitions/Typography", "definitions": { - "Typography": { - "type": "object", - "properties": { - "fontFamily": { - "type": "object", - "properties": { - "base": { - "type": "string", - "description": "Base font family (default: system fonts)" - }, - "heading": { - "type": "string", - "description": "Heading font family" - }, - "mono": { - "type": "string", - "description": "Monospace font family for code" - } - }, - "additionalProperties": false - }, - "fontSize": { - "type": "object", - "properties": { - "xs": { - "type": "string", - "description": "Extra small font size (e.g., 0.75rem)" - }, - "sm": { - "type": "string", - "description": "Small font size (e.g., 0.875rem)" - }, - "base": { - "type": "string", - "description": "Base font size (e.g., 1rem)" - }, - "lg": { - "type": "string", - "description": "Large font size (e.g., 1.125rem)" - }, - "xl": { - "type": "string", - "description": "Extra large font size (e.g., 1.25rem)" - }, - "2xl": { - "type": "string", - "description": "2X large font size (e.g., 1.5rem)" - }, - "3xl": { - "type": "string", - "description": "3X large font size (e.g., 1.875rem)" - }, - "4xl": { - "type": "string", - "description": "4X large font size (e.g., 2.25rem)" - } - }, - "additionalProperties": false - }, - "fontWeight": { - "type": "object", - "properties": { - "light": { - "type": "number", - "description": "Light weight (default: 300)" - }, - "normal": { - "type": "number", - "description": "Normal weight (default: 400)" - }, - "medium": { - "type": "number", - "description": "Medium weight (default: 500)" - }, - "semibold": { - "type": "number", - "description": "Semibold weight (default: 600)" - }, - "bold": { - "type": "number", - "description": "Bold weight (default: 700)" - } - }, - "additionalProperties": false - }, - "lineHeight": { - "type": "object", - "properties": { - "tight": { - "type": "string", - "description": "Tight line height (e.g., 1.25)" - }, - "normal": { - "type": "string", - "description": "Normal line height (e.g., 1.5)" - }, - "relaxed": { - "type": "string", - "description": "Relaxed line height (e.g., 1.75)" - }, - "loose": { - "type": "string", - "description": "Loose line height (e.g., 2)" - } - }, - "additionalProperties": false - }, - "letterSpacing": { - "type": "object", - "properties": { - "tighter": { - "type": "string", - "description": "Tighter letter spacing (e.g., -0.05em)" - }, - "tight": { - "type": "string", - "description": "Tight letter spacing (e.g., -0.025em)" - }, - "normal": { - "type": "string", - "description": "Normal letter spacing (e.g., 0)" - }, - "wide": { - "type": "string", - "description": "Wide letter spacing (e.g., 0.025em)" - }, - "wider": { - "type": "string", - "description": "Wider letter spacing (e.g., 0.05em)" - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } + "Typography": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/UrlNavItem.json b/packages/spec/json-schema/ui/UrlNavItem.json index e37095bbb..cff671678 100644 --- a/packages/spec/json-schema/ui/UrlNavItem.json +++ b/packages/spec/json-schema/ui/UrlNavItem.json @@ -1,53 +1,7 @@ { "$ref": "#/definitions/UrlNavItem", "definitions": { - "UrlNavItem": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Unique identifier for this navigation item (lowercase snake_case)" - }, - "label": { - "type": "string", - "description": "Display proper label" - }, - "icon": { - "type": "string", - "description": "Icon name" - }, - "visible": { - "type": "string", - "description": "Visibility formula condition" - }, - "type": { - "type": "string", - "const": "url" - }, - "url": { - "type": "string", - "description": "Target external URL" - }, - "target": { - "type": "string", - "enum": [ - "_self", - "_blank" - ], - "default": "_self", - "description": "Link target window" - } - }, - "required": [ - "id", - "label", - "type", - "url" - ], - "additionalProperties": false - } + "UrlNavItem": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/View.json b/packages/spec/json-schema/ui/View.json index 7e21a539c..cb8068b68 100644 --- a/packages/spec/json-schema/ui/View.json +++ b/packages/spec/json-schema/ui/View.json @@ -1,1518 +1,7 @@ { "$ref": "#/definitions/View", "definitions": { - "View": { - "type": "object", - "properties": { - "list": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Internal view name (lowercase snake_case)" - }, - "label": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "grid", - "spreadsheet", - "kanban", - "gallery", - "calendar", - "timeline", - "gantt", - "map" - ], - "default": "grid" - }, - "data": { - "anyOf": [ - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "object" - }, - "object": { - "type": "string", - "description": "Target object name" - } - }, - "required": [ - "provider", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "api" - }, - "read": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for fetching data" - }, - "write": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for submitting data (for forms/editable tables)" - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "value" - }, - "items": { - "type": "array", - "items": {}, - "description": "Static data array" - } - }, - "required": [ - "provider", - "items" - ], - "additionalProperties": false - } - ], - "description": "Data source configuration (defaults to \"object\" provider)" - }, - "columns": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "width": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Column width in pixels" - }, - "align": { - "type": "string", - "enum": [ - "left", - "center", - "right" - ], - "description": "Text alignment" - }, - "hidden": { - "type": "boolean", - "description": "Hide column by default" - }, - "sortable": { - "type": "boolean", - "description": "Allow sorting by this column" - }, - "resizable": { - "type": "boolean", - "description": "Allow resizing this column" - }, - "wrap": { - "type": "boolean", - "description": "Allow text wrapping" - }, - "type": { - "type": "string", - "description": "Renderer type override (e.g., \"currency\", \"date\")" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Fields to display as columns" - }, - "filter": { - "type": "array", - "description": "Filter criteria (JSON Rules)" - }, - "sort": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - "required": [ - "field", - "order" - ], - "additionalProperties": false - } - } - ] - }, - "searchableFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields enabled for search" - }, - "resizable": { - "type": "boolean", - "description": "Enable column resizing" - }, - "striped": { - "type": "boolean", - "description": "Striped row styling" - }, - "bordered": { - "type": "boolean", - "description": "Show borders" - }, - "selection": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "single", - "multiple" - ], - "default": "none", - "description": "Selection mode" - } - }, - "additionalProperties": false, - "description": "Row selection configuration" - }, - "pagination": { - "type": "object", - "properties": { - "pageSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 25, - "description": "Number of records per page" - }, - "pageSizeOptions": { - "type": "array", - "items": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "description": "Available page size options" - } - }, - "additionalProperties": false, - "description": "Pagination configuration" - }, - "kanban": { - "type": "object", - "properties": { - "groupByField": { - "type": "string", - "description": "Field to group columns by (usually status/select)" - }, - "summarizeField": { - "type": "string", - "description": "Field to sum at top of column (e.g. amount)" - }, - "columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to show on cards" - } - }, - "required": [ - "groupByField", - "columns" - ], - "additionalProperties": false - }, - "calendar": { - "type": "object", - "properties": { - "startDateField": { - "type": "string" - }, - "endDateField": { - "type": "string" - }, - "titleField": { - "type": "string" - }, - "colorField": { - "type": "string" - } - }, - "required": [ - "startDateField", - "titleField" - ], - "additionalProperties": false - }, - "gantt": { - "type": "object", - "properties": { - "startDateField": { - "type": "string" - }, - "endDateField": { - "type": "string" - }, - "titleField": { - "type": "string" - }, - "progressField": { - "type": "string" - }, - "dependenciesField": { - "type": "string" - } - }, - "required": [ - "startDateField", - "endDateField", - "titleField" - ], - "additionalProperties": false - } - }, - "required": [ - "columns" - ], - "additionalProperties": false - }, - "form": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "simple", - "tabbed", - "wizard", - "split", - "drawer", - "modal" - ], - "default": "simple" - }, - "data": { - "anyOf": [ - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "object" - }, - "object": { - "type": "string", - "description": "Target object name" - } - }, - "required": [ - "provider", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "api" - }, - "read": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for fetching data" - }, - "write": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for submitting data (for forms/editable tables)" - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "value" - }, - "items": { - "type": "array", - "items": {}, - "description": "Static data array" - } - }, - "required": [ - "provider", - "items" - ], - "additionalProperties": false - } - ], - "description": "Data source configuration (defaults to \"object\" provider)" - }, - "sections": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "collapsible": { - "type": "boolean", - "default": false - }, - "collapsed": { - "type": "boolean", - "default": false - }, - "columns": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4" - ], - "default": "2" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - }, - "helpText": { - "type": "string", - "description": "Help/hint text" - }, - "readonly": { - "type": "boolean", - "description": "Read-only override" - }, - "required": { - "type": "boolean", - "description": "Required override" - }, - "hidden": { - "type": "boolean", - "description": "Hidden override" - }, - "colSpan": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "description": "Column span in grid layout (1-4)" - }, - "widget": { - "type": "string", - "description": "Custom widget/component name" - }, - "dependsOn": { - "type": "string", - "description": "Parent field name for cascading" - }, - "visibleOn": { - "type": "string", - "description": "Visibility condition expression" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - } - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - } - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "collapsible": { - "type": "boolean", - "default": false - }, - "collapsed": { - "type": "boolean", - "default": false - }, - "columns": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4" - ], - "default": "2" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - }, - "helpText": { - "type": "string", - "description": "Help/hint text" - }, - "readonly": { - "type": "boolean", - "description": "Read-only override" - }, - "required": { - "type": "boolean", - "description": "Required override" - }, - "hidden": { - "type": "boolean", - "description": "Hidden override" - }, - "colSpan": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "description": "Column span in grid layout (1-4)" - }, - "widget": { - "type": "string", - "description": "Custom widget/component name" - }, - "dependsOn": { - "type": "string", - "description": "Parent field name for cascading" - }, - "visibleOn": { - "type": "string", - "description": "Visibility condition expression" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - } - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false - }, - "listViews": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 2, - "pattern": "^[a-z][a-z0-9_]*$", - "description": "Internal view name (lowercase snake_case)" - }, - "label": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "grid", - "spreadsheet", - "kanban", - "gallery", - "calendar", - "timeline", - "gantt", - "map" - ], - "default": "grid" - }, - "data": { - "anyOf": [ - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "object" - }, - "object": { - "type": "string", - "description": "Target object name" - } - }, - "required": [ - "provider", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "api" - }, - "read": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for fetching data" - }, - "write": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for submitting data (for forms/editable tables)" - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "value" - }, - "items": { - "type": "array", - "items": {}, - "description": "Static data array" - } - }, - "required": [ - "provider", - "items" - ], - "additionalProperties": false - } - ], - "description": "Data source configuration (defaults to \"object\" provider)" - }, - "columns": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "width": { - "type": "number", - "exclusiveMinimum": 0, - "description": "Column width in pixels" - }, - "align": { - "type": "string", - "enum": [ - "left", - "center", - "right" - ], - "description": "Text alignment" - }, - "hidden": { - "type": "boolean", - "description": "Hide column by default" - }, - "sortable": { - "type": "boolean", - "description": "Allow sorting by this column" - }, - "resizable": { - "type": "boolean", - "description": "Allow resizing this column" - }, - "wrap": { - "type": "boolean", - "description": "Allow text wrapping" - }, - "type": { - "type": "string", - "description": "Renderer type override (e.g., \"currency\", \"date\")" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - } - ], - "description": "Fields to display as columns" - }, - "filter": { - "type": "array", - "description": "Filter criteria (JSON Rules)" - }, - "sort": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - } - }, - "required": [ - "field", - "order" - ], - "additionalProperties": false - } - } - ] - }, - "searchableFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields enabled for search" - }, - "resizable": { - "type": "boolean", - "description": "Enable column resizing" - }, - "striped": { - "type": "boolean", - "description": "Striped row styling" - }, - "bordered": { - "type": "boolean", - "description": "Show borders" - }, - "selection": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "none", - "single", - "multiple" - ], - "default": "none", - "description": "Selection mode" - } - }, - "additionalProperties": false, - "description": "Row selection configuration" - }, - "pagination": { - "type": "object", - "properties": { - "pageSize": { - "type": "integer", - "exclusiveMinimum": 0, - "default": 25, - "description": "Number of records per page" - }, - "pageSizeOptions": { - "type": "array", - "items": { - "type": "integer", - "exclusiveMinimum": 0 - }, - "description": "Available page size options" - } - }, - "additionalProperties": false, - "description": "Pagination configuration" - }, - "kanban": { - "type": "object", - "properties": { - "groupByField": { - "type": "string", - "description": "Field to group columns by (usually status/select)" - }, - "summarizeField": { - "type": "string", - "description": "Field to sum at top of column (e.g. amount)" - }, - "columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Fields to show on cards" - } - }, - "required": [ - "groupByField", - "columns" - ], - "additionalProperties": false - }, - "calendar": { - "type": "object", - "properties": { - "startDateField": { - "type": "string" - }, - "endDateField": { - "type": "string" - }, - "titleField": { - "type": "string" - }, - "colorField": { - "type": "string" - } - }, - "required": [ - "startDateField", - "titleField" - ], - "additionalProperties": false - }, - "gantt": { - "type": "object", - "properties": { - "startDateField": { - "type": "string" - }, - "endDateField": { - "type": "string" - }, - "titleField": { - "type": "string" - }, - "progressField": { - "type": "string" - }, - "dependenciesField": { - "type": "string" - } - }, - "required": [ - "startDateField", - "endDateField", - "titleField" - ], - "additionalProperties": false - } - }, - "required": [ - "columns" - ], - "additionalProperties": false - }, - "description": "Additional named list views" - }, - "formViews": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "simple", - "tabbed", - "wizard", - "split", - "drawer", - "modal" - ], - "default": "simple" - }, - "data": { - "anyOf": [ - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "object" - }, - "object": { - "type": "string", - "description": "Target object name" - } - }, - "required": [ - "provider", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "api" - }, - "read": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for fetching data" - }, - "write": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for submitting data (for forms/editable tables)" - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "value" - }, - "items": { - "type": "array", - "items": {}, - "description": "Static data array" - } - }, - "required": [ - "provider", - "items" - ], - "additionalProperties": false - } - ], - "description": "Data source configuration (defaults to \"object\" provider)" - }, - "sections": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "collapsible": { - "type": "boolean", - "default": false - }, - "collapsed": { - "type": "boolean", - "default": false - }, - "columns": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4" - ], - "default": "2" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - }, - "helpText": { - "type": "string", - "description": "Help/hint text" - }, - "readonly": { - "type": "boolean", - "description": "Read-only override" - }, - "required": { - "type": "boolean", - "description": "Required override" - }, - "hidden": { - "type": "boolean", - "description": "Hidden override" - }, - "colSpan": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "description": "Column span in grid layout (1-4)" - }, - "widget": { - "type": "string", - "description": "Custom widget/component name" - }, - "dependsOn": { - "type": "string", - "description": "Parent field name for cascading" - }, - "visibleOn": { - "type": "string", - "description": "Visibility condition expression" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - } - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - } - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "collapsible": { - "type": "boolean", - "default": false - }, - "collapsed": { - "type": "boolean", - "default": false - }, - "columns": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4" - ], - "default": "2" - }, - "fields": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Field name (snake_case)" - }, - "label": { - "type": "string", - "description": "Display label override" - }, - "placeholder": { - "type": "string", - "description": "Placeholder text" - }, - "helpText": { - "type": "string", - "description": "Help/hint text" - }, - "readonly": { - "type": "boolean", - "description": "Read-only override" - }, - "required": { - "type": "boolean", - "description": "Required override" - }, - "hidden": { - "type": "boolean", - "description": "Hidden override" - }, - "colSpan": { - "type": "integer", - "minimum": 1, - "maximum": 4, - "description": "Column span in grid layout (1-4)" - }, - "widget": { - "type": "string", - "description": "Custom widget/component name" - }, - "dependsOn": { - "type": "string", - "description": "Parent field name for cascading" - }, - "visibleOn": { - "type": "string", - "description": "Visibility condition expression" - } - }, - "required": [ - "field" - ], - "additionalProperties": false - } - ] - } - } - }, - "required": [ - "fields" - ], - "additionalProperties": false - } - } - }, - "additionalProperties": false - }, - "description": "Additional named form views" - } - }, - "additionalProperties": false - } + "View": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ViewData.json b/packages/spec/json-schema/ui/ViewData.json index cb261ef85..d88b4f130 100644 --- a/packages/spec/json-schema/ui/ViewData.json +++ b/packages/spec/json-schema/ui/ViewData.json @@ -1,142 +1,7 @@ { "$ref": "#/definitions/ViewData", "definitions": { - "ViewData": { - "anyOf": [ - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "object" - }, - "object": { - "type": "string", - "description": "Target object name" - } - }, - "required": [ - "provider", - "object" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "api" - }, - "read": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for fetching data" - }, - "write": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "API endpoint URL" - }, - "method": { - "type": "string", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE" - ], - "default": "GET", - "description": "HTTP method" - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom HTTP headers" - }, - "params": { - "type": "object", - "additionalProperties": {}, - "description": "Query parameters" - }, - "body": { - "description": "Request body for POST/PUT/PATCH" - } - }, - "required": [ - "url" - ], - "additionalProperties": false, - "description": "Configuration for submitting data (for forms/editable tables)" - } - }, - "required": [ - "provider" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "provider": { - "type": "string", - "const": "value" - }, - "items": { - "type": "array", - "items": {}, - "description": "Static data array" - } - }, - "required": [ - "provider", - "items" - ], - "additionalProperties": false - } - ] - } + "ViewData": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/WidgetEvent.json b/packages/spec/json-schema/ui/WidgetEvent.json index 22f985ffc..3843667b2 100644 --- a/packages/spec/json-schema/ui/WidgetEvent.json +++ b/packages/spec/json-schema/ui/WidgetEvent.json @@ -1,42 +1,7 @@ { "$ref": "#/definitions/WidgetEvent", "definitions": { - "WidgetEvent": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Event name" - }, - "label": { - "type": "string", - "description": "Human-readable event label" - }, - "description": { - "type": "string", - "description": "Event description and usage" - }, - "bubbles": { - "type": "boolean", - "default": false, - "description": "Whether event bubbles" - }, - "cancelable": { - "type": "boolean", - "default": false, - "description": "Whether event is cancelable" - }, - "payload": { - "type": "object", - "additionalProperties": {}, - "description": "Event payload schema" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - } + "WidgetEvent": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/WidgetLifecycle.json b/packages/spec/json-schema/ui/WidgetLifecycle.json index 400c967b1..4364f12a8 100644 --- a/packages/spec/json-schema/ui/WidgetLifecycle.json +++ b/packages/spec/json-schema/ui/WidgetLifecycle.json @@ -1,40 +1,7 @@ { "$ref": "#/definitions/WidgetLifecycle", "definitions": { - "WidgetLifecycle": { - "type": "object", - "properties": { - "onMount": { - "type": "string", - "description": "Initialization code when widget mounts" - }, - "onUpdate": { - "type": "string", - "description": "Code to run when props change" - }, - "onUnmount": { - "type": "string", - "description": "Cleanup code when widget unmounts" - }, - "onValidate": { - "type": "string", - "description": "Custom validation logic" - }, - "onFocus": { - "type": "string", - "description": "Code to run on focus" - }, - "onBlur": { - "type": "string", - "description": "Code to run on blur" - }, - "onError": { - "type": "string", - "description": "Error handling code" - } - }, - "additionalProperties": false - } + "WidgetLifecycle": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/WidgetManifest.json b/packages/spec/json-schema/ui/WidgetManifest.json index 18b99584d..faf17749f 100644 --- a/packages/spec/json-schema/ui/WidgetManifest.json +++ b/packages/spec/json-schema/ui/WidgetManifest.json @@ -1,262 +1,7 @@ { "$ref": "#/definitions/WidgetManifest", "definitions": { - "WidgetManifest": { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "^[a-z_][a-z0-9_]*$", - "description": "Widget identifier (snake_case)" - }, - "label": { - "type": "string", - "description": "Widget display name" - }, - "description": { - "type": "string", - "description": "Widget description" - }, - "version": { - "type": "string", - "description": "Widget version (semver)" - }, - "author": { - "type": "string", - "description": "Widget author" - }, - "icon": { - "type": "string", - "description": "Widget icon" - }, - "fieldTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Supported field types" - }, - "category": { - "type": "string", - "enum": [ - "input", - "display", - "picker", - "editor", - "custom" - ], - "default": "custom", - "description": "Widget category" - }, - "lifecycle": { - "type": "object", - "properties": { - "onMount": { - "type": "string", - "description": "Initialization code when widget mounts" - }, - "onUpdate": { - "type": "string", - "description": "Code to run when props change" - }, - "onUnmount": { - "type": "string", - "description": "Cleanup code when widget unmounts" - }, - "onValidate": { - "type": "string", - "description": "Custom validation logic" - }, - "onFocus": { - "type": "string", - "description": "Code to run on focus" - }, - "onBlur": { - "type": "string", - "description": "Code to run on blur" - }, - "onError": { - "type": "string", - "description": "Error handling code" - } - }, - "additionalProperties": false, - "description": "Lifecycle hooks" - }, - "events": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Event name" - }, - "label": { - "type": "string", - "description": "Human-readable event label" - }, - "description": { - "type": "string", - "description": "Event description and usage" - }, - "bubbles": { - "type": "boolean", - "default": false, - "description": "Whether event bubbles" - }, - "cancelable": { - "type": "boolean", - "default": false, - "description": "Whether event is cancelable" - }, - "payload": { - "type": "object", - "additionalProperties": {}, - "description": "Event payload schema" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Custom events" - }, - "properties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Property name (camelCase)" - }, - "label": { - "type": "string", - "description": "Human-readable label" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "function", - "any" - ], - "description": "TypeScript type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Whether property is required" - }, - "default": { - "description": "Default value" - }, - "description": { - "type": "string", - "description": "Property description" - }, - "validation": { - "type": "object", - "additionalProperties": {}, - "description": "Validation rules" - }, - "category": { - "type": "string", - "description": "Property category" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - }, - "description": "Configuration properties" - }, - "implementation": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "url", - "inline", - "module" - ], - "description": "Implementation type" - }, - "source": { - "type": "string", - "description": "Source URL, inline code, or module path" - } - }, - "required": [ - "type", - "source" - ], - "additionalProperties": false, - "description": "Widget implementation" - }, - "dependencies": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "name" - ], - "additionalProperties": false - }, - "description": "Widget dependencies" - }, - "screenshots": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - }, - "description": "Screenshot URLs" - }, - "documentation": { - "type": "string", - "format": "uri", - "description": "Documentation URL" - }, - "license": { - "type": "string", - "description": "License (SPDX identifier)" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags for categorization" - } - }, - "required": [ - "name", - "label" - ], - "additionalProperties": false - } + "WidgetManifest": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/WidgetProperty.json b/packages/spec/json-schema/ui/WidgetProperty.json index de6cace7c..09317dab1 100644 --- a/packages/spec/json-schema/ui/WidgetProperty.json +++ b/packages/spec/json-schema/ui/WidgetProperty.json @@ -1,58 +1,7 @@ { "$ref": "#/definitions/WidgetProperty", "definitions": { - "WidgetProperty": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Property name (camelCase)" - }, - "label": { - "type": "string", - "description": "Human-readable label" - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "array", - "object", - "function", - "any" - ], - "description": "TypeScript type" - }, - "required": { - "type": "boolean", - "default": false, - "description": "Whether property is required" - }, - "default": { - "description": "Default value" - }, - "description": { - "type": "string", - "description": "Property description" - }, - "validation": { - "type": "object", - "additionalProperties": {}, - "description": "Validation rules" - }, - "category": { - "type": "string", - "description": "Property category" - } - }, - "required": [ - "name", - "type" - ], - "additionalProperties": false - } + "WidgetProperty": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/json-schema/ui/ZIndex.json b/packages/spec/json-schema/ui/ZIndex.json index d525d1ee8..91298e5b4 100644 --- a/packages/spec/json-schema/ui/ZIndex.json +++ b/packages/spec/json-schema/ui/ZIndex.json @@ -1,44 +1,7 @@ { "$ref": "#/definitions/ZIndex", "definitions": { - "ZIndex": { - "type": "object", - "properties": { - "base": { - "type": "number", - "description": "Base z-index (e.g., 0)" - }, - "dropdown": { - "type": "number", - "description": "Dropdown z-index (e.g., 1000)" - }, - "sticky": { - "type": "number", - "description": "Sticky z-index (e.g., 1020)" - }, - "fixed": { - "type": "number", - "description": "Fixed z-index (e.g., 1030)" - }, - "modalBackdrop": { - "type": "number", - "description": "Modal backdrop z-index (e.g., 1040)" - }, - "modal": { - "type": "number", - "description": "Modal z-index (e.g., 1050)" - }, - "popover": { - "type": "number", - "description": "Popover z-index (e.g., 1060)" - }, - "tooltip": { - "type": "number", - "description": "Tooltip z-index (e.g., 1070)" - } - }, - "additionalProperties": false - } + "ZIndex": {} }, "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/packages/spec/src/api/protocol.zod.ts b/packages/spec/src/api/protocol.zod.ts index 7d65a35df..29e56b42e 100644 --- a/packages/spec/src/api/protocol.zod.ts +++ b/packages/spec/src/api/protocol.zod.ts @@ -335,108 +335,108 @@ export const DeleteViewResponseSchema = z.object({ */ export const ObjectStackProtocolSchema = z.object({ // Discovery & Metadata - getDiscovery: z.function() - .args(GetDiscoveryRequestSchema) - .returns(z.promise(GetDiscoveryResponseSchema)) - .describe('Get API discovery information'), - - getMetaTypes: z.function() - .args(GetMetaTypesRequestSchema) - .returns(z.promise(GetMetaTypesResponseSchema)) - .describe('Get available metadata types'), - - getMetaItems: z.function() - .args(GetMetaItemsRequestSchema) - .returns(z.promise(GetMetaItemsResponseSchema)) - .describe('Get all items of a metadata type'), - - getMetaItem: z.function() - .args(GetMetaItemRequestSchema) - .returns(z.promise(GetMetaItemResponseSchema)) - .describe('Get a specific metadata item'), - - getMetaItemCached: z.function() - .args(GetMetaItemCachedRequestSchema) - .returns(z.promise(GetMetaItemCachedResponseSchema)) - .describe('Get a metadata item with cache validation'), - - getUiView: z.function() - .args(GetUiViewRequestSchema) - .returns(z.promise(GetUiViewResponseSchema)) - .describe('Get UI view definition'), + getDiscovery: z.function( + z.tuple([GetDiscoveryRequestSchema]), + z.promise(GetDiscoveryResponseSchema) + ).describe('Get API discovery information'), + + getMetaTypes: z.function( + z.tuple([GetMetaTypesRequestSchema]), + z.promise(GetMetaTypesResponseSchema) + ).describe('Get available metadata types'), + + getMetaItems: z.function( + z.tuple([GetMetaItemsRequestSchema]), + z.promise(GetMetaItemsResponseSchema) + ).describe('Get all items of a metadata type'), + + getMetaItem: z.function( + z.tuple([GetMetaItemRequestSchema]), + z.promise(GetMetaItemResponseSchema) + ).describe('Get a specific metadata item'), + + getMetaItemCached: z.function( + z.tuple([GetMetaItemCachedRequestSchema]), + z.promise(GetMetaItemCachedResponseSchema) + ).describe('Get a metadata item with cache validation'), + + getUiView: z.function( + z.tuple([GetUiViewRequestSchema]), + z.promise(GetUiViewResponseSchema) + ).describe('Get UI view definition'), // Data Operations - findData: z.function() - .args(FindDataRequestSchema) - .returns(z.promise(FindDataResponseSchema)) - .describe('Find data records'), - - getData: z.function() - .args(GetDataRequestSchema) - .returns(z.promise(GetDataResponseSchema)) - .describe('Get single data record'), - - createData: z.function() - .args(CreateDataRequestSchema) - .returns(z.promise(CreateDataResponseSchema)) - .describe('Create a data record'), - - updateData: z.function() - .args(UpdateDataRequestSchema) - .returns(z.promise(UpdateDataResponseSchema)) - .describe('Update a data record'), - - deleteData: z.function() - .args(DeleteDataRequestSchema) - .returns(z.promise(DeleteDataResponseSchema)) - .describe('Delete a data record'), + findData: z.function( + z.tuple([FindDataRequestSchema]), + z.promise(FindDataResponseSchema) + ).describe('Find data records'), + + getData: z.function( + z.tuple([GetDataRequestSchema]), + z.promise(GetDataResponseSchema) + ).describe('Get single data record'), + + createData: z.function( + z.tuple([CreateDataRequestSchema]), + z.promise(CreateDataResponseSchema) + ).describe('Create a data record'), + + updateData: z.function( + z.tuple([UpdateDataRequestSchema]), + z.promise(UpdateDataResponseSchema) + ).describe('Update a data record'), + + deleteData: z.function( + z.tuple([DeleteDataRequestSchema]), + z.promise(DeleteDataResponseSchema) + ).describe('Delete a data record'), // Batch Operations - batchData: z.function() - .args(BatchDataRequestSchema) - .returns(z.promise(BatchDataResponseSchema)) - .describe('Perform batch operations'), - - createManyData: z.function() - .args(CreateManyDataRequestSchema) - .returns(z.promise(CreateManyDataResponseSchema)) - .describe('Create multiple records'), - - updateManyData: z.function() - .args(UpdateManyDataRequestSchema) - .returns(z.promise(UpdateManyDataResponseSchema)) - .describe('Update multiple records'), - - deleteManyData: z.function() - .args(DeleteManyDataRequestSchema) - .returns(z.promise(DeleteManyDataResponseSchema)) - .describe('Delete multiple records'), + batchData: z.function( + z.tuple([BatchDataRequestSchema]), + z.promise(BatchDataResponseSchema) + ).describe('Perform batch operations'), + + createManyData: z.function( + z.tuple([CreateManyDataRequestSchema]), + z.promise(CreateManyDataResponseSchema) + ).describe('Create multiple records'), + + updateManyData: z.function( + z.tuple([UpdateManyDataRequestSchema]), + z.promise(UpdateManyDataResponseSchema) + ).describe('Update multiple records'), + + deleteManyData: z.function( + z.tuple([DeleteManyDataRequestSchema]), + z.promise(DeleteManyDataResponseSchema) + ).describe('Delete multiple records'), // View Storage - createView: z.function() - .args(CreateViewRequestSchema) - .returns(z.promise(ViewResponseSchema)) - .describe('Create a saved view'), - - getView: z.function() - .args(GetViewRequestSchema) - .returns(z.promise(ViewResponseSchema)) - .describe('Get a saved view'), - - listViews: z.function() - .args(ListViewsRequestSchema) - .returns(z.promise(ListViewsResponseSchema)) - .describe('List saved views'), - - updateView: z.function() - .args(UpdateViewRequestSchema) - .returns(z.promise(ViewResponseSchema)) - .describe('Update a saved view'), - - deleteView: z.function() - .args(DeleteViewRequestSchema) - .returns(z.promise(DeleteViewResponseSchema)) - .describe('Delete a saved view'), + createView: z.function( + z.tuple([CreateViewRequestSchema]), + z.promise(ViewResponseSchema) + ).describe('Create a saved view'), + + getView: z.function( + z.tuple([GetViewRequestSchema]), + z.promise(ViewResponseSchema) + ).describe('Get a saved view'), + + listViews: z.function( + z.tuple([ListViewsRequestSchema]), + z.promise(ListViewsResponseSchema) + ).describe('List saved views'), + + updateView: z.function( + z.tuple([UpdateViewRequestSchema]), + z.promise(ViewResponseSchema) + ).describe('Update a saved view'), + + deleteView: z.function( + z.tuple([DeleteViewRequestSchema]), + z.promise(DeleteViewResponseSchema) + ).describe('Delete a saved view'), }); /** diff --git a/packages/spec/src/auth/config.zod.ts b/packages/spec/src/auth/config.zod.ts index b0f269135..bc389e35b 100644 --- a/packages/spec/src/auth/config.zod.ts +++ b/packages/spec/src/auth/config.zod.ts @@ -252,14 +252,14 @@ export const MagicLinkConfigSchema = z.object({ expiryTime: z.number().default(900).describe('Magic link expiry time in seconds (default 15 min)'), - sendEmail: z.function() - .args(z.object({ + sendEmail: z.function( + z.tuple([z.object({ to: z.string().email(), link: z.string().url(), token: z.string(), - })) - .returns(z.promise(z.void())) - .optional() + })]), + z.promise(z.void()) + ).optional() .describe('Custom email sending function'), }); @@ -736,40 +736,40 @@ export const ApplicationAuthConfigSchema = z.object({ * Custom hooks for authentication events */ hooks: z.object({ - beforeSignIn: z.function() - .args(z.object({ email: z.string() })) - .returns(z.promise(z.void())) - .optional() + beforeSignIn: z.function( + z.tuple([z.object({ email: z.string() })]), + z.promise(z.void()) + ).optional() .describe('Called before user sign in'), - afterSignIn: z.function() - .args(z.object({ user: z.any(), session: z.any() })) - .returns(z.promise(z.void())) - .optional() + afterSignIn: z.function( + z.tuple([z.object({ user: z.any(), session: z.any() })]), + z.promise(z.void()) + ).optional() .describe('Called after user sign in'), - beforeSignUp: z.function() - .args(z.object({ email: z.string(), name: z.string().optional() })) - .returns(z.promise(z.void())) - .optional() + beforeSignUp: z.function( + z.tuple([z.object({ email: z.string(), name: z.string().optional() })]), + z.promise(z.void()) + ).optional() .describe('Called before user registration'), - afterSignUp: z.function() - .args(z.object({ user: z.any() })) - .returns(z.promise(z.void())) - .optional() + afterSignUp: z.function( + z.tuple([z.object({ user: z.any() })]), + z.promise(z.void()) + ).optional() .describe('Called after user registration'), - beforeSignOut: z.function() - .args(z.object({ sessionId: z.string() })) - .returns(z.promise(z.void())) - .optional() + beforeSignOut: z.function( + z.tuple([z.object({ sessionId: z.string() })]), + z.promise(z.void()) + ).optional() .describe('Called before user sign out'), - afterSignOut: z.function() - .args(z.object({ sessionId: z.string() })) - .returns(z.promise(z.void())) - .optional() + afterSignOut: z.function( + z.tuple([z.object({ sessionId: z.string() })]), + z.promise(z.void()) + ).optional() .describe('Called after user sign out'), }).optional().describe('Authentication lifecycle hooks'), diff --git a/packages/spec/src/data/data-engine.zod.ts b/packages/spec/src/data/data-engine.zod.ts index e2b08d181..9600c01de 100644 --- a/packages/spec/src/data/data-engine.zod.ts +++ b/packages/spec/src/data/data-engine.zod.ts @@ -165,33 +165,40 @@ export const DataEngineCountOptionsSchema = z.object({ // ========================================================================== export const DataEngineContractSchema = z.object({ - find: z.function() - .args(z.string(), DataEngineQueryOptionsSchema.optional()) - .returns(z.promise(z.array(z.any()))), + find: z.function( + z.tuple([z.string(), DataEngineQueryOptionsSchema.optional()]), + z.promise(z.array(z.any())) + ), - findOne: z.function() - .args(z.string(), DataEngineQueryOptionsSchema.optional()) - .returns(z.promise(z.any())), + findOne: z.function( + z.tuple([z.string(), DataEngineQueryOptionsSchema.optional()]), + z.promise(z.any()) + ), - insert: z.function() - .args(z.string(), z.union([z.record(z.any()), z.array(z.record(z.any()))]), DataEngineInsertOptionsSchema.optional()) - .returns(z.promise(z.any())), + insert: z.function( + z.tuple([z.string(), z.union([z.record(z.any()), z.array(z.record(z.any()))]), DataEngineInsertOptionsSchema.optional()]), + z.promise(z.any()) + ), - update: z.function() - .args(z.string(), z.record(z.any()), DataEngineUpdateOptionsSchema.optional()) - .returns(z.promise(z.any())), + update: z.function( + z.tuple([z.string(), z.record(z.any()), DataEngineUpdateOptionsSchema.optional()]), + z.promise(z.any()) + ), - delete: z.function() - .args(z.string(), DataEngineDeleteOptionsSchema.optional()) - .returns(z.promise(z.any())), + delete: z.function( + z.tuple([z.string(), DataEngineDeleteOptionsSchema.optional()]), + z.promise(z.any()) + ), - count: z.function() - .args(z.string(), DataEngineCountOptionsSchema.optional()) - .returns(z.promise(z.number())), + count: z.function( + z.tuple([z.string(), DataEngineCountOptionsSchema.optional()]), + z.promise(z.number()) + ), - aggregate: z.function() - .args(z.string(), DataEngineAggregateOptionsSchema) - .returns(z.promise(z.array(z.any()))) + aggregate: z.function( + z.tuple([z.string(), DataEngineAggregateOptionsSchema]), + z.promise(z.array(z.any())) + ) }).describe('Standard Data Engine Contract'); // ========================================================================== diff --git a/packages/spec/src/data/driver.zod.ts b/packages/spec/src/data/driver.zod.ts index 14456e2f4..880efb11b 100644 --- a/packages/spec/src/data/driver.zod.ts +++ b/packages/spec/src/data/driver.zod.ts @@ -289,37 +289,41 @@ export const DriverInterfaceSchema = z.object({ /** * Initialize connection pool or authenticate. */ - connect: z.function() - .returns(z.promise(z.void())) - .describe('Establish connection'), + connect: z.function( + z.tuple([]), + z.promise(z.void()) + ).describe('Establish connection'), /** * Close connections and cleanup resources. */ - disconnect: z.function() - .returns(z.promise(z.void())) - .describe('Close connection'), + disconnect: z.function( + z.tuple([]), + z.promise(z.void()) + ).describe('Close connection'), /** * Check connection health. * @returns true if healthy, false otherwise. */ - checkHealth: z.function() - .returns(z.promise(z.boolean())) - .describe('Health check'), + checkHealth: z.function( + z.tuple([]), + z.promise(z.boolean()) + ).describe('Health check'), /** * Get Connection Pool Statistics. * Useful for monitoring database load. */ - getPoolStats: z.function() - .returns(z.object({ + getPoolStats: z.function( + z.tuple([]), + z.object({ total: z.number(), idle: z.number(), active: z.number(), waiting: z.number(), - }).optional()) - .optional() + }).optional() + ).optional() .describe('Get connection pool statistics'), // ============================================================================ @@ -342,10 +346,10 @@ export const DriverInterfaceSchema = z.object({ * // Mongo Driver * await driver.execute({ aggregate: 'orders', pipeline: [...] }); */ - execute: z.function() - .args(z.any(), z.array(z.any()).optional(), DriverOptionsSchema.optional()) - .returns(z.promise(z.any())) - .describe('Execute raw command'), + execute: z.function( + z.tuple([z.any(), z.array(z.any()).optional(), DriverOptionsSchema.optional()]), + z.promise(z.any()) + ).describe('Execute raw command'), // ============================================================================ // CRUD Operations @@ -369,10 +373,10 @@ export const DriverInterfaceSchema = z.object({ * @returns Array of records. * MUST return `id` as string. MUST NOT return implementation details like `_id`. */ - find: z.function() - .args(z.string(), QuerySchema, DriverOptionsSchema.optional()) - .returns(z.promise(z.array(z.record(z.any())))) - .describe('Find records'), + find: z.function( + z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), + z.promise(z.array(z.record(z.any()))) + ).describe('Find records'), /** * Stream records matching the structured query. @@ -383,10 +387,10 @@ export const DriverInterfaceSchema = z.object({ * @param options - Driver options. * @returns AsyncIterable/ReadableStream of records. */ - findStream: z.function() - .args(z.string(), QuerySchema, DriverOptionsSchema.optional()) - .returns(z.any()) // Zod cannot easily represent AsyncIterable - .describe('Stream records (AsyncIterable)'), + findStream: z.function( + z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), + z.any() + ).describe('Stream records (AsyncIterable)'), /** * Find a single record by query. @@ -398,10 +402,10 @@ export const DriverInterfaceSchema = z.object({ * @returns The record or null. * MUST return `id` as string. MUST NOT return implementation details like `_id`. */ - findOne: z.function() - .args(z.string(), QuerySchema, DriverOptionsSchema.optional()) - .returns(z.promise(z.record(z.any()).nullable())) - .describe('Find one record'), + findOne: z.function( + z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), + z.promise(z.record(z.any()).nullable()) + ).describe('Find one record'), /** * Create a new record. @@ -412,10 +416,10 @@ export const DriverInterfaceSchema = z.object({ * @returns The created record, including server-generated fields (id, created_at, etc.). * MUST return `id` as string. MUST NOT return implementation details like `_id`. */ - create: z.function() - .args(z.string(), z.record(z.any()), DriverOptionsSchema.optional()) - .returns(z.promise(z.record(z.any()))) - .describe('Create record'), + create: z.function( + z.tuple([z.string(), z.record(z.any()), DriverOptionsSchema.optional()]), + z.promise(z.record(z.any())) + ).describe('Create record'), /** * Update an existing record by ID. @@ -427,10 +431,10 @@ export const DriverInterfaceSchema = z.object({ * @returns The updated record. * MUST return `id` as string. MUST NOT return implementation details like `_id`. */ - update: z.function() - .args(z.string(), z.string().or(z.number()), z.record(z.any()), DriverOptionsSchema.optional()) - .returns(z.promise(z.record(z.any()))) - .describe('Update record'), + update: z.function( + z.tuple([z.string(), z.string().or(z.number()), z.record(z.any()), DriverOptionsSchema.optional()]), + z.promise(z.record(z.any())) + ).describe('Update record'), /** * Upsert (Update or Insert) a record. @@ -441,10 +445,10 @@ export const DriverInterfaceSchema = z.object({ * @param options - Driver options. * @returns The created or updated record. */ - upsert: z.function() - .args(z.string(), z.record(z.any()), z.array(z.string()).optional(), DriverOptionsSchema.optional()) - .returns(z.promise(z.record(z.any()))) - .describe('Upsert record'), + upsert: z.function( + z.tuple([z.string(), z.record(z.any()), z.array(z.string()).optional(), DriverOptionsSchema.optional()]), + z.promise(z.record(z.any())) + ).describe('Upsert record'), /** * Delete a record by ID. @@ -454,10 +458,10 @@ export const DriverInterfaceSchema = z.object({ * @param options - Driver options. * @returns True if deleted, false if not found. */ - delete: z.function() - .args(z.string(), z.string().or(z.number()), DriverOptionsSchema.optional()) - .returns(z.promise(z.boolean())) - .describe('Delete record'), + delete: z.function( + z.tuple([z.string(), z.string().or(z.number()), DriverOptionsSchema.optional()]), + z.promise(z.boolean()) + ).describe('Delete record'), /** * Count records matching a query. @@ -467,10 +471,10 @@ export const DriverInterfaceSchema = z.object({ * @param options - Driver options. * @returns Total count. */ - count: z.function() - .args(z.string(), QuerySchema.optional(), DriverOptionsSchema.optional()) - .returns(z.promise(z.number())) - .describe('Count records'), + count: z.function( + z.tuple([z.string(), QuerySchema.optional(), DriverOptionsSchema.optional()]), + z.promise(z.number()) + ).describe('Count records'), // ============================================================================ // Bulk Operations @@ -484,9 +488,10 @@ export const DriverInterfaceSchema = z.object({ * @param dataArray - Array of record data. * @returns Array of created records. */ - bulkCreate: z.function() - .args(z.string(), z.array(z.record(z.any())), DriverOptionsSchema.optional()) - .returns(z.promise(z.array(z.record(z.any())))), + bulkCreate: z.function( + z.tuple([z.string(), z.array(z.record(z.any())), DriverOptionsSchema.optional()]), + z.promise(z.array(z.record(z.any()))) + ), /** * Update multiple records in a single batch. @@ -495,9 +500,10 @@ export const DriverInterfaceSchema = z.object({ * @param updates - Array of objects containing {id, data}. * @returns Array of updated records. */ - bulkUpdate: z.function() - .args(z.string(), z.array(z.object({ id: z.string().or(z.number()), data: z.record(z.any()) })), DriverOptionsSchema.optional()) - .returns(z.promise(z.array(z.record(z.any())))), + bulkUpdate: z.function( + z.tuple([z.string(), z.array(z.object({ id: z.string().or(z.number()), data: z.record(z.any()) })), DriverOptionsSchema.optional()]), + z.promise(z.array(z.record(z.any()))) + ), /** * Delete multiple records in a single batch. @@ -505,9 +511,10 @@ export const DriverInterfaceSchema = z.object({ * @param object - The object name. * @param ids - Array of record IDs. */ - bulkDelete: z.function() - .args(z.string(), z.array(z.string().or(z.number())), DriverOptionsSchema.optional()) - .returns(z.promise(z.void())), + bulkDelete: z.function( + z.tuple([z.string(), z.array(z.string().or(z.number())), DriverOptionsSchema.optional()]), + z.promise(z.void()) + ), /** * Update multiple records matching a query. @@ -518,10 +525,10 @@ export const DriverInterfaceSchema = z.object({ * @param data - The data to update. * @returns Count of modified records. */ - updateMany: z.function() - .args(z.string(), QuerySchema, z.record(z.any()), DriverOptionsSchema.optional()) - .returns(z.promise(z.number())) - .optional(), + updateMany: z.function( + z.tuple([z.string(), QuerySchema, z.record(z.any()), DriverOptionsSchema.optional()]), + z.promise(z.number()) + ).optional(), /** * Delete multiple records matching a query. @@ -531,10 +538,10 @@ export const DriverInterfaceSchema = z.object({ * @param query - The filtering criteria. * @returns Count of deleted records. */ - deleteMany: z.function() - .args(z.string(), QuerySchema, DriverOptionsSchema.optional()) - .returns(z.promise(z.number())) - .optional(), + deleteMany: z.function( + z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), + z.promise(z.number()) + ).optional(), // ============================================================================ // Transaction Management @@ -545,30 +552,30 @@ export const DriverInterfaceSchema = z.object({ * @param options - Isolation level and other settings. * @returns A transaction handle to be passed to subsequent operations via `options.transaction`. */ - beginTransaction: z.function() - .args(z.object({ + beginTransaction: z.function( + z.tuple([z.object({ isolationLevel: z.enum(['READ UNCOMMITTED', 'READ COMMITTED', 'REPEATABLE READ', 'SERIALIZABLE', 'SNAPSHOT']).optional() - }).optional()) - .returns(z.promise(z.any())) - .describe('Start transaction'), + }).optional()]), + z.promise(z.any()) + ).describe('Start transaction'), /** * Commit the transaction. * @param transaction - The transaction handle. */ - commit: z.function() - .args(z.any()) - .returns(z.promise(z.void())) - .describe('Commit transaction'), + commit: z.function( + z.tuple([z.any()]), + z.promise(z.void()) + ).describe('Commit transaction'), /** * Rollback the transaction. * @param transaction - The transaction handle. */ - rollback: z.function() - .args(z.any()) - .returns(z.promise(z.void())) - .describe('Rollback transaction'), + rollback: z.function( + z.tuple([z.any()]), + z.promise(z.void()) + ).describe('Rollback transaction'), // ============================================================================ // Schema Management @@ -583,10 +590,10 @@ export const DriverInterfaceSchema = z.object({ * @param schema - The full Object Schema (fields, indexes, etc). * @param options - Driver options. */ - syncSchema: z.function() - .args(z.string(), z.any(), DriverOptionsSchema.optional()) - .returns(z.promise(z.void())) - .describe('Sync object schema to DB'), + syncSchema: z.function( + z.tuple([z.string(), z.any(), DriverOptionsSchema.optional()]), + z.promise(z.void()) + ).describe('Sync object schema to DB'), /** * Drop the underlying table or collection for an object. @@ -594,9 +601,10 @@ export const DriverInterfaceSchema = z.object({ * * @param object - The object name. */ - dropTable: z.function() - .args(z.string(), DriverOptionsSchema.optional()) - .returns(z.promise(z.void())), + dropTable: z.function( + z.tuple([z.string(), DriverOptionsSchema.optional()]), + z.promise(z.void()) + ), /** * Analyze query performance. @@ -606,10 +614,10 @@ export const DriverInterfaceSchema = z.object({ * @param query - The query to explain. * @returns The execution plan details. */ - explain: z.function() - .args(z.string(), QuerySchema, DriverOptionsSchema.optional()) - .returns(z.promise(z.any())) - .optional(), + explain: z.function( + z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), + z.promise(z.any()) + ).optional(), }); /** diff --git a/packages/spec/src/system/events.zod.ts b/packages/spec/src/system/events.zod.ts index 4809fd1dc..899cc8816 100644 --- a/packages/spec/src/system/events.zod.ts +++ b/packages/spec/src/system/events.zod.ts @@ -136,7 +136,7 @@ export const EventHandlerSchema = z.object({ /** * Handler function */ - handler: z.function().args(EventSchema).returns(z.promise(z.void())).describe('Handler function'), + handler: z.function(z.tuple([EventSchema]), z.promise(z.void())).describe('Handler function'), /** * Execution priority @@ -165,7 +165,7 @@ export const EventHandlerSchema = z.object({ /** * Filter function */ - filter: z.function().args(EventSchema).returns(z.boolean()).optional() + filter: z.function(z.tuple([EventSchema]), z.boolean()).optional() .describe('Optional filter to determine if handler should execute'), }); @@ -523,7 +523,7 @@ export const EventWebhookConfigSchema = z.object({ /** * Event transformation */ - transform: z.function().args(EventSchema).returns(z.any()).optional() + transform: z.function(z.tuple([EventSchema]), z.any()).optional() .describe('Transform event before sending'), /** @@ -649,7 +649,7 @@ export const RealTimeNotificationConfigSchema = z.object({ channels: z.array(z.object({ name: z.string().describe('Channel name'), eventPattern: z.string().describe('Event pattern for channel'), - filter: z.function().args(EventSchema).returns(z.boolean()).optional() + filter: z.function(z.tuple([EventSchema]), z.boolean()).optional() .describe('Additional filter function'), })).optional().describe('Named channels for event broadcasting'), diff --git a/packages/spec/src/system/job.zod.ts b/packages/spec/src/system/job.zod.ts index 7895445b8..d2e962576 100644 --- a/packages/spec/src/system/job.zod.ts +++ b/packages/spec/src/system/job.zod.ts @@ -64,7 +64,7 @@ export const JobSchema = z.object({ id: z.string().describe('Unique job identifier'), name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Job name (snake_case)'), schedule: ScheduleSchema.describe('Job schedule configuration'), - handler: z.function().returns(z.promise(z.void())).describe('Job handler function'), + handler: z.function(z.tuple([]), z.promise(z.void())).describe('Job handler function'), retryPolicy: RetryPolicySchema.optional().describe('Retry policy configuration'), timeout: z.number().int().positive().optional().describe('Timeout in milliseconds'), enabled: z.boolean().default(true).describe('Whether the job is enabled'), diff --git a/packages/spec/src/system/plugin.zod.ts b/packages/spec/src/system/plugin.zod.ts index d7d1178a9..05e4db3e4 100644 --- a/packages/spec/src/system/plugin.zod.ts +++ b/packages/spec/src/system/plugin.zod.ts @@ -4,31 +4,31 @@ import { z } from 'zod'; // as Zod cannot easily validate function signatures at runtime. export const PluginContextSchema = z.object({ ql: z.object({ - object: z.function().returns(z.any()), // Return any to allow method chaining - query: z.function().returns(z.any()), + object: z.function(z.tuple([]), z.any()), // Return any to allow method chaining + query: z.function(z.tuple([]), z.any()), }).passthrough().describe('ObjectQL Engine Interface'), os: z.object({ - getCurrentUser: z.function().returns(z.any()), - getConfig: z.function().returns(z.any()), + getCurrentUser: z.function(z.tuple([]), z.any()), + getConfig: z.function(z.tuple([]), z.any()), }).passthrough().describe('ObjectStack Kernel Interface'), logger: z.object({ - debug: z.function().returns(z.void()), - info: z.function().returns(z.void()), - warn: z.function().returns(z.void()), - error: z.function().returns(z.void()), + debug: z.function(z.tuple([]), z.void()), + info: z.function(z.tuple([]), z.void()), + warn: z.function(z.tuple([]), z.void()), + error: z.function(z.tuple([]), z.void()), }).passthrough().describe('Logger Interface'), storage: z.object({ - get: z.function().returns(z.any()), - set: z.function().returns(z.promise(z.void())), - delete: z.function().returns(z.promise(z.void())), + get: z.function(z.tuple([]), z.any()), + set: z.function(z.tuple([]), z.promise(z.void())), + delete: z.function(z.tuple([]), z.promise(z.void())), }).passthrough().describe('Storage Interface'), i18n: z.object({ - t: z.function().returns(z.string()), - getLocale: z.function().returns(z.string()), + t: z.function(z.tuple([]), z.string()), + getLocale: z.function(z.tuple([]), z.string()), }).passthrough().describe('Internationalization Interface'), metadata: z.record(z.any()), @@ -36,44 +36,44 @@ export const PluginContextSchema = z.object({ app: z.object({ router: z.object({ - get: z.function().returns(z.any()), - post: z.function().returns(z.any()), - use: z.function().returns(z.any()), + get: z.function(z.tuple([]), z.any()), + post: z.function(z.tuple([]), z.any()), + use: z.function(z.tuple([]), z.any()), }).passthrough() }).passthrough().describe('App Framework Interface'), drivers: z.object({ - register: z.function().returns(z.void()), + register: z.function(z.tuple([]), z.void()), }).passthrough().describe('Driver Registry'), }); export type PluginContextData = z.infer; export const PluginLifecycleSchema = z.object({ - onInstall: z.function() - .args(PluginContextSchema) - .returns(z.promise(z.void())) - .optional(), + onInstall: z.function( + z.tuple([PluginContextSchema]), + z.promise(z.void()) + ).optional(), - onEnable: z.function() - .args(PluginContextSchema) - .returns(z.promise(z.void())) - .optional(), + onEnable: z.function( + z.tuple([PluginContextSchema]), + z.promise(z.void()) + ).optional(), - onDisable: z.function() - .args(PluginContextSchema) - .returns(z.promise(z.void())) - .optional(), + onDisable: z.function( + z.tuple([PluginContextSchema]), + z.promise(z.void()) + ).optional(), - onUninstall: z.function() - .args(PluginContextSchema) - .returns(z.promise(z.void())) - .optional(), + onUninstall: z.function( + z.tuple([PluginContextSchema]), + z.promise(z.void()) + ).optional(), - onUpgrade: z.function() - .args(PluginContextSchema, z.string(), z.string()) - .returns(z.promise(z.void())) - .optional(), + onUpgrade: z.function( + z.tuple([PluginContextSchema, z.string(), z.string()]), + z.promise(z.void()) + ).optional(), }); export type PluginLifecycleHooks = z.infer; diff --git a/packages/spec/src/system/worker.zod.ts b/packages/spec/src/system/worker.zod.ts index 89fa9d0f1..00f96ddc7 100644 --- a/packages/spec/src/system/worker.zod.ts +++ b/packages/spec/src/system/worker.zod.ts @@ -366,14 +366,14 @@ export const BatchTaskSchema = z.object({ * * @param progress - Object containing processed count, total count, and failed count */ - onProgress: z.function() - .args(z.object({ + onProgress: z.function( + z.tuple([z.object({ processed: z.number(), total: z.number(), failed: z.number(), - })) - .returns(z.void()) - .optional() + })]), + z.void() + ).optional() .describe('Progress callback function (called after each batch)'), }); diff --git a/packages/spec/src/ui/widget.zod.ts b/packages/spec/src/ui/widget.zod.ts index 038878baf..5841763a5 100644 --- a/packages/spec/src/ui/widget.zod.ts +++ b/packages/spec/src/ui/widget.zod.ts @@ -367,10 +367,10 @@ export const FieldWidgetPropsSchema = z.object({ * * @param newValue - The new value to set */ - onChange: z.function() - .args(z.any()) - .returns(z.void()) - .describe('Callback to update field value'), + onChange: z.function( + z.tuple([z.any()]), + z.void() + ).describe('Callback to update field value'), /** * Whether the field is in read-only mode. From 7f0bd79c75ee2a29ce7989c07ab57df42b344ea8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 1 Feb 2026 06:31:36 +0000 Subject: [PATCH 3/7] fix: migrate all z.function() calls to Zod v4 API Convert all z.function(args, returnType) calls to z.function({ input: args, output: returnType }) format across: - driver.zod.ts (24 functions) - auth/config.zod.ts (7 functions) - api/protocol.zod.ts (17 functions) Verified with successful pnpm gen:schema run generating 939 schemas. Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com> --- packages/spec/src/api/protocol.zod.ts | 192 +++++++++++----------- packages/spec/src/auth/config.zod.ts | 56 +++---- packages/spec/src/data/data-engine.zod.ts | 56 +++---- packages/spec/src/data/driver.zod.ts | 192 +++++++++++----------- packages/spec/src/system/events.zod.ts | 20 ++- packages/spec/src/system/job.zod.ts | 5 +- packages/spec/src/system/plugin.zod.ts | 125 +++++++++----- packages/spec/src/system/worker.zod.ts | 8 +- packages/spec/src/ui/widget.zod.ts | 8 +- 9 files changed, 364 insertions(+), 298 deletions(-) diff --git a/packages/spec/src/api/protocol.zod.ts b/packages/spec/src/api/protocol.zod.ts index 29e56b42e..d54779110 100644 --- a/packages/spec/src/api/protocol.zod.ts +++ b/packages/spec/src/api/protocol.zod.ts @@ -335,108 +335,108 @@ export const DeleteViewResponseSchema = z.object({ */ export const ObjectStackProtocolSchema = z.object({ // Discovery & Metadata - getDiscovery: z.function( - z.tuple([GetDiscoveryRequestSchema]), - z.promise(GetDiscoveryResponseSchema) - ).describe('Get API discovery information'), - - getMetaTypes: z.function( - z.tuple([GetMetaTypesRequestSchema]), - z.promise(GetMetaTypesResponseSchema) - ).describe('Get available metadata types'), - - getMetaItems: z.function( - z.tuple([GetMetaItemsRequestSchema]), - z.promise(GetMetaItemsResponseSchema) - ).describe('Get all items of a metadata type'), - - getMetaItem: z.function( - z.tuple([GetMetaItemRequestSchema]), - z.promise(GetMetaItemResponseSchema) - ).describe('Get a specific metadata item'), - - getMetaItemCached: z.function( - z.tuple([GetMetaItemCachedRequestSchema]), - z.promise(GetMetaItemCachedResponseSchema) - ).describe('Get a metadata item with cache validation'), - - getUiView: z.function( - z.tuple([GetUiViewRequestSchema]), - z.promise(GetUiViewResponseSchema) - ).describe('Get UI view definition'), + getDiscovery: z.function({ + input: z.tuple([GetDiscoveryRequestSchema]), + output: z.promise(GetDiscoveryResponseSchema) + }).describe('Get API discovery information'), + + getMetaTypes: z.function({ + input: z.tuple([GetMetaTypesRequestSchema]), + output: z.promise(GetMetaTypesResponseSchema) + }).describe('Get available metadata types'), + + getMetaItems: z.function({ + input: z.tuple([GetMetaItemsRequestSchema]), + output: z.promise(GetMetaItemsResponseSchema) + }).describe('Get all items of a metadata type'), + + getMetaItem: z.function({ + input: z.tuple([GetMetaItemRequestSchema]), + output: z.promise(GetMetaItemResponseSchema) + }).describe('Get a specific metadata item'), + + getMetaItemCached: z.function({ + input: z.tuple([GetMetaItemCachedRequestSchema]), + output: z.promise(GetMetaItemCachedResponseSchema) + }).describe('Get a metadata item with cache validation'), + + getUiView: z.function({ + input: z.tuple([GetUiViewRequestSchema]), + output: z.promise(GetUiViewResponseSchema) + }).describe('Get UI view definition'), // Data Operations - findData: z.function( - z.tuple([FindDataRequestSchema]), - z.promise(FindDataResponseSchema) - ).describe('Find data records'), - - getData: z.function( - z.tuple([GetDataRequestSchema]), - z.promise(GetDataResponseSchema) - ).describe('Get single data record'), - - createData: z.function( - z.tuple([CreateDataRequestSchema]), - z.promise(CreateDataResponseSchema) - ).describe('Create a data record'), - - updateData: z.function( - z.tuple([UpdateDataRequestSchema]), - z.promise(UpdateDataResponseSchema) - ).describe('Update a data record'), - - deleteData: z.function( - z.tuple([DeleteDataRequestSchema]), - z.promise(DeleteDataResponseSchema) - ).describe('Delete a data record'), + findData: z.function({ + input: z.tuple([FindDataRequestSchema]), + output: z.promise(FindDataResponseSchema) + }).describe('Find data records'), + + getData: z.function({ + input: z.tuple([GetDataRequestSchema]), + output: z.promise(GetDataResponseSchema) + }).describe('Get single data record'), + + createData: z.function({ + input: z.tuple([CreateDataRequestSchema]), + output: z.promise(CreateDataResponseSchema) + }).describe('Create a data record'), + + updateData: z.function({ + input: z.tuple([UpdateDataRequestSchema]), + output: z.promise(UpdateDataResponseSchema) + }).describe('Update a data record'), + + deleteData: z.function({ + input: z.tuple([DeleteDataRequestSchema]), + output: z.promise(DeleteDataResponseSchema) + }).describe('Delete a data record'), // Batch Operations - batchData: z.function( - z.tuple([BatchDataRequestSchema]), - z.promise(BatchDataResponseSchema) - ).describe('Perform batch operations'), - - createManyData: z.function( - z.tuple([CreateManyDataRequestSchema]), - z.promise(CreateManyDataResponseSchema) - ).describe('Create multiple records'), - - updateManyData: z.function( - z.tuple([UpdateManyDataRequestSchema]), - z.promise(UpdateManyDataResponseSchema) - ).describe('Update multiple records'), - - deleteManyData: z.function( - z.tuple([DeleteManyDataRequestSchema]), - z.promise(DeleteManyDataResponseSchema) - ).describe('Delete multiple records'), + batchData: z.function({ + input: z.tuple([BatchDataRequestSchema]), + output: z.promise(BatchDataResponseSchema) + }).describe('Perform batch operations'), + + createManyData: z.function({ + input: z.tuple([CreateManyDataRequestSchema]), + output: z.promise(CreateManyDataResponseSchema) + }).describe('Create multiple records'), + + updateManyData: z.function({ + input: z.tuple([UpdateManyDataRequestSchema]), + output: z.promise(UpdateManyDataResponseSchema) + }).describe('Update multiple records'), + + deleteManyData: z.function({ + input: z.tuple([DeleteManyDataRequestSchema]), + output: z.promise(DeleteManyDataResponseSchema) + }).describe('Delete multiple records'), // View Storage - createView: z.function( - z.tuple([CreateViewRequestSchema]), - z.promise(ViewResponseSchema) - ).describe('Create a saved view'), - - getView: z.function( - z.tuple([GetViewRequestSchema]), - z.promise(ViewResponseSchema) - ).describe('Get a saved view'), - - listViews: z.function( - z.tuple([ListViewsRequestSchema]), - z.promise(ListViewsResponseSchema) - ).describe('List saved views'), - - updateView: z.function( - z.tuple([UpdateViewRequestSchema]), - z.promise(ViewResponseSchema) - ).describe('Update a saved view'), - - deleteView: z.function( - z.tuple([DeleteViewRequestSchema]), - z.promise(DeleteViewResponseSchema) - ).describe('Delete a saved view'), + createView: z.function({ + input: z.tuple([CreateViewRequestSchema]), + output: z.promise(ViewResponseSchema) + }).describe('Create a saved view'), + + getView: z.function({ + input: z.tuple([GetViewRequestSchema]), + output: z.promise(ViewResponseSchema) + }).describe('Get a saved view'), + + listViews: z.function({ + input: z.tuple([ListViewsRequestSchema]), + output: z.promise(ListViewsResponseSchema) + }).describe('List saved views'), + + updateView: z.function({ + input: z.tuple([UpdateViewRequestSchema]), + output: z.promise(ViewResponseSchema) + }).describe('Update a saved view'), + + deleteView: z.function({ + input: z.tuple([DeleteViewRequestSchema]), + output: z.promise(DeleteViewResponseSchema) + }).describe('Delete a saved view'), }); /** diff --git a/packages/spec/src/auth/config.zod.ts b/packages/spec/src/auth/config.zod.ts index bc389e35b..028e06e43 100644 --- a/packages/spec/src/auth/config.zod.ts +++ b/packages/spec/src/auth/config.zod.ts @@ -252,14 +252,14 @@ export const MagicLinkConfigSchema = z.object({ expiryTime: z.number().default(900).describe('Magic link expiry time in seconds (default 15 min)'), - sendEmail: z.function( - z.tuple([z.object({ + sendEmail: z.function({ + input: z.tuple([z.object({ to: z.string().email(), link: z.string().url(), token: z.string(), })]), - z.promise(z.void()) - ).optional() + output: z.promise(z.void()) + }).optional() .describe('Custom email sending function'), }); @@ -736,40 +736,40 @@ export const ApplicationAuthConfigSchema = z.object({ * Custom hooks for authentication events */ hooks: z.object({ - beforeSignIn: z.function( - z.tuple([z.object({ email: z.string() })]), - z.promise(z.void()) - ).optional() + beforeSignIn: z.function({ + input: z.tuple([z.object({ email: z.string() })]), + output: z.promise(z.void()) + }).optional() .describe('Called before user sign in'), - afterSignIn: z.function( - z.tuple([z.object({ user: z.any(), session: z.any() })]), - z.promise(z.void()) - ).optional() + afterSignIn: z.function({ + input: z.tuple([z.object({ user: z.any(), session: z.any() })]), + output: z.promise(z.void()) + }).optional() .describe('Called after user sign in'), - beforeSignUp: z.function( - z.tuple([z.object({ email: z.string(), name: z.string().optional() })]), - z.promise(z.void()) - ).optional() + beforeSignUp: z.function({ + input: z.tuple([z.object({ email: z.string(), name: z.string().optional() })]), + output: z.promise(z.void()) + }).optional() .describe('Called before user registration'), - afterSignUp: z.function( - z.tuple([z.object({ user: z.any() })]), - z.promise(z.void()) - ).optional() + afterSignUp: z.function({ + input: z.tuple([z.object({ user: z.any() })]), + output: z.promise(z.void()) + }).optional() .describe('Called after user registration'), - beforeSignOut: z.function( - z.tuple([z.object({ sessionId: z.string() })]), - z.promise(z.void()) - ).optional() + beforeSignOut: z.function({ + input: z.tuple([z.object({ sessionId: z.string() })]), + output: z.promise(z.void()) + }).optional() .describe('Called before user sign out'), - afterSignOut: z.function( - z.tuple([z.object({ sessionId: z.string() })]), - z.promise(z.void()) - ).optional() + afterSignOut: z.function({ + input: z.tuple([z.object({ sessionId: z.string() })]), + output: z.promise(z.void()) + }).optional() .describe('Called after user sign out'), }).optional().describe('Authentication lifecycle hooks'), diff --git a/packages/spec/src/data/data-engine.zod.ts b/packages/spec/src/data/data-engine.zod.ts index 9600c01de..27e17a716 100644 --- a/packages/spec/src/data/data-engine.zod.ts +++ b/packages/spec/src/data/data-engine.zod.ts @@ -165,40 +165,40 @@ export const DataEngineCountOptionsSchema = z.object({ // ========================================================================== export const DataEngineContractSchema = z.object({ - find: z.function( - z.tuple([z.string(), DataEngineQueryOptionsSchema.optional()]), - z.promise(z.array(z.any())) - ), + find: z.function({ + input: z.tuple([z.string(), DataEngineQueryOptionsSchema.optional()]), + output: z.promise(z.array(z.any())) + }), - findOne: z.function( - z.tuple([z.string(), DataEngineQueryOptionsSchema.optional()]), - z.promise(z.any()) - ), + findOne: z.function({ + input: z.tuple([z.string(), DataEngineQueryOptionsSchema.optional()]), + output: z.promise(z.any()) + }), - insert: z.function( - z.tuple([z.string(), z.union([z.record(z.any()), z.array(z.record(z.any()))]), DataEngineInsertOptionsSchema.optional()]), - z.promise(z.any()) - ), + insert: z.function({ + input: z.tuple([z.string(), z.union([z.record(z.any()), z.array(z.record(z.any()))]), DataEngineInsertOptionsSchema.optional()]), + output: z.promise(z.any()) + }), - update: z.function( - z.tuple([z.string(), z.record(z.any()), DataEngineUpdateOptionsSchema.optional()]), - z.promise(z.any()) - ), + update: z.function({ + input: z.tuple([z.string(), z.record(z.any()), DataEngineUpdateOptionsSchema.optional()]), + output: z.promise(z.any()) + }), - delete: z.function( - z.tuple([z.string(), DataEngineDeleteOptionsSchema.optional()]), - z.promise(z.any()) - ), + delete: z.function({ + input: z.tuple([z.string(), DataEngineDeleteOptionsSchema.optional()]), + output: z.promise(z.any()) + }), - count: z.function( - z.tuple([z.string(), DataEngineCountOptionsSchema.optional()]), - z.promise(z.number()) - ), + count: z.function({ + input: z.tuple([z.string(), DataEngineCountOptionsSchema.optional()]), + output: z.promise(z.number()) + }), - aggregate: z.function( - z.tuple([z.string(), DataEngineAggregateOptionsSchema]), - z.promise(z.array(z.any())) - ) + aggregate: z.function({ + input: z.tuple([z.string(), DataEngineAggregateOptionsSchema]), + output: z.promise(z.array(z.any())) + }) }).describe('Standard Data Engine Contract'); // ========================================================================== diff --git a/packages/spec/src/data/driver.zod.ts b/packages/spec/src/data/driver.zod.ts index 880efb11b..14408e24c 100644 --- a/packages/spec/src/data/driver.zod.ts +++ b/packages/spec/src/data/driver.zod.ts @@ -289,41 +289,41 @@ export const DriverInterfaceSchema = z.object({ /** * Initialize connection pool or authenticate. */ - connect: z.function( - z.tuple([]), - z.promise(z.void()) - ).describe('Establish connection'), + connect: z.function({ + input: z.tuple([]), + output: z.promise(z.void()) + }).describe('Establish connection'), /** * Close connections and cleanup resources. */ - disconnect: z.function( - z.tuple([]), - z.promise(z.void()) - ).describe('Close connection'), + disconnect: z.function({ + input: z.tuple([]), + output: z.promise(z.void()) + }).describe('Close connection'), /** * Check connection health. * @returns true if healthy, false otherwise. */ - checkHealth: z.function( - z.tuple([]), - z.promise(z.boolean()) - ).describe('Health check'), + checkHealth: z.function({ + input: z.tuple([]), + output: z.promise(z.boolean()) + }).describe('Health check'), /** * Get Connection Pool Statistics. * Useful for monitoring database load. */ - getPoolStats: z.function( - z.tuple([]), - z.object({ + getPoolStats: z.function({ + input: z.tuple([]), + output: z.object({ total: z.number(), idle: z.number(), active: z.number(), waiting: z.number(), }).optional() - ).optional() + }).optional() .describe('Get connection pool statistics'), // ============================================================================ @@ -346,10 +346,10 @@ export const DriverInterfaceSchema = z.object({ * // Mongo Driver * await driver.execute({ aggregate: 'orders', pipeline: [...] }); */ - execute: z.function( - z.tuple([z.any(), z.array(z.any()).optional(), DriverOptionsSchema.optional()]), - z.promise(z.any()) - ).describe('Execute raw command'), + execute: z.function({ + input: z.tuple([z.any(), z.array(z.any()).optional(), DriverOptionsSchema.optional()]), + output: z.promise(z.any()) + }).describe('Execute raw command'), // ============================================================================ // CRUD Operations @@ -373,10 +373,10 @@ export const DriverInterfaceSchema = z.object({ * @returns Array of records. * MUST return `id` as string. MUST NOT return implementation details like `_id`. */ - find: z.function( - z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), - z.promise(z.array(z.record(z.any()))) - ).describe('Find records'), + find: z.function({ + input: z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), + output: z.promise(z.array(z.record(z.any()))) + }).describe('Find records'), /** * Stream records matching the structured query. @@ -387,10 +387,10 @@ export const DriverInterfaceSchema = z.object({ * @param options - Driver options. * @returns AsyncIterable/ReadableStream of records. */ - findStream: z.function( - z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), - z.any() - ).describe('Stream records (AsyncIterable)'), + findStream: z.function({ + input: z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), + output: z.any() + }).describe('Stream records (AsyncIterable)'), /** * Find a single record by query. @@ -402,10 +402,10 @@ export const DriverInterfaceSchema = z.object({ * @returns The record or null. * MUST return `id` as string. MUST NOT return implementation details like `_id`. */ - findOne: z.function( - z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), - z.promise(z.record(z.any()).nullable()) - ).describe('Find one record'), + findOne: z.function({ + input: z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), + output: z.promise(z.record(z.any()).nullable()) + }).describe('Find one record'), /** * Create a new record. @@ -416,10 +416,10 @@ export const DriverInterfaceSchema = z.object({ * @returns The created record, including server-generated fields (id, created_at, etc.). * MUST return `id` as string. MUST NOT return implementation details like `_id`. */ - create: z.function( - z.tuple([z.string(), z.record(z.any()), DriverOptionsSchema.optional()]), - z.promise(z.record(z.any())) - ).describe('Create record'), + create: z.function({ + input: z.tuple([z.string(), z.record(z.any()), DriverOptionsSchema.optional()]), + output: z.promise(z.record(z.any())) + }).describe('Create record'), /** * Update an existing record by ID. @@ -431,10 +431,10 @@ export const DriverInterfaceSchema = z.object({ * @returns The updated record. * MUST return `id` as string. MUST NOT return implementation details like `_id`. */ - update: z.function( - z.tuple([z.string(), z.string().or(z.number()), z.record(z.any()), DriverOptionsSchema.optional()]), - z.promise(z.record(z.any())) - ).describe('Update record'), + update: z.function({ + input: z.tuple([z.string(), z.string().or(z.number()), z.record(z.any()), DriverOptionsSchema.optional()]), + output: z.promise(z.record(z.any())) + }).describe('Update record'), /** * Upsert (Update or Insert) a record. @@ -445,10 +445,10 @@ export const DriverInterfaceSchema = z.object({ * @param options - Driver options. * @returns The created or updated record. */ - upsert: z.function( - z.tuple([z.string(), z.record(z.any()), z.array(z.string()).optional(), DriverOptionsSchema.optional()]), - z.promise(z.record(z.any())) - ).describe('Upsert record'), + upsert: z.function({ + input: z.tuple([z.string(), z.record(z.any()), z.array(z.string()).optional(), DriverOptionsSchema.optional()]), + output: z.promise(z.record(z.any())) + }).describe('Upsert record'), /** * Delete a record by ID. @@ -458,10 +458,10 @@ export const DriverInterfaceSchema = z.object({ * @param options - Driver options. * @returns True if deleted, false if not found. */ - delete: z.function( - z.tuple([z.string(), z.string().or(z.number()), DriverOptionsSchema.optional()]), - z.promise(z.boolean()) - ).describe('Delete record'), + delete: z.function({ + input: z.tuple([z.string(), z.string().or(z.number()), DriverOptionsSchema.optional()]), + output: z.promise(z.boolean()) + }).describe('Delete record'), /** * Count records matching a query. @@ -471,10 +471,10 @@ export const DriverInterfaceSchema = z.object({ * @param options - Driver options. * @returns Total count. */ - count: z.function( - z.tuple([z.string(), QuerySchema.optional(), DriverOptionsSchema.optional()]), - z.promise(z.number()) - ).describe('Count records'), + count: z.function({ + input: z.tuple([z.string(), QuerySchema.optional(), DriverOptionsSchema.optional()]), + output: z.promise(z.number()) + }).describe('Count records'), // ============================================================================ // Bulk Operations @@ -488,10 +488,10 @@ export const DriverInterfaceSchema = z.object({ * @param dataArray - Array of record data. * @returns Array of created records. */ - bulkCreate: z.function( - z.tuple([z.string(), z.array(z.record(z.any())), DriverOptionsSchema.optional()]), - z.promise(z.array(z.record(z.any()))) - ), + bulkCreate: z.function({ + input: z.tuple([z.string(), z.array(z.record(z.any())), DriverOptionsSchema.optional()]), + output: z.promise(z.array(z.record(z.any()))) + }), /** * Update multiple records in a single batch. @@ -500,10 +500,10 @@ export const DriverInterfaceSchema = z.object({ * @param updates - Array of objects containing {id, data}. * @returns Array of updated records. */ - bulkUpdate: z.function( - z.tuple([z.string(), z.array(z.object({ id: z.string().or(z.number()), data: z.record(z.any()) })), DriverOptionsSchema.optional()]), - z.promise(z.array(z.record(z.any()))) - ), + bulkUpdate: z.function({ + input: z.tuple([z.string(), z.array(z.object({ id: z.string().or(z.number()), data: z.record(z.any()) })), DriverOptionsSchema.optional()]), + output: z.promise(z.array(z.record(z.any()))) + }), /** * Delete multiple records in a single batch. @@ -511,10 +511,10 @@ export const DriverInterfaceSchema = z.object({ * @param object - The object name. * @param ids - Array of record IDs. */ - bulkDelete: z.function( - z.tuple([z.string(), z.array(z.string().or(z.number())), DriverOptionsSchema.optional()]), - z.promise(z.void()) - ), + bulkDelete: z.function({ + input: z.tuple([z.string(), z.array(z.string().or(z.number())), DriverOptionsSchema.optional()]), + output: z.promise(z.void()) + }), /** * Update multiple records matching a query. @@ -525,10 +525,10 @@ export const DriverInterfaceSchema = z.object({ * @param data - The data to update. * @returns Count of modified records. */ - updateMany: z.function( - z.tuple([z.string(), QuerySchema, z.record(z.any()), DriverOptionsSchema.optional()]), - z.promise(z.number()) - ).optional(), + updateMany: z.function({ + input: z.tuple([z.string(), QuerySchema, z.record(z.any()), DriverOptionsSchema.optional()]), + output: z.promise(z.number()) + }).optional(), /** * Delete multiple records matching a query. @@ -538,10 +538,10 @@ export const DriverInterfaceSchema = z.object({ * @param query - The filtering criteria. * @returns Count of deleted records. */ - deleteMany: z.function( - z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), - z.promise(z.number()) - ).optional(), + deleteMany: z.function({ + input: z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), + output: z.promise(z.number()) + }).optional(), // ============================================================================ // Transaction Management @@ -552,30 +552,30 @@ export const DriverInterfaceSchema = z.object({ * @param options - Isolation level and other settings. * @returns A transaction handle to be passed to subsequent operations via `options.transaction`. */ - beginTransaction: z.function( - z.tuple([z.object({ + beginTransaction: z.function({ + input: z.tuple([z.object({ isolationLevel: z.enum(['READ UNCOMMITTED', 'READ COMMITTED', 'REPEATABLE READ', 'SERIALIZABLE', 'SNAPSHOT']).optional() }).optional()]), - z.promise(z.any()) - ).describe('Start transaction'), + output: z.promise(z.any()) + }).describe('Start transaction'), /** * Commit the transaction. * @param transaction - The transaction handle. */ - commit: z.function( - z.tuple([z.any()]), - z.promise(z.void()) - ).describe('Commit transaction'), + commit: z.function({ + input: z.tuple([z.any()]), + output: z.promise(z.void()) + }).describe('Commit transaction'), /** * Rollback the transaction. * @param transaction - The transaction handle. */ - rollback: z.function( - z.tuple([z.any()]), - z.promise(z.void()) - ).describe('Rollback transaction'), + rollback: z.function({ + input: z.tuple([z.any()]), + output: z.promise(z.void()) + }).describe('Rollback transaction'), // ============================================================================ // Schema Management @@ -590,10 +590,10 @@ export const DriverInterfaceSchema = z.object({ * @param schema - The full Object Schema (fields, indexes, etc). * @param options - Driver options. */ - syncSchema: z.function( - z.tuple([z.string(), z.any(), DriverOptionsSchema.optional()]), - z.promise(z.void()) - ).describe('Sync object schema to DB'), + syncSchema: z.function({ + input: z.tuple([z.string(), z.any(), DriverOptionsSchema.optional()]), + output: z.promise(z.void()) + }).describe('Sync object schema to DB'), /** * Drop the underlying table or collection for an object. @@ -601,10 +601,10 @@ export const DriverInterfaceSchema = z.object({ * * @param object - The object name. */ - dropTable: z.function( - z.tuple([z.string(), DriverOptionsSchema.optional()]), - z.promise(z.void()) - ), + dropTable: z.function({ + input: z.tuple([z.string(), DriverOptionsSchema.optional()]), + output: z.promise(z.void()) + }), /** * Analyze query performance. @@ -614,10 +614,10 @@ export const DriverInterfaceSchema = z.object({ * @param query - The query to explain. * @returns The execution plan details. */ - explain: z.function( - z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), - z.promise(z.any()) - ).optional(), + explain: z.function({ + input: z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), + output: z.promise(z.any()) + }).optional(), }); /** diff --git a/packages/spec/src/system/events.zod.ts b/packages/spec/src/system/events.zod.ts index 899cc8816..6adda635a 100644 --- a/packages/spec/src/system/events.zod.ts +++ b/packages/spec/src/system/events.zod.ts @@ -136,7 +136,10 @@ export const EventHandlerSchema = z.object({ /** * Handler function */ - handler: z.function(z.tuple([EventSchema]), z.promise(z.void())).describe('Handler function'), + handler: z.function({ + input: z.tuple([EventSchema]), + output: z.promise(z.void()) + }).describe('Handler function'), /** * Execution priority @@ -165,7 +168,10 @@ export const EventHandlerSchema = z.object({ /** * Filter function */ - filter: z.function(z.tuple([EventSchema]), z.boolean()).optional() + filter: z.function({ + input: z.tuple([EventSchema]), + output: z.boolean() + }).optional() .describe('Optional filter to determine if handler should execute'), }); @@ -523,7 +529,10 @@ export const EventWebhookConfigSchema = z.object({ /** * Event transformation */ - transform: z.function(z.tuple([EventSchema]), z.any()).optional() + transform: z.function({ + input: z.tuple([EventSchema]), + output: z.any() + }).optional() .describe('Transform event before sending'), /** @@ -649,7 +658,10 @@ export const RealTimeNotificationConfigSchema = z.object({ channels: z.array(z.object({ name: z.string().describe('Channel name'), eventPattern: z.string().describe('Event pattern for channel'), - filter: z.function(z.tuple([EventSchema]), z.boolean()).optional() + filter: z.function({ + input: z.tuple([EventSchema]), + output: z.boolean() + }).optional() .describe('Additional filter function'), })).optional().describe('Named channels for event broadcasting'), diff --git a/packages/spec/src/system/job.zod.ts b/packages/spec/src/system/job.zod.ts index d2e962576..d0e52fe25 100644 --- a/packages/spec/src/system/job.zod.ts +++ b/packages/spec/src/system/job.zod.ts @@ -64,7 +64,10 @@ export const JobSchema = z.object({ id: z.string().describe('Unique job identifier'), name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Job name (snake_case)'), schedule: ScheduleSchema.describe('Job schedule configuration'), - handler: z.function(z.tuple([]), z.promise(z.void())).describe('Job handler function'), + handler: z.function({ + input: z.tuple([]), + output: z.promise(z.void()) + }).describe('Job handler function'), retryPolicy: RetryPolicySchema.optional().describe('Retry policy configuration'), timeout: z.number().int().positive().optional().describe('Timeout in milliseconds'), enabled: z.boolean().default(true).describe('Whether the job is enabled'), diff --git a/packages/spec/src/system/plugin.zod.ts b/packages/spec/src/system/plugin.zod.ts index 05e4db3e4..3411c052e 100644 --- a/packages/spec/src/system/plugin.zod.ts +++ b/packages/spec/src/system/plugin.zod.ts @@ -4,31 +4,70 @@ import { z } from 'zod'; // as Zod cannot easily validate function signatures at runtime. export const PluginContextSchema = z.object({ ql: z.object({ - object: z.function(z.tuple([]), z.any()), // Return any to allow method chaining - query: z.function(z.tuple([]), z.any()), + object: z.function({ + input: z.tuple([]), + output: z.any() + }), // Return any to allow method chaining + query: z.function({ + input: z.tuple([]), + output: z.any() + }), }).passthrough().describe('ObjectQL Engine Interface'), os: z.object({ - getCurrentUser: z.function(z.tuple([]), z.any()), - getConfig: z.function(z.tuple([]), z.any()), + getCurrentUser: z.function({ + input: z.tuple([]), + output: z.any() + }), + getConfig: z.function({ + input: z.tuple([]), + output: z.any() + }), }).passthrough().describe('ObjectStack Kernel Interface'), logger: z.object({ - debug: z.function(z.tuple([]), z.void()), - info: z.function(z.tuple([]), z.void()), - warn: z.function(z.tuple([]), z.void()), - error: z.function(z.tuple([]), z.void()), + debug: z.function({ + input: z.tuple([]), + output: z.void() + }), + info: z.function({ + input: z.tuple([]), + output: z.void() + }), + warn: z.function({ + input: z.tuple([]), + output: z.void() + }), + error: z.function({ + input: z.tuple([]), + output: z.void() + }), }).passthrough().describe('Logger Interface'), storage: z.object({ - get: z.function(z.tuple([]), z.any()), - set: z.function(z.tuple([]), z.promise(z.void())), - delete: z.function(z.tuple([]), z.promise(z.void())), + get: z.function({ + input: z.tuple([]), + output: z.any() + }), + set: z.function({ + input: z.tuple([]), + output: z.promise(z.void()) + }), + delete: z.function({ + input: z.tuple([]), + output: z.promise(z.void()) + }), }).passthrough().describe('Storage Interface'), i18n: z.object({ - t: z.function(z.tuple([]), z.string()), - getLocale: z.function(z.tuple([]), z.string()), + t: z.function({ + input: z.tuple([]), + output: z.string() + }), + getLocale: z.function({ + input: z.tuple([]), + output: z.string() + }), }).passthrough().describe('Internationalization Interface'), metadata: z.record(z.any()), @@ -36,44 +75,56 @@ export const PluginContextSchema = z.object({ app: z.object({ router: z.object({ - get: z.function(z.tuple([]), z.any()), - post: z.function(z.tuple([]), z.any()), - use: z.function(z.tuple([]), z.any()), + get: z.function({ + input: z.tuple([]), + output: z.any() + }), + post: z.function({ + input: z.tuple([]), + output: z.any() + }), + use: z.function({ + input: z.tuple([]), + output: z.any() + }), }).passthrough() }).passthrough().describe('App Framework Interface'), drivers: z.object({ - register: z.function(z.tuple([]), z.void()), + register: z.function({ + input: z.tuple([]), + output: z.void() + }), }).passthrough().describe('Driver Registry'), }); export type PluginContextData = z.infer; export const PluginLifecycleSchema = z.object({ - onInstall: z.function( - z.tuple([PluginContextSchema]), - z.promise(z.void()) - ).optional(), + onInstall: z.function({ + input: z.tuple([PluginContextSchema]), + output: z.promise(z.void()) + }).optional(), - onEnable: z.function( - z.tuple([PluginContextSchema]), - z.promise(z.void()) - ).optional(), + onEnable: z.function({ + input: z.tuple([PluginContextSchema]), + output: z.promise(z.void()) + }).optional(), - onDisable: z.function( - z.tuple([PluginContextSchema]), - z.promise(z.void()) - ).optional(), + onDisable: z.function({ + input: z.tuple([PluginContextSchema]), + output: z.promise(z.void()) + }).optional(), - onUninstall: z.function( - z.tuple([PluginContextSchema]), - z.promise(z.void()) - ).optional(), + onUninstall: z.function({ + input: z.tuple([PluginContextSchema]), + output: z.promise(z.void()) + }).optional(), - onUpgrade: z.function( - z.tuple([PluginContextSchema, z.string(), z.string()]), - z.promise(z.void()) - ).optional(), + onUpgrade: z.function({ + input: z.tuple([PluginContextSchema, z.string(), z.string()]), + output: z.promise(z.void()) + }).optional(), }); export type PluginLifecycleHooks = z.infer; diff --git a/packages/spec/src/system/worker.zod.ts b/packages/spec/src/system/worker.zod.ts index 00f96ddc7..76cde32ff 100644 --- a/packages/spec/src/system/worker.zod.ts +++ b/packages/spec/src/system/worker.zod.ts @@ -366,14 +366,14 @@ export const BatchTaskSchema = z.object({ * * @param progress - Object containing processed count, total count, and failed count */ - onProgress: z.function( - z.tuple([z.object({ + onProgress: z.function({ + input: z.tuple([z.object({ processed: z.number(), total: z.number(), failed: z.number(), })]), - z.void() - ).optional() + output: z.void() + }).optional() .describe('Progress callback function (called after each batch)'), }); diff --git a/packages/spec/src/ui/widget.zod.ts b/packages/spec/src/ui/widget.zod.ts index 5841763a5..5404bf228 100644 --- a/packages/spec/src/ui/widget.zod.ts +++ b/packages/spec/src/ui/widget.zod.ts @@ -367,10 +367,10 @@ export const FieldWidgetPropsSchema = z.object({ * * @param newValue - The new value to set */ - onChange: z.function( - z.tuple([z.any()]), - z.void() - ).describe('Callback to update field value'), + onChange: z.function({ + input: z.tuple([z.any()]), + output: z.void() + }).describe('Callback to update field value'), /** * Whether the field is in read-only mode. From 028136a6bb22d63b80755b77263b550b1c593cb3 Mon Sep 17 00:00:00 2001 From: Jack Zhuang <50353452+hotlong@users.noreply.github.com> Date: Sun, 1 Feb 2026 15:20:33 +0800 Subject: [PATCH 4/7] Merge branch 'main' into copilot/update-documentation-for-actions-run --- packages/spec/src/ai/agent-action.zod.ts | 14 +++++----- packages/spec/src/ai/conversation.zod.ts | 10 +++---- packages/spec/src/ai/cost.zod.ts | 6 ++-- packages/spec/src/ai/devops-agent.zod.ts | 8 +++--- packages/spec/src/ai/model-registry.zod.ts | 6 ++-- packages/spec/src/ai/nlq.zod.ts | 4 +-- packages/spec/src/ai/orchestration.zod.ts | 8 +++--- packages/spec/src/ai/predictive.zod.ts | 8 +++--- packages/spec/src/ai/rag-pipeline.zod.ts | 8 +++--- packages/spec/src/api/contract.zod.ts | 2 +- packages/spec/src/api/graphql.zod.ts | 12 ++++---- packages/spec/src/api/odata.zod.ts | 4 +-- packages/spec/src/api/protocol.zod.ts | 20 ++++++------- packages/spec/src/api/realtime.zod.ts | 2 +- packages/spec/src/api/router.zod.ts | 9 +++++- packages/spec/src/api/view-storage.zod.ts | 4 +-- packages/spec/src/api/websocket.zod.ts | 8 +++--- packages/spec/src/auth/config.zod.ts | 28 +++++++++---------- packages/spec/src/auth/organization.zod.ts | 2 +- packages/spec/src/auth/scim.zod.ts | 2 +- packages/spec/src/automation/approval.zod.ts | 2 +- packages/spec/src/automation/etl.zod.ts | 8 +++--- packages/spec/src/automation/flow.zod.ts | 2 +- packages/spec/src/automation/sync.zod.ts | 4 +-- .../src/automation/trigger-registry.zod.ts | 14 +++++----- packages/spec/src/automation/webhook.zod.ts | 4 +-- packages/spec/src/automation/workflow.zod.ts | 10 +++---- packages/spec/src/data/data-engine.zod.ts | 16 +++++------ packages/spec/src/data/dataset.zod.ts | 2 +- packages/spec/src/data/document.zod.ts | 2 +- packages/spec/src/data/driver-nosql.zod.ts | 8 +++--- packages/spec/src/data/driver.zod.ts | 28 +++++++++---------- packages/spec/src/data/driver/mongo.zod.ts | 2 +- packages/spec/src/data/external-lookup.zod.ts | 4 +-- packages/spec/src/data/field.zod.ts | 2 +- packages/spec/src/data/hook.zod.ts | 4 +-- packages/spec/src/data/mapping.zod.ts | 2 +- packages/spec/src/data/query.zod.ts | 4 +-- packages/spec/src/data/validation.zod.ts | 10 +++---- packages/spec/src/hub/composer.zod.ts | 6 ++-- packages/spec/src/hub/license.zod.ts | 4 +-- packages/spec/src/hub/plugin-registry.zod.ts | 2 +- packages/spec/src/hub/space.zod.ts | 4 +-- packages/spec/src/hub/tenant.zod.ts | 2 +- .../spec/src/integration/connector.zod.ts | 6 ++-- .../src/integration/connector/database.zod.ts | 2 +- .../integration/connector/file-storage.zod.ts | 2 +- .../src/integration/connector/github.zod.ts | 2 +- .../connector/message-queue.zod.ts | 4 +-- .../src/integration/connector/saas.zod.ts | 2 +- .../src/integration/connector/vercel.zod.ts | 4 +-- .../spec/src/permission/permission.zod.ts | 6 ++-- packages/spec/src/permission/rls.zod.ts | 2 +- packages/spec/src/shared/mapping.zod.ts | 2 +- packages/spec/src/system/audit.zod.ts | 16 +++++------ packages/spec/src/system/collaboration.zod.ts | 24 ++++++++-------- packages/spec/src/system/context.zod.ts | 2 +- packages/spec/src/system/datasource.zod.ts | 6 ++-- packages/spec/src/system/http-server.zod.ts | 4 +-- packages/spec/src/system/logging.zod.ts | 24 ++++++++-------- packages/spec/src/system/manifest.zod.ts | 10 +++---- .../spec/src/system/metadata-loader.zod.ts | 4 +-- packages/spec/src/system/metrics.zod.ts | 10 +++---- packages/spec/src/system/notification.zod.ts | 2 +- .../spec/src/system/object-storage.zod.ts | 8 +++--- .../spec/src/system/plugin-capability.zod.ts | 2 +- packages/spec/src/system/plugin.zod.ts | 4 +-- packages/spec/src/system/search-engine.zod.ts | 4 +-- .../spec/src/system/service-registry.zod.ts | 6 ++-- .../src/system/startup-orchestrator.zod.ts | 2 +- packages/spec/src/system/tracing.zod.ts | 14 +++++----- packages/spec/src/system/translation.zod.ts | 10 +++---- packages/spec/src/ui/app.zod.ts | 2 +- packages/spec/src/ui/page.zod.ts | 2 +- packages/spec/src/ui/theme.zod.ts | 2 +- packages/spec/src/ui/view.zod.ts | 8 +++--- packages/spec/src/ui/widget.zod.ts | 8 +++--- 77 files changed, 262 insertions(+), 255 deletions(-) diff --git a/packages/spec/src/ai/agent-action.zod.ts b/packages/spec/src/ai/agent-action.zod.ts index 7fde78853..efed5e591 100644 --- a/packages/spec/src/ai/agent-action.zod.ts +++ b/packages/spec/src/ai/agent-action.zod.ts @@ -168,7 +168,7 @@ export type NavigationActionParams = z.infer; export const FormActionParamsSchema = z.object({ object: z.string().optional().describe('Object name'), recordId: z.string().optional().describe('Record ID (for edit/delete)'), - fieldValues: z.record(z.any()).optional().describe('Field name-value pairs'), + fieldValues: z.record(z.string(), z.any()).optional().describe('Field name-value pairs'), fieldName: z.string().optional().describe('Specific field to fill/clear'), fieldValue: z.any().optional().describe('Value to set'), validateOnly: z.boolean().optional().describe('Validate without saving'), @@ -200,8 +200,8 @@ export type FormActionParams = z.infer; */ export const DataActionParamsSchema = z.object({ recordIds: z.array(z.string()).optional().describe('Record IDs to select/operate on'), - filters: z.record(z.any()).optional().describe('Filter for bulk operations'), - updateData: z.record(z.any()).optional().describe('Data for bulk update'), + filters: z.record(z.string(), z.any()).optional().describe('Filter for bulk operations'), + updateData: z.record(z.string(), z.any()).optional().describe('Data for bulk update'), exportFormat: z.enum(['csv', 'xlsx', 'pdf', 'json']).optional(), }); @@ -219,9 +219,9 @@ export const WorkflowActionParamsSchema = z.object({ recipients: z.array(z.string()).optional().describe('Email recipients'), subject: z.string().optional().describe('Email subject'), message: z.string().optional().describe('Notification/email message'), - taskData: z.record(z.any()).optional().describe('Task creation data'), + taskData: z.record(z.string(), z.any()).optional().describe('Task creation data'), scheduleTime: z.string().optional().describe('Schedule time (ISO 8601)'), - contextData: z.record(z.any()).optional().describe('Additional context data'), + contextData: z.record(z.string(), z.any()).optional().describe('Additional context data'), }); export type WorkflowActionParams = z.infer; @@ -466,7 +466,7 @@ export const IntentActionMappingSchema = z.object({ /** * Parameter extraction rules */ - paramExtraction: z.record(z.object({ + paramExtraction: z.record(z.string(), z.object({ type: z.enum(['entity', 'slot', 'context']), required: z.boolean().default(false), default: z.any().optional(), diff --git a/packages/spec/src/ai/conversation.zod.ts b/packages/spec/src/ai/conversation.zod.ts index 93ed0926e..a3e787c88 100644 --- a/packages/spec/src/ai/conversation.zod.ts +++ b/packages/spec/src/ai/conversation.zod.ts @@ -39,7 +39,7 @@ export const MessageContentSchema = z.object({ imageUrl: z.string().url().optional().describe('Image URL for vision models'), fileUrl: z.string().url().optional().describe('File attachment URL'), mimeType: z.string().optional().describe('MIME type for files'), - metadata: z.record(z.any()).optional().describe('Additional metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Additional metadata'), }); /** @@ -91,7 +91,7 @@ export const ConversationMessageSchema = z.object({ embedding: z.array(z.number()).optional().describe('Vector embedding for semantic search'), /** Annotations */ - metadata: z.record(z.any()).optional(), + metadata: z.record(z.string(), z.any()).optional(), }); /** @@ -167,13 +167,13 @@ export const ConversationContextSchema = z.object({ /** Context Data */ object: z.string().optional().describe('Related object (e.g., "case", "project")'), recordId: z.string().optional().describe('Related record ID'), - scope: z.record(z.any()).optional().describe('Additional context scope'), + scope: z.record(z.string(), z.any()).optional().describe('Additional context scope'), /** System Instructions */ systemMessage: z.string().optional().describe('System prompt/instructions'), /** Metadata */ - metadata: z.record(z.any()).optional(), + metadata: z.record(z.string(), z.any()).optional(), }); /** @@ -207,7 +207,7 @@ export const ConversationSessionSchema = z.object({ /** Metadata */ tags: z.array(z.string()).optional(), - metadata: z.record(z.any()).optional(), + metadata: z.record(z.string(), z.any()).optional(), }); /** diff --git a/packages/spec/src/ai/cost.zod.ts b/packages/spec/src/ai/cost.zod.ts index 42e47c5a5..af8503b4c 100644 --- a/packages/spec/src/ai/cost.zod.ts +++ b/packages/spec/src/ai/cost.zod.ts @@ -31,7 +31,7 @@ export const AIOperationCostSchema = z.object({ tokens: TokenUsageSchema, cost: z.number().nonnegative().describe('Cost in USD'), timestamp: z.string().datetime(), - metadata: z.record(z.any()).optional(), + metadata: z.record(z.string(), z.any()).optional(), }); export type AIOperationCost = z.infer; @@ -96,7 +96,7 @@ export const CostEntrySchema = z.object({ /** Metadata */ tags: z.array(z.string()).optional(), - metadata: z.record(z.any()).optional(), + metadata: z.record(z.string(), z.any()).optional(), }); /** @@ -221,7 +221,7 @@ export const CostAlertSchema = z.object({ resolved: z.boolean().default(false), /** Metadata */ - metadata: z.record(z.any()).optional(), + metadata: z.record(z.string(), z.any()).optional(), }); /** diff --git a/packages/spec/src/ai/devops-agent.zod.ts b/packages/spec/src/ai/devops-agent.zod.ts index 129ef078c..712e10bd4 100644 --- a/packages/spec/src/ai/devops-agent.zod.ts +++ b/packages/spec/src/ai/devops-agent.zod.ts @@ -198,7 +198,7 @@ export const PipelineStageSchema = z.object({ /** * Environment variables */ - env: z.record(z.string()).optional().describe('Stage-specific environment variables'), + env: z.record(z.string(), z.string()).optional().describe('Stage-specific environment variables'), /** * Timeout in seconds @@ -402,7 +402,7 @@ export const DevelopmentConfigSchema = z.object({ linting: z.object({ enabled: z.boolean().optional().default(true), autoFix: z.boolean().optional().default(true), - rules: z.record(z.any()).optional(), + rules: z.record(z.string(), z.any()).optional(), }).optional().describe('Code linting configuration'), /** @@ -411,7 +411,7 @@ export const DevelopmentConfigSchema = z.object({ formatting: z.object({ enabled: z.boolean().optional().default(true), autoFormat: z.boolean().optional().default(true), - config: z.record(z.any()).optional(), + config: z.record(z.string(), z.any()).optional(), }).optional().describe('Code formatting configuration'), }); @@ -503,7 +503,7 @@ export const IntegrationConfigSchema = z.object({ /** * Additional integrations */ - additional: z.record(z.any()).optional().describe('Additional integration configurations'), + additional: z.record(z.string(), z.any()).optional().describe('Additional integration configurations'), }); export type IntegrationConfig = z.infer; diff --git a/packages/spec/src/ai/model-registry.zod.ts b/packages/spec/src/ai/model-registry.zod.ts index 1d91ef3dd..163db4cc4 100644 --- a/packages/spec/src/ai/model-registry.zod.ts +++ b/packages/spec/src/ai/model-registry.zod.ts @@ -135,7 +135,7 @@ export const PromptTemplateSchema = z.object({ category: z.string().optional().describe('Template category (e.g., "code_generation", "support")'), tags: z.array(z.string()).optional(), examples: z.array(z.object({ - input: z.record(z.any()).describe('Example variable values'), + input: z.record(z.string(), z.any()).describe('Example variable values'), output: z.string().describe('Expected output'), })).optional(), }); @@ -161,8 +161,8 @@ export const ModelRegistryEntrySchema = z.object({ */ export const ModelRegistrySchema = z.object({ name: z.string().describe('Registry name'), - models: z.record(ModelRegistryEntrySchema).describe('Model entries by ID'), - promptTemplates: z.record(PromptTemplateSchema).optional().describe('Prompt templates by name'), + models: z.record(z.string(), ModelRegistryEntrySchema).describe('Model entries by ID'), + promptTemplates: z.record(z.string(), PromptTemplateSchema).optional().describe('Prompt templates by name'), defaultModel: z.string().optional().describe('Default model ID'), enableAutoFallback: z.boolean().default(true).describe('Auto-fallback on errors'), }); diff --git a/packages/spec/src/ai/nlq.zod.ts b/packages/spec/src/ai/nlq.zod.ts index c24528c0e..71b52dd68 100644 --- a/packages/spec/src/ai/nlq.zod.ts +++ b/packages/spec/src/ai/nlq.zod.ts @@ -155,7 +155,7 @@ export const NLQResponseSchema = z.object({ parseResult: NLQParseResultSchema, /** Query Results (if executeQuery = true) */ - results: z.array(z.record(z.any())).optional().describe('Query results'), + results: z.array(z.record(z.string(), z.any())).optional().describe('Query results'), totalCount: z.number().int().optional(), /** Execution Metadata */ @@ -233,7 +233,7 @@ export const NLQAnalyticsSchema = z.object({ averageConfidence: z.number().min(0).max(1), /** Intent Distribution */ - intentDistribution: z.record(z.number().int()).describe('Count by intent type'), + intentDistribution: z.record(z.string(), z.number().int()).describe('Count by intent type'), /** Common Patterns */ topQueries: z.array(z.object({ diff --git a/packages/spec/src/ai/orchestration.zod.ts b/packages/spec/src/ai/orchestration.zod.ts index 6e007b380..54c32f659 100644 --- a/packages/spec/src/ai/orchestration.zod.ts +++ b/packages/spec/src/ai/orchestration.zod.ts @@ -64,7 +64,7 @@ export const AITaskSchema = z.object({ /** Input Configuration */ inputFields: z.array(z.string()).describe('Source fields to process (e.g., ["description", "comments"])'), - inputContext: z.record(z.any()).optional().describe('Additional context for the AI model'), + inputContext: z.record(z.string(), z.any()).optional().describe('Additional context for the AI model'), /** Output Configuration */ outputField: z.string().describe('Target field to store the result'), @@ -75,7 +75,7 @@ export const AITaskSchema = z.object({ multiClass: z.boolean().optional().default(false).describe('Allow multiple classes to be selected'), /** Extraction-specific options */ - extractionSchema: z.record(z.any()).optional().describe('JSON schema for structured extraction'), + extractionSchema: z.record(z.string(), z.any()).optional().describe('JSON schema for structured extraction'), /** Generation-specific options */ maxLength: z.number().optional().describe('Maximum length for generated content'), @@ -124,7 +124,7 @@ export const WorkflowScheduleSchema = z.object({ export const PostProcessingActionSchema = z.object({ type: z.enum(['field_update', 'send_email', 'create_record', 'update_related', 'trigger_flow', 'webhook']), name: z.string().describe('Action name'), - config: z.record(z.any()).describe('Action-specific configuration'), + config: z.record(z.string(), z.any()).describe('Action-specific configuration'), condition: z.string().optional().describe('Execute only if condition is TRUE'), }); @@ -149,7 +149,7 @@ export const AIOrchestrationSchema = z.object({ schedule: WorkflowScheduleSchema.optional().describe('Schedule configuration (for scheduled trigger)'), webhookConfig: z.object({ secret: z.string().optional().describe('Webhook verification secret'), - headers: z.record(z.string()).optional().describe('Expected headers'), + headers: z.record(z.string(), z.string()).optional().describe('Expected headers'), }).optional().describe('Webhook configuration (for webhook trigger)'), /** Entry Criteria */ diff --git a/packages/spec/src/ai/predictive.zod.ts b/packages/spec/src/ai/predictive.zod.ts index a839220fe..cef881ecc 100644 --- a/packages/spec/src/ai/predictive.zod.ts +++ b/packages/spec/src/ai/predictive.zod.ts @@ -101,7 +101,7 @@ export const HyperparametersSchema = z.object({ forecastHorizon: z.number().int().optional().describe('Number of periods to forecast'), /** Additional custom parameters */ - custom: z.record(z.any()).optional().describe('Algorithm-specific parameters'), + custom: z.record(z.string(), z.any()).optional().describe('Algorithm-specific parameters'), }); /** @@ -161,7 +161,7 @@ export const EvaluationMetricsSchema = z.object({ smape: z.number().optional().describe('Symmetric MAPE'), /** Additional Metrics */ - custom: z.record(z.number()).optional(), + custom: z.record(z.string(), z.number()).optional(), }); /** @@ -236,7 +236,7 @@ export const PredictiveModelSchema = z.object({ export const PredictionRequestSchema = z.object({ modelName: z.string().describe('Model to use for prediction'), recordIds: z.array(z.string()).optional().describe('Specific records to predict (if not provided, uses all)'), - inputData: z.record(z.any()).optional().describe('Direct input data (alternative to recordIds)'), + inputData: z.record(z.string(), z.any()).optional().describe('Direct input data (alternative to recordIds)'), returnConfidence: z.boolean().optional().default(true), returnExplanation: z.boolean().optional().default(false), }); @@ -251,7 +251,7 @@ export const PredictionResultSchema = z.object({ recordId: z.string().optional(), prediction: z.any().describe('The predicted value'), confidence: z.number().optional().describe('Confidence score (0-1)'), - probabilities: z.record(z.number()).optional().describe('Class probabilities (for classification)'), + probabilities: z.record(z.string(), z.number()).optional().describe('Class probabilities (for classification)'), explanation: z.object({ topFeatures: z.array(z.object({ feature: z.string(), diff --git a/packages/spec/src/ai/rag-pipeline.zod.ts b/packages/spec/src/ai/rag-pipeline.zod.ts index 1f16da42a..8b147816d 100644 --- a/packages/spec/src/ai/rag-pipeline.zod.ts +++ b/packages/spec/src/ai/rag-pipeline.zod.ts @@ -80,7 +80,7 @@ export const DocumentMetadataSchema = z.object({ tags: z.array(z.string()).optional(), category: z.string().optional(), language: z.string().optional().describe('Document language (ISO 639-1 code)'), - custom: z.record(z.any()).optional().describe('Custom metadata fields'), + custom: z.record(z.string(), z.any()).optional().describe('Custom metadata fields'), }); /** @@ -178,7 +178,7 @@ export const DocumentLoaderConfigSchema = z.object({ extractTables: z.boolean().optional().default(false).describe('Extract and format tables'), /** Custom Loader */ - loaderConfig: z.record(z.any()).optional().describe('Custom loader-specific config'), + loaderConfig: z.record(z.string(), z.any()).optional().describe('Custom loader-specific config'), }); /** @@ -205,7 +205,7 @@ export const RAGPipelineConfigSchema = z.object({ contextWindow: z.number().int().positive().optional().describe('LLM context window size'), /** Metadata Filtering */ - metadataFilters: z.record(z.union([ + metadataFilters: z.record(z.string(), z.union([ z.string(), z.number(), z.boolean(), @@ -227,7 +227,7 @@ export const RAGQueryRequestSchema = z.object({ /** Override defaults */ topK: z.number().int().positive().optional(), - metadataFilters: z.record(z.any()).optional(), + metadataFilters: z.record(z.string(), z.any()).optional(), /** Context */ conversationHistory: z.array(z.object({ diff --git a/packages/spec/src/api/contract.zod.ts b/packages/spec/src/api/contract.zod.ts index fc3bd0f9d..96b8571c1 100644 --- a/packages/spec/src/api/contract.zod.ts +++ b/packages/spec/src/api/contract.zod.ts @@ -26,7 +26,7 @@ export const BaseResponseSchema = z.object({ // 2. Request Payloads (Inputs) // ========================================== -export const RecordDataSchema = z.record(z.any()).describe('Key-value map of record data'); +export const RecordDataSchema = z.record(z.string(), z.any()).describe('Key-value map of record data'); /** * Standard Create Request diff --git a/packages/spec/src/api/graphql.zod.ts b/packages/spec/src/api/graphql.zod.ts index 158c8ea65..84ec8a6e7 100644 --- a/packages/spec/src/api/graphql.zod.ts +++ b/packages/spec/src/api/graphql.zod.ts @@ -133,7 +133,7 @@ export const GraphQLTypeConfigSchema = z.object({ exclude: z.array(z.string()).optional().describe('Fields to exclude (e.g., sensitive fields)'), /** Custom field mappings */ - mappings: z.record(z.object({ + mappings: z.record(z.string(), z.object({ graphqlName: z.string().optional().describe('Custom GraphQL field name'), graphqlType: z.string().optional().describe('Override GraphQL type'), description: z.string().optional().describe('Field description'), @@ -151,7 +151,7 @@ export const GraphQLTypeConfigSchema = z.object({ /** Custom directives */ directives: z.array(z.object({ name: z.string().describe('Directive name'), - args: z.record(z.any()).optional().describe('Directive arguments'), + args: z.record(z.string(), z.any()).optional().describe('Directive arguments'), })).optional().describe('GraphQL directives'), }); @@ -180,7 +180,7 @@ export const GraphQLQueryConfigSchema = z.object({ description: z.string().optional().describe('Query description'), /** Input arguments */ - args: z.record(z.object({ + args: z.record(z.string(), z.object({ type: z.string().describe('GraphQL type (e.g., "ID!", "String", "Int")'), description: z.string().optional().describe('Argument description'), defaultValue: z.any().optional().describe('Default value'), @@ -518,7 +518,7 @@ export const GraphQLDirectiveConfigSchema = z.object({ locations: z.array(GraphQLDirectiveLocation).describe('Directive locations'), /** Arguments */ - args: z.record(z.object({ + args: z.record(z.string(), z.object({ type: z.string().describe('Argument type'), description: z.string().optional().describe('Argument description'), defaultValue: z.any().optional().describe('Default value'), @@ -588,7 +588,7 @@ export const GraphQLQueryComplexitySchema = z.object({ defaultFieldComplexity: z.number().int().min(0).default(1).describe('Default complexity per field'), /** Field-specific complexity scores */ - fieldComplexity: z.record(z.union([ + fieldComplexity: z.record(z.string(), z.union([ z.number().int().min(0), z.object({ /** Base complexity */ @@ -664,7 +664,7 @@ export const GraphQLRateLimitSchema = z.object({ }).optional().describe('Cost-based rate limiting'), /** Operation-specific limits */ - operations: z.record(z.object({ + operations: z.record(z.string(), z.object({ maxRequests: z.number().int().min(1).describe('Max requests for this operation'), windowMs: z.number().int().min(1000).describe('Time window'), })).optional().describe('Per-operation rate limits'), diff --git a/packages/spec/src/api/odata.zod.ts b/packages/spec/src/api/odata.zod.ts index a8846b439..7749f635a 100644 --- a/packages/spec/src/api/odata.zod.ts +++ b/packages/spec/src/api/odata.zod.ts @@ -301,7 +301,7 @@ export const ODataResponseSchema = z.object({ /** * Result array */ - value: z.array(z.record(z.any())).describe('Results array'), + value: z.array(z.record(z.string(), z.any())).describe('Results array'), }); export type ODataResponse = z.infer; @@ -340,7 +340,7 @@ export const ODataErrorSchema = z.object({ /** * Inner error for debugging */ - innererror: z.record(z.any()).optional().describe('Inner error details'), + innererror: z.record(z.string(), z.any()).optional().describe('Inner error details'), }), }); diff --git a/packages/spec/src/api/protocol.zod.ts b/packages/spec/src/api/protocol.zod.ts index d54779110..7eb6c3cc5 100644 --- a/packages/spec/src/api/protocol.zod.ts +++ b/packages/spec/src/api/protocol.zod.ts @@ -46,7 +46,7 @@ export const GetDiscoveryResponseSchema = z.object({ version: z.string().describe('API version (e.g., "v1", "2024-01")'), apiName: z.string().describe('API name'), capabilities: z.array(z.string()).optional().describe('Supported features/capabilities'), - endpoints: z.record(z.string()).optional().describe('Available endpoint paths'), + endpoints: z.record(z.string(), z.string()).optional().describe('Available endpoint paths'), }); /** @@ -147,7 +147,7 @@ export const FindDataRequestSchema = z.object({ */ export const FindDataResponseSchema = z.object({ object: z.string().describe('Object name'), - records: z.array(z.record(z.any())).describe('Array of records'), + records: z.array(z.record(z.string(), z.any())).describe('Array of records'), total: z.number().optional().describe('Total count (if requested)'), hasMore: z.boolean().optional().describe('Whether more records exist'), }); @@ -167,7 +167,7 @@ export const GetDataRequestSchema = z.object({ export const GetDataResponseSchema = z.object({ object: z.string().describe('Object name'), id: z.string().describe('Record ID'), - record: z.record(z.any()).describe('Record data'), + record: z.record(z.string(), z.any()).describe('Record data'), }); /** @@ -175,7 +175,7 @@ export const GetDataResponseSchema = z.object({ */ export const CreateDataRequestSchema = z.object({ object: z.string().describe('Object name'), - data: z.record(z.any()).describe('Record data to create'), + data: z.record(z.string(), z.any()).describe('Record data to create'), }); /** @@ -184,7 +184,7 @@ export const CreateDataRequestSchema = z.object({ export const CreateDataResponseSchema = z.object({ object: z.string().describe('Object name'), id: z.string().describe('Created record ID'), - record: z.record(z.any()).describe('Created record (with server-generated fields)'), + record: z.record(z.string(), z.any()).describe('Created record (with server-generated fields)'), }); /** @@ -193,7 +193,7 @@ export const CreateDataResponseSchema = z.object({ export const UpdateDataRequestSchema = z.object({ object: z.string().describe('Object name'), id: z.string().describe('Record ID to update'), - data: z.record(z.any()).describe('Fields to update'), + data: z.record(z.string(), z.any()).describe('Fields to update'), }); /** @@ -202,7 +202,7 @@ export const UpdateDataRequestSchema = z.object({ export const UpdateDataResponseSchema = z.object({ object: z.string().describe('Object name'), id: z.string().describe('Updated record ID'), - record: z.record(z.any()).describe('Updated record'), + record: z.record(z.string(), z.any()).describe('Updated record'), }); /** @@ -245,7 +245,7 @@ export const BatchDataResponseSchema = BatchUpdateResponseSchema; */ export const CreateManyDataRequestSchema = z.object({ object: z.string().describe('Object name'), - records: z.array(z.record(z.any())).describe('Array of records to create'), + records: z.array(z.record(z.string(), z.any())).describe('Array of records to create'), }); /** @@ -253,7 +253,7 @@ export const CreateManyDataRequestSchema = z.object({ */ export const CreateManyDataResponseSchema = z.object({ object: z.string().describe('Object name'), - records: z.array(z.record(z.any())).describe('Created records'), + records: z.array(z.record(z.string(), z.any())).describe('Created records'), count: z.number().describe('Number of records created'), }); @@ -264,7 +264,7 @@ export const UpdateManyDataRequestSchema = z.object({ object: z.string().describe('Object name'), records: z.array(z.object({ id: z.string().describe('Record ID'), - data: z.record(z.any()).describe('Fields to update'), + data: z.record(z.string(), z.any()).describe('Fields to update'), })).describe('Array of updates'), options: BatchOptionsSchema.optional().describe('Update options'), }); diff --git a/packages/spec/src/api/realtime.zod.ts b/packages/spec/src/api/realtime.zod.ts index dae79e365..3940bee15 100644 --- a/packages/spec/src/api/realtime.zod.ts +++ b/packages/spec/src/api/realtime.zod.ts @@ -68,7 +68,7 @@ export const PresenceSchema = z.object({ userId: z.string().describe('User identifier'), status: PresenceStatus.describe('Current presence status'), lastSeen: z.string().datetime().describe('ISO 8601 datetime of last activity'), - metadata: z.record(z.any()).optional().describe('Custom presence data (e.g., current page, custom status)'), + metadata: z.record(z.string(), z.any()).optional().describe('Custom presence data (e.g., current page, custom status)'), }); export type Presence = z.infer; diff --git a/packages/spec/src/api/router.zod.ts b/packages/spec/src/api/router.zod.ts index 445385fd3..67fe0a6f1 100644 --- a/packages/spec/src/api/router.zod.ts +++ b/packages/spec/src/api/router.zod.ts @@ -86,7 +86,14 @@ export const RouterConfigSchema = z.object({ automation: z.string().default('/automation').describe('Automation Protocol'), storage: z.string().default('/storage').describe('Storage Protocol'), graphql: z.string().default('/graphql').describe('GraphQL Endpoint'), - }).default({}), // Defaults match standardized spec + }).default({ + data: '/data', + metadata: '/meta', + auth: '/auth', + automation: '/automation', + storage: '/storage', + graphql: '/graphql' + }), // Defaults match standardized spec /** * Cross-Origin Resource Sharing diff --git a/packages/spec/src/api/view-storage.zod.ts b/packages/spec/src/api/view-storage.zod.ts index 564aa489e..9428b2fd2 100644 --- a/packages/spec/src/api/view-storage.zod.ts +++ b/packages/spec/src/api/view-storage.zod.ts @@ -161,7 +161,7 @@ export const SavedViewSchema = z.object({ updatedAt: z.string().datetime().optional().describe('When the view was last updated'), // Settings - settings: z.record(z.any()).optional().describe('Additional view-specific settings'), + settings: z.record(z.string(), z.any()).optional().describe('Additional view-specific settings'), }); export type SavedView = z.infer; @@ -184,7 +184,7 @@ export const CreateViewRequestSchema = z.object({ layout: ViewLayoutSchema.optional().describe('Layout configuration'), sharedWith: z.array(z.string()).optional().describe('Users/teams to share with'), isDefault: z.boolean().optional().default(false).describe('Set as default view'), - settings: z.record(z.any()).optional(), + settings: z.record(z.string(), z.any()).optional(), }); export type CreateViewRequest = z.input; diff --git a/packages/spec/src/api/websocket.zod.ts b/packages/spec/src/api/websocket.zod.ts index f6e954e29..7b47349da 100644 --- a/packages/spec/src/api/websocket.zod.ts +++ b/packages/spec/src/api/websocket.zod.ts @@ -156,7 +156,7 @@ export const PresenceStateSchema = z.object({ currentLocation: z.string().optional().describe('Current page/route user is viewing'), device: z.enum(['desktop', 'mobile', 'tablet', 'other']).optional().describe('Device type'), customStatus: z.string().optional().describe('Custom user status message'), - metadata: z.record(z.any()).optional().describe('Additional custom presence data'), + metadata: z.record(z.string(), z.any()).optional().describe('Additional custom presence data'), }); export type PresenceState = z.infer; @@ -169,7 +169,7 @@ export const PresenceUpdateSchema = z.object({ status: WebSocketPresenceStatus.optional().describe('Updated presence status'), currentLocation: z.string().optional().describe('Updated current location'), customStatus: z.string().optional().describe('Updated custom status message'), - metadata: z.record(z.any()).optional().describe('Updated metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Updated metadata'), }); export type PresenceUpdate = z.infer; @@ -427,7 +427,7 @@ export const WebSocketConfigSchema = z.object({ maxReconnectAttempts: z.number().int().positive().optional().default(5).describe('Maximum reconnection attempts'), pingInterval: z.number().int().positive().optional().default(30000).describe('Ping interval in milliseconds'), timeout: z.number().int().positive().optional().default(5000).describe('Message timeout in milliseconds'), - headers: z.record(z.string()).optional().describe('Custom headers for WebSocket handshake'), + headers: z.record(z.string(), z.string()).optional().describe('Custom headers for WebSocket handshake'), }); export type WebSocketConfig = z.infer; @@ -503,7 +503,7 @@ export const SimplePresenceStateSchema = z.object({ userName: z.string().describe('User display name'), status: z.enum(['online', 'away', 'offline']).describe('User presence status'), lastSeen: z.number().describe('Unix timestamp of last activity in milliseconds'), - metadata: z.record(z.any()).optional().describe('Additional presence metadata (e.g., current page, custom status)'), + metadata: z.record(z.string(), z.any()).optional().describe('Additional presence metadata (e.g., current page, custom status)'), }); export type SimplePresenceState = z.infer; diff --git a/packages/spec/src/auth/config.zod.ts b/packages/spec/src/auth/config.zod.ts index 028e06e43..6909e6491 100644 --- a/packages/spec/src/auth/config.zod.ts +++ b/packages/spec/src/auth/config.zod.ts @@ -97,7 +97,7 @@ export const JWTAuthSchema = z.object({ audience: z.string().optional().describe('JWT audience claim'), subject: z.string().optional().describe('JWT subject claim'), expiresIn: z.number().default(3600).describe('Token expiry in seconds'), - claims: z.record(z.any()).optional().describe('Additional JWT claims'), + claims: z.record(z.string(), z.any()).optional().describe('Additional JWT claims'), }); export type JWTAuth = z.infer; @@ -386,7 +386,7 @@ export const OIDCConfigSchema = z.object({ scopes: z.array(z.string()).default(['openid', 'profile', 'email']).describe('OIDC scopes'), - attributeMapping: z.record(z.string()).optional().describe('Map IdP claims to User fields'), + attributeMapping: z.record(z.string(), z.string()).optional().describe('Map IdP claims to User fields'), displayName: z.string().optional().describe('Display name for the provider button'), @@ -410,7 +410,7 @@ export const SAMLConfigSchema = z.object({ signatureAlgorithm: z.enum(['sha256', 'sha512']).default('sha256').describe('Signature algorithm'), - attributeMapping: z.record(z.string()).optional().describe('Map SAML attributes to User fields'), + attributeMapping: z.record(z.string(), z.string()).optional().describe('Map SAML attributes to User fields'), displayName: z.string().optional().describe('Display name for the provider button'), @@ -533,25 +533,25 @@ export const DatabaseMappingSchema = z.object({ * User model field mapping * Maps ObjectStack User fields to driver fields */ - user: z.record(z.string()).optional().describe('User field mapping (e.g., { "emailVerified": "email_verified" })'), + user: z.record(z.string(), z.string()).optional().describe('User field mapping (e.g., { "emailVerified": "email_verified" })'), /** * Session model field mapping * Maps ObjectStack Session fields to driver fields */ - session: z.record(z.string()).default(BETTER_AUTH_FIELD_MAPPINGS.session).describe('Session field mapping'), + session: z.record(z.string(), z.string()).default(BETTER_AUTH_FIELD_MAPPINGS.session).describe('Session field mapping'), /** * Account model field mapping * Maps ObjectStack Account fields to driver fields */ - account: z.record(z.string()).default(BETTER_AUTH_FIELD_MAPPINGS.account).describe('Account field mapping'), + account: z.record(z.string(), z.string()).default(BETTER_AUTH_FIELD_MAPPINGS.account).describe('Account field mapping'), /** * Verification token field mapping * Maps ObjectStack VerificationToken fields to driver fields */ - verificationToken: z.record(z.string()).optional().describe('VerificationToken field mapping'), + verificationToken: z.record(z.string(), z.string()).optional().describe('VerificationToken field mapping'), }); export type DatabaseMapping = z.infer; @@ -565,7 +565,7 @@ export const AuthPluginConfigSchema = z.object({ enabled: z.boolean().default(true), - options: z.record(z.any()).optional().describe('Plugin-specific options'), + options: z.record(z.string(), z.any()).optional().describe('Plugin-specific options'), }); export type AuthPluginConfig = z.infer; @@ -666,22 +666,22 @@ export const ApplicationAuthConfigSchema = z.object({ /** * Session configuration */ - session: SessionConfigSchema.default({}), + session: SessionConfigSchema.optional(), /** * Rate limiting configuration */ - rateLimit: RateLimitConfigSchema.default({}), + rateLimit: RateLimitConfigSchema.optional(), /** * CSRF protection configuration */ - csrf: CSRFConfigSchema.default({}), + csrf: CSRFConfigSchema.optional(), /** * Account linking configuration */ - accountLinking: AccountLinkingConfigSchema.default({}), + accountLinking: AccountLinkingConfigSchema.optional(), /** * Two-factor authentication configuration @@ -710,7 +710,7 @@ export const ApplicationAuthConfigSchema = z.object({ /** * User field mapping */ - userFieldMapping: UserFieldMappingSchema.default({}), + userFieldMapping: UserFieldMappingSchema.optional(), /** * Database adapter configuration @@ -798,7 +798,7 @@ export const ApplicationAuthConfigSchema = z.object({ provider: z.enum(['smtp', 'sendgrid', 'mailgun', 'ses', 'resend', 'custom']).describe('Email provider'), - config: z.record(z.any()).optional().describe('Provider-specific configuration'), + config: z.record(z.string(), z.any()).optional().describe('Provider-specific configuration'), }).optional().describe('Email configuration'), /** diff --git a/packages/spec/src/auth/organization.zod.ts b/packages/spec/src/auth/organization.zod.ts index 2346498a0..8cb6675c0 100644 --- a/packages/spec/src/auth/organization.zod.ts +++ b/packages/spec/src/auth/organization.zod.ts @@ -41,7 +41,7 @@ export const OrganizationSchema = z.object({ * Custom metadata for the organization * Can store additional configuration, settings, or custom fields */ - metadata: z.record(z.any()).optional().describe('Custom metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Custom metadata'), /** * Organization creation timestamp diff --git a/packages/spec/src/auth/scim.zod.ts b/packages/spec/src/auth/scim.zod.ts index 4b03fe27c..81178eedd 100644 --- a/packages/spec/src/auth/scim.zod.ts +++ b/packages/spec/src/auth/scim.zod.ts @@ -769,7 +769,7 @@ export const SCIMListResponseSchema = z.object({ * Resources returned in this response * Use SCIMListResponseOf for type-safe responses */ - Resources: z.array(z.union([SCIMUserSchema, SCIMGroupSchema, z.record(z.any())])) + Resources: z.array(z.union([SCIMUserSchema, SCIMGroupSchema, z.record(z.string(), z.any())])) .describe('Resources array (Users, Groups, or custom resources)'), /** diff --git a/packages/spec/src/automation/approval.zod.ts b/packages/spec/src/automation/approval.zod.ts index acf07044c..12dc42ca2 100644 --- a/packages/spec/src/automation/approval.zod.ts +++ b/packages/spec/src/automation/approval.zod.ts @@ -29,7 +29,7 @@ export const ApprovalActionType = z.enum([ export const ApprovalActionSchema = z.object({ type: ApprovalActionType, name: z.string().describe('Action name'), - config: z.record(z.any()).describe('Action configuration') + config: z.record(z.string(), z.any()).describe('Action configuration') }); /** diff --git a/packages/spec/src/automation/etl.zod.ts b/packages/spec/src/automation/etl.zod.ts index f7dc0a4fc..d205950fd 100644 --- a/packages/spec/src/automation/etl.zod.ts +++ b/packages/spec/src/automation/etl.zod.ts @@ -123,7 +123,7 @@ export const ETLSourceSchema = z.object({ * @example For API: { endpoint: '/api/users', method: 'GET' } * @example For file: { path: 's3://bucket/data.csv', format: 'csv' } */ - config: z.record(z.any()).describe('Source configuration'), + config: z.record(z.string(), z.any()).describe('Source configuration'), /** * Incremental sync configuration @@ -155,7 +155,7 @@ export const ETLDestinationSchema = z.object({ /** * Destination-specific configuration */ - config: z.record(z.any()).describe('Destination configuration'), + config: z.record(z.string(), z.any()).describe('Destination configuration'), /** * Write mode @@ -214,7 +214,7 @@ export const ETLTransformationSchema = z.object({ * @example For filter: { condition: 'status == "active"' } * @example For script: { language: 'javascript', code: '...' } */ - config: z.record(z.any()).describe('Transformation config'), + config: z.record(z.string(), z.any()).describe('Transformation config'), /** * Whether to continue on error @@ -319,7 +319,7 @@ export const ETLPipelineSchema = z.object({ /** * Custom metadata */ - metadata: z.record(z.any()).optional().describe('Custom metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Custom metadata'), }); export type ETLPipeline = z.infer; diff --git a/packages/spec/src/automation/flow.zod.ts b/packages/spec/src/automation/flow.zod.ts index 38ea446f3..5c9af8949 100644 --- a/packages/spec/src/automation/flow.zod.ts +++ b/packages/spec/src/automation/flow.zod.ts @@ -40,7 +40,7 @@ export const FlowNodeSchema = z.object({ label: z.string().describe('Node label'), /** Node Configuration Options (Specific to type) */ - config: z.record(z.any()).optional().describe('Node configuration'), + config: z.record(z.string(), z.any()).optional().describe('Node configuration'), /** UI Position (for the canvas) */ position: z.object({ x: z.number(), y: z.number() }).optional(), diff --git a/packages/spec/src/automation/sync.zod.ts b/packages/spec/src/automation/sync.zod.ts index a4da96656..8a7daed0c 100644 --- a/packages/spec/src/automation/sync.zod.ts +++ b/packages/spec/src/automation/sync.zod.ts @@ -197,7 +197,7 @@ export const DataDestinationConfigSchema = z.object({ * Maps source fields to destination fields */ mapping: z.union([ - z.record(z.string()), // Simple mapping: { sourceField: 'destField' } + z.record(z.string(), z.string()), // Simple mapping: { sourceField: 'destField' } z.array(FieldMappingSchema), // Advanced mapping with transformations ]).optional().describe('Field mappings'), @@ -354,7 +354,7 @@ export const DataSyncConfigSchema = z.object({ /** * Custom metadata */ - metadata: z.record(z.any()).optional().describe('Custom metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Custom metadata'), }); export type DataSyncConfig = z.infer; diff --git a/packages/spec/src/automation/trigger-registry.zod.ts b/packages/spec/src/automation/trigger-registry.zod.ts index f5d7419c3..7cc0d3bac 100644 --- a/packages/spec/src/automation/trigger-registry.zod.ts +++ b/packages/spec/src/automation/trigger-registry.zod.ts @@ -267,7 +267,7 @@ export const OperationParameterSchema = z.object({ /** * Validation schema */ - validation: z.record(z.any()).optional().describe('Validation rules'), + validation: z.record(z.string(), z.any()).optional().describe('Validation rules'), /** * Dynamic options function @@ -313,7 +313,7 @@ export const ConnectorOperationSchema = z.object({ /** * Output schema */ - outputSchema: z.record(z.any()) + outputSchema: z.record(z.string(), z.any()) .optional() .describe('Output schema'), @@ -367,14 +367,14 @@ export const ConnectorTriggerSchema = z.object({ /** * Trigger configuration */ - config: z.record(z.any()) + config: z.record(z.string(), z.any()) .optional() .describe('Trigger configuration'), /** * Output schema */ - outputSchema: z.record(z.any()) + outputSchema: z.record(z.string(), z.any()) .optional() .describe('Event payload schema'), @@ -494,7 +494,7 @@ export const ConnectorSchema = z.object({ /** * Custom metadata */ - metadata: z.record(z.any()).optional().describe('Custom metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Custom metadata'), }); export type Connector = z.infer; @@ -528,12 +528,12 @@ export const ConnectorInstanceSchema = z.object({ /** * Authentication credentials (encrypted) */ - credentials: z.record(z.any()).describe('Encrypted credentials'), + credentials: z.record(z.string(), z.any()).describe('Encrypted credentials'), /** * Additional configuration */ - config: z.record(z.any()).optional().describe('Additional config'), + config: z.record(z.string(), z.any()).optional().describe('Additional config'), /** * Whether instance is active diff --git a/packages/spec/src/automation/webhook.zod.ts b/packages/spec/src/automation/webhook.zod.ts index 315df51ae..4f3e1afda 100644 --- a/packages/spec/src/automation/webhook.zod.ts +++ b/packages/spec/src/automation/webhook.zod.ts @@ -68,7 +68,7 @@ export const WebhookSchema = z.object({ method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']).default('POST').describe('HTTP method'), /** Headers */ - headers: z.record(z.string()).optional().describe('Custom HTTP headers'), + headers: z.record(z.string(), z.string()).optional().describe('Custom HTTP headers'), /** Body/Payload */ body: z.any().optional().describe('Request body payload (if not using default record data)'), @@ -80,7 +80,7 @@ export const WebhookSchema = z.object({ /** Authentication */ authentication: z.object({ type: z.enum(['none', 'bearer', 'basic', 'api-key']).describe('Authentication type'), - credentials: z.record(z.string()).optional().describe('Authentication credentials'), + credentials: z.record(z.string(), z.string()).optional().describe('Authentication credentials'), }).optional().describe('Authentication configuration'), /** Retry Policy */ diff --git a/packages/spec/src/automation/workflow.zod.ts b/packages/spec/src/automation/workflow.zod.ts index 17f98321f..c0044073c 100644 --- a/packages/spec/src/automation/workflow.zod.ts +++ b/packages/spec/src/automation/workflow.zod.ts @@ -79,11 +79,11 @@ export const HttpCallActionSchema = z.object({ type: z.literal('http_call'), url: z.string().describe('Target URL'), method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']).describe('HTTP method'), - headers: z.record(z.string()).optional().describe('Request headers'), + headers: z.record(z.string(), z.string()).optional().describe('Request headers'), body: z.any().optional().describe('Request body (object/string)'), authentication: z.object({ type: z.enum(['none', 'basic', 'bearer', 'api_key', 'oauth2']), - credentials: z.record(z.string()).optional(), + credentials: z.record(z.string(), z.string()).optional(), }).optional().describe('Authentication configuration'), timeout: z.number().optional().describe('Request timeout in milliseconds'), }); @@ -111,7 +111,7 @@ export const TaskCreationActionSchema = z.object({ dueDate: z.string().optional().describe('Due date (ISO string or formula)'), priority: z.string().optional().describe('Task priority'), relatedTo: z.string().optional().describe('Related record ID or field reference'), - additionalFields: z.record(z.any()).optional().describe('Additional custom fields'), + additionalFields: z.record(z.string(), z.any()).optional().describe('Additional custom fields'), }); /** @@ -123,7 +123,7 @@ export const PushNotificationActionSchema = z.object({ title: z.string().describe('Notification title'), body: z.string().describe('Notification body text'), recipients: z.array(z.string()).describe('User IDs or device tokens'), - data: z.record(z.any()).optional().describe('Additional data payload'), + data: z.record(z.string(), z.any()).optional().describe('Additional data payload'), badge: z.number().optional().describe('Badge count (iOS)'), sound: z.string().optional().describe('Notification sound'), clickAction: z.string().optional().describe('Action/URL when notification is clicked'), @@ -138,7 +138,7 @@ export const CustomScriptActionSchema = z.object({ language: z.enum(['javascript', 'typescript', 'python']).default('javascript').describe('Script language'), code: z.string().describe('Script code to execute'), timeout: z.number().default(30000).describe('Execution timeout in milliseconds'), - context: z.record(z.any()).optional().describe('Additional context variables'), + context: z.record(z.string(), z.any()).optional().describe('Additional context variables'), }); /** diff --git a/packages/spec/src/data/data-engine.zod.ts b/packages/spec/src/data/data-engine.zod.ts index 27e17a716..c5e7ef2b6 100644 --- a/packages/spec/src/data/data-engine.zod.ts +++ b/packages/spec/src/data/data-engine.zod.ts @@ -22,7 +22,7 @@ import { SortNodeSchema } from './query.zod'; * Supports simple key-value map or complex Logic/Field expressions (DSL) */ export const DataEngineFilterSchema = z.union([ - z.record(z.any()), + z.record(z.string(), z.any()), FilterConditionSchema ]).describe('Data Engine query filter conditions'); @@ -34,8 +34,8 @@ export const DataEngineFilterSchema = z.union([ * - [{ field: 'name', order: 'asc' }] */ export const DataEngineSortSchema = z.union([ - z.record(z.enum(['asc', 'desc'])), - z.record(z.union([z.literal(1), z.literal(-1)])), + z.record(z.string(), z.enum(['asc', 'desc'])), + z.record(z.string(), z.union([z.literal(1), z.literal(-1)])), z.array(SortNodeSchema) ]).describe('Sort order definition'); @@ -176,12 +176,12 @@ export const DataEngineContractSchema = z.object({ }), insert: z.function({ - input: z.tuple([z.string(), z.union([z.record(z.any()), z.array(z.record(z.any()))]), DataEngineInsertOptionsSchema.optional()]), + input: z.tuple([z.string(), z.union([z.record(z.string(), z.any()), z.array(z.record(z.string(), z.any()))]), DataEngineInsertOptionsSchema.optional()]), output: z.promise(z.any()) }), update: z.function({ - input: z.tuple([z.string(), z.record(z.any()), DataEngineUpdateOptionsSchema.optional()]), + input: z.tuple([z.string(), z.record(z.string(), z.any()), DataEngineUpdateOptionsSchema.optional()]), output: z.promise(z.any()) }), @@ -230,14 +230,14 @@ export const DataEngineFindOneRequestSchema = z.object({ export const DataEngineInsertRequestSchema = z.object({ method: z.literal('insert'), object: z.string(), - data: z.union([z.record(z.any()), z.array(z.record(z.any()))]), + data: z.union([z.record(z.string(), z.any()), z.array(z.record(z.string(), z.any()))]), options: DataEngineInsertOptionsSchema.optional() }); export const DataEngineUpdateRequestSchema = z.object({ method: z.literal('update'), object: z.string(), - data: z.record(z.any()), + data: z.record(z.string(), z.any()), id: z.any().optional().describe('ID for single update, or use filter in options'), options: DataEngineUpdateOptionsSchema.optional() }); @@ -270,7 +270,7 @@ export const DataEngineExecuteRequestSchema = z.object({ /** The abstract command (string SQL, or JSON object) */ command: z.any(), /** Optional options */ - options: z.record(z.any()).optional() + options: z.record(z.string(), z.any()).optional() }); /** diff --git a/packages/spec/src/data/dataset.zod.ts b/packages/spec/src/data/dataset.zod.ts index 043dae6ad..e926eb54d 100644 --- a/packages/spec/src/data/dataset.zod.ts +++ b/packages/spec/src/data/dataset.zod.ts @@ -53,7 +53,7 @@ export const DatasetSchema = z.object({ * The Payload * Array of raw JSON objects matching the Object Schema. */ - records: z.array(z.record(z.any())).describe('Data records'), + records: z.array(z.record(z.string(), z.any())).describe('Data records'), }); export type Dataset = z.infer; diff --git a/packages/spec/src/data/document.zod.ts b/packages/spec/src/data/document.zod.ts index 62381e880..12c5ebe89 100644 --- a/packages/spec/src/data/document.zod.ts +++ b/packages/spec/src/data/document.zod.ts @@ -360,7 +360,7 @@ export const DocumentSchema = z.object({ /** * Custom metadata fields */ - metadata: z.record(z.any()).optional().describe('Custom metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Custom metadata'), }); // Type exports diff --git a/packages/spec/src/data/driver-nosql.zod.ts b/packages/spec/src/data/driver-nosql.zod.ts index 16c43dbbf..c21ab7990 100644 --- a/packages/spec/src/data/driver-nosql.zod.ts +++ b/packages/spec/src/data/driver-nosql.zod.ts @@ -117,7 +117,7 @@ export const DocumentSchemaValidationSchema = z.object({ enabled: z.boolean().default(false).describe('Enable schema validation'), validationLevel: z.enum(['strict', 'moderate', 'off']).optional().describe('Validation strictness'), validationAction: z.enum(['error', 'warn']).optional().describe('Action on validation failure'), - jsonSchema: z.record(z.any()).optional().describe('JSON Schema for validation'), + jsonSchema: z.record(z.string(), z.any()).optional().describe('JSON Schema for validation'), }); export type DocumentSchemaValidation = z.infer; @@ -332,7 +332,7 @@ export const NoSQLQueryOptionsSchema = z.object({ /** * Projection (fields to include/exclude) */ - projection: z.record(z.union([z.literal(0), z.literal(1)])).optional().describe('Field projection'), + projection: z.record(z.string(), z.union([z.literal(0), z.literal(1)])).optional().describe('Field projection'), /** * Query timeout in milliseconds @@ -375,7 +375,7 @@ export const AggregationStageSchema = z.object({ /** * Stage parameters/options */ - options: z.record(z.any()).describe('Stage-specific options'), + options: z.record(z.string(), z.any()).describe('Stage-specific options'), }); export type AggregationStage = z.infer; @@ -445,7 +445,7 @@ export const NoSQLIndexSchema = z.object({ /** * Partial index filter */ - partialFilterExpression: z.record(z.any()).optional().describe('Partial index filter'), + partialFilterExpression: z.record(z.string(), z.any()).optional().describe('Partial index filter'), /** * Background index creation diff --git a/packages/spec/src/data/driver.zod.ts b/packages/spec/src/data/driver.zod.ts index 14408e24c..7fb2e849c 100644 --- a/packages/spec/src/data/driver.zod.ts +++ b/packages/spec/src/data/driver.zod.ts @@ -26,7 +26,7 @@ export const DriverOptionsSchema = z.object({ * Distributed Tracing Context. * Used for passing OpenTelemetry span context or request IDs for observability. */ - traceContext: z.record(z.string()).optional().describe('OpenTelemetry context or request ID'), + traceContext: z.record(z.string(), z.string()).optional().describe('OpenTelemetry context or request ID'), /** * Tenant Identifier. @@ -375,7 +375,7 @@ export const DriverInterfaceSchema = z.object({ */ find: z.function({ input: z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), - output: z.promise(z.array(z.record(z.any()))) + output: z.promise(z.array(z.record(z.string(), z.any()))) }).describe('Find records'), /** @@ -404,7 +404,7 @@ export const DriverInterfaceSchema = z.object({ */ findOne: z.function({ input: z.tuple([z.string(), QuerySchema, DriverOptionsSchema.optional()]), - output: z.promise(z.record(z.any()).nullable()) + output: z.promise(z.record(z.string(), z.any()).nullable()) }).describe('Find one record'), /** @@ -417,8 +417,8 @@ export const DriverInterfaceSchema = z.object({ * MUST return `id` as string. MUST NOT return implementation details like `_id`. */ create: z.function({ - input: z.tuple([z.string(), z.record(z.any()), DriverOptionsSchema.optional()]), - output: z.promise(z.record(z.any())) + input: z.tuple([z.string(), z.record(z.string(), z.any()), DriverOptionsSchema.optional()]), + output: z.promise(z.record(z.string(), z.any())) }).describe('Create record'), /** @@ -432,8 +432,8 @@ export const DriverInterfaceSchema = z.object({ * MUST return `id` as string. MUST NOT return implementation details like `_id`. */ update: z.function({ - input: z.tuple([z.string(), z.string().or(z.number()), z.record(z.any()), DriverOptionsSchema.optional()]), - output: z.promise(z.record(z.any())) + input: z.tuple([z.string(), z.string().or(z.number()), z.record(z.string(), z.any()), DriverOptionsSchema.optional()]), + output: z.promise(z.record(z.string(), z.any())) }).describe('Update record'), /** @@ -446,8 +446,8 @@ export const DriverInterfaceSchema = z.object({ * @returns The created or updated record. */ upsert: z.function({ - input: z.tuple([z.string(), z.record(z.any()), z.array(z.string()).optional(), DriverOptionsSchema.optional()]), - output: z.promise(z.record(z.any())) + input: z.tuple([z.string(), z.record(z.string(), z.any()), z.array(z.string()).optional(), DriverOptionsSchema.optional()]), + output: z.promise(z.record(z.string(), z.any())) }).describe('Upsert record'), /** @@ -489,8 +489,8 @@ export const DriverInterfaceSchema = z.object({ * @returns Array of created records. */ bulkCreate: z.function({ - input: z.tuple([z.string(), z.array(z.record(z.any())), DriverOptionsSchema.optional()]), - output: z.promise(z.array(z.record(z.any()))) + input: z.tuple([z.string(), z.array(z.record(z.string(), z.any())), DriverOptionsSchema.optional()]), + output: z.promise(z.array(z.record(z.string(), z.any()))) }), /** @@ -501,8 +501,8 @@ export const DriverInterfaceSchema = z.object({ * @returns Array of updated records. */ bulkUpdate: z.function({ - input: z.tuple([z.string(), z.array(z.object({ id: z.string().or(z.number()), data: z.record(z.any()) })), DriverOptionsSchema.optional()]), - output: z.promise(z.array(z.record(z.any()))) + input: z.tuple([z.string(), z.array(z.object({ id: z.string().or(z.number()), data: z.record(z.string(), z.any()) })), DriverOptionsSchema.optional()]), + output: z.promise(z.array(z.record(z.string(), z.any()))) }), /** @@ -526,7 +526,7 @@ export const DriverInterfaceSchema = z.object({ * @returns Count of modified records. */ updateMany: z.function({ - input: z.tuple([z.string(), QuerySchema, z.record(z.any()), DriverOptionsSchema.optional()]), + input: z.tuple([z.string(), QuerySchema, z.record(z.string(), z.any()), DriverOptionsSchema.optional()]), output: z.promise(z.number()) }).optional(), diff --git a/packages/spec/src/data/driver/mongo.zod.ts b/packages/spec/src/data/driver/mongo.zod.ts index dbf3871f2..73a260fd6 100644 --- a/packages/spec/src/data/driver/mongo.zod.ts +++ b/packages/spec/src/data/driver/mongo.zod.ts @@ -45,7 +45,7 @@ export const MongoConfigSchema = z.object({ * Connection Options * Passthrough options to the underlying MongoDB driver (e.g. valid certs, timeouts) */ - options: z.record(z.any()).describe('Extra driver options (ssl, poolSize, etc)').optional(), + options: z.record(z.string(), z.any()).describe('Extra driver options (ssl, poolSize, etc)').optional(), }).describe('MongoDB Connection Configuration'); // ========================================================================== diff --git a/packages/spec/src/data/external-lookup.zod.ts b/packages/spec/src/data/external-lookup.zod.ts index 5c169d5dc..89428850e 100644 --- a/packages/spec/src/data/external-lookup.zod.ts +++ b/packages/spec/src/data/external-lookup.zod.ts @@ -59,7 +59,7 @@ export const ExternalDataSourceSchema = z.object({ * Authentication-specific configuration * Structure varies based on auth type */ - config: z.record(z.any()).describe('Auth configuration'), + config: z.record(z.string(), z.any()).describe('Auth configuration'), }).describe('Authentication'), }); @@ -172,7 +172,7 @@ export const ExternalLookupSchema = z.object({ /** * Query parameters or request body */ - parameters: z.record(z.any()).optional().describe('Query parameters'), + parameters: z.record(z.string(), z.any()).optional().describe('Query parameters'), }).describe('Query configuration'), /** diff --git a/packages/spec/src/data/field.zod.ts b/packages/spec/src/data/field.zod.ts index 8e9d2544a..df2bb9713 100644 --- a/packages/spec/src/data/field.zod.ts +++ b/packages/spec/src/data/field.zod.ts @@ -382,7 +382,7 @@ export const FieldSchema = z.object({ // Slider field config step: z.number().optional().describe('Step increment for slider (default: 1)'), showValue: z.boolean().optional().describe('Display current value on slider'), - marks: z.record(z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})'), + marks: z.record(z.string(), z.string()).optional().describe('Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})'), // QR Code / Barcode field config // Note: qrErrorCorrection is only applicable when barcodeFormat='qr' diff --git a/packages/spec/src/data/hook.zod.ts b/packages/spec/src/data/hook.zod.ts index 9ac4c8fa9..2eed253ba 100644 --- a/packages/spec/src/data/hook.zod.ts +++ b/packages/spec/src/data/hook.zod.ts @@ -122,7 +122,7 @@ export const HookContextSchema = z.object({ * - updateMany: { query: QueryAST, doc: Record, options: DriverOptions } * - deleteMany: { query: QueryAST, options: DriverOptions } */ - input: z.record(z.any()).describe('Mutable input parameters'), + input: z.record(z.string(), z.any()).describe('Mutable input parameters'), /** * Operation Result (Mutable) @@ -134,7 +134,7 @@ export const HookContextSchema = z.object({ * Data Snapshot * The state of the record BEFORE the operation (for update/delete). */ - previous: z.record(z.any()).optional().describe('Record state before operation'), + previous: z.record(z.string(), z.any()).optional().describe('Record state before operation'), /** * Execution Session diff --git a/packages/spec/src/data/mapping.zod.ts b/packages/spec/src/data/mapping.zod.ts index d786e1c1a..9a2e6f75b 100644 --- a/packages/spec/src/data/mapping.zod.ts +++ b/packages/spec/src/data/mapping.zod.ts @@ -41,7 +41,7 @@ export const FieldMappingSchema = z.object({ autoCreate: z.boolean().optional(), // Create if missing // Map - valueMap: z.record(z.any()).optional(), // { "Open": "draft" } + valueMap: z.record(z.string(), z.any()).optional(), // { "Open": "draft" } // Split/Join separator: z.string().optional() diff --git a/packages/spec/src/data/query.zod.ts b/packages/spec/src/data/query.zod.ts index 43217f62c..6fb26bcdb 100644 --- a/packages/spec/src/data/query.zod.ts +++ b/packages/spec/src/data/query.zod.ts @@ -418,7 +418,7 @@ export const FullTextSearchSchema = z.object({ fields: z.array(z.string()).optional().describe('Fields to search in (if not specified, searches all text fields)'), fuzzy: z.boolean().optional().default(false).describe('Enable fuzzy matching (tolerates typos)'), operator: z.enum(['and', 'or']).optional().default('or').describe('Logical operator between terms'), - boost: z.record(z.number()).optional().describe('Field-specific relevance boosting (field name -> boost factor)'), + boost: z.record(z.string(), z.number()).optional().describe('Field-specific relevance boosting (field name -> boost factor)'), minScore: z.number().optional().describe('Minimum relevance score threshold'), language: z.string().optional().describe('Language for text analysis (e.g., "en", "zh", "es")'), highlight: z.boolean().optional().default(false).describe('Enable search result highlighting'), @@ -492,7 +492,7 @@ export const QuerySchema = z.object({ /** Pagination */ limit: z.number().optional().describe('Max records to return (LIMIT)'), offset: z.number().optional().describe('Records to skip (OFFSET)'), - cursor: z.record(z.any()).optional().describe('Cursor for keyset pagination'), + cursor: z.record(z.string(), z.any()).optional().describe('Cursor for keyset pagination'), /** Joins */ joins: z.array(JoinNodeSchema).optional().describe('Explicit Table Joins'), diff --git a/packages/spec/src/data/validation.zod.ts b/packages/spec/src/data/validation.zod.ts index 9d7884bdb..556facbb3 100644 --- a/packages/spec/src/data/validation.zod.ts +++ b/packages/spec/src/data/validation.zod.ts @@ -100,7 +100,7 @@ export const UniquenessValidationSchema = BaseValidationSchema.extend({ export const StateMachineValidationSchema = BaseValidationSchema.extend({ type: z.literal('state_machine'), field: z.string().describe('State field (e.g. status)'), - transitions: z.record(z.array(z.string())).describe('Map of { OldState: [AllowedNewStates] }'), + transitions: z.record(z.string(), z.array(z.string())).describe('Map of { OldState: [AllowedNewStates] }'), }); /** @@ -195,7 +195,7 @@ export const CrossFieldValidationSchema = BaseValidationSchema.extend({ export const JSONValidationSchema = BaseValidationSchema.extend({ type: z.literal('json_schema'), field: z.string().describe('JSON field to validate'), - schema: z.record(z.any()).describe('JSON Schema object definition'), + schema: z.record(z.string(), z.any()).describe('JSON Schema object definition'), }); /** @@ -318,11 +318,11 @@ export const AsyncValidationSchema = BaseValidationSchema.extend({ field: z.string().describe('Field to validate'), validatorUrl: z.string().optional().describe('External API endpoint for validation'), method: z.enum(['GET', 'POST']).default('GET').describe('HTTP method for external call'), - headers: z.record(z.string()).optional().describe('Custom headers for the request'), + headers: z.record(z.string(), z.string()).optional().describe('Custom headers for the request'), validatorFunction: z.string().optional().describe('Reference to custom validator function'), timeout: z.number().optional().default(5000).describe('Timeout in milliseconds'), debounce: z.number().optional().describe('Debounce delay in milliseconds'), - params: z.record(z.any()).optional().describe('Additional parameters to pass to validator'), + params: z.record(z.string(), z.any()).optional().describe('Additional parameters to pass to validator'), }); /** @@ -332,7 +332,7 @@ export const AsyncValidationSchema = BaseValidationSchema.extend({ export const CustomValidatorSchema = BaseValidationSchema.extend({ type: z.literal('custom'), handler: z.string().describe('Name of the custom validation function registered in the system'), - params: z.record(z.any()).optional().describe('Parameters passed to the custom handler'), + params: z.record(z.string(), z.any()).optional().describe('Parameters passed to the custom handler'), }); /** diff --git a/packages/spec/src/hub/composer.zod.ts b/packages/spec/src/hub/composer.zod.ts index c95e28520..a5bb24582 100644 --- a/packages/spec/src/hub/composer.zod.ts +++ b/packages/spec/src/hub/composer.zod.ts @@ -22,13 +22,13 @@ export const DependencyRequirementSchema = z.object({ * Tenant-specific settings that override plugin defaults. * Example: { "currency": "USD", "apiKey": "..." } */ - configuration: z.record(z.any()).optional().describe('Configuration overrides'), + configuration: z.record(z.string(), z.any()).optional().describe('Configuration overrides'), /** * Feature Flags * Enable/Disable specific features within the plugin. */ - features: z.record(z.boolean()).optional().describe('Feature toggles'), + features: z.record(z.string(), z.boolean()).optional().describe('Feature toggles'), }); /** @@ -49,7 +49,7 @@ export const BillOfMaterialsSchema = z.object({ * Environment Variables injection. * Maps abstract keys to secure vault references or concrete values. */ - environment: z.record(z.string()).optional(), + environment: z.record(z.string(), z.string()).optional(), /** * Global Resolution Strategy diff --git a/packages/spec/src/hub/license.zod.ts b/packages/spec/src/hub/license.zod.ts index 4c72ee095..8ed59cdaf 100644 --- a/packages/spec/src/hub/license.zod.ts +++ b/packages/spec/src/hub/license.zod.ts @@ -40,7 +40,7 @@ export const PlanSchema = z.object({ features: z.array(z.string()).describe('List of enabled boolean features'), /** Limit Quotas */ - limits: z.record(z.number()).describe('Map of metric codes to limit values (e.g. { storage_gb: 10 })'), + limits: z.record(z.string(), z.number()).describe('Map of metric codes to limit values (e.g. { storage_gb: 10 })'), /** Pricing (Optional Metadata) */ currency: z.string().default('USD').optional(), @@ -67,7 +67,7 @@ export const LicenseSchema = z.object({ /** Overrides (Specific to this space, exceeding the plan) */ customFeatures: z.array(z.string()).optional(), - customLimits: z.record(z.number()).optional(), + customLimits: z.record(z.string(), z.number()).optional(), /** Authorized Add-ons */ plugins: z.array(z.string()).optional().describe('List of enabled plugin package IDs'), diff --git a/packages/spec/src/hub/plugin-registry.zod.ts b/packages/spec/src/hub/plugin-registry.zod.ts index db72242ec..d0a1d9387 100644 --- a/packages/spec/src/hub/plugin-registry.zod.ts +++ b/packages/spec/src/hub/plugin-registry.zod.ts @@ -375,7 +375,7 @@ export const PluginInstallConfigSchema = z.object({ /** * Plugin-specific configuration values */ - config: z.record(z.any()).optional(), + config: z.record(z.string(), z.any()).optional(), /** * Whether to auto-update diff --git a/packages/spec/src/hub/space.zod.ts b/packages/spec/src/hub/space.zod.ts index 590070562..8f38d7907 100644 --- a/packages/spec/src/hub/space.zod.ts +++ b/packages/spec/src/hub/space.zod.ts @@ -44,7 +44,7 @@ export const SpaceSubscriptionSchema = z.object({ * Quota Usage Snapshot * Cached usage metrics for quick display/validation. */ - usage: z.record(z.number()).optional(), + usage: z.record(z.string(), z.number()).optional(), }); /** @@ -55,7 +55,7 @@ export const DeploymentTargetSchema = z.object({ provider: z.enum(['vercel', 'docker', 'kubernetes']), region: z.string().optional(), url: z.string().url().optional().describe('Public Access URL'), - env: z.record(z.string()).optional().describe('Runtime Environment Variables'), + env: z.record(z.string(), z.string()).optional().describe('Runtime Environment Variables'), }); /** diff --git a/packages/spec/src/hub/tenant.zod.ts b/packages/spec/src/hub/tenant.zod.ts index a2df74988..833dfd8a3 100644 --- a/packages/spec/src/hub/tenant.zod.ts +++ b/packages/spec/src/hub/tenant.zod.ts @@ -99,7 +99,7 @@ export const TenantSchema = z.object({ /** * Custom configuration values */ - customizations: z.record(z.any()).optional().describe('Custom configuration values'), + customizations: z.record(z.string(), z.any()).optional().describe('Custom configuration values'), /** * Resource quotas diff --git a/packages/spec/src/integration/connector.zod.ts b/packages/spec/src/integration/connector.zod.ts index 83c365ca3..3093befaf 100644 --- a/packages/spec/src/integration/connector.zod.ts +++ b/packages/spec/src/integration/connector.zod.ts @@ -98,7 +98,7 @@ export const FieldTransformSchema = z.object({ 'custom', ]).describe('Transformation type'), - params: z.record(z.any()).optional().describe('Transformation parameters'), + params: z.record(z.string(), z.any()).optional().describe('Transformation parameters'), function: z.string().optional().describe('Custom JavaScript function for transformation'), }); @@ -225,7 +225,7 @@ export const DataSyncConfigSchema = z.object({ /** * Filter criteria for selective sync */ - filters: z.record(z.any()).optional().describe('Filter criteria for selective sync'), + filters: z.record(z.string(), z.any()).optional().describe('Filter criteria for selective sync'), }); export type DataSyncConfig = z.infer; @@ -511,7 +511,7 @@ export const ConnectorSchema = z.object({ /** * Custom metadata */ - metadata: z.record(z.any()).optional().describe('Custom connector metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Custom connector metadata'), }); export type Connector = z.infer; diff --git a/packages/spec/src/integration/connector/database.zod.ts b/packages/spec/src/integration/connector/database.zod.ts index ff12bfd39..44820e84d 100644 --- a/packages/spec/src/integration/connector/database.zod.ts +++ b/packages/spec/src/integration/connector/database.zod.ts @@ -122,7 +122,7 @@ export const DatabaseConnectorSchema = ConnectorSchema.extend({ database: z.string().describe('Database name'), username: z.string().describe('Database username'), password: z.string().describe('Database password (typically from ENV)'), - options: z.record(z.any()).optional().describe('Driver-specific connection options'), + options: z.record(z.string(), z.any()).optional().describe('Driver-specific connection options'), }).describe('Database connection configuration'), /** diff --git a/packages/spec/src/integration/connector/file-storage.zod.ts b/packages/spec/src/integration/connector/file-storage.zod.ts index daa665023..551ff798b 100644 --- a/packages/spec/src/integration/connector/file-storage.zod.ts +++ b/packages/spec/src/integration/connector/file-storage.zod.ts @@ -60,7 +60,7 @@ export const FileMetadataConfigSchema = z.object({ 'custom', ])).optional().describe('Metadata fields to extract'), - customMetadata: z.record(z.string()).optional().describe('Custom metadata key-value pairs'), + customMetadata: z.record(z.string(), z.string()).optional().describe('Custom metadata key-value pairs'), }); export type FileMetadataConfig = z.infer; diff --git a/packages/spec/src/integration/connector/github.zod.ts b/packages/spec/src/integration/connector/github.zod.ts index f69ec5676..03e97c477 100644 --- a/packages/spec/src/integration/connector/github.zod.ts +++ b/packages/spec/src/integration/connector/github.zod.ts @@ -209,7 +209,7 @@ export const GitHubActionsWorkflowSchema = z.object({ /** * Environment variables */ - env: z.record(z.string()).optional().describe('Environment variables'), + env: z.record(z.string(), z.string()).optional().describe('Environment variables'), /** * Secrets required diff --git a/packages/spec/src/integration/connector/message-queue.zod.ts b/packages/spec/src/integration/connector/message-queue.zod.ts index 4532aae11..31f85fa60 100644 --- a/packages/spec/src/integration/connector/message-queue.zod.ts +++ b/packages/spec/src/integration/connector/message-queue.zod.ts @@ -186,8 +186,8 @@ export const TopicQueueSchema = z.object({ * Message filter */ messageFilter: z.object({ - headers: z.record(z.string()).optional().describe('Filter by message headers'), - attributes: z.record(z.any()).optional().describe('Filter by message attributes'), + headers: z.record(z.string(), z.string()).optional().describe('Filter by message headers'), + attributes: z.record(z.string(), z.any()).optional().describe('Filter by message attributes'), }).optional().describe('Message filter criteria'), }); diff --git a/packages/spec/src/integration/connector/saas.zod.ts b/packages/spec/src/integration/connector/saas.zod.ts index 1b73e5651..f37ecd2bf 100644 --- a/packages/spec/src/integration/connector/saas.zod.ts +++ b/packages/spec/src/integration/connector/saas.zod.ts @@ -117,7 +117,7 @@ export const SaasConnectorSchema = ConnectorSchema.extend({ /** * Custom request headers */ - customHeaders: z.record(z.string()).optional().describe('Custom HTTP headers for all requests'), + customHeaders: z.record(z.string(), z.string()).optional().describe('Custom HTTP headers for all requests'), }); export type SaasConnector = z.infer; diff --git a/packages/spec/src/integration/connector/vercel.zod.ts b/packages/spec/src/integration/connector/vercel.zod.ts index 5bdc46810..2b397bccc 100644 --- a/packages/spec/src/integration/connector/vercel.zod.ts +++ b/packages/spec/src/integration/connector/vercel.zod.ts @@ -138,7 +138,7 @@ export const BuildConfigSchema = z.object({ /** * Environment variables */ - env: z.record(z.string()).optional().describe('Build environment variables'), + env: z.record(z.string(), z.string()).optional().describe('Build environment variables'), }); export type BuildConfig = z.infer; @@ -361,7 +361,7 @@ export const VercelMonitoringSchema = z.object({ logDrains: z.array(z.object({ name: z.string().describe('Log drain name'), url: z.string().url().describe('Log drain URL'), - headers: z.record(z.string()).optional().describe('Custom headers'), + headers: z.record(z.string(), z.string()).optional().describe('Custom headers'), sources: z.array(z.enum(['static', 'lambda', 'edge'])).optional().describe('Log sources'), })).optional().describe('Log drains configuration'), }); diff --git a/packages/spec/src/permission/permission.zod.ts b/packages/spec/src/permission/permission.zod.ts index 61640b905..7d72c283c 100644 --- a/packages/spec/src/permission/permission.zod.ts +++ b/packages/spec/src/permission/permission.zod.ts @@ -85,10 +85,10 @@ export const PermissionSetSchema = z.object({ isProfile: z.boolean().default(false).describe('Whether this is a user profile'), /** Object Permissions Map: -> permissions */ - objects: z.record(ObjectPermissionSchema).describe('Entity permissions'), + objects: z.record(z.string(), ObjectPermissionSchema).describe('Entity permissions'), /** Field Permissions Map: . -> permissions */ - fields: z.record(FieldPermissionSchema).optional().describe('Field level security'), + fields: z.record(z.string(), FieldPermissionSchema).optional().describe('Field level security'), /** System permissions (e.g., "manage_users") */ systemPermissions: z.array(z.string()).optional().describe('System level capabilities'), @@ -140,7 +140,7 @@ export const PermissionSetSchema = z.object({ * } * ``` */ - contextVariables: z.record(z.any()).optional().describe('Context variables for RLS evaluation'), + contextVariables: z.record(z.string(), z.any()).optional().describe('Context variables for RLS evaluation'), }); export type PermissionSet = z.infer; diff --git a/packages/spec/src/permission/rls.zod.ts b/packages/spec/src/permission/rls.zod.ts index 60745fefd..8351d9779 100644 --- a/packages/spec/src/permission/rls.zod.ts +++ b/packages/spec/src/permission/rls.zod.ts @@ -538,7 +538,7 @@ export const RLSUserContextSchema = z.object({ * Additional custom attributes * Can include any custom user fields for RLS evaluation */ - attributes: z.record(z.any()) + attributes: z.record(z.string(), z.any()) .optional() .describe('Additional custom user attributes'), }); diff --git a/packages/spec/src/shared/mapping.zod.ts b/packages/spec/src/shared/mapping.zod.ts index a9ca45a54..1f15003b2 100644 --- a/packages/spec/src/shared/mapping.zod.ts +++ b/packages/spec/src/shared/mapping.zod.ts @@ -64,7 +64,7 @@ export const TransformTypeSchema = z.discriminatedUnion('type', [ z.object({ type: z.literal('map'), - mappings: z.record(z.any()).describe('Value mappings (e.g., {"Active": "active"})'), + mappings: z.record(z.string(), z.any()).describe('Value mappings (e.g., {"Active": "active"})'), }).describe('Map values using a dictionary'), ]); diff --git a/packages/spec/src/system/audit.zod.ts b/packages/spec/src/system/audit.zod.ts index a4cd3d3fa..e0c7f029e 100644 --- a/packages/spec/src/system/audit.zod.ts +++ b/packages/spec/src/system/audit.zod.ts @@ -152,7 +152,7 @@ export const AuditEventTargetSchema = z.object({ /** * Additional metadata about the target */ - metadata: z.record(z.any()).optional().describe('Target metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Target metadata'), }); export type AuditEventTarget = z.infer; @@ -248,7 +248,7 @@ export const AuditEventSchema = z.object({ /** * Additional context and metadata */ - metadata: z.record(z.any()).optional().describe('Additional metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Additional metadata'), /** * Geographic location (if available) @@ -287,14 +287,14 @@ export const AuditRetentionPolicySchema = z.object({ endpoint: z.string().optional().describe('Storage endpoint URL'), bucket: z.string().optional().describe('Storage bucket/container name'), path: z.string().optional().describe('Storage path prefix'), - credentials: z.record(z.any()).optional().describe('Storage credentials'), + credentials: z.record(z.string(), z.any()).optional().describe('Storage credentials'), }).optional().describe('Archive storage configuration'), /** * Event types that have different retention periods * Overrides the default retentionDays for specific event types */ - customRetention: z.record(z.number().int().positive()).optional().describe('Custom retention by event type'), + customRetention: z.record(z.string(), z.number().int().positive()).optional().describe('Custom retention by event type'), /** * Minimum retention period for compliance @@ -357,7 +357,7 @@ export const SuspiciousActivityRuleSchema = z.object({ /** * Additional filters */ - filters: z.record(z.any()).optional().describe('Additional filters'), + filters: z.record(z.string(), z.any()).optional().describe('Additional filters'), }).describe('Detection condition'), /** @@ -427,7 +427,7 @@ export const AuditStorageConfigSchema = z.object({ /** * Storage configuration */ - config: z.record(z.any()).optional().describe('Storage-specific configuration'), + config: z.record(z.string(), z.any()).optional().describe('Storage-specific configuration'), /** * Whether to enable buffering/batching @@ -498,7 +498,7 @@ export const AuditEventFilterSchema = z.object({ /** * Custom filters */ - customFilters: z.record(z.any()).optional().describe('Custom filters'), + customFilters: z.record(z.string(), z.any()).optional().describe('Custom filters'), }); export type AuditEventFilter = z.infer; @@ -553,7 +553,7 @@ export const AuditConfigSchema = z.object({ /** * Retention policy */ - retentionPolicy: AuditRetentionPolicySchema.default({}).describe('Retention policy'), + retentionPolicy: AuditRetentionPolicySchema.optional().describe('Retention policy'), /** * Suspicious activity detection rules diff --git a/packages/spec/src/system/collaboration.zod.ts b/packages/spec/src/system/collaboration.zod.ts index d11a27fda..d35fbafcc 100644 --- a/packages/spec/src/system/collaboration.zod.ts +++ b/packages/spec/src/system/collaboration.zod.ts @@ -34,7 +34,7 @@ export const OTComponentSchema = z.discriminatedUnion('type', [ z.object({ type: z.literal('insert'), text: z.string().describe('Text to insert'), - attributes: z.record(z.any()).optional().describe('Text formatting attributes (e.g., bold, italic)'), + attributes: z.record(z.string(), z.any()).optional().describe('Text formatting attributes (e.g., bold, italic)'), }), z.object({ type: z.literal('delete'), @@ -43,7 +43,7 @@ export const OTComponentSchema = z.discriminatedUnion('type', [ z.object({ type: z.literal('retain'), count: z.number().int().positive().describe('Number of characters to retain'), - attributes: z.record(z.any()).optional().describe('Attribute changes to apply'), + attributes: z.record(z.string(), z.any()).optional().describe('Attribute changes to apply'), }), ]); @@ -62,7 +62,7 @@ export const OTOperationSchema = z.object({ components: z.array(OTComponentSchema).describe('Operation components'), baseVersion: z.number().int().nonnegative().describe('Document version this operation is based on'), timestamp: z.string().datetime().describe('ISO 8601 datetime when operation was created'), - metadata: z.record(z.any()).optional().describe('Additional operation metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Additional operation metadata'), }); export type OTOperation = z.infer; @@ -106,7 +106,7 @@ export type CRDTType = z.infer; * Tracks causality in distributed systems */ export const VectorClockSchema = z.object({ - clock: z.record(z.number().int().nonnegative()).describe('Map of replica ID to logical timestamp'), + clock: z.record(z.string(), z.number().int().nonnegative()).describe('Map of replica ID to logical timestamp'), }); export type VectorClock = z.infer; @@ -143,7 +143,7 @@ export type CounterOperation = z.infer; */ export const GCounterSchema = z.object({ type: z.literal('g-counter'), - counts: z.record(z.number().int().nonnegative()).describe('Map of replica ID to count'), + counts: z.record(z.string(), z.number().int().nonnegative()).describe('Map of replica ID to count'), }); export type GCounter = z.infer; @@ -154,8 +154,8 @@ export type GCounter = z.infer; */ export const PNCounterSchema = z.object({ type: z.literal('pn-counter'), - positive: z.record(z.number().int().nonnegative()).describe('Positive increments per replica'), - negative: z.record(z.number().int().nonnegative()).describe('Negative increments per replica'), + positive: z.record(z.string(), z.number().int().nonnegative()).describe('Positive increments per replica'), + negative: z.record(z.string(), z.number().int().nonnegative()).describe('Negative increments per replica'), }); export type PNCounter = z.infer; @@ -317,7 +317,7 @@ export const CollaborativeCursorSchema = z.object({ style: CursorStyleSchema.describe('Visual style for this cursor'), isTyping: z.boolean().optional().default(false).describe('Whether user is currently typing'), lastUpdate: z.string().datetime().describe('ISO 8601 datetime of last cursor update'), - metadata: z.record(z.any()).optional().describe('Additional cursor metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Additional cursor metadata'), }); export type CollaborativeCursor = z.infer; @@ -333,7 +333,7 @@ export const CursorUpdateSchema = z.object({ }).optional().describe('Updated cursor position'), selection: CursorSelectionSchema.optional().describe('Updated selection'), isTyping: z.boolean().optional().describe('Updated typing state'), - metadata: z.record(z.any()).optional().describe('Updated metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Updated metadata'), }); export type CursorUpdate = z.infer; @@ -370,7 +370,7 @@ export const AwarenessUserStateSchema = z.object({ lastActivity: z.string().datetime().describe('ISO 8601 datetime of last activity'), joinedAt: z.string().datetime().describe('ISO 8601 datetime when user joined session'), permissions: z.array(z.string()).optional().describe('User permissions in this session'), - metadata: z.record(z.any()).optional().describe('Additional user state metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Additional user state metadata'), }); export type AwarenessUserState = z.infer; @@ -385,7 +385,7 @@ export const AwarenessSessionSchema = z.object({ users: z.array(AwarenessUserStateSchema).describe('Active users in session'), startedAt: z.string().datetime().describe('ISO 8601 datetime when session started'), lastUpdate: z.string().datetime().describe('ISO 8601 datetime of last update'), - metadata: z.record(z.any()).optional().describe('Session metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Session metadata'), }); export type AwarenessSession = z.infer; @@ -398,7 +398,7 @@ export const AwarenessUpdateSchema = z.object({ status: UserActivityStatus.optional().describe('Updated status'), currentDocument: z.string().optional().describe('Updated current document'), currentView: z.string().optional().describe('Updated current view'), - metadata: z.record(z.any()).optional().describe('Updated metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Updated metadata'), }); export type AwarenessUpdate = z.infer; diff --git a/packages/spec/src/system/context.zod.ts b/packages/spec/src/system/context.zod.ts index d138efee6..9aabf83fd 100644 --- a/packages/spec/src/system/context.zod.ts +++ b/packages/spec/src/system/context.zod.ts @@ -44,7 +44,7 @@ export const KernelContextSchema = z.object({ /** * Feature Flags (Global) */ - features: z.record(z.boolean()).default({}).describe('Global feature toggles') + features: z.record(z.string(), z.boolean()).default({}).describe('Global feature toggles') }); export type KernelContext = z.infer; diff --git a/packages/spec/src/system/datasource.zod.ts b/packages/spec/src/system/datasource.zod.ts index 63f608c2b..7ab63332f 100644 --- a/packages/spec/src/system/datasource.zod.ts +++ b/packages/spec/src/system/datasource.zod.ts @@ -23,7 +23,7 @@ export const DriverDefinitionSchema = z.object({ * Describes the structure of the `config` object needed for this driver. * Used by the UI to generate the connection form. */ - configSchema: z.record(z.any()).describe('JSON Schema for connection configuration'), + configSchema: z.record(z.string(), z.any()).describe('JSON Schema for connection configuration'), /** * Default Capabilities @@ -104,7 +104,7 @@ export const DatasourceSchema = z.object({ * Specific to the driver (e.g., host, port, user, password, bucket, etc.) * Stored securely (passwords usually interpolated from ENV). */ - config: z.record(z.any()).describe('Driver specific configuration'), + config: z.record(z.string(), z.any()).describe('Driver specific configuration'), /** * Connection Pool Configuration @@ -122,7 +122,7 @@ export const DatasourceSchema = z.object({ * Optional list of duplicate configurations for read-only operations. * Useful for scaling read throughput. */ - readReplicas: z.array(z.record(z.any())).optional().describe('Read-only replica configurations'), + readReplicas: z.array(z.record(z.string(), z.any())).optional().describe('Read-only replica configurations'), /** * Capability Overrides diff --git a/packages/spec/src/system/http-server.zod.ts b/packages/spec/src/system/http-server.zod.ts index e7375f053..34b5caed1 100644 --- a/packages/spec/src/system/http-server.zod.ts +++ b/packages/spec/src/system/http-server.zod.ts @@ -186,7 +186,7 @@ export const MiddlewareConfigSchema = z.object({ /** * Middleware-specific configuration */ - config: z.record(z.any()).optional().describe('Middleware configuration object'), + config: z.record(z.string(), z.any()).optional().describe('Middleware configuration object'), /** * Path patterns to apply middleware to @@ -236,7 +236,7 @@ export const ServerEventSchema = z.object({ /** * Event payload */ - data: z.record(z.any()).optional().describe('Event-specific data'), + data: z.record(z.string(), z.any()).optional().describe('Event-specific data'), }); export type ServerEvent = z.infer; diff --git a/packages/spec/src/system/logging.zod.ts b/packages/spec/src/system/logging.zod.ts index f5b75c409..d59a6a1e4 100644 --- a/packages/spec/src/system/logging.zod.ts +++ b/packages/spec/src/system/logging.zod.ts @@ -97,8 +97,8 @@ export const LogEntrySchema = z.object({ timestamp: z.string().datetime().describe('ISO 8601 timestamp'), level: LogLevel, message: z.string().describe('Log message'), - context: z.record(z.any()).optional().describe('Structured context data'), - error: z.record(z.any()).optional().describe('Error object if present'), + context: z.record(z.string(), z.any()).optional().describe('Structured context data'), + error: z.record(z.string(), z.any()).optional().describe('Error object if present'), /** Tracing */ traceId: z.string().optional().describe('Distributed trace ID'), @@ -239,7 +239,7 @@ export const HttpDestinationConfigSchema = z.object({ /** * Headers to include */ - headers: z.record(z.string()).optional(), + headers: z.record(z.string(), z.string()).optional(), /** * Authentication @@ -331,7 +331,7 @@ export const ExternalServiceDestinationConfigSchema = z.object({ /** * Service-specific configuration */ - config: z.record(z.any()).optional(), + config: z.record(z.string(), z.any()).optional(), }).describe('External service destination configuration'); export type ExternalServiceDestinationConfig = z.infer; @@ -404,7 +404,7 @@ export const LogEnrichmentConfigSchema = z.object({ /** * Static fields to add to all logs */ - staticFields: z.record(z.any()).optional().describe('Static fields added to every log'), + staticFields: z.record(z.string(), z.any()).optional().describe('Static fields added to every log'), /** * Dynamic field enrichers (runtime only) @@ -471,7 +471,7 @@ export const StructuredLogEntrySchema = z.object({ /** * Structured context data */ - context: z.record(z.any()).optional().describe('Structured context'), + context: z.record(z.string(), z.any()).optional().describe('Structured context'), /** * Error information @@ -481,7 +481,7 @@ export const StructuredLogEntrySchema = z.object({ message: z.string().optional(), stack: z.string().optional(), code: z.string().optional(), - details: z.record(z.any()).optional(), + details: z.record(z.string(), z.any()).optional(), }).optional().describe('Error details'), /** @@ -542,12 +542,12 @@ export const StructuredLogEntrySchema = z.object({ /** * Custom labels/tags */ - labels: z.record(z.string()).optional().describe('Custom labels'), + labels: z.record(z.string(), z.string()).optional().describe('Custom labels'), /** * Additional metadata */ - metadata: z.record(z.any()).optional().describe('Additional metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Additional metadata'), }).describe('Structured log entry'); export type StructuredLogEntry = z.infer; @@ -590,7 +590,7 @@ export const LoggingConfigSchema = z.object({ * Named logger configurations * Map of logger name to logger config for different components/modules */ - loggers: z.record(LoggerConfigSchema).optional().describe('Named logger configurations'), + loggers: z.record(z.string(), LoggerConfigSchema).optional().describe('Named logger configurations'), /** * Log destinations @@ -600,7 +600,7 @@ export const LoggingConfigSchema = z.object({ /** * Log enrichment configuration */ - enrichment: LogEnrichmentConfigSchema.optional().default({}), + enrichment: LogEnrichmentConfigSchema.optional(), /** * Fields to redact from logs @@ -633,7 +633,7 @@ export const LoggingConfigSchema = z.object({ /** * Sample rate by level */ - rateByLevel: z.record(z.number().min(0).max(1)).optional(), + rateByLevel: z.record(z.string(), z.number().min(0).max(1)).optional(), }).optional(), /** diff --git a/packages/spec/src/system/manifest.zod.ts b/packages/spec/src/system/manifest.zod.ts index 5139dc5bc..6872850d9 100644 --- a/packages/spec/src/system/manifest.zod.ts +++ b/packages/spec/src/system/manifest.zod.ts @@ -62,7 +62,7 @@ export const ManifestSchema = z.object({ * Package Dependencies. * Map of package IDs to version requirements. */ - dependencies: z.record(z.string()).optional().describe('Package dependencies'), + dependencies: z.record(z.string(), z.string()).optional().describe('Package dependencies'), /** * Plugin Configuration Schema. @@ -71,7 +71,7 @@ export const ManifestSchema = z.object({ */ configuration: z.object({ title: z.string().optional(), - properties: z.record(z.object({ + properties: z.record(z.string(), z.object({ type: z.enum(['string', 'number', 'boolean', 'array', 'object']).describe('Data type of the setting'), default: z.any().optional().describe('Default value'), description: z.string().optional().describe('Tooltip description'), @@ -106,7 +106,7 @@ export const ManifestSchema = z.object({ /** * Register UI Menus. */ - menus: z.record(z.array(z.object({ + menus: z.record(z.string(), z.array(z.object({ id: z.string(), label: z.string(), command: z.string().optional(), @@ -180,7 +180,7 @@ export const ManifestSchema = z.object({ */ data: z.array(z.object({ object: z.string().describe('Target Object Name'), - records: z.array(z.record(z.any())).describe('List of records to insert'), + records: z.array(z.record(z.string(), z.any())).describe('List of records to insert'), mode: z.enum(['upsert', 'insert', 'ignore']).default('upsert').describe('Seeding mode') })).optional().describe('Initial seed data'), @@ -196,7 +196,7 @@ export const ManifestSchema = z.object({ * Extension points contributed by this package. * Allows packages to extend UI components, add functionality, etc. */ - extensions: z.record(z.any()).optional().describe('Extension points and contributions'), + extensions: z.record(z.string(), z.any()).optional().describe('Extension points and contributions'), }); /** diff --git a/packages/spec/src/system/metadata-loader.zod.ts b/packages/spec/src/system/metadata-loader.zod.ts index 47a951814..aa1dbb9a2 100644 --- a/packages/spec/src/system/metadata-loader.zod.ts +++ b/packages/spec/src/system/metadata-loader.zod.ts @@ -48,7 +48,7 @@ export const MetadataStatsSchema = z.object({ /** * Additional metadata provider-specific properties */ - metadata: z.record(z.any()).optional().describe('Provider-specific metadata'), + metadata: z.record(z.string(), z.any()).optional().describe('Provider-specific metadata'), }); /** @@ -438,7 +438,7 @@ export const MetadataManagerConfigSchema = z.object({ /** * Loader-specific options */ - loaderOptions: z.record(z.any()).optional().describe('Loader-specific configuration'), + loaderOptions: z.record(z.string(), z.any()).optional().describe('Loader-specific configuration'), }); // Export types diff --git a/packages/spec/src/system/metrics.zod.ts b/packages/spec/src/system/metrics.zod.ts index d4c065a78..e4e1f10e7 100644 --- a/packages/spec/src/system/metrics.zod.ts +++ b/packages/spec/src/system/metrics.zod.ts @@ -126,7 +126,7 @@ export type HistogramBucketConfig = z.infer; * Metric Labels Schema * Key-value pairs for metric dimensions */ -export const MetricLabelsSchema = z.record(z.string()).describe('Metric labels'); +export const MetricLabelsSchema = z.record(z.string(), z.string()).describe('Metric labels'); export type MetricLabels = z.infer; @@ -273,7 +273,7 @@ export const TimeSeriesDataPointSchema = z.object({ /** * Labels/tags */ - labels: z.record(z.string()).optional().describe('Labels'), + labels: z.record(z.string(), z.string()).optional().describe('Labels'), }).describe('Time series data point'); export type TimeSeriesDataPoint = z.infer; @@ -290,7 +290,7 @@ export const TimeSeriesSchema = z.object({ /** * Series labels */ - labels: z.record(z.string()).optional().describe('Series labels'), + labels: z.record(z.string(), z.string()).optional().describe('Series labels'), /** * Data points @@ -347,7 +347,7 @@ export const MetricAggregationConfigSchema = z.object({ /** * Filters */ - filters: z.record(z.any()).optional().describe('Filter criteria'), + filters: z.record(z.string(), z.any()).optional().describe('Filter criteria'), }).describe('Metric aggregation configuration'); export type MetricAggregationConfig = z.infer; @@ -598,7 +598,7 @@ export const MetricExportConfigSchema = z.object({ /** * Additional configuration */ - config: z.record(z.any()).optional().describe('Additional configuration'), + config: z.record(z.string(), z.any()).optional().describe('Additional configuration'), }).describe('Metric export configuration'); export type MetricExportConfig = z.infer; diff --git a/packages/spec/src/system/notification.zod.ts b/packages/spec/src/system/notification.zod.ts index e2ed60414..bffa30e07 100644 --- a/packages/spec/src/system/notification.zod.ts +++ b/packages/spec/src/system/notification.zod.ts @@ -143,7 +143,7 @@ export const PushNotificationSchema = z.object({ /** * Custom data payload */ - data: z.record(z.any()).optional().describe('Custom data'), + data: z.record(z.string(), z.any()).optional().describe('Custom data'), /** * Action buttons for the notification diff --git a/packages/spec/src/system/object-storage.zod.ts b/packages/spec/src/system/object-storage.zod.ts index a32f5a36a..3a461eec6 100644 --- a/packages/spec/src/system/object-storage.zod.ts +++ b/packages/spec/src/system/object-storage.zod.ts @@ -156,7 +156,7 @@ export const ObjectMetadataSchema = z.object({ algorithm: z.string().describe('Encryption algorithm (e.g., AES256, aws:kms)'), keyId: z.string().optional().describe('KMS key ID if using managed encryption'), }).optional().describe('Server-side encryption configuration'), - custom: z.record(z.string()).optional().describe('Custom user-defined metadata'), + custom: z.record(z.string(), z.string()).optional().describe('Custom user-defined metadata'), }); export type ObjectMetadata = z.infer; @@ -287,7 +287,7 @@ export const LifecyclePolicyRuleSchema = z.object({ enabled: z.boolean().default(true).describe('Enable this rule'), action: LifecycleActionSchema.describe('Action to perform'), prefix: z.string().optional().describe('Object key prefix filter (e.g., "uploads/")'), - tags: z.record(z.string()).optional().describe('Object tag filters'), + tags: z.record(z.string(), z.string()).optional().describe('Object tag filters'), daysAfterCreation: z.number().min(0).optional().describe('Days after object creation'), daysAfterModification: z.number().min(0).optional().describe('Days after last modification'), targetStorageClass: StorageClassSchema.optional().describe('Target storage class for transition action'), @@ -380,7 +380,7 @@ export const BucketConfigSchema = z.object({ lifecyclePolicy: LifecyclePolicyConfigSchema.optional().describe('Lifecycle policy configuration'), multipartConfig: MultipartUploadConfigSchema.optional().describe('Multipart upload configuration'), - tags: z.record(z.string()).optional().describe('Bucket tags for organization'), + tags: z.record(z.string(), z.string()).optional().describe('Bucket tags for organization'), description: z.string().optional().describe('Bucket description'), enabled: z.boolean().default(true).describe('Enable this bucket'), }); @@ -488,7 +488,7 @@ export const ObjectStorageConfigSchema = z.object({ /** * Provider-specific options */ - options: z.record(z.any()).optional().describe('Provider-specific configuration options'), + options: z.record(z.string(), z.any()).optional().describe('Provider-specific configuration options'), enabled: z.boolean().default(true).describe('Enable this storage configuration'), description: z.string().optional().describe('Configuration description'), diff --git a/packages/spec/src/system/plugin-capability.zod.ts b/packages/spec/src/system/plugin-capability.zod.ts index b50f4db70..1c099aaa6 100644 --- a/packages/spec/src/system/plugin-capability.zod.ts +++ b/packages/spec/src/system/plugin-capability.zod.ts @@ -112,7 +112,7 @@ export const PluginCapabilitySchema = z.object({ /** * Custom metadata for vendor-specific information */ - metadata: z.record(z.any()).optional(), + metadata: z.record(z.string(), z.any()).optional(), /** * Testing/Certification status diff --git a/packages/spec/src/system/plugin.zod.ts b/packages/spec/src/system/plugin.zod.ts index 3411c052e..72e2bedc7 100644 --- a/packages/spec/src/system/plugin.zod.ts +++ b/packages/spec/src/system/plugin.zod.ts @@ -70,8 +70,8 @@ export const PluginContextSchema = z.object({ }), }).passthrough().describe('Internationalization Interface'), - metadata: z.record(z.any()), - events: z.record(z.any()), + metadata: z.record(z.string(), z.any()), + events: z.record(z.string(), z.any()), app: z.object({ router: z.object({ diff --git a/packages/spec/src/system/search-engine.zod.ts b/packages/spec/src/system/search-engine.zod.ts index 5396aa775..127df9322 100644 --- a/packages/spec/src/system/search-engine.zod.ts +++ b/packages/spec/src/system/search-engine.zod.ts @@ -52,10 +52,10 @@ export type FacetConfig = z.infer; export const SearchConfigSchema = z.object({ provider: SearchProviderSchema, indexes: z.array(SearchIndexConfigSchema), - analyzers: z.record(AnalyzerConfigSchema).optional(), + analyzers: z.record(z.string(), AnalyzerConfigSchema).optional(), facets: z.array(FacetConfigSchema).optional(), typoTolerance: z.boolean().default(true), - synonyms: z.record(z.array(z.string())).optional(), + synonyms: z.record(z.string(), z.array(z.string())).optional(), ranking: z.array(z.enum(['typo', 'geo', 'words', 'filters', 'proximity', 'attribute', 'exact', 'custom'])).optional(), }); diff --git a/packages/spec/src/system/service-registry.zod.ts b/packages/spec/src/system/service-registry.zod.ts index a1e64f145..01cf126b7 100644 --- a/packages/spec/src/system/service-registry.zod.ts +++ b/packages/spec/src/system/service-registry.zod.ts @@ -68,7 +68,7 @@ export const ServiceMetadataSchema = z.object({ /** * Additional metadata */ - metadata: z.record(z.any()).optional() + metadata: z.record(z.string(), z.any()).optional() .describe('Additional service-specific metadata'), }); @@ -203,7 +203,7 @@ export const ScopeConfigSchema = z.object({ /** * Scope metadata (context information) */ - metadata: z.record(z.any()).optional() + metadata: z.record(z.string(), z.any()).optional() .describe('Scope-specific context metadata'), }); @@ -249,7 +249,7 @@ export const ScopeInfoSchema = z.object({ /** * Scope metadata */ - metadata: z.record(z.any()).optional() + metadata: z.record(z.string(), z.any()).optional() .describe('Scope-specific context metadata'), }); diff --git a/packages/spec/src/system/startup-orchestrator.zod.ts b/packages/spec/src/system/startup-orchestrator.zod.ts index 065bae8e2..cb7f720b8 100644 --- a/packages/spec/src/system/startup-orchestrator.zod.ts +++ b/packages/spec/src/system/startup-orchestrator.zod.ts @@ -96,7 +96,7 @@ export const HealthStatusSchema = z.object({ /** * Optional health details (plugin-specific) */ - details: z.record(z.any()).optional().describe('Optional plugin-specific health details'), + details: z.record(z.string(), z.any()).optional().describe('Optional plugin-specific health details'), /** * Optional error message if unhealthy diff --git a/packages/spec/src/system/tracing.zod.ts b/packages/spec/src/system/tracing.zod.ts index 2d239c80a..1451fe1e7 100644 --- a/packages/spec/src/system/tracing.zod.ts +++ b/packages/spec/src/system/tracing.zod.ts @@ -19,7 +19,7 @@ export const TraceStateSchema = z.object({ /** * Vendor-specific key-value pairs */ - entries: z.record(z.string()).describe('Trace state entries'), + entries: z.record(z.string(), z.string()).describe('Trace state entries'), }).describe('Trace state'); export type TraceState = z.infer; @@ -126,7 +126,7 @@ export type SpanAttributeValue = z.infer; * Span Attributes Schema * OpenTelemetry semantic conventions */ -export const SpanAttributesSchema = z.record(SpanAttributeValueSchema).describe('Span attributes'); +export const SpanAttributesSchema = z.record(z.string(), SpanAttributeValueSchema).describe('Span attributes'); export type SpanAttributes = z.infer; @@ -321,7 +321,7 @@ export const TraceSamplingConfigSchema = z.object({ composite: z.array(z.object({ strategy: SamplingStrategyType.describe('Strategy type'), ratio: z.number().min(0).max(1).optional(), - condition: z.record(z.any()).optional().describe('Condition for this strategy'), + condition: z.record(z.string(), z.any()).optional().describe('Condition for this strategy'), })).optional(), /** @@ -350,7 +350,7 @@ export const TraceSamplingConfigSchema = z.object({ /** * Attribute filters */ - attributes: z.record(z.any()).optional(), + attributes: z.record(z.string(), z.any()).optional(), }).optional(), /** @@ -503,7 +503,7 @@ export const OpenTelemetryCompatibilitySchema = z.object({ /** * Headers */ - headers: z.record(z.string()).optional().describe('HTTP headers'), + headers: z.record(z.string(), z.string()).optional().describe('HTTP headers'), /** * Timeout in milliseconds @@ -629,12 +629,12 @@ export const TracingConfigSchema = z.object({ /** * Sampling configuration */ - sampling: TraceSamplingConfigSchema.optional().default({ type: 'always_on' }), + sampling: TraceSamplingConfigSchema.optional(), /** * Context propagation */ - propagation: TraceContextPropagationSchema.optional().default({ formats: ['w3c'] }), + propagation: TraceContextPropagationSchema.optional(), /** * OpenTelemetry configuration diff --git a/packages/spec/src/system/translation.zod.ts b/packages/spec/src/system/translation.zod.ts index 8d94098e3..4aae7b81c 100644 --- a/packages/spec/src/system/translation.zod.ts +++ b/packages/spec/src/system/translation.zod.ts @@ -11,24 +11,24 @@ import { z } from 'zod'; */ export const TranslationDataSchema = z.object({ /** Object translations */ - objects: z.record(z.object({ + objects: z.record(z.string(), z.object({ label: z.string(), pluralLabel: z.string().optional(), - fields: z.record(z.object({ + fields: z.record(z.string(), z.object({ label: z.string().optional(), help: z.string().optional(), - options: z.record(z.string()).optional(), // Option value -> Label map + options: z.record(z.string(), z.string()).optional(), // Option value -> Label map })).optional(), })).optional(), /** App/Menu translations */ - apps: z.record(z.object({ + apps: z.record(z.string(), z.object({ label: z.string(), description: z.string().optional(), })).optional(), /** UI Messages */ - messages: z.record(z.string()).optional(), + messages: z.record(z.string(), z.string()).optional(), }); export const LocaleSchema = z.string().describe('BCP-47 Language Tag (e.g. en-US, zh-CN)'); diff --git a/packages/spec/src/ui/app.zod.ts b/packages/spec/src/ui/app.zod.ts index 72894e7c5..8e5d8f269 100644 --- a/packages/spec/src/ui/app.zod.ts +++ b/packages/spec/src/ui/app.zod.ts @@ -61,7 +61,7 @@ export const DashboardNavItemSchema = BaseNavItemSchema.extend({ export const PageNavItemSchema = BaseNavItemSchema.extend({ type: z.literal('page'), pageName: z.string().describe('Target custom page component name'), - params: z.record(z.any()).optional().describe('Parameters passed to the page context'), + params: z.record(z.string(), z.any()).optional().describe('Parameters passed to the page context'), }); /** diff --git a/packages/spec/src/ui/page.zod.ts b/packages/spec/src/ui/page.zod.ts index 6e3bac319..2078a88ad 100644 --- a/packages/spec/src/ui/page.zod.ts +++ b/packages/spec/src/ui/page.zod.ts @@ -41,7 +41,7 @@ export const PageComponentSchema = z.object({ /** Configuration */ label: z.string().optional(), - properties: z.record(z.any()).describe('Component props passed to the widget. See component.zod.ts for schemas.'), + properties: z.record(z.string(), z.any()).describe('Component props passed to the widget. See component.zod.ts for schemas.'), /** Visibility Rule */ visibility: z.string().optional().describe('Visibility filter/formula') diff --git a/packages/spec/src/ui/theme.zod.ts b/packages/spec/src/ui/theme.zod.ts index d84028253..22fa9d392 100644 --- a/packages/spec/src/ui/theme.zod.ts +++ b/packages/spec/src/ui/theme.zod.ts @@ -214,7 +214,7 @@ export const ThemeSchema = z.object({ zIndex: ZIndexSchema.optional().describe('Z-index scale for layering'), /** Custom CSS variables */ - customVars: z.record(z.string()).optional().describe('Custom CSS variables (key-value pairs)'), + customVars: z.record(z.string(), z.string()).optional().describe('Custom CSS variables (key-value pairs)'), /** Logo */ logo: z.object({ diff --git a/packages/spec/src/ui/view.zod.ts b/packages/spec/src/ui/view.zod.ts index def85ea1b..4d8c143b4 100644 --- a/packages/spec/src/ui/view.zod.ts +++ b/packages/spec/src/ui/view.zod.ts @@ -12,8 +12,8 @@ export const HttpMethodSchema = z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE'] export const HttpRequestSchema = z.object({ url: z.string().describe('API endpoint URL'), method: HttpMethodSchema.optional().default('GET').describe('HTTP method'), - headers: z.record(z.string()).optional().describe('Custom HTTP headers'), - params: z.record(z.unknown()).optional().describe('Query parameters'), + headers: z.record(z.string(), z.string()).optional().describe('Custom HTTP headers'), + params: z.record(z.string(), z.unknown()).optional().describe('Query parameters'), body: z.unknown().optional().describe('Request body for POST/PUT/PATCH'), }); @@ -226,8 +226,8 @@ export const FormViewSchema = z.object({ export const ViewSchema = z.object({ list: ListViewSchema.optional(), // Default list view form: FormViewSchema.optional(), // Default form view - listViews: z.record(ListViewSchema).optional().describe('Additional named list views'), - formViews: z.record(FormViewSchema).optional().describe('Additional named form views'), + listViews: z.record(z.string(), ListViewSchema).optional().describe('Additional named list views'), + formViews: z.record(z.string(), FormViewSchema).optional().describe('Additional named form views'), }); export type View = z.infer; diff --git a/packages/spec/src/ui/widget.zod.ts b/packages/spec/src/ui/widget.zod.ts index 5404bf228..e9d68d695 100644 --- a/packages/spec/src/ui/widget.zod.ts +++ b/packages/spec/src/ui/widget.zod.ts @@ -139,7 +139,7 @@ export const WidgetEventSchema = z.object({ * * @example { userId: 'string', timestamp: 'number' } */ - payload: z.record(z.any()).optional().describe('Event payload schema'), + payload: z.record(z.string(), z.any()).optional().describe('Event payload schema'), }); export type WidgetEvent = z.infer; @@ -206,7 +206,7 @@ export const WidgetPropertySchema = z.object({ * Property validation schema * Can include min/max, regex, enum values, etc. */ - validation: z.record(z.any()).optional().describe('Validation rules'), + validation: z.record(z.string(), z.any()).optional().describe('Validation rules'), /** * Property category for grouping in UI @@ -400,13 +400,13 @@ export const FieldWidgetPropsSchema = z.object({ * The complete record/document being edited. * Useful for conditional logic and cross-field dependencies. */ - record: z.record(z.any()).optional().describe('Complete record data'), + record: z.record(z.string(), z.any()).optional().describe('Complete record data'), /** * Custom options passed to the widget. * Can contain widget-specific configuration like themes, behaviors, etc. */ - options: z.record(z.any()).optional().describe('Custom widget options'), + options: z.record(z.string(), z.any()).optional().describe('Custom widget options'), }); /** From 123a9a409d70b92885dfa0b48af0bc32b6f3609f Mon Sep 17 00:00:00 2001 From: Jack Zhuang <50353452+hotlong@users.noreply.github.com> Date: Sun, 1 Feb 2026 15:39:14 +0800 Subject: [PATCH 5/7] fix: update Zod schemas to support optional parameters with defaults --- packages/spec/src/api/rest-server.zod.ts | 2 +- packages/spec/src/system/plugin.zod.ts | 34 ++++++++++++------------ packages/spec/src/system/tracing.zod.ts | 4 +-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/packages/spec/src/api/rest-server.zod.ts b/packages/spec/src/api/rest-server.zod.ts index dd25c368d..616334cea 100644 --- a/packages/spec/src/api/rest-server.zod.ts +++ b/packages/spec/src/api/rest-server.zod.ts @@ -182,7 +182,7 @@ export const CrudEndpointsConfigSchema = z.object({ /** * Custom endpoint patterns (override defaults) */ - patterns: z.record(CrudOperation, CrudEndpointPatternSchema).optional() + patterns: z.record(CrudOperation, CrudEndpointPatternSchema.optional()).optional() .describe('Custom URL patterns for operations'), /** diff --git a/packages/spec/src/system/plugin.zod.ts b/packages/spec/src/system/plugin.zod.ts index 72e2bedc7..28273fdea 100644 --- a/packages/spec/src/system/plugin.zod.ts +++ b/packages/spec/src/system/plugin.zod.ts @@ -5,67 +5,67 @@ import { z } from 'zod'; export const PluginContextSchema = z.object({ ql: z.object({ object: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.any() }), // Return any to allow method chaining query: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.any() }), }).passthrough().describe('ObjectQL Engine Interface'), os: z.object({ getCurrentUser: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.any() }), getConfig: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.any() }), }).passthrough().describe('ObjectStack Kernel Interface'), logger: z.object({ debug: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.void() }), info: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.void() }), warn: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.void() }), error: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.void() }), }).passthrough().describe('Logger Interface'), storage: z.object({ get: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.any() }), set: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.promise(z.void()) }), delete: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.promise(z.void()) }), }).passthrough().describe('Storage Interface'), i18n: z.object({ t: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.string() }), getLocale: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.string() }), }).passthrough().describe('Internationalization Interface'), @@ -76,15 +76,15 @@ export const PluginContextSchema = z.object({ app: z.object({ router: z.object({ get: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.any() }), post: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.any() }), use: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.any() }), }).passthrough() @@ -92,7 +92,7 @@ export const PluginContextSchema = z.object({ drivers: z.object({ register: z.function({ - input: z.tuple([]), + input: z.tuple([]).rest(z.any()), output: z.void() }), }).passthrough().describe('Driver Registry'), diff --git a/packages/spec/src/system/tracing.zod.ts b/packages/spec/src/system/tracing.zod.ts index 1451fe1e7..0e25f2ab2 100644 --- a/packages/spec/src/system/tracing.zod.ts +++ b/packages/spec/src/system/tracing.zod.ts @@ -629,12 +629,12 @@ export const TracingConfigSchema = z.object({ /** * Sampling configuration */ - sampling: TraceSamplingConfigSchema.optional(), + sampling: TraceSamplingConfigSchema.optional().default({ type: 'always_on', rules: [] }), /** * Context propagation */ - propagation: TraceContextPropagationSchema.optional(), + propagation: TraceContextPropagationSchema.optional().default({ formats: ['w3c'], extract: true, inject: true }), /** * OpenTelemetry configuration From fd4b241e13e0cd3b30ee18b769bf5492013a47a6 Mon Sep 17 00:00:00 2001 From: Jack Zhuang <50353452+hotlong@users.noreply.github.com> Date: Sun, 1 Feb 2026 15:45:40 +0800 Subject: [PATCH 6/7] fix: simplify build script in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 14bc8b7f2..9f54ff55a 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "description": "ObjectStack Protocol & Specification - Monorepo for TypeScript Interfaces, JSON Schemas, and Convention Configurations", "scripts": { - "build": "pnpm --filter ./packages/spec build && pnpm -r --stream --filter '!./packages/spec' build", + "build": "pnpm -r build", "dev": "pnpm --filter @objectstack/client-react build && pnpm -r --filter @objectstack/example-msw-react-crud dev", "test": "pnpm --filter @objectstack/spec test", "clean": "pnpm -r --parallel clean && rm -rf dist", From 360cb473a87d766e79c6a0ec5da3e3eec5964530 Mon Sep 17 00:00:00 2001 From: Jack Zhuang <50353452+hotlong@users.noreply.github.com> Date: Sun, 1 Feb 2026 15:59:14 +0800 Subject: [PATCH 7/7] fix: update package.json and pnpm-lock.yaml to include Zod dependency and adjust type imports --- examples/plugin-bi/package.json | 3 ++- examples/plugin-bi/src/index.ts | 4 ++-- packages/cli/src/commands/compile.ts | 4 +++- pnpm-lock.yaml | 3 +++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/examples/plugin-bi/package.json b/examples/plugin-bi/package.json index c6ab883fd..3d88c90d0 100644 --- a/examples/plugin-bi/package.json +++ b/examples/plugin-bi/package.json @@ -8,7 +8,8 @@ "build": "tsc" }, "dependencies": { - "@objectstack/spec": "workspace:*" + "@objectstack/spec": "workspace:*", + "zod": "^4.3.6" }, "devDependencies": { "typescript": "^5.0.0" diff --git a/examples/plugin-bi/src/index.ts b/examples/plugin-bi/src/index.ts index fee30108c..70a0352f2 100644 --- a/examples/plugin-bi/src/index.ts +++ b/examples/plugin-bi/src/index.ts @@ -1,4 +1,4 @@ -import { PluginDefinition, PluginContextData } from '@objectstack/spec/system'; +import { PluginDefinition } from '@objectstack/spec/system'; export class BiEngine { constructor() { @@ -19,7 +19,7 @@ const plugin: PluginDefinition = { id: 'com.objectstack.bi', version: '1.0.0', - onEnable: async (context: PluginContextData) => { + onEnable: async (context) => { // 1. Destructure strict APIs const { logger, ql, os, app, storage, i18n } = context; diff --git a/packages/cli/src/commands/compile.ts b/packages/cli/src/commands/compile.ts index b28781b62..e4d49cc1c 100644 --- a/packages/cli/src/commands/compile.ts +++ b/packages/cli/src/commands/compile.ts @@ -4,6 +4,7 @@ import fs from 'fs'; import { pathToFileURL } from 'url'; import chalk from 'chalk'; import { bundleRequire } from 'bundle-require'; +import { ZodError } from 'zod'; import { ObjectStackDefinitionSchema } from '@objectstack/spec'; export const compileCommand = new Command('compile') @@ -42,7 +43,8 @@ export const compileCommand = new Command('compile') if (!result.success) { console.error(chalk.red(`\n❌ Validation Failed!`)); - result.error.errors.forEach(e => { + const error = result.error as ZodError; + error.issues.forEach((e: any) => { console.error(chalk.red(` - [${e.path.join('.')}] ${e.message}`)); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83b30bd7c..559d16766 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -267,6 +267,9 @@ importers: '@objectstack/spec': specifier: workspace:* version: link:../../packages/spec + zod: + specifier: ^4.3.6 + version: 4.3.6 devDependencies: typescript: specifier: ^5.0.0