diff --git a/packages/server/src/api/controllers/integration.ts b/packages/server/src/api/controllers/integration.ts index 23defac831..9cfde31e4c 100644 --- a/packages/server/src/api/controllers/integration.ts +++ b/packages/server/src/api/controllers/integration.ts @@ -1,13 +1,20 @@ import { getDefinition, getDefinitions } from "../../integrations" -import { BBContext } from "@budibase/types" +import { SourceName, UserCtx } from "@budibase/types" -export async function fetch(ctx: BBContext) { - ctx.status = 200 - ctx.body = await getDefinitions() +const DISABLED_EXTERNAL_INTEGRATIONS = [SourceName.AIRTABLE] + +export async function fetch(ctx: UserCtx) { + const definitions = await getDefinitions() + for (let disabledIntegration of DISABLED_EXTERNAL_INTEGRATIONS) { + delete definitions[disabledIntegration] + } + ctx.body = definitions } -export async function find(ctx: BBContext) { - const def = await getDefinition(ctx.params.type) - ctx.body = def - ctx.status = 200 +export async function find(ctx: UserCtx) { + const sourceType = ctx.params?.type + if (DISABLED_EXTERNAL_INTEGRATIONS.indexOf(sourceType) !== -1) { + ctx.throw(400, `Invalid source type - ${sourceType} is not supported.`) + } + ctx.body = await getDefinition(ctx.params.type) }