@budibase/server 2.5.5 → 2.5.6-alpha.10

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 (156) hide show
  1. package/builder/assets/index.5c1a6913.js +1776 -0
  2. package/builder/assets/index.c0265b74.css +6 -0
  3. package/builder/index.html +2 -2
  4. package/dist/api/controllers/automation.js +13 -7
  5. package/dist/api/controllers/ops.js +40 -0
  6. package/dist/api/controllers/plugin/index.js +6 -37
  7. package/dist/api/controllers/table/utils.js +2 -1
  8. package/dist/api/controllers/user.js +1 -83
  9. package/dist/api/routes/index.js +2 -0
  10. package/dist/api/routes/ops.js +52 -0
  11. package/dist/api/routes/user.js +0 -1
  12. package/dist/app.js +4 -13
  13. package/dist/automations/actions.js +32 -6
  14. package/dist/automations/index.js +3 -2
  15. package/dist/automations/steps/bash.js +6 -6
  16. package/dist/automations/steps/createRow.js +11 -11
  17. package/dist/automations/steps/delay.js +3 -3
  18. package/dist/automations/steps/deleteRow.js +8 -8
  19. package/dist/automations/steps/discord.js +8 -8
  20. package/dist/automations/steps/executeQuery.js +9 -9
  21. package/dist/automations/steps/executeScript.js +6 -6
  22. package/dist/automations/steps/filter.js +6 -6
  23. package/dist/automations/steps/integromat.js +10 -10
  24. package/dist/automations/steps/loop.js +9 -9
  25. package/dist/automations/steps/outgoingWebhook.js +10 -10
  26. package/dist/automations/steps/queryRows.js +14 -14
  27. package/dist/automations/steps/sendSmtpEmail.js +9 -9
  28. package/dist/automations/steps/serverLog.js +4 -4
  29. package/dist/automations/steps/slack.js +6 -6
  30. package/dist/automations/steps/updateRow.js +11 -11
  31. package/dist/automations/steps/zapier.js +9 -9
  32. package/dist/automations/triggerInfo/app.js +5 -5
  33. package/dist/automations/triggerInfo/cron.js +4 -4
  34. package/dist/automations/triggerInfo/rowDeleted.js +5 -5
  35. package/dist/automations/triggerInfo/rowSaved.js +7 -7
  36. package/dist/automations/triggerInfo/rowUpdated.js +7 -7
  37. package/dist/automations/triggerInfo/webhook.js +6 -6
  38. package/dist/environment.js +0 -1
  39. package/dist/events/docUpdates/index.js +17 -0
  40. package/dist/events/docUpdates/processors.js +18 -0
  41. package/dist/events/docUpdates/syncUsers.js +49 -0
  42. package/dist/events/index.js +3 -0
  43. package/dist/integrations/index.js +3 -3
  44. package/dist/integrations/microsoftSqlServer.js +5 -2
  45. package/dist/integrations/mysql.js +5 -3
  46. package/dist/integrations/postgres.js +7 -5
  47. package/dist/integrations/redis.js +7 -0
  48. package/dist/integrations/rest.js +4 -0
  49. package/dist/migrations/functions/usageQuotas/syncApps.js +1 -1
  50. package/dist/migrations/functions/usageQuotas/syncRows.js +1 -2
  51. package/dist/package.json +15 -15
  52. package/dist/sdk/app/applications/sync.js +117 -23
  53. package/dist/sdk/index.js +2 -0
  54. package/dist/sdk/plugins/index.js +27 -0
  55. package/dist/sdk/plugins/plugins.js +53 -0
  56. package/dist/sdk/users/utils.js +21 -4
  57. package/dist/startup.js +31 -28
  58. package/dist/threads/automation.js +16 -5
  59. package/dist/tsconfig.build.tsbuildinfo +1 -1
  60. package/dist/utilities/fileSystem/plugin.js +33 -23
  61. package/dist/utilities/global.js +17 -12
  62. package/dist/watch.js +2 -2
  63. package/dist/websockets/client.js +14 -0
  64. package/dist/websockets/grid.js +60 -0
  65. package/dist/websockets/index.js +17 -0
  66. package/dist/websockets/websocket.js +78 -0
  67. package/jest.config.ts +3 -3
  68. package/nodemon.json +7 -3
  69. package/package.json +16 -16
  70. package/scripts/dev/manage.js +2 -0
  71. package/scripts/integrations/mssql/data/entrypoint.sh +1 -0
  72. package/scripts/integrations/mssql/data/setup.sql +17 -17
  73. package/scripts/integrations/mysql/init.sql +1 -1
  74. package/scripts/integrations/postgres/init.sql +1 -0
  75. package/src/api/controllers/automation.ts +12 -6
  76. package/src/api/controllers/ops.ts +32 -0
  77. package/src/api/controllers/plugin/index.ts +8 -45
  78. package/src/api/controllers/row/internal.ts +9 -10
  79. package/src/api/controllers/row/utils.ts +2 -2
  80. package/src/api/controllers/table/utils.ts +2 -1
  81. package/src/api/controllers/user.ts +10 -96
  82. package/src/api/routes/index.ts +2 -0
  83. package/src/api/routes/ops.ts +30 -0
  84. package/src/api/routes/tests/automation.spec.js +7 -4
  85. package/src/api/routes/tests/user.spec.js +48 -37
  86. package/src/api/routes/user.ts +0 -5
  87. package/src/app.ts +4 -15
  88. package/src/automations/actions.ts +56 -24
  89. package/src/automations/index.ts +1 -1
  90. package/src/automations/steps/bash.ts +10 -7
  91. package/src/automations/steps/createRow.ts +15 -12
  92. package/src/automations/steps/delay.ts +6 -4
  93. package/src/automations/steps/deleteRow.ts +12 -9
  94. package/src/automations/steps/discord.ts +10 -8
  95. package/src/automations/steps/executeQuery.ts +13 -10
  96. package/src/automations/steps/executeScript.ts +10 -7
  97. package/src/automations/steps/filter.ts +8 -6
  98. package/src/automations/steps/integromat.ts +12 -10
  99. package/src/automations/steps/loop.ts +16 -10
  100. package/src/automations/steps/outgoingWebhook.ts +14 -11
  101. package/src/automations/steps/queryRows.ts +18 -15
  102. package/src/automations/steps/sendSmtpEmail.ts +11 -9
  103. package/src/automations/steps/serverLog.ts +6 -4
  104. package/src/automations/steps/slack.ts +8 -6
  105. package/src/automations/steps/updateRow.ts +15 -12
  106. package/src/automations/steps/zapier.ts +11 -9
  107. package/src/automations/tests/utilities/index.ts +2 -2
  108. package/src/automations/triggerInfo/app.ts +8 -5
  109. package/src/automations/triggerInfo/cron.ts +7 -4
  110. package/src/automations/triggerInfo/rowDeleted.ts +8 -5
  111. package/src/automations/triggerInfo/rowSaved.ts +10 -7
  112. package/src/automations/triggerInfo/rowUpdated.ts +10 -7
  113. package/src/automations/triggerInfo/webhook.ts +9 -6
  114. package/src/environment.ts +0 -1
  115. package/src/events/docUpdates/index.ts +1 -0
  116. package/src/events/docUpdates/processors.ts +14 -0
  117. package/src/events/docUpdates/syncUsers.ts +35 -0
  118. package/src/events/index.ts +1 -0
  119. package/src/integrations/index.ts +3 -3
  120. package/src/integrations/microsoftSqlServer.ts +5 -2
  121. package/src/integrations/mysql.ts +5 -3
  122. package/src/integrations/postgres.ts +7 -5
  123. package/src/integrations/redis.ts +8 -0
  124. package/src/integrations/rest.ts +3 -0
  125. package/src/migrations/functions/usageQuotas/syncApps.ts +1 -1
  126. package/src/migrations/functions/usageQuotas/syncRows.ts +2 -3
  127. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +2 -2
  128. package/src/sdk/app/applications/sync.ts +129 -22
  129. package/src/sdk/app/applications/tests/sync.spec.ts +137 -0
  130. package/src/sdk/index.ts +2 -0
  131. package/src/sdk/plugins/index.ts +5 -0
  132. package/src/sdk/plugins/plugins.ts +41 -0
  133. package/src/sdk/users/tests/utils.spec.ts +1 -32
  134. package/src/sdk/users/utils.ts +23 -5
  135. package/src/startup.ts +36 -34
  136. package/src/tests/jestEnv.ts +0 -1
  137. package/src/tests/jestSetup.ts +0 -1
  138. package/src/tests/utilities/TestConfiguration.ts +28 -0
  139. package/src/tests/utilities/structures.ts +25 -17
  140. package/src/threads/automation.ts +18 -6
  141. package/src/utilities/fileSystem/plugin.ts +13 -4
  142. package/src/utilities/global.ts +21 -16
  143. package/src/watch.ts +2 -2
  144. package/src/websockets/client.ts +11 -0
  145. package/src/websockets/grid.ts +55 -0
  146. package/src/websockets/index.ts +14 -0
  147. package/src/websockets/websocket.ts +83 -0
  148. package/tsconfig.json +1 -7
  149. package/builder/assets/index.7f9a008b.css +0 -6
  150. package/builder/assets/index.f493a2b3.js +0 -1817
  151. package/dist/elasticApm.js +0 -14
  152. package/dist/websocket.js +0 -22
  153. package/scripts/likeCypress.ts +0 -35
  154. package/src/elasticApm.ts +0 -10
  155. package/src/tests/logging.ts +0 -34
  156. package/src/websocket.ts +0 -26
@@ -19,7 +19,7 @@ exports.definition = {
19
19
  icon: "TableRowRemoveCenter",
20
20
  name: "Delete Row",
21
21
  tagline: "Delete a {{inputs.enriched.table.name}} row",
22
- type: "ACTION",
22
+ type: types_1.AutomationStepType.ACTION,
23
23
  stepId: types_1.AutomationActionStepId.DELETE_ROW,
24
24
  internal: true,
25
25
  inputs: {},
@@ -27,12 +27,12 @@ exports.definition = {
27
27
  inputs: {
28
28
  properties: {
29
29
  tableId: {
30
- type: "string",
31
- customType: "table",
30
+ type: types_1.AutomationIOType.STRING,
31
+ customType: types_1.AutomationCustomIOType.TABLE,
32
32
  title: "Table",
33
33
  },
34
34
  id: {
35
- type: "string",
35
+ type: types_1.AutomationIOType.STRING,
36
36
  title: "Row ID",
37
37
  },
38
38
  },
@@ -41,16 +41,16 @@ exports.definition = {
41
41
  outputs: {
42
42
  properties: {
43
43
  row: {
44
- type: "object",
45
- customType: "row",
44
+ type: types_1.AutomationIOType.OBJECT,
45
+ customType: types_1.AutomationCustomIOType.ROW,
46
46
  description: "The deleted row",
47
47
  },
48
48
  response: {
49
- type: "object",
49
+ type: types_1.AutomationIOType.OBJECT,
50
50
  description: "The response from the table",
51
51
  },
52
52
  success: {
53
- type: "boolean",
53
+ type: types_1.AutomationIOType.BOOLEAN,
54
54
  description: "Whether the deletion was successful",
55
55
  },
56
56
  },
@@ -24,26 +24,26 @@ exports.definition = {
24
24
  description: "Send a message to a Discord server",
25
25
  icon: "ri-discord-line",
26
26
  stepId: types_1.AutomationActionStepId.discord,
27
- type: "ACTION",
27
+ type: types_1.AutomationStepType.ACTION,
28
28
  internal: false,
29
29
  inputs: {},
30
30
  schema: {
31
31
  inputs: {
32
32
  properties: {
33
33
  url: {
34
- type: "string",
34
+ type: types_1.AutomationIOType.STRING,
35
35
  title: "Discord Webhook URL",
36
36
  },
37
37
  username: {
38
- type: "string",
38
+ type: types_1.AutomationIOType.STRING,
39
39
  title: "Bot Name",
40
40
  },
41
41
  avatar_url: {
42
- type: "string",
42
+ type: types_1.AutomationIOType.STRING,
43
43
  title: "Bot Avatar URL",
44
44
  },
45
45
  content: {
46
- type: "string",
46
+ type: types_1.AutomationIOType.STRING,
47
47
  title: "Message",
48
48
  },
49
49
  },
@@ -52,15 +52,15 @@ exports.definition = {
52
52
  outputs: {
53
53
  properties: {
54
54
  httpStatus: {
55
- type: "number",
55
+ type: types_1.AutomationIOType.NUMBER,
56
56
  description: "The HTTP status code of the request",
57
57
  },
58
58
  response: {
59
- type: "string",
59
+ type: types_1.AutomationIOType.STRING,
60
60
  description: "The response from the Discord Webhook",
61
61
  },
62
62
  success: {
63
- type: "boolean",
63
+ type: types_1.AutomationIOType.BOOLEAN,
64
64
  description: "Whether the message sent successfully",
65
65
  },
66
66
  },
@@ -53,7 +53,7 @@ exports.definition = {
53
53
  tagline: "Execute Data Connector",
54
54
  icon: "Data",
55
55
  description: "Execute a query in an external data connector",
56
- type: "ACTION",
56
+ type: types_1.AutomationStepType.ACTION,
57
57
  stepId: types_1.AutomationActionStepId.EXECUTE_QUERY,
58
58
  internal: true,
59
59
  inputs: {},
@@ -61,14 +61,14 @@ exports.definition = {
61
61
  inputs: {
62
62
  properties: {
63
63
  query: {
64
- type: "object",
64
+ type: types_1.AutomationIOType.OBJECT,
65
65
  properties: {
66
66
  queryId: {
67
- type: "string",
68
- customType: "query",
67
+ type: types_1.AutomationIOType.STRING,
68
+ customType: types_1.AutomationCustomIOType.QUERY,
69
69
  },
70
70
  },
71
- customType: "queryParams",
71
+ customType: types_1.AutomationCustomIOType.QUERY_PARAMS,
72
72
  title: "Parameters",
73
73
  required: ["queryId"],
74
74
  },
@@ -78,20 +78,20 @@ exports.definition = {
78
78
  outputs: {
79
79
  properties: {
80
80
  response: {
81
- type: "object",
81
+ type: types_1.AutomationIOType.OBJECT,
82
82
  description: "The response from the datasource execution",
83
83
  },
84
84
  info: {
85
- type: "object",
85
+ type: types_1.AutomationIOType.OBJECT,
86
86
  description: "Some query types may return extra data, like headers from a REST query",
87
87
  },
88
88
  success: {
89
- type: "boolean",
89
+ type: types_1.AutomationIOType.BOOLEAN,
90
90
  description: "Whether the action was successful",
91
91
  },
92
92
  },
93
+ required: ["response", "success"],
93
94
  },
94
- required: ["response", "success"],
95
95
  },
96
96
  };
97
97
  function run({ inputs, appId, emitter }) {
@@ -42,7 +42,7 @@ exports.definition = {
42
42
  tagline: "Execute JavaScript Code",
43
43
  icon: "Code",
44
44
  description: "Run a piece of JavaScript code in your automation",
45
- type: "ACTION",
45
+ type: types_1.AutomationStepType.ACTION,
46
46
  internal: true,
47
47
  stepId: types_1.AutomationActionStepId.EXECUTE_SCRIPT,
48
48
  inputs: {},
@@ -50,8 +50,8 @@ exports.definition = {
50
50
  inputs: {
51
51
  properties: {
52
52
  code: {
53
- type: "string",
54
- customType: "code",
53
+ type: types_1.AutomationIOType.STRING,
54
+ customType: types_1.AutomationCustomIOType.CODE,
55
55
  title: "Code",
56
56
  },
57
57
  },
@@ -60,16 +60,16 @@ exports.definition = {
60
60
  outputs: {
61
61
  properties: {
62
62
  value: {
63
- type: "string",
63
+ type: types_1.AutomationIOType.STRING,
64
64
  description: "The result of the return statement",
65
65
  },
66
66
  success: {
67
- type: "boolean",
67
+ type: types_1.AutomationIOType.BOOLEAN,
68
68
  description: "Whether the action was successful",
69
69
  },
70
70
  },
71
+ required: ["success"],
71
72
  },
72
- required: ["success"],
73
73
  },
74
74
  };
75
75
  function run({ inputs, appId, context, emitter, }) {
@@ -28,7 +28,7 @@ exports.definition = {
28
28
  tagline: "{{inputs.field}} {{inputs.condition}} {{inputs.value}}",
29
29
  icon: "Branch2",
30
30
  description: "Conditionally halt automations which do not meet certain conditions",
31
- type: "LOGIC",
31
+ type: types_1.AutomationStepType.LOGIC,
32
32
  internal: true,
33
33
  stepId: types_1.AutomationActionStepId.FILTER,
34
34
  inputs: {
@@ -38,17 +38,17 @@ exports.definition = {
38
38
  inputs: {
39
39
  properties: {
40
40
  field: {
41
- type: "string",
41
+ type: types_1.AutomationIOType.STRING,
42
42
  title: "Reference Value",
43
43
  },
44
44
  condition: {
45
- type: "string",
45
+ type: types_1.AutomationIOType.STRING,
46
46
  title: "Condition",
47
47
  enum: Object.values(exports.FilterConditions),
48
48
  pretty: Object.values(exports.PrettyFilterConditions),
49
49
  },
50
50
  value: {
51
- type: "string",
51
+ type: types_1.AutomationIOType.STRING,
52
52
  title: "Comparison Value",
53
53
  },
54
54
  },
@@ -57,11 +57,11 @@ exports.definition = {
57
57
  outputs: {
58
58
  properties: {
59
59
  success: {
60
- type: "boolean",
60
+ type: types_1.AutomationIOType.BOOLEAN,
61
61
  description: "Whether the action was successful",
62
62
  },
63
63
  result: {
64
- type: "boolean",
64
+ type: types_1.AutomationIOType.BOOLEAN,
65
65
  description: "Whether the logic block passed",
66
66
  },
67
67
  },
@@ -22,34 +22,34 @@ exports.definition = {
22
22
  description: "Performs a webhook call to Integromat and gets the response (if configured)",
23
23
  icon: "ri-shut-down-line",
24
24
  stepId: types_1.AutomationActionStepId.integromat,
25
- type: "ACTION",
25
+ type: types_1.AutomationStepType.ACTION,
26
26
  internal: false,
27
27
  inputs: {},
28
28
  schema: {
29
29
  inputs: {
30
30
  properties: {
31
31
  url: {
32
- type: "string",
32
+ type: types_1.AutomationIOType.STRING,
33
33
  title: "Webhook URL",
34
34
  },
35
35
  value1: {
36
- type: "string",
36
+ type: types_1.AutomationIOType.STRING,
37
37
  title: "Input Value 1",
38
38
  },
39
39
  value2: {
40
- type: "string",
40
+ type: types_1.AutomationIOType.STRING,
41
41
  title: "Input Value 2",
42
42
  },
43
43
  value3: {
44
- type: "string",
44
+ type: types_1.AutomationIOType.STRING,
45
45
  title: "Input Value 3",
46
46
  },
47
47
  value4: {
48
- type: "string",
48
+ type: types_1.AutomationIOType.STRING,
49
49
  title: "Input Value 4",
50
50
  },
51
51
  value5: {
52
- type: "string",
52
+ type: types_1.AutomationIOType.STRING,
53
53
  title: "Input Value 5",
54
54
  },
55
55
  },
@@ -58,15 +58,15 @@ exports.definition = {
58
58
  outputs: {
59
59
  properties: {
60
60
  success: {
61
- type: "boolean",
61
+ type: types_1.AutomationIOType.BOOLEAN,
62
62
  description: "Whether call was successful",
63
63
  },
64
64
  httpStatus: {
65
- type: "number",
65
+ type: types_1.AutomationIOType.NUMBER,
66
66
  description: "The HTTP status code returned",
67
67
  },
68
68
  response: {
69
- type: "object",
69
+ type: types_1.AutomationIOType.OBJECT,
70
70
  description: "The webhook response - this can have properties",
71
71
  },
72
72
  },
@@ -14,19 +14,19 @@ exports.definition = {
14
14
  inputs: {
15
15
  properties: {
16
16
  option: {
17
- customType: "loopOption",
17
+ customType: types_1.AutomationCustomIOType.LOOP_OPTION,
18
18
  title: "Input type",
19
19
  },
20
20
  binding: {
21
- type: "string",
21
+ type: types_1.AutomationIOType.STRING,
22
22
  title: "Binding / Value",
23
23
  },
24
24
  iterations: {
25
- type: "number",
25
+ type: types_1.AutomationIOType.NUMBER,
26
26
  title: "Max loop iterations",
27
27
  },
28
28
  failure: {
29
- type: "string",
29
+ type: types_1.AutomationIOType.STRING,
30
30
  title: "Failure Condition",
31
31
  },
32
32
  },
@@ -35,20 +35,20 @@ exports.definition = {
35
35
  outputs: {
36
36
  properties: {
37
37
  items: {
38
- customType: "item",
38
+ customType: types_1.AutomationCustomIOType.ITEM,
39
39
  description: "The item currently being executed",
40
40
  },
41
41
  success: {
42
- type: "boolean",
42
+ type: types_1.AutomationIOType.BOOLEAN,
43
43
  description: "Whether the message loop was successfully",
44
44
  },
45
45
  iterations: {
46
- type: "number",
47
- descriptions: "The amount of times the block ran",
46
+ type: types_1.AutomationIOType.NUMBER,
47
+ description: "The amount of times the block ran",
48
48
  },
49
49
  },
50
50
  required: ["success", "items", "iterations"],
51
51
  },
52
52
  },
53
- type: "LOGIC",
53
+ type: types_1.AutomationStepType.LOGIC,
54
54
  };
@@ -58,7 +58,7 @@ exports.definition = {
58
58
  tagline: "Send a {{inputs.requestMethod}} request",
59
59
  icon: "Send",
60
60
  description: "Send a request of specified method to a URL",
61
- type: "ACTION",
61
+ type: types_1.AutomationStepType.ACTION,
62
62
  internal: true,
63
63
  stepId: types_1.AutomationActionStepId.OUTGOING_WEBHOOK,
64
64
  inputs: {
@@ -71,23 +71,23 @@ exports.definition = {
71
71
  inputs: {
72
72
  properties: {
73
73
  requestMethod: {
74
- type: "string",
74
+ type: types_1.AutomationIOType.STRING,
75
75
  enum: Object.values(RequestType),
76
76
  title: "Request method",
77
77
  },
78
78
  url: {
79
- type: "string",
79
+ type: types_1.AutomationIOType.STRING,
80
80
  title: "URL",
81
81
  },
82
82
  requestBody: {
83
- type: "string",
83
+ type: types_1.AutomationIOType.STRING,
84
84
  title: "JSON Body",
85
- customType: "wide",
85
+ customType: types_1.AutomationCustomIOType.WIDE,
86
86
  },
87
87
  headers: {
88
- type: "string",
88
+ type: types_1.AutomationIOType.STRING,
89
89
  title: "Headers",
90
- customType: "wide",
90
+ customType: types_1.AutomationCustomIOType.WIDE,
91
91
  },
92
92
  },
93
93
  required: ["requestMethod", "url"],
@@ -95,15 +95,15 @@ exports.definition = {
95
95
  outputs: {
96
96
  properties: {
97
97
  response: {
98
- type: "object",
98
+ type: types_1.AutomationIOType.OBJECT,
99
99
  description: "The response from the webhook",
100
100
  },
101
101
  httpStatus: {
102
- type: "number",
102
+ type: types_1.AutomationIOType.NUMBER,
103
103
  description: "The HTTP status code returned",
104
104
  },
105
105
  success: {
106
- type: "boolean",
106
+ type: types_1.AutomationIOType.BOOLEAN,
107
107
  description: "Whether the action was successful",
108
108
  },
109
109
  },
@@ -62,7 +62,7 @@ exports.definition = {
62
62
  icon: "Search",
63
63
  name: "Query rows",
64
64
  tagline: "Query rows from {{inputs.enriched.table.name}} table",
65
- type: "ACTION",
65
+ type: types_1.AutomationStepType.ACTION,
66
66
  stepId: types_1.AutomationActionStepId.QUERY_ROWS,
67
67
  internal: true,
68
68
  inputs: {},
@@ -70,35 +70,35 @@ exports.definition = {
70
70
  inputs: {
71
71
  properties: {
72
72
  tableId: {
73
- type: "string",
74
- customType: "table",
73
+ type: types_1.AutomationIOType.STRING,
74
+ customType: types_1.AutomationCustomIOType.TABLE,
75
75
  title: "Table",
76
76
  },
77
77
  filters: {
78
- type: "object",
79
- customType: "filters",
78
+ type: types_1.AutomationIOType.OBJECT,
79
+ customType: types_1.AutomationCustomIOType.FILTERS,
80
80
  title: "Filtering",
81
81
  },
82
82
  sortColumn: {
83
- type: "string",
83
+ type: types_1.AutomationIOType.STRING,
84
84
  title: "Sort Column",
85
- customType: "column",
85
+ customType: types_1.AutomationCustomIOType.COLUMN,
86
86
  },
87
87
  sortOrder: {
88
- type: "string",
88
+ type: types_1.AutomationIOType.STRING,
89
89
  title: "Sort Order",
90
90
  enum: Object.values(SortOrder),
91
91
  pretty: Object.values(SortOrderPretty),
92
92
  },
93
93
  limit: {
94
- type: "number",
94
+ type: types_1.AutomationIOType.NUMBER,
95
95
  title: "Limit",
96
- customType: "queryLimit",
96
+ customType: types_1.AutomationCustomIOType.QUERY_LIMIT,
97
97
  },
98
98
  onEmptyFilter: {
99
99
  pretty: Object.values(EmptyFilterOptionPretty),
100
100
  enum: Object.values(EmptyFilterOption),
101
- type: "string",
101
+ type: types_1.AutomationIOType.STRING,
102
102
  title: "When Filter Empty",
103
103
  },
104
104
  },
@@ -107,12 +107,12 @@ exports.definition = {
107
107
  outputs: {
108
108
  properties: {
109
109
  rows: {
110
- type: "array",
111
- customType: "rows",
110
+ type: types_1.AutomationIOType.ARRAY,
111
+ customType: types_1.AutomationCustomIOType.ROWS,
112
112
  description: "The rows that were found",
113
113
  },
114
114
  success: {
115
- type: "boolean",
115
+ type: types_1.AutomationIOType.BOOLEAN,
116
116
  description: "Whether the query was successful",
117
117
  },
118
118
  },
@@ -41,7 +41,7 @@ exports.definition = {
41
41
  tagline: "Send SMTP email to {{inputs.to}}",
42
42
  icon: "Email",
43
43
  name: "Send Email (SMTP)",
44
- type: "ACTION",
44
+ type: types_1.AutomationStepType.ACTION,
45
45
  internal: true,
46
46
  stepId: types_1.AutomationActionStepId.SEND_EMAIL_SMTP,
47
47
  inputs: {},
@@ -49,27 +49,27 @@ exports.definition = {
49
49
  inputs: {
50
50
  properties: {
51
51
  to: {
52
- type: "string",
52
+ type: types_1.AutomationIOType.STRING,
53
53
  title: "Send To",
54
54
  },
55
55
  from: {
56
- type: "string",
56
+ type: types_1.AutomationIOType.STRING,
57
57
  title: "Send From",
58
58
  },
59
59
  cc: {
60
- type: "string",
60
+ type: types_1.AutomationIOType.STRING,
61
61
  title: "CC",
62
62
  },
63
63
  bcc: {
64
- type: "string",
64
+ type: types_1.AutomationIOType.STRING,
65
65
  title: "BCC",
66
66
  },
67
67
  subject: {
68
- type: "string",
68
+ type: types_1.AutomationIOType.STRING,
69
69
  title: "Email Subject",
70
70
  },
71
71
  contents: {
72
- type: "string",
72
+ type: types_1.AutomationIOType.STRING,
73
73
  title: "HTML Contents",
74
74
  },
75
75
  },
@@ -78,11 +78,11 @@ exports.definition = {
78
78
  outputs: {
79
79
  properties: {
80
80
  success: {
81
- type: "boolean",
81
+ type: types_1.AutomationIOType.BOOLEAN,
82
82
  description: "Whether the email was sent",
83
83
  },
84
84
  response: {
85
- type: "object",
85
+ type: types_1.AutomationIOType.OBJECT,
86
86
  description: "A response from the email client, this may be an error",
87
87
  },
88
88
  },
@@ -21,7 +21,7 @@ exports.definition = {
21
21
  tagline: "Console log a value in the backend",
22
22
  icon: "Monitoring",
23
23
  description: "Logs the given text to the server (using console.log)",
24
- type: "ACTION",
24
+ type: types_1.AutomationStepType.ACTION,
25
25
  internal: true,
26
26
  stepId: types_1.AutomationActionStepId.SERVER_LOG,
27
27
  inputs: {
@@ -31,7 +31,7 @@ exports.definition = {
31
31
  inputs: {
32
32
  properties: {
33
33
  text: {
34
- type: "string",
34
+ type: types_1.AutomationIOType.STRING,
35
35
  title: "Log",
36
36
  },
37
37
  },
@@ -40,11 +40,11 @@ exports.definition = {
40
40
  outputs: {
41
41
  properties: {
42
42
  success: {
43
- type: "boolean",
43
+ type: types_1.AutomationIOType.BOOLEAN,
44
44
  description: "Whether the action was successful",
45
45
  },
46
46
  message: {
47
- type: "string",
47
+ type: types_1.AutomationIOType.STRING,
48
48
  description: "What was output",
49
49
  },
50
50
  },
@@ -22,18 +22,18 @@ exports.definition = {
22
22
  description: "Send a message to Slack",
23
23
  icon: "ri-slack-line",
24
24
  stepId: types_1.AutomationActionStepId.slack,
25
- type: "ACTION",
25
+ type: types_1.AutomationStepType.ACTION,
26
26
  internal: false,
27
27
  inputs: {},
28
28
  schema: {
29
29
  inputs: {
30
30
  properties: {
31
31
  url: {
32
- type: "string",
32
+ type: types_1.AutomationIOType.STRING,
33
33
  title: "Incoming Webhook URL",
34
34
  },
35
35
  text: {
36
- type: "string",
36
+ type: types_1.AutomationIOType.STRING,
37
37
  title: "Message",
38
38
  },
39
39
  },
@@ -42,15 +42,15 @@ exports.definition = {
42
42
  outputs: {
43
43
  properties: {
44
44
  httpStatus: {
45
- type: "number",
45
+ type: types_1.AutomationIOType.NUMBER,
46
46
  description: "The HTTP status code of the request",
47
47
  },
48
48
  success: {
49
- type: "boolean",
49
+ type: types_1.AutomationIOType.BOOLEAN,
50
50
  description: "Whether the message sent successfully",
51
51
  },
52
52
  response: {
53
- type: "string",
53
+ type: types_1.AutomationIOType.STRING,
54
54
  description: "The response from the Slack Webhook",
55
55
  },
56
56
  },
@@ -42,7 +42,7 @@ exports.definition = {
42
42
  tagline: "Update a {{inputs.enriched.table.name}} row",
43
43
  icon: "Refresh",
44
44
  description: "Update a row in your database",
45
- type: "ACTION",
45
+ type: types_1.AutomationStepType.ACTION,
46
46
  internal: true,
47
47
  stepId: types_1.AutomationActionStepId.UPDATE_ROW,
48
48
  inputs: {},
@@ -50,16 +50,16 @@ exports.definition = {
50
50
  inputs: {
51
51
  properties: {
52
52
  meta: {
53
- type: "object",
53
+ type: types_1.AutomationIOType.OBJECT,
54
54
  title: "Field settings",
55
55
  },
56
56
  row: {
57
- type: "object",
58
- customType: "row",
57
+ type: types_1.AutomationIOType.OBJECT,
58
+ customType: types_1.AutomationCustomIOType.ROW,
59
59
  title: "Table",
60
60
  },
61
61
  rowId: {
62
- type: "string",
62
+ type: types_1.AutomationIOType.STRING,
63
63
  title: "Row ID",
64
64
  },
65
65
  },
@@ -68,24 +68,24 @@ exports.definition = {
68
68
  outputs: {
69
69
  properties: {
70
70
  row: {
71
- type: "object",
72
- customType: "row",
71
+ type: types_1.AutomationIOType.OBJECT,
72
+ customType: types_1.AutomationCustomIOType.ROW,
73
73
  description: "The updated row",
74
74
  },
75
75
  response: {
76
- type: "object",
76
+ type: types_1.AutomationIOType.OBJECT,
77
77
  description: "The response from the table",
78
78
  },
79
79
  success: {
80
- type: "boolean",
80
+ type: types_1.AutomationIOType.BOOLEAN,
81
81
  description: "Whether the action was successful",
82
82
  },
83
83
  id: {
84
- type: "string",
84
+ type: types_1.AutomationIOType.STRING,
85
85
  description: "The identifier of the updated row",
86
86
  },
87
87
  revision: {
88
- type: "string",
88
+ type: types_1.AutomationIOType.STRING,
89
89
  description: "The revision of the updated row",
90
90
  },
91
91
  },