@shipfox/api-definitions 12.3.0 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/.turbo/turbo-build.log +11 -11
  2. package/CHANGELOG.md +45 -0
  3. package/dist/core/entities/index.d.ts +1 -1
  4. package/dist/core/entities/index.d.ts.map +1 -1
  5. package/dist/core/entities/index.js +1 -1
  6. package/dist/core/entities/index.js.map +1 -1
  7. package/dist/core/entities/integration-context.d.ts +4 -0
  8. package/dist/core/entities/integration-context.d.ts.map +1 -1
  9. package/dist/core/entities/integration-context.js.map +1 -1
  10. package/dist/core/entities/sync-state.d.ts +10 -4
  11. package/dist/core/entities/sync-state.d.ts.map +1 -1
  12. package/dist/core/entities/sync-state.js +26 -7
  13. package/dist/core/entities/sync-state.js.map +1 -1
  14. package/dist/core/entities/validation-diagnostic.d.ts +8 -0
  15. package/dist/core/entities/validation-diagnostic.d.ts.map +1 -0
  16. package/dist/core/entities/validation-diagnostic.js +3 -0
  17. package/dist/core/entities/validation-diagnostic.js.map +1 -0
  18. package/dist/core/entities/workflow-definition.d.ts +2 -0
  19. package/dist/core/entities/workflow-definition.d.ts.map +1 -1
  20. package/dist/core/entities/workflow-definition.js.map +1 -1
  21. package/dist/core/errors.d.ts +10 -0
  22. package/dist/core/errors.d.ts.map +1 -1
  23. package/dist/core/errors.js +9 -0
  24. package/dist/core/errors.js.map +1 -1
  25. package/dist/core/index.d.ts +2 -1
  26. package/dist/core/index.d.ts.map +1 -1
  27. package/dist/core/index.js +2 -1
  28. package/dist/core/index.js.map +1 -1
  29. package/dist/core/integrations.d.ts +3 -1
  30. package/dist/core/integrations.d.ts.map +1 -1
  31. package/dist/core/integrations.js +10 -2
  32. package/dist/core/integrations.js.map +1 -1
  33. package/dist/core/parse-definition.d.ts +4 -4
  34. package/dist/core/parse-definition.d.ts.map +1 -1
  35. package/dist/core/parse-definition.js +5 -5
  36. package/dist/core/parse-definition.js.map +1 -1
  37. package/dist/core/resolve-definition-at-ref.d.ts +66 -0
  38. package/dist/core/resolve-definition-at-ref.d.ts.map +1 -0
  39. package/dist/core/resolve-definition-at-ref.js +374 -0
  40. package/dist/core/resolve-definition-at-ref.js.map +1 -0
  41. package/dist/core/sync-definitions.d.ts +2 -2
  42. package/dist/core/sync-definitions.d.ts.map +1 -1
  43. package/dist/core/sync-definitions.js +5 -5
  44. package/dist/core/sync-definitions.js.map +1 -1
  45. package/dist/core/validate-definition.d.ts +3 -3
  46. package/dist/core/validate-definition.d.ts.map +1 -1
  47. package/dist/core/validate-definition.js +17 -12
  48. package/dist/core/validate-definition.js.map +1 -1
  49. package/dist/core/workflow-model/cron-trigger.d.ts +1 -1
  50. package/dist/core/workflow-model/cron-trigger.d.ts.map +1 -1
  51. package/dist/core/workflow-model/cron-trigger.js +9 -5
  52. package/dist/core/workflow-model/cron-trigger.js.map +1 -1
  53. package/dist/core/workflow-model/index.d.ts +1 -1
  54. package/dist/core/workflow-model/index.d.ts.map +1 -1
  55. package/dist/core/workflow-model/index.js.map +1 -1
  56. package/dist/core/workflow-model/invalid-workflow-model-error.d.ts +4 -2
  57. package/dist/core/workflow-model/invalid-workflow-model-error.d.ts.map +1 -1
  58. package/dist/core/workflow-model/invalid-workflow-model-error.js.map +1 -1
  59. package/dist/core/workflow-model/normalize-job-listening.d.ts.map +1 -1
  60. package/dist/core/workflow-model/normalize-job-listening.js +51 -30
  61. package/dist/core/workflow-model/normalize-job-listening.js.map +1 -1
  62. package/dist/core/workflow-model/normalize-triggers.d.ts +1 -1
  63. package/dist/core/workflow-model/normalize-triggers.d.ts.map +1 -1
  64. package/dist/core/workflow-model/normalize-triggers.js +48 -18
  65. package/dist/core/workflow-model/normalize-triggers.js.map +1 -1
  66. package/dist/core/workflow-model/normalize-workflow-document.d.ts +1 -1
  67. package/dist/core/workflow-model/normalize-workflow-document.d.ts.map +1 -1
  68. package/dist/core/workflow-model/normalize-workflow-document.js +3 -3
  69. package/dist/core/workflow-model/normalize-workflow-document.js.map +1 -1
  70. package/dist/core/workflow-model/parse-interpolation-field.d.ts.map +1 -1
  71. package/dist/core/workflow-model/parse-interpolation-field.js +1 -15
  72. package/dist/core/workflow-model/parse-interpolation-field.js.map +1 -1
  73. package/dist/core/workflow-model/validate-predicate-expression.d.ts +3 -1
  74. package/dist/core/workflow-model/validate-predicate-expression.d.ts.map +1 -1
  75. package/dist/core/workflow-model/validate-predicate-expression.js +3 -0
  76. package/dist/core/workflow-model/validate-predicate-expression.js.map +1 -1
  77. package/dist/core/workflow-model/validation-issue.d.ts +2 -1
  78. package/dist/core/workflow-model/validation-issue.d.ts.map +1 -1
  79. package/dist/core/workflow-model/validation-issue.js +12 -15
  80. package/dist/core/workflow-model/validation-issue.js.map +1 -1
  81. package/dist/db/db.d.ts +196 -4
  82. package/dist/db/db.d.ts.map +1 -1
  83. package/dist/db/db.js +3 -1
  84. package/dist/db/db.js.map +1 -1
  85. package/dist/db/definition-triggers.js +3 -1
  86. package/dist/db/definition-triggers.js.map +1 -1
  87. package/dist/db/definitions.d.ts +17 -0
  88. package/dist/db/definitions.d.ts.map +1 -1
  89. package/dist/db/definitions.js +190 -23
  90. package/dist/db/definitions.js.map +1 -1
  91. package/dist/db/index.d.ts +2 -1
  92. package/dist/db/index.d.ts.map +1 -1
  93. package/dist/db/index.js +2 -1
  94. package/dist/db/index.js.map +1 -1
  95. package/dist/db/schema/definitions.d.ts +17 -0
  96. package/dist/db/schema/definitions.d.ts.map +1 -1
  97. package/dist/db/schema/definitions.js +8 -0
  98. package/dist/db/schema/definitions.js.map +1 -1
  99. package/dist/db/schema/sync-states.d.ts +7 -3
  100. package/dist/db/schema/sync-states.d.ts.map +1 -1
  101. package/dist/db/schema/sync-states.js +5 -1
  102. package/dist/db/schema/sync-states.js.map +1 -1
  103. package/dist/db/schema/workflows.d.ts +78 -0
  104. package/dist/db/schema/workflows.d.ts.map +1 -0
  105. package/dist/db/schema/workflows.js +17 -0
  106. package/dist/db/schema/workflows.js.map +1 -0
  107. package/dist/db/sync-states.d.ts +2 -2
  108. package/dist/db/sync-states.d.ts.map +1 -1
  109. package/dist/db/sync-states.js +4 -4
  110. package/dist/db/sync-states.js.map +1 -1
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +5 -1
  113. package/dist/index.js.map +1 -1
  114. package/dist/metrics/index.d.ts +2 -0
  115. package/dist/metrics/index.d.ts.map +1 -0
  116. package/dist/metrics/index.js +3 -0
  117. package/dist/metrics/index.js.map +1 -0
  118. package/dist/metrics/instance.d.ts +4 -0
  119. package/dist/metrics/instance.d.ts.map +1 -0
  120. package/dist/metrics/instance.js +19 -0
  121. package/dist/metrics/instance.js.map +1 -0
  122. package/dist/presentation/dto/definition.d.ts.map +1 -1
  123. package/dist/presentation/dto/definition.js +11 -4
  124. package/dist/presentation/dto/definition.js.map +1 -1
  125. package/dist/presentation/inter-module.d.ts +9 -1
  126. package/dist/presentation/inter-module.d.ts.map +1 -1
  127. package/dist/presentation/inter-module.js +66 -2
  128. package/dist/presentation/inter-module.js.map +1 -1
  129. package/dist/presentation/routes/create-definition.d.ts.map +1 -1
  130. package/dist/presentation/routes/create-definition.js +16 -3
  131. package/dist/presentation/routes/create-definition.js.map +1 -1
  132. package/dist/presentation/routes/get-definition.d.ts.map +1 -1
  133. package/dist/presentation/routes/get-definition.js +18 -4
  134. package/dist/presentation/routes/get-definition.js.map +1 -1
  135. package/dist/presentation/routes/project-access.d.ts +1 -0
  136. package/dist/presentation/routes/project-access.d.ts.map +1 -1
  137. package/dist/presentation/routes/validate-definition.js +3 -3
  138. package/dist/presentation/routes/validate-definition.js.map +1 -1
  139. package/dist/temporal/activities/sync-activities.d.ts +3 -3
  140. package/dist/temporal/activities/sync-activities.d.ts.map +1 -1
  141. package/dist/temporal/activities/sync-activities.js +7 -4
  142. package/dist/temporal/activities/sync-activities.js.map +1 -1
  143. package/dist/temporal/workflows/definition-sync.js +1 -1
  144. package/dist/temporal/workflows/definition-sync.js.map +1 -1
  145. package/dist/temporal/workflows/index.bundle.js +50 -22
  146. package/dist/tsconfig.test.tsbuildinfo +1 -1
  147. package/drizzle/0003_nebulous_nemesis.sql +11 -0
  148. package/drizzle/0004_workflow_ref_lookup.sql +1 -0
  149. package/drizzle/meta/0003_snapshot.json +627 -0
  150. package/drizzle/meta/0004_snapshot.json +649 -0
  151. package/drizzle/meta/_journal.json +14 -0
  152. package/drizzle.config.ts +1 -0
  153. package/package.json +7 -7
  154. package/src/core/entities/index.ts +1 -1
  155. package/src/core/entities/integration-context.ts +4 -0
  156. package/src/core/entities/sync-state.test.ts +49 -0
  157. package/src/core/entities/sync-state.ts +35 -12
  158. package/src/core/entities/validation-diagnostic.ts +8 -0
  159. package/src/core/entities/workflow-definition.ts +2 -0
  160. package/src/core/errors.ts +26 -0
  161. package/src/core/index.ts +12 -0
  162. package/src/core/integrations.test.ts +38 -0
  163. package/src/core/integrations.ts +10 -1
  164. package/src/core/parse-definition-diagnostics.test.ts +47 -0
  165. package/src/core/parse-definition.test.ts +29 -5
  166. package/src/core/parse-definition.ts +7 -7
  167. package/src/core/resolve-definition-at-ref.test.ts +792 -0
  168. package/src/core/resolve-definition-at-ref.ts +551 -0
  169. package/src/core/sync-definitions.test.ts +61 -2
  170. package/src/core/sync-definitions.ts +7 -7
  171. package/src/core/validate-definition.test.ts +31 -22
  172. package/src/core/validate-definition.ts +21 -13
  173. package/src/core/workflow-model/cron-trigger.ts +6 -2
  174. package/src/core/workflow-model/index.ts +1 -0
  175. package/src/core/workflow-model/invalid-workflow-model-error.ts +5 -1
  176. package/src/core/workflow-model/normalize-job-listening.ts +55 -23
  177. package/src/core/workflow-model/normalize-triggers.ts +44 -15
  178. package/src/core/workflow-model/normalize-workflow-document.test.ts +494 -36
  179. package/src/core/workflow-model/normalize-workflow-document.ts +8 -4
  180. package/src/core/workflow-model/parse-interpolation-field.ts +1 -23
  181. package/src/core/workflow-model/validate-predicate-expression.ts +6 -0
  182. package/src/core/workflow-model/validation-issue.ts +8 -13
  183. package/src/db/db.ts +7 -1
  184. package/src/db/definition-triggers.test.ts +44 -0
  185. package/src/db/definition-triggers.ts +1 -1
  186. package/src/db/definitions.test.ts +300 -1
  187. package/src/db/definitions.ts +282 -28
  188. package/src/db/index.ts +2 -0
  189. package/src/db/schema/definitions.test.ts +1 -0
  190. package/src/db/schema/definitions.ts +11 -0
  191. package/src/db/schema/sync-states.ts +12 -3
  192. package/src/db/schema/workflows.ts +23 -0
  193. package/src/db/sync-states.test.ts +87 -18
  194. package/src/db/sync-states.ts +6 -6
  195. package/src/db/workflow-lineage-migration.test.ts +158 -0
  196. package/src/index.ts +3 -1
  197. package/src/metrics/index.ts +1 -0
  198. package/src/metrics/instance.test.ts +50 -0
  199. package/src/metrics/instance.ts +23 -0
  200. package/src/presentation/dto/definition.test.ts +89 -1
  201. package/src/presentation/dto/definition.ts +8 -5
  202. package/src/presentation/inter-module.test.ts +177 -0
  203. package/src/presentation/inter-module.ts +77 -4
  204. package/src/presentation/routes/create-definition.test.ts +38 -0
  205. package/src/presentation/routes/create-definition.ts +20 -3
  206. package/src/presentation/routes/get-definition.test.ts +125 -11
  207. package/src/presentation/routes/get-definition.ts +21 -4
  208. package/src/presentation/routes/list-definitions.test.ts +1 -1
  209. package/src/presentation/routes/validate-definition.test.ts +1 -1
  210. package/src/presentation/routes/validate-definition.ts +3 -3
  211. package/src/presentation/subscribers/on-integration-connection-available.test.ts +3 -0
  212. package/src/temporal/activities/sync-activities.test.ts +46 -2
  213. package/src/temporal/activities/sync-activities.ts +9 -7
  214. package/src/temporal/workflows/definition-sync.ts +1 -1
  215. package/test/factories/definition.ts +1 -0
  216. package/test/globalSetup.ts +2 -0
  217. package/tsconfig.build.tsbuildinfo +1 -1
  218. package/dist/core/entities/validation-warning.d.ts +0 -6
  219. package/dist/core/entities/validation-warning.d.ts.map +0 -1
  220. package/dist/core/entities/validation-warning.js +0 -3
  221. package/dist/core/entities/validation-warning.js.map +0 -1
  222. package/src/core/entities/validation-warning.ts +0 -5
  223. package/src/core/parse-definition-warnings.test.ts +0 -33
@@ -0,0 +1,11 @@
1
+ CREATE TABLE "definitions_workflows" (
2
+ "id" uuid PRIMARY KEY DEFAULT uuidv7() NOT NULL,
3
+ "project_id" uuid NOT NULL,
4
+ "config_path" text,
5
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL
6
+ );
7
+ --> statement-breakpoint
8
+ ALTER TABLE "definitions_workflow_definitions" ADD COLUMN "workflow_id" uuid;--> statement-breakpoint
9
+ CREATE UNIQUE INDEX "definitions_workflows_project_path_unique" ON "definitions_workflows" USING btree ("project_id","config_path");--> statement-breakpoint
10
+ CREATE UNIQUE INDEX "definitions_workflows_project_pathless_unique" ON "definitions_workflows" USING btree ("project_id") WHERE "config_path" IS NULL;--> statement-breakpoint
11
+ ALTER TABLE "definitions_workflow_definitions" ADD CONSTRAINT "definitions_workflow_definitions_workflow_id_definitions_workflows_id_fk" FOREIGN KEY ("workflow_id") REFERENCES "public"."definitions_workflows"("id") ON DELETE no action ON UPDATE no action NOT VALID;
@@ -0,0 +1 @@
1
+ CREATE INDEX "definitions_wd_workflow_ref_lookup" ON "definitions_workflow_definitions" USING btree ("workflow_id","ref") WHERE "ref" IS NOT NULL AND "deleted_at" IS NULL;
@@ -0,0 +1,627 @@
1
+ {
2
+ "id": "9974f226-c41e-4b44-8f63-7ac1599159e2",
3
+ "prevId": "e5dff42f-09f1-4a29-973f-b0d63a150673",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.definitions_workflow_definitions": {
8
+ "name": "definitions_workflow_definitions",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "uuidv7()"
17
+ },
18
+ "workflow_id": {
19
+ "name": "workflow_id",
20
+ "type": "uuid",
21
+ "primaryKey": false,
22
+ "notNull": false
23
+ },
24
+ "project_id": {
25
+ "name": "project_id",
26
+ "type": "uuid",
27
+ "primaryKey": false,
28
+ "notNull": true
29
+ },
30
+ "config_path": {
31
+ "name": "config_path",
32
+ "type": "text",
33
+ "primaryKey": false,
34
+ "notNull": false
35
+ },
36
+ "source": {
37
+ "name": "source",
38
+ "type": "definitions_source",
39
+ "typeSchema": "public",
40
+ "primaryKey": false,
41
+ "notNull": true,
42
+ "default": "'manual'"
43
+ },
44
+ "sha": {
45
+ "name": "sha",
46
+ "type": "text",
47
+ "primaryKey": false,
48
+ "notNull": false
49
+ },
50
+ "ref": {
51
+ "name": "ref",
52
+ "type": "text",
53
+ "primaryKey": false,
54
+ "notNull": false
55
+ },
56
+ "name": {
57
+ "name": "name",
58
+ "type": "text",
59
+ "primaryKey": false,
60
+ "notNull": true
61
+ },
62
+ "definition": {
63
+ "name": "definition",
64
+ "type": "jsonb",
65
+ "primaryKey": false,
66
+ "notNull": true
67
+ },
68
+ "content_hash": {
69
+ "name": "content_hash",
70
+ "type": "text",
71
+ "primaryKey": false,
72
+ "notNull": false
73
+ },
74
+ "fetched_at": {
75
+ "name": "fetched_at",
76
+ "type": "timestamp with time zone",
77
+ "primaryKey": false,
78
+ "notNull": true,
79
+ "default": "now()"
80
+ },
81
+ "created_at": {
82
+ "name": "created_at",
83
+ "type": "timestamp with time zone",
84
+ "primaryKey": false,
85
+ "notNull": true,
86
+ "default": "now()"
87
+ },
88
+ "updated_at": {
89
+ "name": "updated_at",
90
+ "type": "timestamp with time zone",
91
+ "primaryKey": false,
92
+ "notNull": true,
93
+ "default": "now()"
94
+ },
95
+ "deleted_at": {
96
+ "name": "deleted_at",
97
+ "type": "timestamp with time zone",
98
+ "primaryKey": false,
99
+ "notNull": false
100
+ }
101
+ },
102
+ "indexes": {
103
+ "definitions_wd_manual_unique": {
104
+ "name": "definitions_wd_manual_unique",
105
+ "columns": [
106
+ {
107
+ "expression": "project_id",
108
+ "isExpression": false,
109
+ "asc": true,
110
+ "nulls": "last"
111
+ },
112
+ {
113
+ "expression": "config_path",
114
+ "isExpression": false,
115
+ "asc": true,
116
+ "nulls": "last"
117
+ }
118
+ ],
119
+ "isUnique": true,
120
+ "where": "\"config_path\" IS NOT NULL AND \"ref\" IS NULL AND \"sha\" IS NULL",
121
+ "concurrently": false,
122
+ "method": "btree",
123
+ "with": {}
124
+ },
125
+ "definitions_wd_sha_lookup": {
126
+ "name": "definitions_wd_sha_lookup",
127
+ "columns": [
128
+ {
129
+ "expression": "project_id",
130
+ "isExpression": false,
131
+ "asc": true,
132
+ "nulls": "last"
133
+ },
134
+ {
135
+ "expression": "sha",
136
+ "isExpression": false,
137
+ "asc": true,
138
+ "nulls": "last"
139
+ },
140
+ {
141
+ "expression": "config_path",
142
+ "isExpression": false,
143
+ "asc": true,
144
+ "nulls": "last"
145
+ }
146
+ ],
147
+ "isUnique": true,
148
+ "where": "\"sha\" IS NOT NULL",
149
+ "concurrently": false,
150
+ "method": "btree",
151
+ "with": {}
152
+ },
153
+ "definitions_wd_ref_lookup": {
154
+ "name": "definitions_wd_ref_lookup",
155
+ "columns": [
156
+ {
157
+ "expression": "project_id",
158
+ "isExpression": false,
159
+ "asc": true,
160
+ "nulls": "last"
161
+ },
162
+ {
163
+ "expression": "ref",
164
+ "isExpression": false,
165
+ "asc": true,
166
+ "nulls": "last"
167
+ },
168
+ {
169
+ "expression": "config_path",
170
+ "isExpression": false,
171
+ "asc": true,
172
+ "nulls": "last"
173
+ }
174
+ ],
175
+ "isUnique": true,
176
+ "where": "\"ref\" IS NOT NULL",
177
+ "concurrently": false,
178
+ "method": "btree",
179
+ "with": {}
180
+ },
181
+ "definitions_wd_project_name_id_idx": {
182
+ "name": "definitions_wd_project_name_id_idx",
183
+ "columns": [
184
+ {
185
+ "expression": "project_id",
186
+ "isExpression": false,
187
+ "asc": true,
188
+ "nulls": "last"
189
+ },
190
+ {
191
+ "expression": "name",
192
+ "isExpression": false,
193
+ "asc": true,
194
+ "nulls": "last"
195
+ },
196
+ {
197
+ "expression": "id",
198
+ "isExpression": false,
199
+ "asc": true,
200
+ "nulls": "last"
201
+ }
202
+ ],
203
+ "isUnique": false,
204
+ "where": "\"deleted_at\" IS NULL",
205
+ "concurrently": false,
206
+ "method": "btree",
207
+ "with": {}
208
+ }
209
+ },
210
+ "foreignKeys": {
211
+ "definitions_workflow_definitions_workflow_id_definitions_workflows_id_fk": {
212
+ "name": "definitions_workflow_definitions_workflow_id_definitions_workflows_id_fk",
213
+ "tableFrom": "definitions_workflow_definitions",
214
+ "tableTo": "definitions_workflows",
215
+ "columnsFrom": ["workflow_id"],
216
+ "columnsTo": ["id"],
217
+ "onDelete": "no action",
218
+ "onUpdate": "no action"
219
+ }
220
+ },
221
+ "compositePrimaryKeys": {},
222
+ "uniqueConstraints": {},
223
+ "policies": {},
224
+ "checkConstraints": {
225
+ "definitions_wd_source_ref_sha_consistent": {
226
+ "name": "definitions_wd_source_ref_sha_consistent",
227
+ "value": "(\"source\" = 'vcs') = (\"ref\" IS NOT NULL OR \"sha\" IS NOT NULL)"
228
+ }
229
+ },
230
+ "isRLSEnabled": false
231
+ },
232
+ "public.definitions_outbox": {
233
+ "name": "definitions_outbox",
234
+ "schema": "",
235
+ "columns": {
236
+ "id": {
237
+ "name": "id",
238
+ "type": "uuid",
239
+ "primaryKey": true,
240
+ "notNull": true,
241
+ "default": "uuidv7()"
242
+ },
243
+ "event_type": {
244
+ "name": "event_type",
245
+ "type": "text",
246
+ "primaryKey": false,
247
+ "notNull": true
248
+ },
249
+ "ordering_key": {
250
+ "name": "ordering_key",
251
+ "type": "text",
252
+ "primaryKey": false,
253
+ "notNull": false
254
+ },
255
+ "payload": {
256
+ "name": "payload",
257
+ "type": "jsonb",
258
+ "primaryKey": false,
259
+ "notNull": true
260
+ },
261
+ "created_at": {
262
+ "name": "created_at",
263
+ "type": "timestamp with time zone",
264
+ "primaryKey": false,
265
+ "notNull": true,
266
+ "default": "now()"
267
+ },
268
+ "dispatched_at": {
269
+ "name": "dispatched_at",
270
+ "type": "timestamp with time zone",
271
+ "primaryKey": false,
272
+ "notNull": false
273
+ },
274
+ "dispatch_attempts": {
275
+ "name": "dispatch_attempts",
276
+ "type": "integer",
277
+ "primaryKey": false,
278
+ "notNull": true,
279
+ "default": 0
280
+ },
281
+ "next_dispatch_at": {
282
+ "name": "next_dispatch_at",
283
+ "type": "timestamp with time zone",
284
+ "primaryKey": false,
285
+ "notNull": true,
286
+ "default": "now()"
287
+ },
288
+ "last_dispatch_error": {
289
+ "name": "last_dispatch_error",
290
+ "type": "jsonb",
291
+ "primaryKey": false,
292
+ "notNull": false
293
+ },
294
+ "last_dispatch_failed_at": {
295
+ "name": "last_dispatch_failed_at",
296
+ "type": "timestamp with time zone",
297
+ "primaryKey": false,
298
+ "notNull": false
299
+ },
300
+ "dead_lettered_at": {
301
+ "name": "dead_lettered_at",
302
+ "type": "timestamp with time zone",
303
+ "primaryKey": false,
304
+ "notNull": false
305
+ }
306
+ },
307
+ "indexes": {
308
+ "definitions_outbox_pending_idx": {
309
+ "name": "definitions_outbox_pending_idx",
310
+ "columns": [
311
+ {
312
+ "expression": "next_dispatch_at",
313
+ "isExpression": false,
314
+ "asc": true,
315
+ "nulls": "last"
316
+ },
317
+ {
318
+ "expression": "created_at",
319
+ "isExpression": false,
320
+ "asc": true,
321
+ "nulls": "last"
322
+ }
323
+ ],
324
+ "isUnique": false,
325
+ "where": "\"dispatched_at\" IS NULL AND \"dead_lettered_at\" IS NULL",
326
+ "concurrently": false,
327
+ "method": "btree",
328
+ "with": {}
329
+ },
330
+ "definitions_outbox_dispatched_retention_idx": {
331
+ "name": "definitions_outbox_dispatched_retention_idx",
332
+ "columns": [
333
+ {
334
+ "expression": "dispatched_at",
335
+ "isExpression": false,
336
+ "asc": true,
337
+ "nulls": "last"
338
+ },
339
+ {
340
+ "expression": "id",
341
+ "isExpression": false,
342
+ "asc": true,
343
+ "nulls": "last"
344
+ }
345
+ ],
346
+ "isUnique": false,
347
+ "where": "\"dispatched_at\" IS NOT NULL",
348
+ "concurrently": false,
349
+ "method": "btree",
350
+ "with": {}
351
+ }
352
+ },
353
+ "foreignKeys": {},
354
+ "compositePrimaryKeys": {},
355
+ "uniqueConstraints": {},
356
+ "policies": {},
357
+ "checkConstraints": {},
358
+ "isRLSEnabled": false
359
+ },
360
+ "public.definitions_sync_states": {
361
+ "name": "definitions_sync_states",
362
+ "schema": "",
363
+ "columns": {
364
+ "id": {
365
+ "name": "id",
366
+ "type": "uuid",
367
+ "primaryKey": true,
368
+ "notNull": true,
369
+ "default": "uuidv7()"
370
+ },
371
+ "project_id": {
372
+ "name": "project_id",
373
+ "type": "uuid",
374
+ "primaryKey": false,
375
+ "notNull": true
376
+ },
377
+ "source_connection_id": {
378
+ "name": "source_connection_id",
379
+ "type": "uuid",
380
+ "primaryKey": false,
381
+ "notNull": true
382
+ },
383
+ "source_external_repository_id": {
384
+ "name": "source_external_repository_id",
385
+ "type": "text",
386
+ "primaryKey": false,
387
+ "notNull": true
388
+ },
389
+ "ref": {
390
+ "name": "ref",
391
+ "type": "text",
392
+ "primaryKey": false,
393
+ "notNull": true
394
+ },
395
+ "status": {
396
+ "name": "status",
397
+ "type": "definitions_sync_status",
398
+ "typeSchema": "public",
399
+ "primaryKey": false,
400
+ "notNull": true,
401
+ "default": "'pending'"
402
+ },
403
+ "last_error_code": {
404
+ "name": "last_error_code",
405
+ "type": "definitions_sync_error_code",
406
+ "typeSchema": "public",
407
+ "primaryKey": false,
408
+ "notNull": false
409
+ },
410
+ "last_error_message": {
411
+ "name": "last_error_message",
412
+ "type": "text",
413
+ "primaryKey": false,
414
+ "notNull": false
415
+ },
416
+ "warnings": {
417
+ "name": "warnings",
418
+ "type": "jsonb",
419
+ "primaryKey": false,
420
+ "notNull": true,
421
+ "default": "'[]'::jsonb"
422
+ },
423
+ "started_at": {
424
+ "name": "started_at",
425
+ "type": "timestamp with time zone",
426
+ "primaryKey": false,
427
+ "notNull": false
428
+ },
429
+ "finished_at": {
430
+ "name": "finished_at",
431
+ "type": "timestamp with time zone",
432
+ "primaryKey": false,
433
+ "notNull": false
434
+ },
435
+ "created_at": {
436
+ "name": "created_at",
437
+ "type": "timestamp with time zone",
438
+ "primaryKey": false,
439
+ "notNull": true,
440
+ "default": "now()"
441
+ },
442
+ "updated_at": {
443
+ "name": "updated_at",
444
+ "type": "timestamp with time zone",
445
+ "primaryKey": false,
446
+ "notNull": true,
447
+ "default": "now()"
448
+ }
449
+ },
450
+ "indexes": {
451
+ "definitions_sync_states_source_unique": {
452
+ "name": "definitions_sync_states_source_unique",
453
+ "columns": [
454
+ {
455
+ "expression": "project_id",
456
+ "isExpression": false,
457
+ "asc": true,
458
+ "nulls": "last"
459
+ },
460
+ {
461
+ "expression": "source_connection_id",
462
+ "isExpression": false,
463
+ "asc": true,
464
+ "nulls": "last"
465
+ },
466
+ {
467
+ "expression": "source_external_repository_id",
468
+ "isExpression": false,
469
+ "asc": true,
470
+ "nulls": "last"
471
+ },
472
+ {
473
+ "expression": "ref",
474
+ "isExpression": false,
475
+ "asc": true,
476
+ "nulls": "last"
477
+ }
478
+ ],
479
+ "isUnique": true,
480
+ "concurrently": false,
481
+ "method": "btree",
482
+ "with": {}
483
+ },
484
+ "definitions_sync_states_failed_idx": {
485
+ "name": "definitions_sync_states_failed_idx",
486
+ "columns": [
487
+ {
488
+ "expression": "updated_at",
489
+ "isExpression": false,
490
+ "asc": true,
491
+ "nulls": "last"
492
+ }
493
+ ],
494
+ "isUnique": false,
495
+ "where": "\"status\" = 'failed'",
496
+ "concurrently": false,
497
+ "method": "btree",
498
+ "with": {}
499
+ }
500
+ },
501
+ "foreignKeys": {},
502
+ "compositePrimaryKeys": {},
503
+ "uniqueConstraints": {},
504
+ "policies": {},
505
+ "checkConstraints": {},
506
+ "isRLSEnabled": false
507
+ },
508
+ "public.definitions_workflows": {
509
+ "name": "definitions_workflows",
510
+ "schema": "",
511
+ "columns": {
512
+ "id": {
513
+ "name": "id",
514
+ "type": "uuid",
515
+ "primaryKey": true,
516
+ "notNull": true,
517
+ "default": "uuidv7()"
518
+ },
519
+ "project_id": {
520
+ "name": "project_id",
521
+ "type": "uuid",
522
+ "primaryKey": false,
523
+ "notNull": true
524
+ },
525
+ "config_path": {
526
+ "name": "config_path",
527
+ "type": "text",
528
+ "primaryKey": false,
529
+ "notNull": false
530
+ },
531
+ "created_at": {
532
+ "name": "created_at",
533
+ "type": "timestamp with time zone",
534
+ "primaryKey": false,
535
+ "notNull": true,
536
+ "default": "now()"
537
+ }
538
+ },
539
+ "indexes": {
540
+ "definitions_workflows_project_path_unique": {
541
+ "name": "definitions_workflows_project_path_unique",
542
+ "columns": [
543
+ {
544
+ "expression": "project_id",
545
+ "isExpression": false,
546
+ "asc": true,
547
+ "nulls": "last"
548
+ },
549
+ {
550
+ "expression": "config_path",
551
+ "isExpression": false,
552
+ "asc": true,
553
+ "nulls": "last"
554
+ }
555
+ ],
556
+ "isUnique": true,
557
+ "concurrently": false,
558
+ "method": "btree",
559
+ "with": {}
560
+ },
561
+ "definitions_workflows_project_pathless_unique": {
562
+ "name": "definitions_workflows_project_pathless_unique",
563
+ "columns": [
564
+ {
565
+ "expression": "project_id",
566
+ "isExpression": false,
567
+ "asc": true,
568
+ "nulls": "last"
569
+ }
570
+ ],
571
+ "isUnique": true,
572
+ "where": "\"config_path\" IS NULL",
573
+ "concurrently": false,
574
+ "method": "btree",
575
+ "with": {}
576
+ }
577
+ },
578
+ "foreignKeys": {},
579
+ "compositePrimaryKeys": {},
580
+ "uniqueConstraints": {},
581
+ "policies": {},
582
+ "checkConstraints": {},
583
+ "isRLSEnabled": false
584
+ }
585
+ },
586
+ "enums": {
587
+ "public.definitions_source": {
588
+ "name": "definitions_source",
589
+ "schema": "public",
590
+ "values": ["manual", "vcs"]
591
+ },
592
+ "public.definitions_sync_error_code": {
593
+ "name": "definitions_sync_error_code",
594
+ "schema": "public",
595
+ "values": [
596
+ "no-workflow-files",
597
+ "invalid-definition",
598
+ "provider-repository-not-found",
599
+ "provider-file-not-found",
600
+ "provider-access-denied",
601
+ "provider-rate-limited",
602
+ "provider-timeout",
603
+ "provider-unavailable",
604
+ "provider-malformed-response",
605
+ "content-too-large",
606
+ "too-many-files",
607
+ "connection-unavailable",
608
+ "unknown"
609
+ ]
610
+ },
611
+ "public.definitions_sync_status": {
612
+ "name": "definitions_sync_status",
613
+ "schema": "public",
614
+ "values": ["pending", "syncing", "succeeded", "failed"]
615
+ }
616
+ },
617
+ "schemas": {},
618
+ "sequences": {},
619
+ "roles": {},
620
+ "policies": {},
621
+ "views": {},
622
+ "_meta": {
623
+ "columns": {},
624
+ "schemas": {},
625
+ "tables": {}
626
+ }
627
+ }