@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,649 @@
1
+ {
2
+ "id": "66fa37d8-60f4-48c3-85fe-2c7a2866ff6c",
3
+ "prevId": "9974f226-c41e-4b44-8f63-7ac1599159e2",
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
+ "definitions_wd_workflow_ref_lookup": {
210
+ "name": "definitions_wd_workflow_ref_lookup",
211
+ "columns": [
212
+ {
213
+ "expression": "workflow_id",
214
+ "isExpression": false,
215
+ "asc": true,
216
+ "nulls": "last"
217
+ },
218
+ {
219
+ "expression": "ref",
220
+ "isExpression": false,
221
+ "asc": true,
222
+ "nulls": "last"
223
+ }
224
+ ],
225
+ "isUnique": false,
226
+ "where": "\"ref\" IS NOT NULL AND \"deleted_at\" IS NULL",
227
+ "concurrently": false,
228
+ "method": "btree",
229
+ "with": {}
230
+ }
231
+ },
232
+ "foreignKeys": {
233
+ "definitions_workflow_definitions_workflow_id_definitions_workflows_id_fk": {
234
+ "name": "definitions_workflow_definitions_workflow_id_definitions_workflows_id_fk",
235
+ "tableFrom": "definitions_workflow_definitions",
236
+ "tableTo": "definitions_workflows",
237
+ "columnsFrom": ["workflow_id"],
238
+ "columnsTo": ["id"],
239
+ "onDelete": "no action",
240
+ "onUpdate": "no action"
241
+ }
242
+ },
243
+ "compositePrimaryKeys": {},
244
+ "uniqueConstraints": {},
245
+ "policies": {},
246
+ "checkConstraints": {
247
+ "definitions_wd_source_ref_sha_consistent": {
248
+ "name": "definitions_wd_source_ref_sha_consistent",
249
+ "value": "(\"source\" = 'vcs') = (\"ref\" IS NOT NULL OR \"sha\" IS NOT NULL)"
250
+ }
251
+ },
252
+ "isRLSEnabled": false
253
+ },
254
+ "public.definitions_outbox": {
255
+ "name": "definitions_outbox",
256
+ "schema": "",
257
+ "columns": {
258
+ "id": {
259
+ "name": "id",
260
+ "type": "uuid",
261
+ "primaryKey": true,
262
+ "notNull": true,
263
+ "default": "uuidv7()"
264
+ },
265
+ "event_type": {
266
+ "name": "event_type",
267
+ "type": "text",
268
+ "primaryKey": false,
269
+ "notNull": true
270
+ },
271
+ "ordering_key": {
272
+ "name": "ordering_key",
273
+ "type": "text",
274
+ "primaryKey": false,
275
+ "notNull": false
276
+ },
277
+ "payload": {
278
+ "name": "payload",
279
+ "type": "jsonb",
280
+ "primaryKey": false,
281
+ "notNull": true
282
+ },
283
+ "created_at": {
284
+ "name": "created_at",
285
+ "type": "timestamp with time zone",
286
+ "primaryKey": false,
287
+ "notNull": true,
288
+ "default": "now()"
289
+ },
290
+ "dispatched_at": {
291
+ "name": "dispatched_at",
292
+ "type": "timestamp with time zone",
293
+ "primaryKey": false,
294
+ "notNull": false
295
+ },
296
+ "dispatch_attempts": {
297
+ "name": "dispatch_attempts",
298
+ "type": "integer",
299
+ "primaryKey": false,
300
+ "notNull": true,
301
+ "default": 0
302
+ },
303
+ "next_dispatch_at": {
304
+ "name": "next_dispatch_at",
305
+ "type": "timestamp with time zone",
306
+ "primaryKey": false,
307
+ "notNull": true,
308
+ "default": "now()"
309
+ },
310
+ "last_dispatch_error": {
311
+ "name": "last_dispatch_error",
312
+ "type": "jsonb",
313
+ "primaryKey": false,
314
+ "notNull": false
315
+ },
316
+ "last_dispatch_failed_at": {
317
+ "name": "last_dispatch_failed_at",
318
+ "type": "timestamp with time zone",
319
+ "primaryKey": false,
320
+ "notNull": false
321
+ },
322
+ "dead_lettered_at": {
323
+ "name": "dead_lettered_at",
324
+ "type": "timestamp with time zone",
325
+ "primaryKey": false,
326
+ "notNull": false
327
+ }
328
+ },
329
+ "indexes": {
330
+ "definitions_outbox_pending_idx": {
331
+ "name": "definitions_outbox_pending_idx",
332
+ "columns": [
333
+ {
334
+ "expression": "next_dispatch_at",
335
+ "isExpression": false,
336
+ "asc": true,
337
+ "nulls": "last"
338
+ },
339
+ {
340
+ "expression": "created_at",
341
+ "isExpression": false,
342
+ "asc": true,
343
+ "nulls": "last"
344
+ }
345
+ ],
346
+ "isUnique": false,
347
+ "where": "\"dispatched_at\" IS NULL AND \"dead_lettered_at\" IS NULL",
348
+ "concurrently": false,
349
+ "method": "btree",
350
+ "with": {}
351
+ },
352
+ "definitions_outbox_dispatched_retention_idx": {
353
+ "name": "definitions_outbox_dispatched_retention_idx",
354
+ "columns": [
355
+ {
356
+ "expression": "dispatched_at",
357
+ "isExpression": false,
358
+ "asc": true,
359
+ "nulls": "last"
360
+ },
361
+ {
362
+ "expression": "id",
363
+ "isExpression": false,
364
+ "asc": true,
365
+ "nulls": "last"
366
+ }
367
+ ],
368
+ "isUnique": false,
369
+ "where": "\"dispatched_at\" IS NOT NULL",
370
+ "concurrently": false,
371
+ "method": "btree",
372
+ "with": {}
373
+ }
374
+ },
375
+ "foreignKeys": {},
376
+ "compositePrimaryKeys": {},
377
+ "uniqueConstraints": {},
378
+ "policies": {},
379
+ "checkConstraints": {},
380
+ "isRLSEnabled": false
381
+ },
382
+ "public.definitions_sync_states": {
383
+ "name": "definitions_sync_states",
384
+ "schema": "",
385
+ "columns": {
386
+ "id": {
387
+ "name": "id",
388
+ "type": "uuid",
389
+ "primaryKey": true,
390
+ "notNull": true,
391
+ "default": "uuidv7()"
392
+ },
393
+ "project_id": {
394
+ "name": "project_id",
395
+ "type": "uuid",
396
+ "primaryKey": false,
397
+ "notNull": true
398
+ },
399
+ "source_connection_id": {
400
+ "name": "source_connection_id",
401
+ "type": "uuid",
402
+ "primaryKey": false,
403
+ "notNull": true
404
+ },
405
+ "source_external_repository_id": {
406
+ "name": "source_external_repository_id",
407
+ "type": "text",
408
+ "primaryKey": false,
409
+ "notNull": true
410
+ },
411
+ "ref": {
412
+ "name": "ref",
413
+ "type": "text",
414
+ "primaryKey": false,
415
+ "notNull": true
416
+ },
417
+ "status": {
418
+ "name": "status",
419
+ "type": "definitions_sync_status",
420
+ "typeSchema": "public",
421
+ "primaryKey": false,
422
+ "notNull": true,
423
+ "default": "'pending'"
424
+ },
425
+ "last_error_code": {
426
+ "name": "last_error_code",
427
+ "type": "definitions_sync_error_code",
428
+ "typeSchema": "public",
429
+ "primaryKey": false,
430
+ "notNull": false
431
+ },
432
+ "last_error_message": {
433
+ "name": "last_error_message",
434
+ "type": "text",
435
+ "primaryKey": false,
436
+ "notNull": false
437
+ },
438
+ "warnings": {
439
+ "name": "warnings",
440
+ "type": "jsonb",
441
+ "primaryKey": false,
442
+ "notNull": true,
443
+ "default": "'[]'::jsonb"
444
+ },
445
+ "started_at": {
446
+ "name": "started_at",
447
+ "type": "timestamp with time zone",
448
+ "primaryKey": false,
449
+ "notNull": false
450
+ },
451
+ "finished_at": {
452
+ "name": "finished_at",
453
+ "type": "timestamp with time zone",
454
+ "primaryKey": false,
455
+ "notNull": false
456
+ },
457
+ "created_at": {
458
+ "name": "created_at",
459
+ "type": "timestamp with time zone",
460
+ "primaryKey": false,
461
+ "notNull": true,
462
+ "default": "now()"
463
+ },
464
+ "updated_at": {
465
+ "name": "updated_at",
466
+ "type": "timestamp with time zone",
467
+ "primaryKey": false,
468
+ "notNull": true,
469
+ "default": "now()"
470
+ }
471
+ },
472
+ "indexes": {
473
+ "definitions_sync_states_source_unique": {
474
+ "name": "definitions_sync_states_source_unique",
475
+ "columns": [
476
+ {
477
+ "expression": "project_id",
478
+ "isExpression": false,
479
+ "asc": true,
480
+ "nulls": "last"
481
+ },
482
+ {
483
+ "expression": "source_connection_id",
484
+ "isExpression": false,
485
+ "asc": true,
486
+ "nulls": "last"
487
+ },
488
+ {
489
+ "expression": "source_external_repository_id",
490
+ "isExpression": false,
491
+ "asc": true,
492
+ "nulls": "last"
493
+ },
494
+ {
495
+ "expression": "ref",
496
+ "isExpression": false,
497
+ "asc": true,
498
+ "nulls": "last"
499
+ }
500
+ ],
501
+ "isUnique": true,
502
+ "concurrently": false,
503
+ "method": "btree",
504
+ "with": {}
505
+ },
506
+ "definitions_sync_states_failed_idx": {
507
+ "name": "definitions_sync_states_failed_idx",
508
+ "columns": [
509
+ {
510
+ "expression": "updated_at",
511
+ "isExpression": false,
512
+ "asc": true,
513
+ "nulls": "last"
514
+ }
515
+ ],
516
+ "isUnique": false,
517
+ "where": "\"status\" = 'failed'",
518
+ "concurrently": false,
519
+ "method": "btree",
520
+ "with": {}
521
+ }
522
+ },
523
+ "foreignKeys": {},
524
+ "compositePrimaryKeys": {},
525
+ "uniqueConstraints": {},
526
+ "policies": {},
527
+ "checkConstraints": {},
528
+ "isRLSEnabled": false
529
+ },
530
+ "public.definitions_workflows": {
531
+ "name": "definitions_workflows",
532
+ "schema": "",
533
+ "columns": {
534
+ "id": {
535
+ "name": "id",
536
+ "type": "uuid",
537
+ "primaryKey": true,
538
+ "notNull": true,
539
+ "default": "uuidv7()"
540
+ },
541
+ "project_id": {
542
+ "name": "project_id",
543
+ "type": "uuid",
544
+ "primaryKey": false,
545
+ "notNull": true
546
+ },
547
+ "config_path": {
548
+ "name": "config_path",
549
+ "type": "text",
550
+ "primaryKey": false,
551
+ "notNull": false
552
+ },
553
+ "created_at": {
554
+ "name": "created_at",
555
+ "type": "timestamp with time zone",
556
+ "primaryKey": false,
557
+ "notNull": true,
558
+ "default": "now()"
559
+ }
560
+ },
561
+ "indexes": {
562
+ "definitions_workflows_project_path_unique": {
563
+ "name": "definitions_workflows_project_path_unique",
564
+ "columns": [
565
+ {
566
+ "expression": "project_id",
567
+ "isExpression": false,
568
+ "asc": true,
569
+ "nulls": "last"
570
+ },
571
+ {
572
+ "expression": "config_path",
573
+ "isExpression": false,
574
+ "asc": true,
575
+ "nulls": "last"
576
+ }
577
+ ],
578
+ "isUnique": true,
579
+ "concurrently": false,
580
+ "method": "btree",
581
+ "with": {}
582
+ },
583
+ "definitions_workflows_project_pathless_unique": {
584
+ "name": "definitions_workflows_project_pathless_unique",
585
+ "columns": [
586
+ {
587
+ "expression": "project_id",
588
+ "isExpression": false,
589
+ "asc": true,
590
+ "nulls": "last"
591
+ }
592
+ ],
593
+ "isUnique": true,
594
+ "where": "\"config_path\" IS NULL",
595
+ "concurrently": false,
596
+ "method": "btree",
597
+ "with": {}
598
+ }
599
+ },
600
+ "foreignKeys": {},
601
+ "compositePrimaryKeys": {},
602
+ "uniqueConstraints": {},
603
+ "policies": {},
604
+ "checkConstraints": {},
605
+ "isRLSEnabled": false
606
+ }
607
+ },
608
+ "enums": {
609
+ "public.definitions_source": {
610
+ "name": "definitions_source",
611
+ "schema": "public",
612
+ "values": ["manual", "vcs"]
613
+ },
614
+ "public.definitions_sync_error_code": {
615
+ "name": "definitions_sync_error_code",
616
+ "schema": "public",
617
+ "values": [
618
+ "no-workflow-files",
619
+ "invalid-definition",
620
+ "provider-repository-not-found",
621
+ "provider-file-not-found",
622
+ "provider-access-denied",
623
+ "provider-rate-limited",
624
+ "provider-timeout",
625
+ "provider-unavailable",
626
+ "provider-malformed-response",
627
+ "content-too-large",
628
+ "too-many-files",
629
+ "connection-unavailable",
630
+ "unknown"
631
+ ]
632
+ },
633
+ "public.definitions_sync_status": {
634
+ "name": "definitions_sync_status",
635
+ "schema": "public",
636
+ "values": ["pending", "syncing", "succeeded", "failed"]
637
+ }
638
+ },
639
+ "schemas": {},
640
+ "sequences": {},
641
+ "roles": {},
642
+ "policies": {},
643
+ "views": {},
644
+ "_meta": {
645
+ "columns": {},
646
+ "schemas": {},
647
+ "tables": {}
648
+ }
649
+ }
@@ -22,6 +22,20 @@
22
22
  "when": 1785415305913,
23
23
  "tag": "0002_lumpy_ben_parker",
24
24
  "breakpoints": true
25
+ },
26
+ {
27
+ "idx": 3,
28
+ "version": "7",
29
+ "when": 1787477677036,
30
+ "tag": "0003_nebulous_nemesis",
31
+ "breakpoints": true
32
+ },
33
+ {
34
+ "idx": 4,
35
+ "version": "7",
36
+ "when": 1787498972347,
37
+ "tag": "0004_workflow_ref_lookup",
38
+ "breakpoints": true
25
39
  }
26
40
  ]
27
41
  }
package/drizzle.config.ts CHANGED
@@ -5,6 +5,7 @@ export default defineConfig({
5
5
  './src/db/schema/definitions.ts',
6
6
  './src/db/schema/outbox.ts',
7
7
  './src/db/schema/sync-states.ts',
8
+ './src/db/schema/workflows.ts',
8
9
  ],
9
10
  out: './drizzle',
10
11
  dialect: 'postgresql',