diff --git a/packages/builder/src/components/backend/DatasourceNavigator/popovers/EditDatasourcePopover.svelte b/packages/builder/src/components/backend/DatasourceNavigator/popovers/EditDatasourcePopover.svelte index ae0023f682..165ed18ad8 100644 --- a/packages/builder/src/components/backend/DatasourceNavigator/popovers/EditDatasourcePopover.svelte +++ b/packages/builder/src/components/backend/DatasourceNavigator/popovers/EditDatasourcePopover.svelte @@ -5,6 +5,7 @@ import { ActionMenu, MenuItem, Icon } from "@budibase/bbui" import ConfirmDialog from "components/common/ConfirmDialog.svelte" import UpdateDatasourceModal from "components/backend/DatasourceNavigator/modals/UpdateDatasourceModal.svelte" + import { BUDIBASE_DATASOURCE_TYPE } from "constants/backend" export let datasource @@ -42,7 +43,9 @@
- Edit + {#if datasource.type !== BUDIBASE_DATASOURCE_TYPE} + Edit + {/if} Delete diff --git a/packages/builder/src/constants/backend/index.js b/packages/builder/src/constants/backend/index.js index f3898e1d9e..35e250d459 100644 --- a/packages/builder/src/constants/backend/index.js +++ b/packages/builder/src/constants/backend/index.js @@ -174,6 +174,7 @@ export const SWITCHABLE_TYPES = [ ] export const BUDIBASE_INTERNAL_DB_ID = "bb_internal" +export const DEFAULT_BB_DATASOURCE_ID = "datasource_internal_bb_default" export const BUDIBASE_DATASOURCE_TYPE = "budibase" export const DB_TYPE_INTERNAL = "internal" export const DB_TYPE_EXTERNAL = "external" diff --git a/packages/builder/src/pages/builder/app/[application]/data/datasource/datasource_internal_bb_default/_layout.svelte b/packages/builder/src/pages/builder/app/[application]/data/datasource/datasource_internal_bb_default/_layout.svelte index 249f23d8b6..168290ef02 100644 --- a/packages/builder/src/pages/builder/app/[application]/data/datasource/datasource_internal_bb_default/_layout.svelte +++ b/packages/builder/src/pages/builder/app/[application]/data/datasource/datasource_internal_bb_default/_layout.svelte @@ -1,7 +1,8 @@ diff --git a/packages/server/src/api/controllers/datasource.ts b/packages/server/src/api/controllers/datasource.ts index 511eb8ab74..d47629ed3e 100644 --- a/packages/server/src/api/controllers/datasource.ts +++ b/packages/server/src/api/controllers/datasource.ts @@ -152,7 +152,14 @@ export async function update(ctx: BBContext) { let datasource = await db.get(datasourceId) const auth = datasource.config.auth await invalidateVariables(datasource, ctx.request.body) - datasource = { ...datasource, ...ctx.request.body } + + const isBudibaseSource = datasource.type === dbCore.BUDIBASE_DATASOURCE_TYPE + + const dataSourceBody = isBudibaseSource + ? { name: ctx.request.body?.name } + : ctx.request.body + + datasource = { ...datasource, ...dataSourceBody } if (auth && !ctx.request.body.auth) { // don't strip auth config from DB datasource.config.auth = auth @@ -163,7 +170,7 @@ export async function update(ctx: BBContext) { datasource._rev = response.rev // Drain connection pools when configuration is changed - if (datasource.source) { + if (datasource.source && !isBudibaseSource) { const source = await getIntegration(datasource.source) if (source && source.pool) { await source.pool.end() diff --git a/packages/server/src/db/defaultData/datasource_bb_default.ts b/packages/server/src/db/defaultData/datasource_bb_default.ts index a9fb214cb2..027351139a 100644 --- a/packages/server/src/db/defaultData/datasource_bb_default.ts +++ b/packages/server/src/db/defaultData/datasource_bb_default.ts @@ -18,7 +18,8 @@ export const DEFAULT_INVENTORY_TABLE_ID = "ta_bb_inventory" export const DEFAULT_EXPENSES_TABLE_ID = "ta_bb_expenses" export const DEFAULT_EMPLOYEE_TABLE_ID = "ta_bb_employee" export const DEFAULT_BB_DATASOURCE_ID = "datasource_internal_bb_default" -export const DEFAULT_BB_DATASOURCE = { + +const defaultDatasource = { _id: DEFAULT_BB_DATASOURCE_ID, type: dbCore.BUDIBASE_DATASOURCE_TYPE, name: "Sample Data", @@ -26,6 +27,8 @@ export const DEFAULT_BB_DATASOURCE = { config: {}, } +export const DEFAULT_BB_DATASOURCE = defaultDatasource + function syncLastIds(table: Table, rowCount: number) { Object.keys(table.schema).forEach(key => { const entry = table.schema[key] @@ -634,8 +637,14 @@ export function buildDefaultDocs() { } ) + const dataSource = { + ...defaultDatasource, + updatedAt: new Date().toISOString(), + createdAt: new Date().toISOString(), + } + return [ - DEFAULT_BB_DATASOURCE, + dataSource, inventoryData.table, employeeData.table, jobData.table,