1
0
Fork 0
mirror of synced 2024-10-04 03:54:37 +13:00

Merge pull request #9649 from Budibase/fix/ms-sql-port

Fix for environment variable MS-SQL ports
This commit is contained in:
Michael Drury 2023-02-10 13:33:17 +00:00 committed by GitHub
commit f0c5e1344f
5 changed files with 40 additions and 5 deletions

View file

@ -74,6 +74,10 @@ export const useGroups = () => {
return useFeature(Feature.USER_GROUPS)
}
export const useEnvironmentVariables = () => {
return useFeature(Feature.ENVIRONMENT_VARIABLES)
}
// QUOTAS
export const setAutomationLogsQuota = (value: number) => {

View file

@ -14,7 +14,6 @@ import { invalidateDynamicVariables } from "../../threads/utils"
import { db as dbCore, context, events } from "@budibase/backend-core"
import { UserCtx, Datasource, Row } from "@budibase/types"
import sdk from "../../sdk"
import { mergeConfigs } from "../../sdk/app/datasources/datasources"
export async function fetch(ctx: UserCtx) {
// Get internal tables

View file

@ -67,6 +67,15 @@ if (
INTEGRATIONS[SourceName.ORACLE] = oracle.integration
}
export async function getDefinition(source: SourceName): Promise<Integration> {
// check if its integrated, faster
if (DEFINITIONS[source]) {
return DEFINITIONS[source]
}
const allDefinitions = await getDefinitions()
return allDefinitions[source]
}
export async function getDefinitions() {
const pluginSchemas: { [key: string]: Integration } = {}
if (env.SELF_HOSTED) {

View file

@ -26,7 +26,7 @@ interface MSSQLConfig {
user: string
password: string
server: string
port: number
port: number | string
database: string
schema: string
encrypt?: boolean

View file

@ -3,6 +3,7 @@ import { findHBSBlocks, processObjectSync } from "@budibase/string-templates"
import {
Datasource,
DatasourceFieldType,
Integration,
PASSWORD_REPLACEMENT,
RestAuthConfig,
RestAuthType,
@ -11,16 +12,38 @@ import {
} from "@budibase/types"
import { cloneDeep } from "lodash/fp"
import { getEnvironmentVariables } from "../../utils"
import { getDefinitions } from "../../../integrations"
import { getDefinitions, getDefinition } from "../../../integrations"
const ENV_VAR_PREFIX = "env."
export function checkDatasourceTypes(schema: Integration, config: any) {
for (let key of Object.keys(config)) {
if (!schema.datasource[key]) {
continue
}
const type = schema.datasource[key].type
if (
type === DatasourceFieldType.NUMBER &&
typeof config[key] === "string"
) {
config[key] = parseFloat(config[key])
}
}
return config
}
async function enrichDatasourceWithValues(datasource: Datasource) {
const cloned = cloneDeep(datasource)
const env = await getEnvironmentVariables()
const processed = processObjectSync(cloned, { env }, { onlyFound: true })
const processed = processObjectSync(
cloned,
{ env },
{ onlyFound: true }
) as Datasource
const definition = await getDefinition(processed.source)
processed.config = checkDatasourceTypes(definition, processed.config)
return {
datasource: processed as Datasource,
datasource: processed,
envVars: env as Record<string, string>,
}
}