@budibase/server 2.6.17 → 2.6.19-alpha.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.
- package/builder/assets/{index.86c992bf.css → index.07382a47.css} +2 -2
- package/builder/assets/{index.a40dcadd.js → index.b9eeb2a8.js} +307 -315
- package/builder/index.html +2 -2
- package/dist/api/controllers/datasource.js +70 -39
- package/dist/api/controllers/integration.js +2 -2
- package/dist/api/routes/datasource.js +1 -0
- package/dist/automations/steps/make.js +19 -5
- package/dist/automations/steps/zapier.js +19 -6
- package/dist/automations/utils.js +13 -7
- package/dist/db/dynamoClient.js +1 -1
- package/dist/integrations/airtable.js +28 -2
- package/dist/integrations/arangodb.js +19 -3
- package/dist/integrations/couchdb.js +16 -1
- package/dist/integrations/dynamodb.js +16 -0
- package/dist/integrations/elasticsearch.js +15 -0
- package/dist/integrations/firebase.js +15 -0
- package/dist/integrations/googlesheets.js +30 -1
- package/dist/integrations/index.js +5 -2
- package/dist/integrations/microsoftSqlServer.js +16 -0
- package/dist/integrations/mongodb.js +16 -0
- package/dist/integrations/mysql.js +21 -5
- package/dist/integrations/oracle.js +29 -0
- package/dist/integrations/postgres.js +26 -7
- package/dist/integrations/redis.js +20 -1
- package/dist/integrations/s3.js +23 -4
- package/dist/integrations/snowflake.js +15 -0
- package/dist/migrations/functions/backfill/app/queries.js +1 -2
- package/dist/sdk/app/datasources/datasources.js +10 -3
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/jest.config.ts +3 -3
- package/nodemon.json +7 -3
- package/package.json +10 -9
- package/src/api/controllers/datasource.ts +88 -49
- package/src/api/controllers/integration.ts +3 -3
- package/src/api/routes/datasource.ts +5 -0
- package/src/automations/steps/make.ts +18 -1
- package/src/automations/steps/zapier.ts +18 -1
- package/src/automations/tests/make.spec.ts +54 -0
- package/src/automations/tests/zapier.spec.ts +56 -0
- package/src/automations/utils.ts +13 -7
- package/src/db/dynamoClient.ts +1 -1
- package/src/integration-test/postgres.spec.ts +0 -1
- package/src/integrations/airtable.ts +31 -4
- package/src/integrations/arangodb.ts +18 -2
- package/src/integrations/couchdb.ts +18 -4
- package/src/integrations/dynamodb.ts +34 -5
- package/src/integrations/elasticsearch.ts +16 -1
- package/src/integrations/firebase.ts +15 -0
- package/src/integrations/googlesheets.ts +31 -2
- package/src/integrations/index.ts +12 -7
- package/src/integrations/microsoftSqlServer.ts +16 -0
- package/src/integrations/mongodb.ts +16 -0
- package/src/integrations/mysql.ts +27 -16
- package/src/integrations/oracle.ts +28 -6
- package/src/integrations/postgres.ts +21 -3
- package/src/integrations/redis.ts +26 -3
- package/src/integrations/s3.ts +19 -3
- package/src/integrations/snowflake.ts +20 -1
- package/src/migrations/functions/backfill/app/queries.ts +1 -1
- package/src/sdk/app/datasources/datasources.ts +7 -1
- package/tsconfig.json +1 -1
- package/src/automations/tests/zapier.spec.js +0 -27
package/src/integrations/s3.ts
CHANGED
|
@@ -3,10 +3,12 @@ import {
|
|
|
3
3
|
QueryType,
|
|
4
4
|
IntegrationBase,
|
|
5
5
|
DatasourceFieldType,
|
|
6
|
+
DatasourceFeature,
|
|
7
|
+
ConnectionInfo,
|
|
6
8
|
} from "@budibase/types"
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
import AWS from "aws-sdk"
|
|
11
|
+
import csv from "csvtojson"
|
|
10
12
|
|
|
11
13
|
interface S3Config {
|
|
12
14
|
region: string
|
|
@@ -22,6 +24,7 @@ const SCHEMA: Integration = {
|
|
|
22
24
|
"Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance.",
|
|
23
25
|
friendlyName: "Amazon S3",
|
|
24
26
|
type: "Object store",
|
|
27
|
+
features: [DatasourceFeature.CONNECTION_CHECKING],
|
|
25
28
|
datasource: {
|
|
26
29
|
region: {
|
|
27
30
|
type: "string",
|
|
@@ -152,7 +155,7 @@ const SCHEMA: Integration = {
|
|
|
152
155
|
|
|
153
156
|
class S3Integration implements IntegrationBase {
|
|
154
157
|
private readonly config: S3Config
|
|
155
|
-
private client
|
|
158
|
+
private client
|
|
156
159
|
|
|
157
160
|
constructor(config: S3Config) {
|
|
158
161
|
this.config = config
|
|
@@ -165,6 +168,19 @@ class S3Integration implements IntegrationBase {
|
|
|
165
168
|
this.client = new AWS.S3(this.config)
|
|
166
169
|
}
|
|
167
170
|
|
|
171
|
+
async testConnection() {
|
|
172
|
+
const response: ConnectionInfo = {
|
|
173
|
+
connected: false,
|
|
174
|
+
}
|
|
175
|
+
try {
|
|
176
|
+
await this.client.listBuckets().promise()
|
|
177
|
+
response.connected = true
|
|
178
|
+
} catch (e: any) {
|
|
179
|
+
response.error = e.message as string
|
|
180
|
+
}
|
|
181
|
+
return response
|
|
182
|
+
}
|
|
183
|
+
|
|
168
184
|
async create(query: {
|
|
169
185
|
bucket: string
|
|
170
186
|
location: string
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
ConnectionInfo,
|
|
3
|
+
DatasourceFeature,
|
|
4
|
+
Integration,
|
|
5
|
+
QueryType,
|
|
6
|
+
SqlQuery,
|
|
7
|
+
} from "@budibase/types"
|
|
2
8
|
import { Snowflake } from "snowflake-promise"
|
|
3
9
|
|
|
4
10
|
interface SnowflakeConfig {
|
|
@@ -16,6 +22,7 @@ const SCHEMA: Integration = {
|
|
|
16
22
|
"Snowflake is a solution for data warehousing, data lakes, data engineering, data science, data application development, and securely sharing and consuming shared data.",
|
|
17
23
|
friendlyName: "Snowflake",
|
|
18
24
|
type: "Relational",
|
|
25
|
+
features: [DatasourceFeature.CONNECTION_CHECKING],
|
|
19
26
|
datasource: {
|
|
20
27
|
account: {
|
|
21
28
|
type: "string",
|
|
@@ -65,6 +72,18 @@ class SnowflakeIntegration {
|
|
|
65
72
|
this.client = new Snowflake(config)
|
|
66
73
|
}
|
|
67
74
|
|
|
75
|
+
async testConnection(): Promise<ConnectionInfo> {
|
|
76
|
+
try {
|
|
77
|
+
await this.client.connect()
|
|
78
|
+
return { connected: true }
|
|
79
|
+
} catch (e: any) {
|
|
80
|
+
return {
|
|
81
|
+
connected: false,
|
|
82
|
+
error: e.message as string,
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
68
87
|
async internalQuery(query: SqlQuery) {
|
|
69
88
|
await this.client.connect()
|
|
70
89
|
try {
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
import { cloneDeep } from "lodash/fp"
|
|
14
14
|
import { getEnvironmentVariables } from "../../utils"
|
|
15
15
|
import { getDefinitions, getDefinition } from "../../../integrations"
|
|
16
|
+
import _ from "lodash"
|
|
16
17
|
|
|
17
18
|
const ENV_VAR_PREFIX = "env."
|
|
18
19
|
|
|
@@ -41,7 +42,7 @@ async function enrichDatasourceWithValues(datasource: Datasource) {
|
|
|
41
42
|
{ onlyFound: true }
|
|
42
43
|
) as Datasource
|
|
43
44
|
const definition = await getDefinition(processed.source)
|
|
44
|
-
processed.config = checkDatasourceTypes(definition
|
|
45
|
+
processed.config = checkDatasourceTypes(definition!, processed.config)
|
|
45
46
|
return {
|
|
46
47
|
datasource: processed,
|
|
47
48
|
envVars: env as Record<string, string>,
|
|
@@ -147,6 +148,11 @@ export function mergeConfigs(update: Datasource, old: Datasource) {
|
|
|
147
148
|
}
|
|
148
149
|
}
|
|
149
150
|
}
|
|
151
|
+
|
|
152
|
+
if (old.config?.auth) {
|
|
153
|
+
update.config = _.merge(old.config, update.config)
|
|
154
|
+
}
|
|
155
|
+
|
|
150
156
|
// update back to actual passwords for everything else
|
|
151
157
|
for (let [key, value] of Object.entries(update.config)) {
|
|
152
158
|
if (value !== PASSWORD_REPLACEMENT) {
|
package/tsconfig.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"@budibase/backend-core": ["../backend-core/src"],
|
|
12
12
|
"@budibase/backend-core/*": ["../backend-core/*"],
|
|
13
13
|
"@budibase/shared-core": ["../shared-core/src"],
|
|
14
|
-
"@budibase/pro": ["
|
|
14
|
+
"@budibase/pro": ["../pro/packages/pro/src"]
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"ts-node": {
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
const setup = require("./utilities")
|
|
2
|
-
const fetch = require("node-fetch")
|
|
3
|
-
|
|
4
|
-
jest.mock("node-fetch")
|
|
5
|
-
|
|
6
|
-
describe("test the outgoing webhook action", () => {
|
|
7
|
-
let inputs
|
|
8
|
-
let config = setup.getConfig()
|
|
9
|
-
|
|
10
|
-
beforeAll(async () => {
|
|
11
|
-
await config.init()
|
|
12
|
-
inputs = {
|
|
13
|
-
value1: "test",
|
|
14
|
-
url: "http://www.test.com",
|
|
15
|
-
}
|
|
16
|
-
})
|
|
17
|
-
|
|
18
|
-
afterAll(setup.afterAll)
|
|
19
|
-
|
|
20
|
-
it("should be able to run the action", async () => {
|
|
21
|
-
const res = await setup.runStep(setup.actions.zapier.stepId, inputs)
|
|
22
|
-
expect(res.response.url).toEqual("http://www.test.com")
|
|
23
|
-
expect(res.response.method).toEqual("post")
|
|
24
|
-
expect(res.success).toEqual(true)
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
})
|