@budibase/server 2.5.6-alpha.3 → 2.5.6-alpha.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builder/assets/index.44a18341.css +6 -0
- package/builder/assets/{index.a33a6c3d.js → index.87d46c61.js} +382 -366
- package/builder/index.html +2 -2
- package/dist/api/controllers/application.js +2 -3
- package/dist/api/controllers/automation.js +13 -7
- package/dist/api/controllers/dev.js +1 -1
- package/dist/api/controllers/plugin/index.js +6 -37
- package/dist/api/controllers/query/index.js +2 -2
- package/dist/api/controllers/row/ExternalRequest.js +21 -14
- package/dist/api/controllers/table/utils.js +9 -3
- package/dist/api/index.js +1 -2
- package/dist/api/routes/index.js +0 -2
- package/dist/app.js +2 -2
- package/dist/automations/actions.js +32 -6
- package/dist/automations/index.js +3 -2
- package/dist/automations/steps/bash.js +6 -6
- package/dist/automations/steps/createRow.js +11 -11
- package/dist/automations/steps/delay.js +3 -3
- package/dist/automations/steps/deleteRow.js +8 -8
- package/dist/automations/steps/discord.js +8 -8
- package/dist/automations/steps/executeQuery.js +9 -9
- package/dist/automations/steps/executeScript.js +6 -6
- package/dist/automations/steps/filter.js +6 -6
- package/dist/automations/steps/integromat.js +10 -10
- package/dist/automations/steps/loop.js +9 -9
- package/dist/automations/steps/outgoingWebhook.js +10 -10
- package/dist/automations/steps/queryRows.js +14 -14
- package/dist/automations/steps/sendSmtpEmail.js +9 -9
- package/dist/automations/steps/serverLog.js +4 -4
- package/dist/automations/steps/slack.js +6 -6
- package/dist/automations/steps/updateRow.js +11 -11
- package/dist/automations/steps/zapier.js +9 -9
- package/dist/automations/triggerInfo/app.js +5 -5
- package/dist/automations/triggerInfo/cron.js +4 -4
- package/dist/automations/triggerInfo/rowDeleted.js +5 -5
- package/dist/automations/triggerInfo/rowSaved.js +7 -7
- package/dist/automations/triggerInfo/rowUpdated.js +7 -7
- package/dist/automations/triggerInfo/webhook.js +6 -6
- package/dist/integrations/base/sqlTable.js +9 -2
- package/dist/integrations/index.js +3 -3
- package/dist/migrations/functions/syncQuotas.js +2 -0
- package/dist/migrations/functions/usageQuotas/syncApps.js +0 -1
- package/dist/migrations/functions/usageQuotas/syncUsers.js +21 -0
- package/dist/sdk/app/backups/exports.js +1 -35
- package/dist/sdk/index.js +2 -0
- package/dist/{api/routes/cloud.js → sdk/plugins/index.js} +2 -14
- package/dist/sdk/plugins/plugins.js +53 -0
- package/dist/threads/automation.js +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/plugin.js +33 -23
- package/dist/utilities/rowProcessor/utils.js +4 -5
- package/dist/watch.js +2 -2
- package/dist/websockets/client.js +14 -0
- package/dist/websockets/grid.js +60 -0
- package/dist/websockets/index.js +17 -0
- package/dist/websockets/websocket.js +78 -0
- package/package.json +11 -10
- package/src/api/controllers/application.ts +3 -3
- package/src/api/controllers/automation.ts +12 -6
- package/src/api/controllers/dev.ts +2 -2
- package/src/api/controllers/plugin/index.ts +8 -45
- package/src/api/controllers/query/index.ts +2 -2
- package/src/api/controllers/row/ExternalRequest.ts +21 -12
- package/src/api/controllers/table/utils.ts +10 -3
- package/src/api/index.ts +2 -4
- package/src/api/routes/index.ts +0 -2
- package/src/api/routes/tests/automation.spec.js +2 -2
- package/src/app.ts +2 -2
- package/src/automations/actions.ts +56 -24
- package/src/automations/index.ts +1 -1
- package/src/automations/steps/bash.ts +10 -7
- package/src/automations/steps/createRow.ts +15 -12
- package/src/automations/steps/delay.ts +6 -4
- package/src/automations/steps/deleteRow.ts +12 -9
- package/src/automations/steps/discord.ts +10 -8
- package/src/automations/steps/executeQuery.ts +13 -10
- package/src/automations/steps/executeScript.ts +10 -7
- package/src/automations/steps/filter.ts +8 -6
- package/src/automations/steps/integromat.ts +12 -10
- package/src/automations/steps/loop.ts +16 -10
- package/src/automations/steps/outgoingWebhook.ts +14 -11
- package/src/automations/steps/queryRows.ts +18 -15
- package/src/automations/steps/sendSmtpEmail.ts +11 -9
- package/src/automations/steps/serverLog.ts +6 -4
- package/src/automations/steps/slack.ts +8 -6
- package/src/automations/steps/updateRow.ts +15 -12
- package/src/automations/steps/zapier.ts +11 -9
- package/src/automations/tests/utilities/index.ts +2 -2
- package/src/automations/triggerInfo/app.ts +8 -5
- package/src/automations/triggerInfo/cron.ts +7 -4
- package/src/automations/triggerInfo/rowDeleted.ts +8 -5
- package/src/automations/triggerInfo/rowSaved.ts +10 -7
- package/src/automations/triggerInfo/rowUpdated.ts +10 -7
- package/src/automations/triggerInfo/webhook.ts +9 -6
- package/src/integration-test/postgres.spec.ts +2 -0
- package/src/integrations/base/sqlTable.ts +9 -2
- package/src/integrations/index.ts +3 -3
- package/src/migrations/functions/syncQuotas.ts +2 -0
- package/src/migrations/functions/usageQuotas/syncApps.ts +1 -2
- package/src/migrations/functions/usageQuotas/syncUsers.ts +9 -0
- package/src/migrations/functions/usageQuotas/tests/syncUsers.spec.ts +26 -0
- package/src/migrations/index.ts +1 -0
- package/src/sdk/app/backups/exports.ts +0 -35
- package/src/sdk/index.ts +2 -0
- package/src/sdk/plugins/index.ts +5 -0
- package/src/sdk/plugins/plugins.ts +41 -0
- package/src/tests/utilities/structures.ts +25 -17
- package/src/threads/automation.ts +2 -2
- package/src/utilities/fileSystem/plugin.ts +13 -4
- package/src/utilities/rowProcessor/utils.ts +9 -10
- package/src/watch.ts +2 -2
- package/src/websockets/client.ts +11 -0
- package/src/websockets/grid.ts +55 -0
- package/src/websockets/index.ts +14 -0
- package/src/websockets/websocket.ts +83 -0
- package/tsconfig.build.json +3 -5
- package/tsconfig.json +2 -1
- package/builder/assets/index.841e62d8.css +0 -6
- package/dist/api/controllers/cloud.js +0 -130
- package/dist/package.json +0 -179
- package/dist/websocket.js +0 -22
- package/src/api/controllers/cloud.ts +0 -119
- package/src/api/routes/cloud.ts +0 -18
- package/src/api/routes/tests/cloud.spec.ts +0 -54
- package/src/migrations/functions/tests/syncQuotas.spec.js +0 -26
- package/src/websocket.ts +0 -26
package/src/api/index.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import Router from "@koa/router"
|
|
2
|
-
import { auth, middleware } from "@budibase/backend-core"
|
|
2
|
+
import { auth, middleware, env as envCore } from "@budibase/backend-core"
|
|
3
3
|
import currentApp from "../middleware/currentapp"
|
|
4
4
|
import zlib from "zlib"
|
|
5
5
|
import { mainRoutes, staticRoutes, publicRoutes } from "./routes"
|
|
6
|
-
import pkg from "../../package.json"
|
|
7
|
-
import env from "../environment"
|
|
8
6
|
import { middleware as pro } from "@budibase/pro"
|
|
9
7
|
export { shutdown } from "./routes/public"
|
|
10
8
|
const compress = require("koa-compress")
|
|
@@ -12,7 +10,7 @@ const compress = require("koa-compress")
|
|
|
12
10
|
export const router: Router = new Router()
|
|
13
11
|
|
|
14
12
|
router.get("/health", ctx => (ctx.status = 200))
|
|
15
|
-
router.get("/version", ctx => (ctx.body =
|
|
13
|
+
router.get("/version", ctx => (ctx.body = envCore.VERSION))
|
|
16
14
|
|
|
17
15
|
router.use(middleware.errorHandling)
|
|
18
16
|
|
package/src/api/routes/index.ts
CHANGED
|
@@ -22,7 +22,6 @@ import queryRoutes from "./query"
|
|
|
22
22
|
import backupRoutes from "./backup"
|
|
23
23
|
import metadataRoutes from "./metadata"
|
|
24
24
|
import devRoutes from "./dev"
|
|
25
|
-
import cloudRoutes from "./cloud"
|
|
26
25
|
import migrationRoutes from "./migrations"
|
|
27
26
|
import pluginRoutes from "./plugin"
|
|
28
27
|
import opsRoutes from "./ops"
|
|
@@ -60,7 +59,6 @@ export const mainRoutes: Router[] = [
|
|
|
60
59
|
queryRoutes,
|
|
61
60
|
metadataRoutes,
|
|
62
61
|
devRoutes,
|
|
63
|
-
cloudRoutes,
|
|
64
62
|
rowRoutes,
|
|
65
63
|
migrationRoutes,
|
|
66
64
|
pluginRoutes,
|
|
@@ -7,7 +7,7 @@ const {
|
|
|
7
7
|
const setup = require("./utilities")
|
|
8
8
|
const { basicAutomation, newAutomation, automationTrigger, automationStep } = setup.structures
|
|
9
9
|
const MAX_RETRIES = 4
|
|
10
|
-
const { TRIGGER_DEFINITIONS,
|
|
10
|
+
const { TRIGGER_DEFINITIONS, BUILTIN_ACTION_DEFINITIONS } = require("../../../automations")
|
|
11
11
|
const { events } = require("@budibase/backend-core")
|
|
12
12
|
|
|
13
13
|
|
|
@@ -55,7 +55,7 @@ describe("/automations", () => {
|
|
|
55
55
|
.expect('Content-Type', /json/)
|
|
56
56
|
.expect(200)
|
|
57
57
|
|
|
58
|
-
let definitionsLength = Object.keys(
|
|
58
|
+
let definitionsLength = Object.keys(BUILTIN_ACTION_DEFINITIONS).length
|
|
59
59
|
definitionsLength-- // OUTGOING_WEBHOOK is deprecated
|
|
60
60
|
|
|
61
61
|
expect(Object.keys(res.body.action).length).toBeGreaterThanOrEqual(definitionsLength)
|
package/src/app.ts
CHANGED
|
@@ -15,8 +15,8 @@ import * as api from "./api"
|
|
|
15
15
|
import * as automations from "./automations"
|
|
16
16
|
import { Thread } from "./threads"
|
|
17
17
|
import * as redis from "./utilities/redis"
|
|
18
|
+
import { initialise as initialiseWebsockets } from "./websockets"
|
|
18
19
|
import { events, logging, middleware, timers } from "@budibase/backend-core"
|
|
19
|
-
import { initialise as initialiseWebsockets } from "./websocket"
|
|
20
20
|
import { startup } from "./startup"
|
|
21
21
|
const Sentry = require("@sentry/node")
|
|
22
22
|
const destroyable = require("server-destroy")
|
|
@@ -61,7 +61,7 @@ if (env.isProd()) {
|
|
|
61
61
|
|
|
62
62
|
const server = http.createServer(app.callback())
|
|
63
63
|
destroyable(server)
|
|
64
|
-
initialiseWebsockets(server)
|
|
64
|
+
initialiseWebsockets(app, server)
|
|
65
65
|
|
|
66
66
|
let shuttingDown = false,
|
|
67
67
|
errCode = 0
|
|
@@ -15,7 +15,14 @@ import * as delay from "./steps/delay"
|
|
|
15
15
|
import * as queryRow from "./steps/queryRows"
|
|
16
16
|
import * as loop from "./steps/loop"
|
|
17
17
|
import env from "../environment"
|
|
18
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
AutomationStepSchema,
|
|
20
|
+
AutomationStepInput,
|
|
21
|
+
PluginType,
|
|
22
|
+
AutomationStep,
|
|
23
|
+
} from "@budibase/types"
|
|
24
|
+
import sdk from "../sdk"
|
|
25
|
+
import { getAutomationPlugin } from "../utilities/fileSystem"
|
|
19
26
|
|
|
20
27
|
const ACTION_IMPLS: Record<
|
|
21
28
|
string,
|
|
@@ -38,25 +45,26 @@ const ACTION_IMPLS: Record<
|
|
|
38
45
|
zapier: zapier.run,
|
|
39
46
|
integromat: integromat.run,
|
|
40
47
|
}
|
|
41
|
-
export const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
48
|
+
export const BUILTIN_ACTION_DEFINITIONS: Record<string, AutomationStepSchema> =
|
|
49
|
+
{
|
|
50
|
+
SEND_EMAIL_SMTP: sendSmtpEmail.definition,
|
|
51
|
+
CREATE_ROW: createRow.definition,
|
|
52
|
+
UPDATE_ROW: updateRow.definition,
|
|
53
|
+
DELETE_ROW: deleteRow.definition,
|
|
54
|
+
OUTGOING_WEBHOOK: outgoingWebhook.definition,
|
|
55
|
+
EXECUTE_SCRIPT: executeScript.definition,
|
|
56
|
+
EXECUTE_QUERY: executeQuery.definition,
|
|
57
|
+
SERVER_LOG: serverLog.definition,
|
|
58
|
+
DELAY: delay.definition,
|
|
59
|
+
FILTER: filter.definition,
|
|
60
|
+
QUERY_ROWS: queryRow.definition,
|
|
61
|
+
LOOP: loop.definition,
|
|
62
|
+
// these used to be lowercase step IDs, maintain for backwards compat
|
|
63
|
+
discord: discord.definition,
|
|
64
|
+
slack: slack.definition,
|
|
65
|
+
zapier: zapier.definition,
|
|
66
|
+
integromat: integromat.definition,
|
|
67
|
+
}
|
|
60
68
|
|
|
61
69
|
// don't add the bash script/definitions unless in self host
|
|
62
70
|
// the fact this isn't included in any definitions means it cannot be
|
|
@@ -66,12 +74,36 @@ if (env.SELF_HOSTED) {
|
|
|
66
74
|
// @ts-ignore
|
|
67
75
|
ACTION_IMPLS["EXECUTE_BASH"] = bash.run
|
|
68
76
|
// @ts-ignore
|
|
69
|
-
|
|
77
|
+
BUILTIN_ACTION_DEFINITIONS["EXECUTE_BASH"] = bash.definition
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export async function getActionDefinitions() {
|
|
81
|
+
const actionDefinitions = BUILTIN_ACTION_DEFINITIONS
|
|
82
|
+
if (env.SELF_HOSTED) {
|
|
83
|
+
const plugins = await sdk.plugins.fetch(PluginType.AUTOMATION)
|
|
84
|
+
for (let plugin of plugins) {
|
|
85
|
+
const schema = plugin.schema.schema as AutomationStep
|
|
86
|
+
actionDefinitions[schema.stepId] = {
|
|
87
|
+
...schema,
|
|
88
|
+
custom: true,
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return actionDefinitions
|
|
70
93
|
}
|
|
71
94
|
|
|
72
95
|
/* istanbul ignore next */
|
|
73
|
-
export async function getAction(
|
|
74
|
-
if (ACTION_IMPLS[
|
|
75
|
-
return ACTION_IMPLS[
|
|
96
|
+
export async function getAction(stepId: string) {
|
|
97
|
+
if (ACTION_IMPLS[stepId] != null) {
|
|
98
|
+
return ACTION_IMPLS[stepId]
|
|
99
|
+
}
|
|
100
|
+
// must be a plugin
|
|
101
|
+
if (env.SELF_HOSTED) {
|
|
102
|
+
const plugins = await sdk.plugins.fetch(PluginType.AUTOMATION)
|
|
103
|
+
const found = plugins.find(plugin => plugin.schema.schema.stepId === stepId)
|
|
104
|
+
if (!found) {
|
|
105
|
+
throw new Error(`Unable to find action implementation for "${stepId}"`)
|
|
106
|
+
}
|
|
107
|
+
return (await getAutomationPlugin(found)).action
|
|
76
108
|
}
|
|
77
109
|
}
|
package/src/automations/index.ts
CHANGED
|
@@ -6,7 +6,7 @@ import BullQueue from "bull"
|
|
|
6
6
|
export { automationQueue } from "./bullboard"
|
|
7
7
|
export { shutdown } from "./bullboard"
|
|
8
8
|
export { TRIGGER_DEFINITIONS } from "./triggers"
|
|
9
|
-
export {
|
|
9
|
+
export { BUILTIN_ACTION_DEFINITIONS, getActionDefinitions } from "./actions"
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* This module is built purely to kick off the worker farm and manage the inputs/outputs
|
|
@@ -4,8 +4,11 @@ import * as automationUtils from "../automationUtils"
|
|
|
4
4
|
import environment from "../../environment"
|
|
5
5
|
import {
|
|
6
6
|
AutomationActionStepId,
|
|
7
|
-
|
|
7
|
+
AutomationCustomIOType,
|
|
8
|
+
AutomationIOType,
|
|
8
9
|
AutomationStepInput,
|
|
10
|
+
AutomationStepSchema,
|
|
11
|
+
AutomationStepType,
|
|
9
12
|
} from "@budibase/types"
|
|
10
13
|
|
|
11
14
|
export const definition: AutomationStepSchema = {
|
|
@@ -13,7 +16,7 @@ export const definition: AutomationStepSchema = {
|
|
|
13
16
|
tagline: "Execute a bash command",
|
|
14
17
|
icon: "JourneyEvent",
|
|
15
18
|
description: "Run a bash script",
|
|
16
|
-
type:
|
|
19
|
+
type: AutomationStepType.ACTION,
|
|
17
20
|
internal: true,
|
|
18
21
|
stepId: AutomationActionStepId.EXECUTE_BASH,
|
|
19
22
|
inputs: {},
|
|
@@ -21,8 +24,8 @@ export const definition: AutomationStepSchema = {
|
|
|
21
24
|
inputs: {
|
|
22
25
|
properties: {
|
|
23
26
|
code: {
|
|
24
|
-
type:
|
|
25
|
-
customType:
|
|
27
|
+
type: AutomationIOType.STRING,
|
|
28
|
+
customType: AutomationCustomIOType.CODE,
|
|
26
29
|
title: "Code",
|
|
27
30
|
},
|
|
28
31
|
},
|
|
@@ -31,16 +34,16 @@ export const definition: AutomationStepSchema = {
|
|
|
31
34
|
outputs: {
|
|
32
35
|
properties: {
|
|
33
36
|
stdout: {
|
|
34
|
-
type:
|
|
37
|
+
type: AutomationIOType.STRING,
|
|
35
38
|
description: "Standard output of your bash command or script",
|
|
36
39
|
},
|
|
37
40
|
success: {
|
|
38
|
-
type:
|
|
41
|
+
type: AutomationIOType.BOOLEAN,
|
|
39
42
|
description: "Whether the command was successful",
|
|
40
43
|
},
|
|
41
44
|
},
|
|
45
|
+
required: ["stdout"],
|
|
42
46
|
},
|
|
43
|
-
required: ["stdout"],
|
|
44
47
|
},
|
|
45
48
|
}
|
|
46
49
|
|
|
@@ -3,8 +3,11 @@ import { cleanUpRow, getError } from "../automationUtils"
|
|
|
3
3
|
import { buildCtx } from "./utils"
|
|
4
4
|
import {
|
|
5
5
|
AutomationActionStepId,
|
|
6
|
-
|
|
6
|
+
AutomationCustomIOType,
|
|
7
|
+
AutomationIOType,
|
|
7
8
|
AutomationStepInput,
|
|
9
|
+
AutomationStepSchema,
|
|
10
|
+
AutomationStepType,
|
|
8
11
|
} from "@budibase/types"
|
|
9
12
|
|
|
10
13
|
export const definition: AutomationStepSchema = {
|
|
@@ -12,7 +15,7 @@ export const definition: AutomationStepSchema = {
|
|
|
12
15
|
tagline: "Create a {{inputs.enriched.table.name}} row",
|
|
13
16
|
icon: "TableRowAddBottom",
|
|
14
17
|
description: "Add a row to your database",
|
|
15
|
-
type:
|
|
18
|
+
type: AutomationStepType.ACTION,
|
|
16
19
|
internal: true,
|
|
17
20
|
stepId: AutomationActionStepId.CREATE_ROW,
|
|
18
21
|
inputs: {},
|
|
@@ -20,14 +23,14 @@ export const definition: AutomationStepSchema = {
|
|
|
20
23
|
inputs: {
|
|
21
24
|
properties: {
|
|
22
25
|
row: {
|
|
23
|
-
type:
|
|
26
|
+
type: AutomationIOType.OBJECT,
|
|
24
27
|
properties: {
|
|
25
28
|
tableId: {
|
|
26
|
-
type:
|
|
27
|
-
customType:
|
|
29
|
+
type: AutomationIOType.STRING,
|
|
30
|
+
customType: AutomationCustomIOType.TABLE,
|
|
28
31
|
},
|
|
29
32
|
},
|
|
30
|
-
customType:
|
|
33
|
+
customType: AutomationCustomIOType.ROW,
|
|
31
34
|
title: "Table",
|
|
32
35
|
required: ["tableId"],
|
|
33
36
|
},
|
|
@@ -37,24 +40,24 @@ export const definition: AutomationStepSchema = {
|
|
|
37
40
|
outputs: {
|
|
38
41
|
properties: {
|
|
39
42
|
row: {
|
|
40
|
-
type:
|
|
41
|
-
customType:
|
|
43
|
+
type: AutomationIOType.OBJECT,
|
|
44
|
+
customType: AutomationCustomIOType.ROW,
|
|
42
45
|
description: "The new row",
|
|
43
46
|
},
|
|
44
47
|
response: {
|
|
45
|
-
type:
|
|
48
|
+
type: AutomationIOType.OBJECT,
|
|
46
49
|
description: "The response from the table",
|
|
47
50
|
},
|
|
48
51
|
success: {
|
|
49
|
-
type:
|
|
52
|
+
type: AutomationIOType.BOOLEAN,
|
|
50
53
|
description: "Whether the row creation was successful",
|
|
51
54
|
},
|
|
52
55
|
id: {
|
|
53
|
-
type:
|
|
56
|
+
type: AutomationIOType.STRING,
|
|
54
57
|
description: "The identifier of the new row",
|
|
55
58
|
},
|
|
56
59
|
revision: {
|
|
57
|
-
type:
|
|
60
|
+
type: AutomationIOType.STRING,
|
|
58
61
|
description: "The revision of the new row",
|
|
59
62
|
},
|
|
60
63
|
},
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { wait } from "../../utilities"
|
|
2
2
|
import {
|
|
3
3
|
AutomationActionStepId,
|
|
4
|
-
|
|
4
|
+
AutomationIOType,
|
|
5
5
|
AutomationStepInput,
|
|
6
|
+
AutomationStepSchema,
|
|
7
|
+
AutomationStepType,
|
|
6
8
|
} from "@budibase/types"
|
|
7
9
|
|
|
8
10
|
export const definition: AutomationStepSchema = {
|
|
@@ -17,7 +19,7 @@ export const definition: AutomationStepSchema = {
|
|
|
17
19
|
inputs: {
|
|
18
20
|
properties: {
|
|
19
21
|
time: {
|
|
20
|
-
type:
|
|
22
|
+
type: AutomationIOType.NUMBER,
|
|
21
23
|
title: "Delay in milliseconds",
|
|
22
24
|
},
|
|
23
25
|
},
|
|
@@ -26,14 +28,14 @@ export const definition: AutomationStepSchema = {
|
|
|
26
28
|
outputs: {
|
|
27
29
|
properties: {
|
|
28
30
|
success: {
|
|
29
|
-
type:
|
|
31
|
+
type: AutomationIOType.BOOLEAN,
|
|
30
32
|
description: "Whether the delay was successful",
|
|
31
33
|
},
|
|
32
34
|
},
|
|
33
35
|
required: ["success"],
|
|
34
36
|
},
|
|
35
37
|
},
|
|
36
|
-
type:
|
|
38
|
+
type: AutomationStepType.LOGIC,
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
export async function run({ inputs }: AutomationStepInput) {
|
|
@@ -3,8 +3,11 @@ import { buildCtx } from "./utils"
|
|
|
3
3
|
import { getError } from "../automationUtils"
|
|
4
4
|
import {
|
|
5
5
|
AutomationActionStepId,
|
|
6
|
-
AutomationStepSchema,
|
|
7
6
|
AutomationStepInput,
|
|
7
|
+
AutomationStepSchema,
|
|
8
|
+
AutomationStepType,
|
|
9
|
+
AutomationIOType,
|
|
10
|
+
AutomationCustomIOType,
|
|
8
11
|
} from "@budibase/types"
|
|
9
12
|
|
|
10
13
|
export const definition: AutomationStepSchema = {
|
|
@@ -12,7 +15,7 @@ export const definition: AutomationStepSchema = {
|
|
|
12
15
|
icon: "TableRowRemoveCenter",
|
|
13
16
|
name: "Delete Row",
|
|
14
17
|
tagline: "Delete a {{inputs.enriched.table.name}} row",
|
|
15
|
-
type:
|
|
18
|
+
type: AutomationStepType.ACTION,
|
|
16
19
|
stepId: AutomationActionStepId.DELETE_ROW,
|
|
17
20
|
internal: true,
|
|
18
21
|
inputs: {},
|
|
@@ -20,12 +23,12 @@ export const definition: AutomationStepSchema = {
|
|
|
20
23
|
inputs: {
|
|
21
24
|
properties: {
|
|
22
25
|
tableId: {
|
|
23
|
-
type:
|
|
24
|
-
customType:
|
|
26
|
+
type: AutomationIOType.STRING,
|
|
27
|
+
customType: AutomationCustomIOType.TABLE,
|
|
25
28
|
title: "Table",
|
|
26
29
|
},
|
|
27
30
|
id: {
|
|
28
|
-
type:
|
|
31
|
+
type: AutomationIOType.STRING,
|
|
29
32
|
title: "Row ID",
|
|
30
33
|
},
|
|
31
34
|
},
|
|
@@ -34,16 +37,16 @@ export const definition: AutomationStepSchema = {
|
|
|
34
37
|
outputs: {
|
|
35
38
|
properties: {
|
|
36
39
|
row: {
|
|
37
|
-
type:
|
|
38
|
-
customType:
|
|
40
|
+
type: AutomationIOType.OBJECT,
|
|
41
|
+
customType: AutomationCustomIOType.ROW,
|
|
39
42
|
description: "The deleted row",
|
|
40
43
|
},
|
|
41
44
|
response: {
|
|
42
|
-
type:
|
|
45
|
+
type: AutomationIOType.OBJECT,
|
|
43
46
|
description: "The response from the table",
|
|
44
47
|
},
|
|
45
48
|
success: {
|
|
46
|
-
type:
|
|
49
|
+
type: AutomationIOType.BOOLEAN,
|
|
47
50
|
description: "Whether the deletion was successful",
|
|
48
51
|
},
|
|
49
52
|
},
|
|
@@ -4,6 +4,8 @@ import {
|
|
|
4
4
|
AutomationActionStepId,
|
|
5
5
|
AutomationStepSchema,
|
|
6
6
|
AutomationStepInput,
|
|
7
|
+
AutomationStepType,
|
|
8
|
+
AutomationIOType,
|
|
7
9
|
} from "@budibase/types"
|
|
8
10
|
|
|
9
11
|
const DEFAULT_USERNAME = "Budibase Automate"
|
|
@@ -15,26 +17,26 @@ export const definition: AutomationStepSchema = {
|
|
|
15
17
|
description: "Send a message to a Discord server",
|
|
16
18
|
icon: "ri-discord-line",
|
|
17
19
|
stepId: AutomationActionStepId.discord,
|
|
18
|
-
type:
|
|
20
|
+
type: AutomationStepType.ACTION,
|
|
19
21
|
internal: false,
|
|
20
22
|
inputs: {},
|
|
21
23
|
schema: {
|
|
22
24
|
inputs: {
|
|
23
25
|
properties: {
|
|
24
26
|
url: {
|
|
25
|
-
type:
|
|
27
|
+
type: AutomationIOType.STRING,
|
|
26
28
|
title: "Discord Webhook URL",
|
|
27
29
|
},
|
|
28
30
|
username: {
|
|
29
|
-
type:
|
|
31
|
+
type: AutomationIOType.STRING,
|
|
30
32
|
title: "Bot Name",
|
|
31
33
|
},
|
|
32
34
|
avatar_url: {
|
|
33
|
-
type:
|
|
35
|
+
type: AutomationIOType.STRING,
|
|
34
36
|
title: "Bot Avatar URL",
|
|
35
37
|
},
|
|
36
38
|
content: {
|
|
37
|
-
type:
|
|
39
|
+
type: AutomationIOType.STRING,
|
|
38
40
|
title: "Message",
|
|
39
41
|
},
|
|
40
42
|
},
|
|
@@ -43,15 +45,15 @@ export const definition: AutomationStepSchema = {
|
|
|
43
45
|
outputs: {
|
|
44
46
|
properties: {
|
|
45
47
|
httpStatus: {
|
|
46
|
-
type:
|
|
48
|
+
type: AutomationIOType.NUMBER,
|
|
47
49
|
description: "The HTTP status code of the request",
|
|
48
50
|
},
|
|
49
51
|
response: {
|
|
50
|
-
type:
|
|
52
|
+
type: AutomationIOType.STRING,
|
|
51
53
|
description: "The response from the Discord Webhook",
|
|
52
54
|
},
|
|
53
55
|
success: {
|
|
54
|
-
type:
|
|
56
|
+
type: AutomationIOType.BOOLEAN,
|
|
55
57
|
description: "Whether the message sent successfully",
|
|
56
58
|
},
|
|
57
59
|
},
|
|
@@ -3,8 +3,11 @@ import { buildCtx } from "./utils"
|
|
|
3
3
|
import * as automationUtils from "../automationUtils"
|
|
4
4
|
import {
|
|
5
5
|
AutomationActionStepId,
|
|
6
|
-
|
|
6
|
+
AutomationCustomIOType,
|
|
7
|
+
AutomationIOType,
|
|
7
8
|
AutomationStepInput,
|
|
9
|
+
AutomationStepSchema,
|
|
10
|
+
AutomationStepType,
|
|
8
11
|
} from "@budibase/types"
|
|
9
12
|
|
|
10
13
|
export const definition: AutomationStepSchema = {
|
|
@@ -12,7 +15,7 @@ export const definition: AutomationStepSchema = {
|
|
|
12
15
|
tagline: "Execute Data Connector",
|
|
13
16
|
icon: "Data",
|
|
14
17
|
description: "Execute a query in an external data connector",
|
|
15
|
-
type:
|
|
18
|
+
type: AutomationStepType.ACTION,
|
|
16
19
|
stepId: AutomationActionStepId.EXECUTE_QUERY,
|
|
17
20
|
internal: true,
|
|
18
21
|
inputs: {},
|
|
@@ -20,14 +23,14 @@ export const definition: AutomationStepSchema = {
|
|
|
20
23
|
inputs: {
|
|
21
24
|
properties: {
|
|
22
25
|
query: {
|
|
23
|
-
type:
|
|
26
|
+
type: AutomationIOType.OBJECT,
|
|
24
27
|
properties: {
|
|
25
28
|
queryId: {
|
|
26
|
-
type:
|
|
27
|
-
customType:
|
|
29
|
+
type: AutomationIOType.STRING,
|
|
30
|
+
customType: AutomationCustomIOType.QUERY,
|
|
28
31
|
},
|
|
29
32
|
},
|
|
30
|
-
customType:
|
|
33
|
+
customType: AutomationCustomIOType.QUERY_PARAMS,
|
|
31
34
|
title: "Parameters",
|
|
32
35
|
required: ["queryId"],
|
|
33
36
|
},
|
|
@@ -37,21 +40,21 @@ export const definition: AutomationStepSchema = {
|
|
|
37
40
|
outputs: {
|
|
38
41
|
properties: {
|
|
39
42
|
response: {
|
|
40
|
-
type:
|
|
43
|
+
type: AutomationIOType.OBJECT,
|
|
41
44
|
description: "The response from the datasource execution",
|
|
42
45
|
},
|
|
43
46
|
info: {
|
|
44
|
-
type:
|
|
47
|
+
type: AutomationIOType.OBJECT,
|
|
45
48
|
description:
|
|
46
49
|
"Some query types may return extra data, like headers from a REST query",
|
|
47
50
|
},
|
|
48
51
|
success: {
|
|
49
|
-
type:
|
|
52
|
+
type: AutomationIOType.BOOLEAN,
|
|
50
53
|
description: "Whether the action was successful",
|
|
51
54
|
},
|
|
52
55
|
},
|
|
56
|
+
required: ["response", "success"],
|
|
53
57
|
},
|
|
54
|
-
required: ["response", "success"],
|
|
55
58
|
},
|
|
56
59
|
}
|
|
57
60
|
|
|
@@ -3,8 +3,11 @@ import { buildCtx } from "./utils"
|
|
|
3
3
|
import * as automationUtils from "../automationUtils"
|
|
4
4
|
import {
|
|
5
5
|
AutomationActionStepId,
|
|
6
|
-
|
|
6
|
+
AutomationCustomIOType,
|
|
7
|
+
AutomationIOType,
|
|
7
8
|
AutomationStepInput,
|
|
9
|
+
AutomationStepSchema,
|
|
10
|
+
AutomationStepType,
|
|
8
11
|
} from "@budibase/types"
|
|
9
12
|
|
|
10
13
|
export const definition: AutomationStepSchema = {
|
|
@@ -12,7 +15,7 @@ export const definition: AutomationStepSchema = {
|
|
|
12
15
|
tagline: "Execute JavaScript Code",
|
|
13
16
|
icon: "Code",
|
|
14
17
|
description: "Run a piece of JavaScript code in your automation",
|
|
15
|
-
type:
|
|
18
|
+
type: AutomationStepType.ACTION,
|
|
16
19
|
internal: true,
|
|
17
20
|
stepId: AutomationActionStepId.EXECUTE_SCRIPT,
|
|
18
21
|
inputs: {},
|
|
@@ -20,8 +23,8 @@ export const definition: AutomationStepSchema = {
|
|
|
20
23
|
inputs: {
|
|
21
24
|
properties: {
|
|
22
25
|
code: {
|
|
23
|
-
type:
|
|
24
|
-
customType:
|
|
26
|
+
type: AutomationIOType.STRING,
|
|
27
|
+
customType: AutomationCustomIOType.CODE,
|
|
25
28
|
title: "Code",
|
|
26
29
|
},
|
|
27
30
|
},
|
|
@@ -30,16 +33,16 @@ export const definition: AutomationStepSchema = {
|
|
|
30
33
|
outputs: {
|
|
31
34
|
properties: {
|
|
32
35
|
value: {
|
|
33
|
-
type:
|
|
36
|
+
type: AutomationIOType.STRING,
|
|
34
37
|
description: "The result of the return statement",
|
|
35
38
|
},
|
|
36
39
|
success: {
|
|
37
|
-
type:
|
|
40
|
+
type: AutomationIOType.BOOLEAN,
|
|
38
41
|
description: "Whether the action was successful",
|
|
39
42
|
},
|
|
40
43
|
},
|
|
44
|
+
required: ["success"],
|
|
41
45
|
},
|
|
42
|
-
required: ["success"],
|
|
43
46
|
},
|
|
44
47
|
}
|
|
45
48
|
|
|
@@ -2,6 +2,8 @@ import {
|
|
|
2
2
|
AutomationActionStepId,
|
|
3
3
|
AutomationStepSchema,
|
|
4
4
|
AutomationStepInput,
|
|
5
|
+
AutomationStepType,
|
|
6
|
+
AutomationIOType,
|
|
5
7
|
} from "@budibase/types"
|
|
6
8
|
|
|
7
9
|
export const FilterConditions = {
|
|
@@ -24,7 +26,7 @@ export const definition: AutomationStepSchema = {
|
|
|
24
26
|
icon: "Branch2",
|
|
25
27
|
description:
|
|
26
28
|
"Conditionally halt automations which do not meet certain conditions",
|
|
27
|
-
type:
|
|
29
|
+
type: AutomationStepType.LOGIC,
|
|
28
30
|
internal: true,
|
|
29
31
|
stepId: AutomationActionStepId.FILTER,
|
|
30
32
|
inputs: {
|
|
@@ -34,17 +36,17 @@ export const definition: AutomationStepSchema = {
|
|
|
34
36
|
inputs: {
|
|
35
37
|
properties: {
|
|
36
38
|
field: {
|
|
37
|
-
type:
|
|
39
|
+
type: AutomationIOType.STRING,
|
|
38
40
|
title: "Reference Value",
|
|
39
41
|
},
|
|
40
42
|
condition: {
|
|
41
|
-
type:
|
|
43
|
+
type: AutomationIOType.STRING,
|
|
42
44
|
title: "Condition",
|
|
43
45
|
enum: Object.values(FilterConditions),
|
|
44
46
|
pretty: Object.values(PrettyFilterConditions),
|
|
45
47
|
},
|
|
46
48
|
value: {
|
|
47
|
-
type:
|
|
49
|
+
type: AutomationIOType.STRING,
|
|
48
50
|
title: "Comparison Value",
|
|
49
51
|
},
|
|
50
52
|
},
|
|
@@ -53,11 +55,11 @@ export const definition: AutomationStepSchema = {
|
|
|
53
55
|
outputs: {
|
|
54
56
|
properties: {
|
|
55
57
|
success: {
|
|
56
|
-
type:
|
|
58
|
+
type: AutomationIOType.BOOLEAN,
|
|
57
59
|
description: "Whether the action was successful",
|
|
58
60
|
},
|
|
59
61
|
result: {
|
|
60
|
-
type:
|
|
62
|
+
type: AutomationIOType.BOOLEAN,
|
|
61
63
|
description: "Whether the logic block passed",
|
|
62
64
|
},
|
|
63
65
|
},
|