@budibase/server 1.0.207-alpha.1 → 1.0.207-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.
- package/builder/assets/{index.e3814251.js → index.b382c9f1.js} +159 -161
- package/builder/assets/{index.c6df2367.css → index.c6912819.css} +1 -1
- package/builder/index.html +2 -2
- package/coverage/clover.xml +35 -27
- package/coverage/coverage-final.json +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +55 -10
- package/coverage/lcov-report/api/controllers/row/index.html +14 -14
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/utils/index.html +1 -1
- package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +14 -14
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +1 -1
- package/coverage/lcov-report/threads/query.js.html +1 -1
- package/coverage/lcov-report/threads/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +1 -1
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/coverage/lcov.info +48 -36
- package/dist/api/controllers/row/external.js +17 -3
- package/dist/integrations/airtable.js +1 -0
- package/dist/integrations/arangodb.js +1 -0
- package/dist/integrations/base/sql.js +20 -3
- package/dist/integrations/couchdb.js +1 -0
- package/dist/integrations/dynamodb.js +1 -0
- package/dist/integrations/elasticsearch.js +1 -0
- package/dist/integrations/firebase.js +1 -0
- package/dist/integrations/googlesheets.js +1 -0
- package/dist/integrations/microsoftSqlServer.js +2 -1
- package/dist/integrations/mongodb.js +1 -0
- package/dist/integrations/mysql.js +2 -1
- package/dist/integrations/oracle.js +1 -0
- package/dist/integrations/postgres.js +2 -1
- package/dist/integrations/redis.js +1 -0
- package/dist/integrations/rest.js +1 -0
- package/dist/integrations/s3.js +1 -0
- package/dist/integrations/snowflake.js +1 -0
- package/dist/package.json +7 -6
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +8 -7
- package/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip +0 -0
- package/scripts/integrations/oracle/instantclient/linux/arm64/install.sh +23 -0
- package/scripts/integrations/oracle/instantclient/linux/install.sh +10 -0
- package/src/api/controllers/row/external.js +18 -3
- package/src/definitions/common.ts +1 -0
- package/src/definitions/datasource.ts +1 -0
- package/src/integrations/airtable.ts +1 -0
- package/src/integrations/arangodb.ts +1 -0
- package/src/integrations/base/sql.ts +25 -11
- package/src/integrations/couchdb.ts +1 -0
- package/src/integrations/dynamodb.ts +1 -0
- package/src/integrations/elasticsearch.ts +1 -0
- package/src/integrations/firebase.ts +1 -0
- package/src/integrations/googlesheets.ts +1 -0
- package/src/integrations/microsoftSqlServer.ts +2 -0
- package/src/integrations/mongodb.ts +1 -0
- package/src/integrations/mysql.ts +2 -0
- package/src/integrations/oracle.ts +1 -0
- package/src/integrations/postgres.ts +2 -0
- package/src/integrations/redis.ts +1 -0
- package/src/integrations/rest.ts +1 -0
- package/src/integrations/s3.ts +1 -0
- package/src/integrations/snowflake.ts +1 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "1.0.207-alpha.
|
|
4
|
+
"version": "1.0.207-alpha.10",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
@@ -77,10 +77,11 @@
|
|
|
77
77
|
"license": "GPL-3.0",
|
|
78
78
|
"dependencies": {
|
|
79
79
|
"@apidevtools/swagger-parser": "10.0.3",
|
|
80
|
-
"@budibase/backend-core": "^1.0.207-alpha.
|
|
81
|
-
"@budibase/client": "^1.0.207-alpha.
|
|
82
|
-
"@budibase/pro": "1.0.207-alpha.
|
|
83
|
-
"@budibase/string-templates": "^1.0.207-alpha.
|
|
80
|
+
"@budibase/backend-core": "^1.0.207-alpha.10",
|
|
81
|
+
"@budibase/client": "^1.0.207-alpha.10",
|
|
82
|
+
"@budibase/pro": "1.0.207-alpha.9",
|
|
83
|
+
"@budibase/string-templates": "^1.0.207-alpha.10",
|
|
84
|
+
"@budibase/types": "^1.0.207-alpha.10",
|
|
84
85
|
"@bull-board/api": "3.7.0",
|
|
85
86
|
"@bull-board/koa": "3.9.4",
|
|
86
87
|
"@elastic/elasticsearch": "7.10.0",
|
|
@@ -151,7 +152,7 @@
|
|
|
151
152
|
"@babel/core": "7.17.4",
|
|
152
153
|
"@babel/preset-env": "7.16.11",
|
|
153
154
|
"@budibase/standard-components": "^0.9.139",
|
|
154
|
-
"@budibase/types": "^1.0.207-alpha.
|
|
155
|
+
"@budibase/types": "^1.0.207-alpha.3",
|
|
155
156
|
"@jest/test-sequencer": "24.9.0",
|
|
156
157
|
"@types/apidoc": "0.50.0",
|
|
157
158
|
"@types/bson": "4.2.0",
|
|
@@ -195,5 +196,5 @@
|
|
|
195
196
|
"optionalDependencies": {
|
|
196
197
|
"oracledb": "5.3.0"
|
|
197
198
|
},
|
|
198
|
-
"gitHead": "
|
|
199
|
+
"gitHead": "490c83d2bca02216d02bfddc217bb2f13aa8cdd6"
|
|
199
200
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Must be root to continue
|
|
4
|
+
if [[ $(id -u) -ne 0 ]] ; then echo "Please run as root" ; exit 1 ; fi
|
|
5
|
+
|
|
6
|
+
# Allow for re-runs
|
|
7
|
+
rm -rf /opt/oracle
|
|
8
|
+
|
|
9
|
+
echo "Installing oracle instant client"
|
|
10
|
+
|
|
11
|
+
# copy and unzip package
|
|
12
|
+
mkdir -p /opt/oracle
|
|
13
|
+
cp scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip /opt/oracle
|
|
14
|
+
cd /opt/oracle
|
|
15
|
+
unzip -qq basiclite-19.10.zip -d .
|
|
16
|
+
rm *.zip
|
|
17
|
+
mv instantclient* instantclient
|
|
18
|
+
|
|
19
|
+
# update runtime link path
|
|
20
|
+
sh -c "echo /opt/oracle/instantclient > /etc/ld.so.conf.d/oracle-instantclient.conf"
|
|
21
|
+
ldconfig /etc/ld.so.conf.d
|
|
22
|
+
|
|
23
|
+
echo "Installation complete"
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]:-$0}"; )" &> /dev/null && pwd 2> /dev/null; )"
|
|
3
|
+
if [[ $TARGETARCH == arm* ]] ;
|
|
4
|
+
then
|
|
5
|
+
echo "Installing ARM Oracle instant client..."
|
|
6
|
+
$SCRIPT_DIR/arm64/install.sh
|
|
7
|
+
else
|
|
8
|
+
echo "Installing x86-64 Oracle instant client..."
|
|
9
|
+
$SCRIPT_DIR/x86-64/install.sh
|
|
10
|
+
fi
|
|
@@ -157,7 +157,8 @@ exports.validate = async () => {
|
|
|
157
157
|
exports.exportRows = async ctx => {
|
|
158
158
|
const { datasourceId } = breakExternalTableId(ctx.params.tableId)
|
|
159
159
|
const db = getAppDB()
|
|
160
|
-
|
|
160
|
+
const format = ctx.query.format
|
|
161
|
+
const { columns } = ctx.request.body
|
|
161
162
|
const datasource = await db.get(datasourceId)
|
|
162
163
|
if (!datasource || !datasource.entities) {
|
|
163
164
|
ctx.throw(400, "Datasource has not been configured for plus API.")
|
|
@@ -171,13 +172,27 @@ exports.exportRows = async ctx => {
|
|
|
171
172
|
}
|
|
172
173
|
|
|
173
174
|
let result = await exports.search(ctx)
|
|
174
|
-
let
|
|
175
|
+
let rows = []
|
|
176
|
+
|
|
177
|
+
// Filter data to only specified columns if required
|
|
178
|
+
if (columns && columns.length) {
|
|
179
|
+
for (let i = 0; i < result.rows.length; i++) {
|
|
180
|
+
rows[i] = {}
|
|
181
|
+
for (let column of columns) {
|
|
182
|
+
rows[i][column] = result.rows[i][column]
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
} else {
|
|
186
|
+
rows = result.rows
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
let headers = Object.keys(rows[0])
|
|
175
190
|
const exporter = exporters[format]
|
|
176
191
|
const filename = `export.${format}`
|
|
177
192
|
|
|
178
193
|
// send down the file
|
|
179
194
|
ctx.attachment(filename)
|
|
180
|
-
return apiFileReturn(exporter(headers,
|
|
195
|
+
return apiFileReturn(exporter(headers, rows))
|
|
181
196
|
}
|
|
182
197
|
|
|
183
198
|
exports.fetchEnrichedRow = async ctx => {
|
|
@@ -18,6 +18,7 @@ module AirtableModule {
|
|
|
18
18
|
description:
|
|
19
19
|
"Airtable is a spreadsheet-database hybrid, with the features of a database but applied to a spreadsheet.",
|
|
20
20
|
friendlyName: "Airtable",
|
|
21
|
+
type: "Spreadsheet",
|
|
21
22
|
datasource: {
|
|
22
23
|
apiKey: {
|
|
23
24
|
type: DatasourceFieldTypes.PASSWORD,
|
|
@@ -19,6 +19,7 @@ module ArangoModule {
|
|
|
19
19
|
const SCHEMA: Integration = {
|
|
20
20
|
docs: "https://github.com/arangodb/arangojs",
|
|
21
21
|
friendlyName: "ArangoDB",
|
|
22
|
+
type: "Non-relational",
|
|
22
23
|
description:
|
|
23
24
|
"ArangoDB is a scalable open-source multi-model database natively supporting graph, document and search. All supported data models & access patterns can be combined in queries allowing for maximal flexibility. ",
|
|
24
25
|
datasource: {
|
|
@@ -89,6 +89,28 @@ function parseFilters(filters: SearchFilters | undefined): SearchFilters {
|
|
|
89
89
|
return filters
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
+
function generateSelectStatement(
|
|
93
|
+
json: QueryJson,
|
|
94
|
+
knex: Knex
|
|
95
|
+
): (string | Knex.Raw)[] {
|
|
96
|
+
const { resource, meta } = json
|
|
97
|
+
const schema = meta?.table?.schema
|
|
98
|
+
return resource.fields.map(field => {
|
|
99
|
+
const fieldNames = field.split(/\./g)
|
|
100
|
+
const tableName = fieldNames[0]
|
|
101
|
+
const columnName = fieldNames[1]
|
|
102
|
+
if (columnName && knex.client.config.client === SqlClients.POSTGRES) {
|
|
103
|
+
const externalType = schema?.[columnName].externalType
|
|
104
|
+
if (externalType?.includes("money")) {
|
|
105
|
+
return knex.raw(
|
|
106
|
+
`"${tableName}"."${columnName}"::money::numeric as "${field}"`
|
|
107
|
+
)
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return `${field} as ${field}`
|
|
111
|
+
})
|
|
112
|
+
}
|
|
113
|
+
|
|
92
114
|
class InternalBuilder {
|
|
93
115
|
private readonly client: string
|
|
94
116
|
|
|
@@ -216,9 +238,7 @@ class InternalBuilder {
|
|
|
216
238
|
}
|
|
217
239
|
|
|
218
240
|
addRelationships(
|
|
219
|
-
knex: Knex,
|
|
220
241
|
query: KnexQuery,
|
|
221
|
-
fields: string | string[],
|
|
222
242
|
fromTable: string,
|
|
223
243
|
relationships: RelationshipsJson[] | undefined
|
|
224
244
|
): KnexQuery {
|
|
@@ -323,12 +343,12 @@ class InternalBuilder {
|
|
|
323
343
|
if (!resource) {
|
|
324
344
|
resource = { fields: [] }
|
|
325
345
|
}
|
|
326
|
-
let selectStatement: string | string[] = "*"
|
|
346
|
+
let selectStatement: string | (string | Knex.Raw)[] = "*"
|
|
327
347
|
// handle select
|
|
328
348
|
if (resource.fields && resource.fields.length > 0) {
|
|
329
349
|
// select the resources as the format "table.columnName" - this is what is provided
|
|
330
350
|
// by the resource builder further up
|
|
331
|
-
selectStatement =
|
|
351
|
+
selectStatement = generateSelectStatement(json, knex)
|
|
332
352
|
}
|
|
333
353
|
let foundLimit = limit || BASE_LIMIT
|
|
334
354
|
// handle pagination
|
|
@@ -363,13 +383,7 @@ class InternalBuilder {
|
|
|
363
383
|
preQuery = this.addSorting(preQuery, json)
|
|
364
384
|
}
|
|
365
385
|
// handle joins
|
|
366
|
-
query = this.addRelationships(
|
|
367
|
-
knex,
|
|
368
|
-
preQuery,
|
|
369
|
-
selectStatement,
|
|
370
|
-
tableName,
|
|
371
|
-
relationships
|
|
372
|
-
)
|
|
386
|
+
query = this.addRelationships(preQuery, tableName, relationships)
|
|
373
387
|
return this.addFilters(query, filters, { relationship: true })
|
|
374
388
|
}
|
|
375
389
|
|
|
@@ -16,6 +16,7 @@ module CouchDBModule {
|
|
|
16
16
|
const SCHEMA: Integration = {
|
|
17
17
|
docs: "https://docs.couchdb.org/en/stable/",
|
|
18
18
|
friendlyName: "CouchDB",
|
|
19
|
+
type: "Non-relational",
|
|
19
20
|
description:
|
|
20
21
|
"Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang.",
|
|
21
22
|
datasource: {
|
|
@@ -21,6 +21,7 @@ module DynamoModule {
|
|
|
21
21
|
description:
|
|
22
22
|
"Amazon DynamoDB is a key-value and document database that delivers single-digit millisecond performance at any scale.",
|
|
23
23
|
friendlyName: "DynamoDB",
|
|
24
|
+
type: "Non-relational",
|
|
24
25
|
datasource: {
|
|
25
26
|
region: {
|
|
26
27
|
type: DatasourceFieldTypes.STRING,
|
|
@@ -17,6 +17,7 @@ module ElasticsearchModule {
|
|
|
17
17
|
description:
|
|
18
18
|
"Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.",
|
|
19
19
|
friendlyName: "ElasticSearch",
|
|
20
|
+
type: "Non-relational",
|
|
20
21
|
datasource: {
|
|
21
22
|
url: {
|
|
22
23
|
type: DatasourceFieldTypes.STRING,
|
|
@@ -16,6 +16,7 @@ module Firebase {
|
|
|
16
16
|
const SCHEMA: Integration = {
|
|
17
17
|
docs: "https://firebase.google.com/docs/firestore/quickstart",
|
|
18
18
|
friendlyName: "Firestore",
|
|
19
|
+
type: "Non-relational",
|
|
19
20
|
description:
|
|
20
21
|
"Cloud Firestore is a flexible, scalable database for mobile, web, and server development from Firebase and Google Cloud.",
|
|
21
22
|
datasource: {
|
|
@@ -44,6 +44,7 @@ module MSSQLModule {
|
|
|
44
44
|
description:
|
|
45
45
|
"Microsoft SQL Server is a relational database management system developed by Microsoft. ",
|
|
46
46
|
friendlyName: "MS SQL Server",
|
|
47
|
+
type: "Relational",
|
|
47
48
|
datasource: {
|
|
48
49
|
user: {
|
|
49
50
|
type: DatasourceFieldTypes.STRING,
|
|
@@ -246,6 +247,7 @@ module MSSQLModule {
|
|
|
246
247
|
autocolumn: !!autoColumns.find((col: string) => col === name),
|
|
247
248
|
name: name,
|
|
248
249
|
...convertSqlType(def.DATA_TYPE),
|
|
250
|
+
externalType: def.DATA_TYPE,
|
|
249
251
|
}
|
|
250
252
|
}
|
|
251
253
|
tables[tableName] = {
|
|
@@ -24,6 +24,7 @@ module MongoDBModule {
|
|
|
24
24
|
const SCHEMA: Integration = {
|
|
25
25
|
docs: "https://github.com/mongodb/node-mongodb-native",
|
|
26
26
|
friendlyName: "MongoDB",
|
|
27
|
+
type: "Non-relational",
|
|
27
28
|
description:
|
|
28
29
|
"MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era.",
|
|
29
30
|
datasource: {
|
|
@@ -36,6 +36,7 @@ module MySQLModule {
|
|
|
36
36
|
docs: "https://github.com/sidorares/node-mysql2",
|
|
37
37
|
plus: true,
|
|
38
38
|
friendlyName: "MySQL",
|
|
39
|
+
type: "Relational",
|
|
39
40
|
description:
|
|
40
41
|
"MySQL Database Service is a fully managed database service to deploy cloud-native applications. ",
|
|
41
42
|
datasource: {
|
|
@@ -232,6 +233,7 @@ module MySQLModule {
|
|
|
232
233
|
autocolumn: isAuto,
|
|
233
234
|
constraints,
|
|
234
235
|
...convertSqlType(column.Type),
|
|
236
|
+
externalType: column.Type,
|
|
235
237
|
}
|
|
236
238
|
}
|
|
237
239
|
if (!tables[tableName]) {
|
|
@@ -40,6 +40,7 @@ module OracleModule {
|
|
|
40
40
|
docs: "https://github.com/oracle/node-oracledb",
|
|
41
41
|
plus: true,
|
|
42
42
|
friendlyName: "Oracle",
|
|
43
|
+
type: "Relational",
|
|
43
44
|
description:
|
|
44
45
|
"Oracle Database is an object-relational database management system developed by Oracle Corporation",
|
|
45
46
|
datasource: {
|
|
@@ -47,6 +47,7 @@ module PostgresModule {
|
|
|
47
47
|
docs: "https://node-postgres.com",
|
|
48
48
|
plus: true,
|
|
49
49
|
friendlyName: "PostgreSQL",
|
|
50
|
+
type: "Relational",
|
|
50
51
|
description:
|
|
51
52
|
"PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance.",
|
|
52
53
|
datasource: {
|
|
@@ -271,6 +272,7 @@ module PostgresModule {
|
|
|
271
272
|
autocolumn: isAuto,
|
|
272
273
|
name: columnName,
|
|
273
274
|
...convertSqlType(column.data_type),
|
|
275
|
+
externalType: column.data_type,
|
|
274
276
|
}
|
|
275
277
|
}
|
|
276
278
|
|
package/src/integrations/rest.ts
CHANGED
|
@@ -64,6 +64,7 @@ module RestModule {
|
|
|
64
64
|
description:
|
|
65
65
|
"With the REST API datasource, you can connect, query and pull data from multiple REST APIs. You can then use the retrieved data to build apps.",
|
|
66
66
|
friendlyName: "REST API",
|
|
67
|
+
type: "API",
|
|
67
68
|
datasource: {
|
|
68
69
|
url: {
|
|
69
70
|
type: DatasourceFieldTypes.STRING,
|
package/src/integrations/s3.ts
CHANGED
|
@@ -17,6 +17,7 @@ module S3Module {
|
|
|
17
17
|
description:
|
|
18
18
|
"Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance.",
|
|
19
19
|
friendlyName: "Amazon S3",
|
|
20
|
+
type: "Object store",
|
|
20
21
|
datasource: {
|
|
21
22
|
region: {
|
|
22
23
|
type: "string",
|
|
@@ -16,6 +16,7 @@ module SnowflakeModule {
|
|
|
16
16
|
description:
|
|
17
17
|
"Snowflake is a solution for data warehousing, data lakes, data engineering, data science, data application development, and securely sharing and consuming shared data.",
|
|
18
18
|
friendlyName: "Snowflake",
|
|
19
|
+
type: "Relational",
|
|
19
20
|
datasource: {
|
|
20
21
|
account: {
|
|
21
22
|
type: "string",
|