@objectstack/spec 0.7.1 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/agent-action.zod.d.ts +8 -8
- package/dist/ai/model-registry.zod.d.ts +6 -6
- package/dist/ai/orchestration.zod.d.ts +6 -6
- package/dist/ai/predictive.zod.d.ts +2 -2
- package/dist/ai/rag-pipeline.zod.d.ts +2 -2
- package/dist/api/batch.zod.d.ts +81 -8
- package/dist/api/batch.zod.d.ts.map +1 -1
- package/dist/api/batch.zod.js +14 -1
- package/dist/api/graphql.zod.d.ts +224 -224
- package/dist/api/odata.zod.d.ts +379 -0
- package/dist/api/odata.zod.d.ts.map +1 -1
- package/dist/api/odata.zod.js +14 -1
- package/dist/api/protocol.zod.d.ts +18 -18
- package/dist/api/realtime.zod.d.ts +133 -0
- package/dist/api/realtime.zod.d.ts.map +1 -1
- package/dist/api/realtime.zod.js +14 -1
- package/dist/api/websocket.zod.d.ts +2 -2
- package/dist/auth/config.zod.d.ts +12 -12
- package/dist/auth/identity.zod.d.ts +3 -3
- package/dist/automation/approval.zod.d.ts +16 -16
- package/dist/automation/etl.zod.d.ts +2 -2
- package/dist/automation/sync.zod.d.ts +4 -4
- package/dist/automation/webhook.zod.d.ts +2 -2
- package/dist/automation/workflow.zod.d.ts +28 -28
- package/dist/data/object.zod.d.ts.map +1 -1
- package/dist/data/object.zod.js +3 -1
- package/dist/hub/composer.zod.d.ts +9 -8
- package/dist/hub/composer.zod.d.ts.map +1 -1
- package/dist/hub/marketplace.zod.d.ts +1 -0
- package/dist/hub/marketplace.zod.d.ts.map +1 -1
- package/dist/hub/plugin-registry.zod.d.ts +9 -9
- package/dist/hub/space.zod.d.ts +5 -4
- package/dist/hub/space.zod.d.ts.map +1 -1
- package/dist/integration/connector/database.zod.d.ts +33 -33
- package/dist/integration/connector/file-storage.zod.d.ts +52 -52
- package/dist/integration/connector/message-queue.zod.d.ts +43 -43
- package/dist/integration/connector/saas.zod.d.ts +31 -30
- package/dist/integration/connector/saas.zod.d.ts.map +1 -1
- package/dist/integration/connector.zod.d.ts +34 -34
- package/dist/stack.zod.d.ts +78 -78
- package/dist/system/change-management.zod.d.ts +2 -2
- package/dist/system/collaboration.zod.d.ts +6 -6
- package/dist/system/events.zod.d.ts +2536 -0
- package/dist/system/events.zod.d.ts.map +1 -1
- package/dist/system/events.zod.js +582 -1
- package/dist/system/http-server.zod.d.ts +2 -2
- package/dist/system/index.d.ts +1 -0
- package/dist/system/index.d.ts.map +1 -1
- package/dist/system/index.js +1 -0
- package/dist/system/job.zod.d.ts +3 -2
- package/dist/system/job.zod.d.ts.map +1 -1
- package/dist/system/logging.zod.d.ts +10 -10
- package/dist/system/manifest.zod.d.ts +6 -6
- package/dist/system/message-queue.zod.d.ts +10 -10
- package/dist/system/metadata-loader.zod.d.ts +3 -3
- package/dist/system/notification.zod.d.ts +12 -12
- package/dist/system/plugin-capability.zod.d.ts +6 -6
- package/dist/system/startup-orchestrator.zod.d.ts +2 -2
- package/dist/system/worker.zod.d.ts +1458 -0
- package/dist/system/worker.zod.d.ts.map +1 -0
- package/dist/system/worker.zod.js +479 -0
- package/json-schema/api/BatchConfig.json +51 -0
- package/json-schema/api/ODataConfig.json +132 -0
- package/json-schema/api/RealtimeConfig.json +90 -0
- package/json-schema/data/Object.json +4 -1
- package/json-schema/system/BatchProgress.json +72 -0
- package/json-schema/system/BatchTask.json +63 -0
- package/json-schema/system/DeadLetterQueueEntry.json +137 -0
- package/json-schema/system/Event.json +24 -0
- package/json-schema/system/EventBusConfig.json +552 -0
- package/json-schema/system/EventHandler.json +34 -0
- package/json-schema/system/EventLogEntry.json +153 -0
- package/json-schema/system/EventMessageQueueConfig.json +79 -0
- package/json-schema/system/EventMetadata.json +20 -0
- package/json-schema/system/EventPersistence.json +11 -0
- package/json-schema/system/EventPriority.json +16 -0
- package/json-schema/system/EventQueueConfig.json +67 -0
- package/json-schema/system/EventReplayConfig.json +50 -0
- package/json-schema/system/EventSourcingConfig.json +65 -0
- package/json-schema/system/EventTypeDefinition.json +45 -0
- package/json-schema/system/EventWebhookConfig.json +119 -0
- package/json-schema/system/QueueConfig.json +133 -0
- package/json-schema/system/RealTimeNotificationConfig.json +85 -0
- package/json-schema/system/Task.json +145 -0
- package/json-schema/system/TaskExecutionResult.json +85 -0
- package/json-schema/system/TaskPriority.json +16 -0
- package/json-schema/system/TaskRetryPolicy.json +46 -0
- package/json-schema/system/TaskStatus.json +19 -0
- package/json-schema/system/WorkerConfig.json +188 -0
- package/json-schema/system/WorkerStats.json +90 -0
- package/package.json +9 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/EventLogEntry",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"EventLogEntry": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"id": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Unique log entry identifier"
|
|
10
|
+
},
|
|
11
|
+
"event": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"properties": {
|
|
14
|
+
"id": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Unique event identifier"
|
|
17
|
+
},
|
|
18
|
+
"name": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"minLength": 3,
|
|
21
|
+
"pattern": "^[a-z][a-z0-9_.]*$",
|
|
22
|
+
"description": "Event name (lowercase with dots, e.g., user.created, order.paid)"
|
|
23
|
+
},
|
|
24
|
+
"payload": {
|
|
25
|
+
"description": "Event payload schema"
|
|
26
|
+
},
|
|
27
|
+
"metadata": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"properties": {
|
|
30
|
+
"source": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "Event source (e.g., plugin name, system component)"
|
|
33
|
+
},
|
|
34
|
+
"timestamp": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"format": "date-time",
|
|
37
|
+
"description": "ISO 8601 datetime when event was created"
|
|
38
|
+
},
|
|
39
|
+
"userId": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "User who triggered the event"
|
|
42
|
+
},
|
|
43
|
+
"tenantId": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "Tenant identifier for multi-tenant systems"
|
|
46
|
+
},
|
|
47
|
+
"correlationId": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "Correlation ID for event tracing"
|
|
50
|
+
},
|
|
51
|
+
"causationId": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"description": "ID of the event that caused this event"
|
|
54
|
+
},
|
|
55
|
+
"priority": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"enum": [
|
|
58
|
+
"critical",
|
|
59
|
+
"high",
|
|
60
|
+
"normal",
|
|
61
|
+
"low",
|
|
62
|
+
"background"
|
|
63
|
+
],
|
|
64
|
+
"default": "normal",
|
|
65
|
+
"description": "Event priority"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"required": [
|
|
69
|
+
"source",
|
|
70
|
+
"timestamp"
|
|
71
|
+
],
|
|
72
|
+
"additionalProperties": false,
|
|
73
|
+
"description": "Event metadata"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"required": [
|
|
77
|
+
"name",
|
|
78
|
+
"metadata"
|
|
79
|
+
],
|
|
80
|
+
"additionalProperties": false,
|
|
81
|
+
"description": "The event"
|
|
82
|
+
},
|
|
83
|
+
"status": {
|
|
84
|
+
"type": "string",
|
|
85
|
+
"enum": [
|
|
86
|
+
"pending",
|
|
87
|
+
"processing",
|
|
88
|
+
"completed",
|
|
89
|
+
"failed"
|
|
90
|
+
],
|
|
91
|
+
"description": "Processing status"
|
|
92
|
+
},
|
|
93
|
+
"handlersExecuted": {
|
|
94
|
+
"type": "array",
|
|
95
|
+
"items": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"properties": {
|
|
98
|
+
"handlerId": {
|
|
99
|
+
"type": "string",
|
|
100
|
+
"description": "Handler identifier"
|
|
101
|
+
},
|
|
102
|
+
"status": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"enum": [
|
|
105
|
+
"success",
|
|
106
|
+
"failed",
|
|
107
|
+
"timeout"
|
|
108
|
+
],
|
|
109
|
+
"description": "Handler execution status"
|
|
110
|
+
},
|
|
111
|
+
"durationMs": {
|
|
112
|
+
"type": "integer",
|
|
113
|
+
"description": "Execution duration"
|
|
114
|
+
},
|
|
115
|
+
"error": {
|
|
116
|
+
"type": "string",
|
|
117
|
+
"description": "Error message if failed"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"required": [
|
|
121
|
+
"handlerId",
|
|
122
|
+
"status"
|
|
123
|
+
],
|
|
124
|
+
"additionalProperties": false
|
|
125
|
+
},
|
|
126
|
+
"description": "Handlers that processed this event"
|
|
127
|
+
},
|
|
128
|
+
"receivedAt": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"format": "date-time",
|
|
131
|
+
"description": "When event was received"
|
|
132
|
+
},
|
|
133
|
+
"processedAt": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"format": "date-time",
|
|
136
|
+
"description": "When event was processed"
|
|
137
|
+
},
|
|
138
|
+
"totalDurationMs": {
|
|
139
|
+
"type": "integer",
|
|
140
|
+
"description": "Total processing time"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
"required": [
|
|
144
|
+
"id",
|
|
145
|
+
"event",
|
|
146
|
+
"status",
|
|
147
|
+
"receivedAt"
|
|
148
|
+
],
|
|
149
|
+
"additionalProperties": false
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
153
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/EventMessageQueueConfig",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"EventMessageQueueConfig": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"provider": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"enum": [
|
|
10
|
+
"kafka",
|
|
11
|
+
"rabbitmq",
|
|
12
|
+
"aws-sqs",
|
|
13
|
+
"redis-pubsub",
|
|
14
|
+
"google-pubsub",
|
|
15
|
+
"azure-service-bus"
|
|
16
|
+
],
|
|
17
|
+
"description": "Message queue provider"
|
|
18
|
+
},
|
|
19
|
+
"topic": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Topic or queue name"
|
|
22
|
+
},
|
|
23
|
+
"eventPattern": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"default": "*",
|
|
26
|
+
"description": "Event name pattern to publish (supports wildcards)"
|
|
27
|
+
},
|
|
28
|
+
"partitionKey": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "JSON path for partition key (e.g., \"metadata.tenantId\")"
|
|
31
|
+
},
|
|
32
|
+
"format": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"enum": [
|
|
35
|
+
"json",
|
|
36
|
+
"avro",
|
|
37
|
+
"protobuf"
|
|
38
|
+
],
|
|
39
|
+
"default": "json",
|
|
40
|
+
"description": "Message serialization format"
|
|
41
|
+
},
|
|
42
|
+
"includeMetadata": {
|
|
43
|
+
"type": "boolean",
|
|
44
|
+
"default": true,
|
|
45
|
+
"description": "Include event metadata in message"
|
|
46
|
+
},
|
|
47
|
+
"compression": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"enum": [
|
|
50
|
+
"none",
|
|
51
|
+
"gzip",
|
|
52
|
+
"snappy",
|
|
53
|
+
"lz4"
|
|
54
|
+
],
|
|
55
|
+
"default": "none",
|
|
56
|
+
"description": "Message compression"
|
|
57
|
+
},
|
|
58
|
+
"batchSize": {
|
|
59
|
+
"type": "integer",
|
|
60
|
+
"minimum": 1,
|
|
61
|
+
"default": 1,
|
|
62
|
+
"description": "Batch size for publishing"
|
|
63
|
+
},
|
|
64
|
+
"flushIntervalMs": {
|
|
65
|
+
"type": "integer",
|
|
66
|
+
"exclusiveMinimum": 0,
|
|
67
|
+
"default": 1000,
|
|
68
|
+
"description": "Flush interval for batching"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"required": [
|
|
72
|
+
"provider",
|
|
73
|
+
"topic"
|
|
74
|
+
],
|
|
75
|
+
"additionalProperties": false
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
79
|
+
}
|
|
@@ -20,6 +20,26 @@
|
|
|
20
20
|
"tenantId": {
|
|
21
21
|
"type": "string",
|
|
22
22
|
"description": "Tenant identifier for multi-tenant systems"
|
|
23
|
+
},
|
|
24
|
+
"correlationId": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Correlation ID for event tracing"
|
|
27
|
+
},
|
|
28
|
+
"causationId": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "ID of the event that caused this event"
|
|
31
|
+
},
|
|
32
|
+
"priority": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"enum": [
|
|
35
|
+
"critical",
|
|
36
|
+
"high",
|
|
37
|
+
"normal",
|
|
38
|
+
"low",
|
|
39
|
+
"background"
|
|
40
|
+
],
|
|
41
|
+
"default": "normal",
|
|
42
|
+
"description": "Event priority"
|
|
23
43
|
}
|
|
24
44
|
},
|
|
25
45
|
"required": [
|
|
@@ -13,6 +13,17 @@
|
|
|
13
13
|
"type": "integer",
|
|
14
14
|
"exclusiveMinimum": 0,
|
|
15
15
|
"description": "Days to retain persisted events"
|
|
16
|
+
},
|
|
17
|
+
"storage": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"enum": [
|
|
20
|
+
"database",
|
|
21
|
+
"file",
|
|
22
|
+
"s3",
|
|
23
|
+
"custom"
|
|
24
|
+
],
|
|
25
|
+
"default": "database",
|
|
26
|
+
"description": "Storage backend for persisted events"
|
|
16
27
|
}
|
|
17
28
|
},
|
|
18
29
|
"required": [
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/EventPriority",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"EventPriority": {
|
|
5
|
+
"type": "string",
|
|
6
|
+
"enum": [
|
|
7
|
+
"critical",
|
|
8
|
+
"high",
|
|
9
|
+
"normal",
|
|
10
|
+
"low",
|
|
11
|
+
"background"
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
16
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/EventQueueConfig",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"EventQueueConfig": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"name": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"default": "events",
|
|
10
|
+
"description": "Event queue name"
|
|
11
|
+
},
|
|
12
|
+
"concurrency": {
|
|
13
|
+
"type": "integer",
|
|
14
|
+
"minimum": 1,
|
|
15
|
+
"default": 10,
|
|
16
|
+
"description": "Max concurrent event handlers"
|
|
17
|
+
},
|
|
18
|
+
"retryPolicy": {
|
|
19
|
+
"type": "object",
|
|
20
|
+
"properties": {
|
|
21
|
+
"maxRetries": {
|
|
22
|
+
"type": "integer",
|
|
23
|
+
"minimum": 0,
|
|
24
|
+
"default": 3,
|
|
25
|
+
"description": "Max retries for failed events"
|
|
26
|
+
},
|
|
27
|
+
"backoffStrategy": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"enum": [
|
|
30
|
+
"fixed",
|
|
31
|
+
"linear",
|
|
32
|
+
"exponential"
|
|
33
|
+
],
|
|
34
|
+
"default": "exponential",
|
|
35
|
+
"description": "Backoff strategy"
|
|
36
|
+
},
|
|
37
|
+
"initialDelayMs": {
|
|
38
|
+
"type": "integer",
|
|
39
|
+
"exclusiveMinimum": 0,
|
|
40
|
+
"default": 1000,
|
|
41
|
+
"description": "Initial retry delay"
|
|
42
|
+
},
|
|
43
|
+
"maxDelayMs": {
|
|
44
|
+
"type": "integer",
|
|
45
|
+
"exclusiveMinimum": 0,
|
|
46
|
+
"default": 60000,
|
|
47
|
+
"description": "Maximum retry delay"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"additionalProperties": false,
|
|
51
|
+
"description": "Default retry policy for events"
|
|
52
|
+
},
|
|
53
|
+
"deadLetterQueue": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"description": "Dead letter queue name for failed events"
|
|
56
|
+
},
|
|
57
|
+
"priorityEnabled": {
|
|
58
|
+
"type": "boolean",
|
|
59
|
+
"default": true,
|
|
60
|
+
"description": "Process events based on priority"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"additionalProperties": false
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
67
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/EventReplayConfig",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"EventReplayConfig": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"fromTimestamp": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"format": "date-time",
|
|
10
|
+
"description": "Start timestamp for replay (ISO 8601)"
|
|
11
|
+
},
|
|
12
|
+
"toTimestamp": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"format": "date-time",
|
|
15
|
+
"description": "End timestamp for replay (ISO 8601)"
|
|
16
|
+
},
|
|
17
|
+
"eventTypes": {
|
|
18
|
+
"type": "array",
|
|
19
|
+
"items": {
|
|
20
|
+
"type": "string"
|
|
21
|
+
},
|
|
22
|
+
"description": "Event types to replay (empty = all)"
|
|
23
|
+
},
|
|
24
|
+
"filters": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"additionalProperties": {},
|
|
27
|
+
"description": "Additional filters for event selection"
|
|
28
|
+
},
|
|
29
|
+
"speed": {
|
|
30
|
+
"type": "number",
|
|
31
|
+
"exclusiveMinimum": 0,
|
|
32
|
+
"default": 1,
|
|
33
|
+
"description": "Replay speed multiplier (1 = real-time)"
|
|
34
|
+
},
|
|
35
|
+
"targetHandlers": {
|
|
36
|
+
"type": "array",
|
|
37
|
+
"items": {
|
|
38
|
+
"type": "string"
|
|
39
|
+
},
|
|
40
|
+
"description": "Handler IDs to execute (empty = all)"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"required": [
|
|
44
|
+
"fromTimestamp"
|
|
45
|
+
],
|
|
46
|
+
"additionalProperties": false
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
50
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/EventSourcingConfig",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"EventSourcingConfig": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"enabled": {
|
|
8
|
+
"type": "boolean",
|
|
9
|
+
"default": false,
|
|
10
|
+
"description": "Enable event sourcing"
|
|
11
|
+
},
|
|
12
|
+
"snapshotInterval": {
|
|
13
|
+
"type": "integer",
|
|
14
|
+
"exclusiveMinimum": 0,
|
|
15
|
+
"default": 100,
|
|
16
|
+
"description": "Create snapshot every N events"
|
|
17
|
+
},
|
|
18
|
+
"snapshotRetention": {
|
|
19
|
+
"type": "integer",
|
|
20
|
+
"exclusiveMinimum": 0,
|
|
21
|
+
"default": 10,
|
|
22
|
+
"description": "Number of snapshots to retain"
|
|
23
|
+
},
|
|
24
|
+
"retention": {
|
|
25
|
+
"type": "integer",
|
|
26
|
+
"exclusiveMinimum": 0,
|
|
27
|
+
"default": 365,
|
|
28
|
+
"description": "Days to retain events"
|
|
29
|
+
},
|
|
30
|
+
"aggregateTypes": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"description": "Aggregate types to enable event sourcing for"
|
|
36
|
+
},
|
|
37
|
+
"storage": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"properties": {
|
|
40
|
+
"type": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"enum": [
|
|
43
|
+
"database",
|
|
44
|
+
"file",
|
|
45
|
+
"s3",
|
|
46
|
+
"eventstore"
|
|
47
|
+
],
|
|
48
|
+
"default": "database",
|
|
49
|
+
"description": "Storage backend"
|
|
50
|
+
},
|
|
51
|
+
"options": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"additionalProperties": {},
|
|
54
|
+
"description": "Storage-specific options"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"additionalProperties": false,
|
|
58
|
+
"description": "Event store configuration"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"additionalProperties": false
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
65
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/EventTypeDefinition",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"EventTypeDefinition": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"name": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 3,
|
|
10
|
+
"pattern": "^[a-z][a-z0-9_.]*$",
|
|
11
|
+
"description": "Event type name (lowercase with dots)"
|
|
12
|
+
},
|
|
13
|
+
"version": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"default": "1.0.0",
|
|
16
|
+
"description": "Event schema version"
|
|
17
|
+
},
|
|
18
|
+
"schema": {
|
|
19
|
+
"description": "JSON Schema for event payload validation"
|
|
20
|
+
},
|
|
21
|
+
"description": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "Event type description"
|
|
24
|
+
},
|
|
25
|
+
"deprecated": {
|
|
26
|
+
"type": "boolean",
|
|
27
|
+
"default": false,
|
|
28
|
+
"description": "Whether this event type is deprecated"
|
|
29
|
+
},
|
|
30
|
+
"tags": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"description": "Event type tags"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"required": [
|
|
39
|
+
"name"
|
|
40
|
+
],
|
|
41
|
+
"additionalProperties": false
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
45
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/EventWebhookConfig",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"EventWebhookConfig": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"id": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Unique webhook identifier"
|
|
10
|
+
},
|
|
11
|
+
"eventPattern": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Event name pattern (supports wildcards)"
|
|
14
|
+
},
|
|
15
|
+
"url": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"format": "uri",
|
|
18
|
+
"description": "Webhook endpoint URL"
|
|
19
|
+
},
|
|
20
|
+
"method": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"enum": [
|
|
23
|
+
"GET",
|
|
24
|
+
"POST",
|
|
25
|
+
"PUT",
|
|
26
|
+
"PATCH"
|
|
27
|
+
],
|
|
28
|
+
"default": "POST",
|
|
29
|
+
"description": "HTTP method"
|
|
30
|
+
},
|
|
31
|
+
"headers": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"additionalProperties": {
|
|
34
|
+
"type": "string"
|
|
35
|
+
},
|
|
36
|
+
"description": "HTTP headers"
|
|
37
|
+
},
|
|
38
|
+
"authentication": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"properties": {
|
|
41
|
+
"type": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"enum": [
|
|
44
|
+
"none",
|
|
45
|
+
"bearer",
|
|
46
|
+
"basic",
|
|
47
|
+
"api-key"
|
|
48
|
+
],
|
|
49
|
+
"description": "Auth type"
|
|
50
|
+
},
|
|
51
|
+
"credentials": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"additionalProperties": {
|
|
54
|
+
"type": "string"
|
|
55
|
+
},
|
|
56
|
+
"description": "Auth credentials"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"required": [
|
|
60
|
+
"type"
|
|
61
|
+
],
|
|
62
|
+
"additionalProperties": false,
|
|
63
|
+
"description": "Authentication configuration"
|
|
64
|
+
},
|
|
65
|
+
"retryPolicy": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"properties": {
|
|
68
|
+
"maxRetries": {
|
|
69
|
+
"type": "integer",
|
|
70
|
+
"minimum": 0,
|
|
71
|
+
"default": 3,
|
|
72
|
+
"description": "Max retry attempts"
|
|
73
|
+
},
|
|
74
|
+
"backoffStrategy": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"enum": [
|
|
77
|
+
"fixed",
|
|
78
|
+
"linear",
|
|
79
|
+
"exponential"
|
|
80
|
+
],
|
|
81
|
+
"default": "exponential"
|
|
82
|
+
},
|
|
83
|
+
"initialDelayMs": {
|
|
84
|
+
"type": "integer",
|
|
85
|
+
"exclusiveMinimum": 0,
|
|
86
|
+
"default": 1000,
|
|
87
|
+
"description": "Initial retry delay"
|
|
88
|
+
},
|
|
89
|
+
"maxDelayMs": {
|
|
90
|
+
"type": "integer",
|
|
91
|
+
"exclusiveMinimum": 0,
|
|
92
|
+
"default": 60000,
|
|
93
|
+
"description": "Max retry delay"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"additionalProperties": false,
|
|
97
|
+
"description": "Retry policy"
|
|
98
|
+
},
|
|
99
|
+
"timeoutMs": {
|
|
100
|
+
"type": "integer",
|
|
101
|
+
"exclusiveMinimum": 0,
|
|
102
|
+
"default": 30000,
|
|
103
|
+
"description": "Request timeout in milliseconds"
|
|
104
|
+
},
|
|
105
|
+
"enabled": {
|
|
106
|
+
"type": "boolean",
|
|
107
|
+
"default": true,
|
|
108
|
+
"description": "Whether webhook is enabled"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"required": [
|
|
112
|
+
"eventPattern",
|
|
113
|
+
"url"
|
|
114
|
+
],
|
|
115
|
+
"additionalProperties": false
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
119
|
+
}
|