weave-typescript 0.11.15 → 0.11.17

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 (69) hide show
  1. package/dist/weaveapi/data/v1/data.pb.d.ts +1 -1
  2. package/dist/weaveapi/data/v1/data.pb.js +11 -11
  3. package/dist/weaveapi/data/v1/service.pb.d.ts +89 -6
  4. package/dist/weaveapi/data/v1/service.pb.js +1195 -364
  5. package/dist/weaveapi/input/v1/input.pb.d.ts +1 -1
  6. package/dist/weaveapi/input/v1/input.pb.js +11 -11
  7. package/dist/weaveapi/input/v1/service.pb.d.ts +89 -10
  8. package/dist/weaveapi/input/v1/service.pb.js +1253 -642
  9. package/dist/weaveapi/integration/v1/integration.pb.d.ts +1 -1
  10. package/dist/weaveapi/integration/v1/integration.pb.js +11 -11
  11. package/dist/weaveapi/integration/v1/service.pb.d.ts +89 -7
  12. package/dist/weaveapi/integration/v1/service.pb.js +1164 -390
  13. package/dist/weaveapi/project/v1/project.pb.d.ts +1 -0
  14. package/dist/weaveapi/project/v1/project.pb.js +17 -1
  15. package/dist/weaveapi/project/v1/service.pb.d.ts +25 -0
  16. package/dist/weaveapi/project/v1/service.pb.js +248 -5
  17. package/dist/weaveapi/report/v1/report.pb.d.ts +2 -0
  18. package/dist/weaveapi/report/v1/report.pb.js +42 -2
  19. package/dist/weaveapi/report/v1/service.pb.d.ts +6 -6
  20. package/dist/weaveapi/report/v1/service.pb.js +416 -121
  21. package/dist/weaveapi/requirement/v1/requirement.pb.d.ts +1 -1
  22. package/dist/weaveapi/requirement/v1/requirement.pb.js +11 -11
  23. package/dist/weaveapi/requirement/v1/service.pb.d.ts +90 -10
  24. package/dist/weaveapi/requirement/v1/service.pb.js +1261 -601
  25. package/dist/weaveapi/run/v1/run.pb.d.ts +1 -0
  26. package/dist/weaveapi/run/v1/run.pb.js +21 -1
  27. package/dist/weaveapi/run/v1/service.pb.d.ts +6 -6
  28. package/dist/weaveapi/run/v1/service.pb.js +448 -126
  29. package/dist/weaveapi/script/v1/script.pb.d.ts +1 -1
  30. package/dist/weaveapi/script/v1/script.pb.js +11 -11
  31. package/dist/weaveapi/script/v1/service.pb.d.ts +90 -14
  32. package/dist/weaveapi/script/v1/service.pb.js +1404 -930
  33. package/dist/weaveapi/suite/v1/service.pb.d.ts +178 -12
  34. package/dist/weaveapi/suite/v1/service.pb.js +2631 -979
  35. package/dist/weaveapi/suite/v1/suite.pb.d.ts +2 -2
  36. package/dist/weaveapi/suite/v1/suite.pb.js +22 -22
  37. package/dist/weaveapi/testcase/v1/service.pb.d.ts +90 -14
  38. package/dist/weaveapi/testcase/v1/service.pb.js +1332 -856
  39. package/dist/weaveapi/testcase/v1/testcase.pb.d.ts +1 -1
  40. package/dist/weaveapi/testcase/v1/testcase.pb.js +11 -11
  41. package/dist/weaveapi/workflow/v1/service.pb.d.ts +26 -0
  42. package/dist/weaveapi/workflow/v1/service.pb.js +293 -5
  43. package/dist/weaveapi/workflow/v1/workflow.pb.d.ts +1 -0
  44. package/dist/weaveapi/workflow/v1/workflow.pb.js +17 -1
  45. package/dist/weavesql/weavedb/data_asset_sql.d.ts +81 -16
  46. package/dist/weavesql/weavedb/data_asset_sql.js +142 -24
  47. package/dist/weavesql/weavedb/input_sql.d.ts +88 -25
  48. package/dist/weavesql/weavedb/input_sql.js +150 -34
  49. package/dist/weavesql/weavedb/integration_sql.d.ts +85 -19
  50. package/dist/weavesql/weavedb/integration_sql.js +147 -28
  51. package/dist/weavesql/weavedb/project_sql.d.ts +29 -5
  52. package/dist/weavesql/weavedb/project_sql.js +73 -37
  53. package/dist/weavesql/weavedb/report_sql.d.ts +61 -7
  54. package/dist/weavesql/weavedb/report_sql.js +157 -81
  55. package/dist/weavesql/weavedb/requirement_sql.d.ts +83 -20
  56. package/dist/weavesql/weavedb/requirement_sql.js +144 -28
  57. package/dist/weavesql/weavedb/run_sql.d.ts +44 -8
  58. package/dist/weavesql/weavedb/run_sql.js +140 -93
  59. package/dist/weavesql/weavedb/suite_sql.d.ts +156 -30
  60. package/dist/weavesql/weavedb/suite_sql.js +274 -42
  61. package/dist/weavesql/weavedb/test_case_sql.d.ts +91 -27
  62. package/dist/weavesql/weavedb/test_case_sql.js +153 -36
  63. package/dist/weavesql/weavedb/test_script_sql.d.ts +91 -27
  64. package/dist/weavesql/weavedb/test_script_sql.js +153 -36
  65. package/dist/weavesql/weavedb/traceability_sql.d.ts +62 -4
  66. package/dist/weavesql/weavedb/traceability_sql.js +245 -37
  67. package/dist/weavesql/weavedb/workflow_sql.d.ts +30 -5
  68. package/dist/weavesql/weavedb/workflow_sql.js +76 -38
  69. package/package.json +1 -1
@@ -1,22 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteDataBindingTemplateQuery = exports.listDataBindingTemplatesQuery = exports.upsertDataBindingTemplateQuery = exports.deleteTestSuiteItemQuery = exports.listTestSuiteItemsQuery = exports.upsertTestSuiteItemQuery = exports.deleteTestSuiteQuery = exports.archiveTestSuiteQuery = exports.updateTestSuiteQuery = exports.listTestSuitesByWorkflowQuery = exports.getTestSuiteQuery = exports.createTestSuiteQuery = void 0;
3
+ exports.deleteDataBindingTemplateQuery = exports.listWorkflowDataBindingTemplateBindingsQuery = exports.detachDataBindingTemplateFromWorkflowQuery = exports.attachDataBindingTemplateToWorkflowQuery = exports.listDataBindingTemplatesByWorkflowQuery = exports.listDataBindingTemplatesByProjectQuery = exports.upsertDataBindingTemplateQuery = exports.deleteTestSuiteItemQuery = exports.listTestSuiteItemsQuery = exports.upsertTestSuiteItemQuery = exports.listWorkflowTestSuiteBindingsQuery = exports.detachTestSuiteFromWorkflowQuery = exports.attachTestSuiteToWorkflowQuery = exports.deleteTestSuiteQuery = exports.archiveTestSuiteQuery = exports.updateTestSuiteQuery = exports.listTestSuitesByWorkflowQuery = exports.listTestSuitesByProjectQuery = exports.getTestSuiteQuery = exports.createTestSuiteQuery = void 0;
4
4
  exports.createTestSuite = createTestSuite;
5
5
  exports.getTestSuite = getTestSuite;
6
+ exports.listTestSuitesByProject = listTestSuitesByProject;
6
7
  exports.listTestSuitesByWorkflow = listTestSuitesByWorkflow;
7
8
  exports.updateTestSuite = updateTestSuite;
8
9
  exports.archiveTestSuite = archiveTestSuite;
9
10
  exports.deleteTestSuite = deleteTestSuite;
11
+ exports.attachTestSuiteToWorkflow = attachTestSuiteToWorkflow;
12
+ exports.detachTestSuiteFromWorkflow = detachTestSuiteFromWorkflow;
13
+ exports.listWorkflowTestSuiteBindings = listWorkflowTestSuiteBindings;
10
14
  exports.upsertTestSuiteItem = upsertTestSuiteItem;
11
15
  exports.listTestSuiteItems = listTestSuiteItems;
12
16
  exports.deleteTestSuiteItem = deleteTestSuiteItem;
13
17
  exports.upsertDataBindingTemplate = upsertDataBindingTemplate;
14
- exports.listDataBindingTemplates = listDataBindingTemplates;
18
+ exports.listDataBindingTemplatesByProject = listDataBindingTemplatesByProject;
19
+ exports.listDataBindingTemplatesByWorkflow = listDataBindingTemplatesByWorkflow;
20
+ exports.attachDataBindingTemplateToWorkflow = attachDataBindingTemplateToWorkflow;
21
+ exports.detachDataBindingTemplateFromWorkflow = detachDataBindingTemplateFromWorkflow;
22
+ exports.listWorkflowDataBindingTemplateBindings = listWorkflowDataBindingTemplateBindings;
15
23
  exports.deleteDataBindingTemplate = deleteDataBindingTemplate;
16
24
  exports.createTestSuiteQuery = `-- name: CreateTestSuite :one
17
25
  INSERT INTO weave_v1.test_suite (
18
26
  id,
19
- workflow_id,
27
+ project_id,
20
28
  name,
21
29
  description,
22
30
  status,
@@ -36,11 +44,11 @@ VALUES (
36
44
  $8,
37
45
  $9
38
46
  )
39
- RETURNING id, workflow_id, name, description, status, goal, current_version, execution_profile, metadata, created_at, updated_at, archived_at`;
47
+ RETURNING id, project_id, name, description, status, goal, current_version, execution_profile, metadata, created_at, updated_at, archived_at`;
40
48
  async function createTestSuite(client, args) {
41
49
  const result = await client.query({
42
50
  text: exports.createTestSuiteQuery,
43
- values: [args.id, args.workflowId, args.name, args.description, args.status, args.goal, args.currentVersion, args.executionProfile, args.metadata],
51
+ values: [args.id, args.projectId, args.name, args.description, args.status, args.goal, args.currentVersion, args.executionProfile, args.metadata],
44
52
  rowMode: "array"
45
53
  });
46
54
  if (result.rows.length !== 1) {
@@ -49,7 +57,7 @@ async function createTestSuite(client, args) {
49
57
  const row = result.rows[0];
50
58
  return {
51
59
  id: row[0],
52
- workflowId: row[1],
60
+ projectId: row[1],
53
61
  name: row[2],
54
62
  description: row[3],
55
63
  status: row[4],
@@ -63,14 +71,14 @@ async function createTestSuite(client, args) {
63
71
  };
64
72
  }
65
73
  exports.getTestSuiteQuery = `-- name: GetTestSuite :one
66
- SELECT id, workflow_id, name, description, status, goal, current_version, execution_profile, metadata, created_at, updated_at, archived_at
74
+ SELECT id, project_id, name, description, status, goal, current_version, execution_profile, metadata, created_at, updated_at, archived_at
67
75
  FROM weave_v1.test_suite
68
76
  WHERE id = $1
69
- AND workflow_id = $2`;
77
+ AND project_id = $2`;
70
78
  async function getTestSuite(client, args) {
71
79
  const result = await client.query({
72
80
  text: exports.getTestSuiteQuery,
73
- values: [args.id, args.workflowId],
81
+ values: [args.id, args.projectId],
74
82
  rowMode: "array"
75
83
  });
76
84
  if (result.rows.length !== 1) {
@@ -79,7 +87,7 @@ async function getTestSuite(client, args) {
79
87
  const row = result.rows[0];
80
88
  return {
81
89
  id: row[0],
82
- workflowId: row[1],
90
+ projectId: row[1],
83
91
  name: row[2],
84
92
  description: row[3],
85
93
  status: row[4],
@@ -92,24 +100,59 @@ async function getTestSuite(client, args) {
92
100
  archivedAt: row[11]
93
101
  };
94
102
  }
95
- exports.listTestSuitesByWorkflowQuery = `-- name: ListTestSuitesByWorkflow :many
96
- SELECT id, workflow_id, name, description, status, goal, current_version, execution_profile, metadata, created_at, updated_at, archived_at
103
+ exports.listTestSuitesByProjectQuery = `-- name: ListTestSuitesByProject :many
104
+ SELECT id, project_id, name, description, status, goal, current_version, execution_profile, metadata, created_at, updated_at, archived_at
97
105
  FROM weave_v1.test_suite
98
- WHERE workflow_id = $1
106
+ WHERE project_id = $1
99
107
  AND ($2::BOOLEAN OR archived_at IS NULL)
100
108
  ORDER BY updated_at DESC
101
109
  LIMIT $4
102
110
  OFFSET $3`;
111
+ async function listTestSuitesByProject(client, args) {
112
+ const result = await client.query({
113
+ text: exports.listTestSuitesByProjectQuery,
114
+ values: [args.projectId, args.includeArchived, args.pageOffset, args.pageSize],
115
+ rowMode: "array"
116
+ });
117
+ return result.rows.map(row => {
118
+ return {
119
+ id: row[0],
120
+ projectId: row[1],
121
+ name: row[2],
122
+ description: row[3],
123
+ status: row[4],
124
+ goal: row[5],
125
+ currentVersion: row[6],
126
+ executionProfile: row[7],
127
+ metadata: row[8],
128
+ createdAt: row[9],
129
+ updatedAt: row[10],
130
+ archivedAt: row[11]
131
+ };
132
+ });
133
+ }
134
+ exports.listTestSuitesByWorkflowQuery = `-- name: ListTestSuitesByWorkflow :many
135
+ SELECT s.id, s.project_id, s.name, s.description, s.status, s.goal, s.current_version, s.execution_profile, s.metadata, s.created_at, s.updated_at, s.archived_at
136
+ FROM weave_v1.test_suite s
137
+ INNER JOIN weave_v1.workflow_test_suite b
138
+ ON b.test_suite_id = s.id
139
+ AND b.project_id = s.project_id
140
+ WHERE b.project_id = $1
141
+ AND b.workflow_id = $2
142
+ AND ($3::BOOLEAN OR s.archived_at IS NULL)
143
+ ORDER BY s.updated_at DESC
144
+ LIMIT $5
145
+ OFFSET $4`;
103
146
  async function listTestSuitesByWorkflow(client, args) {
104
147
  const result = await client.query({
105
148
  text: exports.listTestSuitesByWorkflowQuery,
106
- values: [args.workflowId, args.includeArchived, args.pageOffset, args.pageSize],
149
+ values: [args.projectId, args.workflowId, args.includeArchived, args.pageOffset, args.pageSize],
107
150
  rowMode: "array"
108
151
  });
109
152
  return result.rows.map(row => {
110
153
  return {
111
154
  id: row[0],
112
- workflowId: row[1],
155
+ projectId: row[1],
113
156
  name: row[2],
114
157
  description: row[3],
115
158
  status: row[4],
@@ -134,12 +177,12 @@ SET name = $1,
134
177
  metadata = $7,
135
178
  updated_at = NOW()
136
179
  WHERE id = $8
137
- AND workflow_id = $9
138
- RETURNING id, workflow_id, name, description, status, goal, current_version, execution_profile, metadata, created_at, updated_at, archived_at`;
180
+ AND project_id = $9
181
+ RETURNING id, project_id, name, description, status, goal, current_version, execution_profile, metadata, created_at, updated_at, archived_at`;
139
182
  async function updateTestSuite(client, args) {
140
183
  const result = await client.query({
141
184
  text: exports.updateTestSuiteQuery,
142
- values: [args.name, args.description, args.status, args.goal, args.currentVersion, args.executionProfile, args.metadata, args.id, args.workflowId],
185
+ values: [args.name, args.description, args.status, args.goal, args.currentVersion, args.executionProfile, args.metadata, args.id, args.projectId],
143
186
  rowMode: "array"
144
187
  });
145
188
  if (result.rows.length !== 1) {
@@ -148,7 +191,7 @@ async function updateTestSuite(client, args) {
148
191
  const row = result.rows[0];
149
192
  return {
150
193
  id: row[0],
151
- workflowId: row[1],
194
+ projectId: row[1],
152
195
  name: row[2],
153
196
  description: row[3],
154
197
  status: row[4],
@@ -167,12 +210,12 @@ SET status = 'archived',
167
210
  archived_at = NOW(),
168
211
  updated_at = NOW()
169
212
  WHERE id = $1
170
- AND workflow_id = $2
171
- RETURNING id, workflow_id, name, description, status, goal, current_version, execution_profile, metadata, created_at, updated_at, archived_at`;
213
+ AND project_id = $2
214
+ RETURNING id, project_id, name, description, status, goal, current_version, execution_profile, metadata, created_at, updated_at, archived_at`;
172
215
  async function archiveTestSuite(client, args) {
173
216
  const result = await client.query({
174
217
  text: exports.archiveTestSuiteQuery,
175
- values: [args.id, args.workflowId],
218
+ values: [args.id, args.projectId],
176
219
  rowMode: "array"
177
220
  });
178
221
  if (result.rows.length !== 1) {
@@ -181,7 +224,7 @@ async function archiveTestSuite(client, args) {
181
224
  const row = result.rows[0];
182
225
  return {
183
226
  id: row[0],
184
- workflowId: row[1],
227
+ projectId: row[1],
185
228
  name: row[2],
186
229
  description: row[3],
187
230
  status: row[4],
@@ -198,14 +241,91 @@ exports.deleteTestSuiteQuery = `-- name: DeleteTestSuite :exec
198
241
  DELETE
199
242
  FROM weave_v1.test_suite
200
243
  WHERE id = $1
201
- AND workflow_id = $2`;
244
+ AND project_id = $2`;
202
245
  async function deleteTestSuite(client, args) {
203
246
  await client.query({
204
247
  text: exports.deleteTestSuiteQuery,
205
- values: [args.id, args.workflowId],
248
+ values: [args.id, args.projectId],
206
249
  rowMode: "array"
207
250
  });
208
251
  }
252
+ exports.attachTestSuiteToWorkflowQuery = `-- name: AttachTestSuiteToWorkflow :one
253
+ INSERT INTO weave_v1.workflow_test_suite (
254
+ project_id,
255
+ workflow_id,
256
+ test_suite_id,
257
+ attached_by,
258
+ metadata
259
+ )
260
+ VALUES (
261
+ $1,
262
+ $2,
263
+ $3,
264
+ $4,
265
+ $5
266
+ )
267
+ ON CONFLICT (workflow_id, test_suite_id) DO UPDATE
268
+ SET attached_by = EXCLUDED.attached_by,
269
+ metadata = EXCLUDED.metadata,
270
+ attached_at = NOW()
271
+ RETURNING project_id, workflow_id, test_suite_id, attached_by, metadata, attached_at`;
272
+ async function attachTestSuiteToWorkflow(client, args) {
273
+ const result = await client.query({
274
+ text: exports.attachTestSuiteToWorkflowQuery,
275
+ values: [args.projectId, args.workflowId, args.testSuiteId, args.attachedBy, args.metadata],
276
+ rowMode: "array"
277
+ });
278
+ if (result.rows.length !== 1) {
279
+ return null;
280
+ }
281
+ const row = result.rows[0];
282
+ return {
283
+ projectId: row[0],
284
+ workflowId: row[1],
285
+ testSuiteId: row[2],
286
+ attachedBy: row[3],
287
+ metadata: row[4],
288
+ attachedAt: row[5]
289
+ };
290
+ }
291
+ exports.detachTestSuiteFromWorkflowQuery = `-- name: DetachTestSuiteFromWorkflow :exec
292
+ DELETE
293
+ FROM weave_v1.workflow_test_suite
294
+ WHERE project_id = $1
295
+ AND workflow_id = $2
296
+ AND test_suite_id = $3`;
297
+ async function detachTestSuiteFromWorkflow(client, args) {
298
+ await client.query({
299
+ text: exports.detachTestSuiteFromWorkflowQuery,
300
+ values: [args.projectId, args.workflowId, args.testSuiteId],
301
+ rowMode: "array"
302
+ });
303
+ }
304
+ exports.listWorkflowTestSuiteBindingsQuery = `-- name: ListWorkflowTestSuiteBindings :many
305
+ SELECT project_id, workflow_id, test_suite_id, attached_by, metadata, attached_at
306
+ FROM weave_v1.workflow_test_suite
307
+ WHERE project_id = $1
308
+ AND workflow_id = $2
309
+ ORDER BY attached_at DESC
310
+ LIMIT $4
311
+ OFFSET $3`;
312
+ async function listWorkflowTestSuiteBindings(client, args) {
313
+ const result = await client.query({
314
+ text: exports.listWorkflowTestSuiteBindingsQuery,
315
+ values: [args.projectId, args.workflowId, args.pageOffset, args.pageSize],
316
+ rowMode: "array"
317
+ });
318
+ return result.rows.map(row => {
319
+ return {
320
+ projectId: row[0],
321
+ workflowId: row[1],
322
+ testSuiteId: row[2],
323
+ attachedBy: row[3],
324
+ metadata: row[4],
325
+ attachedAt: row[5]
326
+ };
327
+ });
328
+ }
209
329
  exports.upsertTestSuiteItemQuery = `-- name: UpsertTestSuiteItem :one
210
330
  INSERT INTO weave_v1.test_suite_item (
211
331
  id,
@@ -259,12 +379,12 @@ SELECT si.id, si.test_suite_id, si.test_case_id, si.test_script_id, si.position,
259
379
  FROM weave_v1.test_suite_item si
260
380
  INNER JOIN weave_v1.test_suite s ON s.id = si.test_suite_id
261
381
  WHERE si.test_suite_id = $1
262
- AND s.workflow_id = $2
382
+ AND s.project_id = $2
263
383
  ORDER BY si.position`;
264
384
  async function listTestSuiteItems(client, args) {
265
385
  const result = await client.query({
266
386
  text: exports.listTestSuiteItemsQuery,
267
- values: [args.testSuiteId, args.workflowId],
387
+ values: [args.testSuiteId, args.projectId],
268
388
  rowMode: "array"
269
389
  });
270
390
  return result.rows.map(row => {
@@ -288,18 +408,18 @@ USING weave_v1.test_suite s
288
408
  WHERE si.id = $1
289
409
  AND si.test_suite_id = $2
290
410
  AND s.id = si.test_suite_id
291
- AND s.workflow_id = $3`;
411
+ AND s.project_id = $3`;
292
412
  async function deleteTestSuiteItem(client, args) {
293
413
  await client.query({
294
414
  text: exports.deleteTestSuiteItemQuery,
295
- values: [args.id, args.testSuiteId, args.workflowId],
415
+ values: [args.id, args.testSuiteId, args.projectId],
296
416
  rowMode: "array"
297
417
  });
298
418
  }
299
419
  exports.upsertDataBindingTemplateQuery = `-- name: UpsertDataBindingTemplate :one
300
420
  INSERT INTO weave_v1.data_binding_template (
301
421
  id,
302
- workflow_id,
422
+ project_id,
303
423
  name,
304
424
  description,
305
425
  target_scope,
@@ -328,11 +448,11 @@ SET name = EXCLUDED.name,
328
448
  binding_spec = EXCLUDED.binding_spec,
329
449
  metadata = EXCLUDED.metadata,
330
450
  updated_at = NOW()
331
- RETURNING id, workflow_id, name, description, target_scope, test_script_id, test_suite_id, binding_spec, metadata, created_at, updated_at, archived_at`;
451
+ RETURNING id, project_id, name, description, target_scope, test_script_id, test_suite_id, binding_spec, metadata, created_at, updated_at, archived_at`;
332
452
  async function upsertDataBindingTemplate(client, args) {
333
453
  const result = await client.query({
334
454
  text: exports.upsertDataBindingTemplateQuery,
335
- values: [args.id, args.workflowId, args.name, args.description, args.targetScope, args.testScriptId, args.testSuiteId, args.bindingSpec, args.metadata],
455
+ values: [args.id, args.projectId, args.name, args.description, args.targetScope, args.testScriptId, args.testSuiteId, args.bindingSpec, args.metadata],
336
456
  rowMode: "array"
337
457
  });
338
458
  if (result.rows.length !== 1) {
@@ -341,7 +461,7 @@ async function upsertDataBindingTemplate(client, args) {
341
461
  const row = result.rows[0];
342
462
  return {
343
463
  id: row[0],
344
- workflowId: row[1],
464
+ projectId: row[1],
345
465
  name: row[2],
346
466
  description: row[3],
347
467
  targetScope: row[4],
@@ -354,24 +474,59 @@ async function upsertDataBindingTemplate(client, args) {
354
474
  archivedAt: row[11]
355
475
  };
356
476
  }
357
- exports.listDataBindingTemplatesQuery = `-- name: ListDataBindingTemplates :many
358
- SELECT id, workflow_id, name, description, target_scope, test_script_id, test_suite_id, binding_spec, metadata, created_at, updated_at, archived_at
477
+ exports.listDataBindingTemplatesByProjectQuery = `-- name: ListDataBindingTemplatesByProject :many
478
+ SELECT id, project_id, name, description, target_scope, test_script_id, test_suite_id, binding_spec, metadata, created_at, updated_at, archived_at
359
479
  FROM weave_v1.data_binding_template
360
- WHERE workflow_id = $1
480
+ WHERE project_id = $1
361
481
  AND ($2::BOOLEAN OR archived_at IS NULL)
362
482
  ORDER BY updated_at DESC
363
483
  LIMIT $4
364
484
  OFFSET $3`;
365
- async function listDataBindingTemplates(client, args) {
485
+ async function listDataBindingTemplatesByProject(client, args) {
366
486
  const result = await client.query({
367
- text: exports.listDataBindingTemplatesQuery,
368
- values: [args.workflowId, args.includeArchived, args.pageOffset, args.pageSize],
487
+ text: exports.listDataBindingTemplatesByProjectQuery,
488
+ values: [args.projectId, args.includeArchived, args.pageOffset, args.pageSize],
369
489
  rowMode: "array"
370
490
  });
371
491
  return result.rows.map(row => {
372
492
  return {
373
493
  id: row[0],
374
- workflowId: row[1],
494
+ projectId: row[1],
495
+ name: row[2],
496
+ description: row[3],
497
+ targetScope: row[4],
498
+ testScriptId: row[5],
499
+ testSuiteId: row[6],
500
+ bindingSpec: row[7],
501
+ metadata: row[8],
502
+ createdAt: row[9],
503
+ updatedAt: row[10],
504
+ archivedAt: row[11]
505
+ };
506
+ });
507
+ }
508
+ exports.listDataBindingTemplatesByWorkflowQuery = `-- name: ListDataBindingTemplatesByWorkflow :many
509
+ SELECT t.id, t.project_id, t.name, t.description, t.target_scope, t.test_script_id, t.test_suite_id, t.binding_spec, t.metadata, t.created_at, t.updated_at, t.archived_at
510
+ FROM weave_v1.data_binding_template t
511
+ INNER JOIN weave_v1.workflow_data_binding_template b
512
+ ON b.data_binding_template_id = t.id
513
+ AND b.project_id = t.project_id
514
+ WHERE b.project_id = $1
515
+ AND b.workflow_id = $2
516
+ AND ($3::BOOLEAN OR t.archived_at IS NULL)
517
+ ORDER BY t.updated_at DESC
518
+ LIMIT $5
519
+ OFFSET $4`;
520
+ async function listDataBindingTemplatesByWorkflow(client, args) {
521
+ const result = await client.query({
522
+ text: exports.listDataBindingTemplatesByWorkflowQuery,
523
+ values: [args.projectId, args.workflowId, args.includeArchived, args.pageOffset, args.pageSize],
524
+ rowMode: "array"
525
+ });
526
+ return result.rows.map(row => {
527
+ return {
528
+ id: row[0],
529
+ projectId: row[1],
375
530
  name: row[2],
376
531
  description: row[3],
377
532
  targetScope: row[4],
@@ -385,15 +540,92 @@ async function listDataBindingTemplates(client, args) {
385
540
  };
386
541
  });
387
542
  }
543
+ exports.attachDataBindingTemplateToWorkflowQuery = `-- name: AttachDataBindingTemplateToWorkflow :one
544
+ INSERT INTO weave_v1.workflow_data_binding_template (
545
+ project_id,
546
+ workflow_id,
547
+ data_binding_template_id,
548
+ attached_by,
549
+ metadata
550
+ )
551
+ VALUES (
552
+ $1,
553
+ $2,
554
+ $3,
555
+ $4,
556
+ $5
557
+ )
558
+ ON CONFLICT (workflow_id, data_binding_template_id) DO UPDATE
559
+ SET attached_by = EXCLUDED.attached_by,
560
+ metadata = EXCLUDED.metadata,
561
+ attached_at = NOW()
562
+ RETURNING project_id, workflow_id, data_binding_template_id, attached_by, metadata, attached_at`;
563
+ async function attachDataBindingTemplateToWorkflow(client, args) {
564
+ const result = await client.query({
565
+ text: exports.attachDataBindingTemplateToWorkflowQuery,
566
+ values: [args.projectId, args.workflowId, args.dataBindingTemplateId, args.attachedBy, args.metadata],
567
+ rowMode: "array"
568
+ });
569
+ if (result.rows.length !== 1) {
570
+ return null;
571
+ }
572
+ const row = result.rows[0];
573
+ return {
574
+ projectId: row[0],
575
+ workflowId: row[1],
576
+ dataBindingTemplateId: row[2],
577
+ attachedBy: row[3],
578
+ metadata: row[4],
579
+ attachedAt: row[5]
580
+ };
581
+ }
582
+ exports.detachDataBindingTemplateFromWorkflowQuery = `-- name: DetachDataBindingTemplateFromWorkflow :exec
583
+ DELETE
584
+ FROM weave_v1.workflow_data_binding_template
585
+ WHERE project_id = $1
586
+ AND workflow_id = $2
587
+ AND data_binding_template_id = $3`;
588
+ async function detachDataBindingTemplateFromWorkflow(client, args) {
589
+ await client.query({
590
+ text: exports.detachDataBindingTemplateFromWorkflowQuery,
591
+ values: [args.projectId, args.workflowId, args.dataBindingTemplateId],
592
+ rowMode: "array"
593
+ });
594
+ }
595
+ exports.listWorkflowDataBindingTemplateBindingsQuery = `-- name: ListWorkflowDataBindingTemplateBindings :many
596
+ SELECT project_id, workflow_id, data_binding_template_id, attached_by, metadata, attached_at
597
+ FROM weave_v1.workflow_data_binding_template
598
+ WHERE project_id = $1
599
+ AND workflow_id = $2
600
+ ORDER BY attached_at DESC
601
+ LIMIT $4
602
+ OFFSET $3`;
603
+ async function listWorkflowDataBindingTemplateBindings(client, args) {
604
+ const result = await client.query({
605
+ text: exports.listWorkflowDataBindingTemplateBindingsQuery,
606
+ values: [args.projectId, args.workflowId, args.pageOffset, args.pageSize],
607
+ rowMode: "array"
608
+ });
609
+ return result.rows.map(row => {
610
+ return {
611
+ projectId: row[0],
612
+ workflowId: row[1],
613
+ dataBindingTemplateId: row[2],
614
+ attachedBy: row[3],
615
+ metadata: row[4],
616
+ attachedAt: row[5]
617
+ };
618
+ });
619
+ }
388
620
  exports.deleteDataBindingTemplateQuery = `-- name: DeleteDataBindingTemplate :exec
389
621
  DELETE
390
622
  FROM weave_v1.data_binding_template
391
623
  WHERE id = $1
392
- AND workflow_id = $2`;
624
+ AND project_id = $2`;
393
625
  async function deleteDataBindingTemplate(client, args) {
394
626
  await client.query({
395
627
  text: exports.deleteDataBindingTemplateQuery,
396
- values: [args.id, args.workflowId],
628
+ values: [args.id, args.projectId],
397
629
  rowMode: "array"
398
630
  });
399
631
  }