diff --git a/README.md b/README.md index 1dec1737da..bd38610566 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ Budibase is open-source - licensed as GPL v3. This should fill you with confiden

### Load data or start from scratch -Budibase pulls in data from multiple sources, including MongoDB, CouchDB, PostgreSQL, MySQL, Airtable, S3, DynamoDB, or a REST API. And unlike other platforms, with Budibase you can start from scratch and create business apps with no data sources. [Request new data sources](https://github.com/Budibase/budibase/discussions?discussions_q=category%3AIdeas). +Budibase pulls in data from multiple sources, including MongoDB, CouchDB, PostgreSQL, MySQL, Airtable, S3, DynamoDB, or a REST API. And unlike other platforms, with Budibase you can start from scratch and create business apps with no datasources. [Request new datasources](https://github.com/Budibase/budibase/discussions?discussions_q=category%3AIdeas).

Budibase data diff --git a/examples/nextjs-api-sales/definitions/openapi.ts b/examples/nextjs-api-sales/definitions/openapi.ts index 4f4ad45fc6..7f7f6befec 100644 --- a/examples/nextjs-api-sales/definitions/openapi.ts +++ b/examples/nextjs-api-sales/definitions/openapi.ts @@ -348,7 +348,7 @@ export interface paths { } } responses: { - /** Returns the created table, including the ID which has been generated for it. This can be internal or external data sources. */ + /** Returns the created table, including the ID which has been generated for it. This can be internal or external datasources. */ 200: { content: { "application/json": components["schemas"]["tableOutput"] @@ -959,7 +959,7 @@ export interface components { query: { /** @description The ID of the query. */ _id: string - /** @description The ID of the data source the query belongs to. */ + /** @description The ID of the datasource the query belongs to. */ datasourceId?: string /** @description The bindings which are required to perform this query. */ parameters?: string[] @@ -983,7 +983,7 @@ export interface components { data: { /** @description The ID of the query. */ _id: string - /** @description The ID of the data source the query belongs to. */ + /** @description The ID of the datasource the query belongs to. */ datasourceId?: string /** @description The bindings which are required to perform this query. */ parameters?: string[] diff --git a/packages/builder/cypress/integration/autoScreensUI.spec.js b/packages/builder/cypress/integration/autoScreensUI.spec.js index 7a5dbef5a5..0253675c5b 100644 --- a/packages/builder/cypress/integration/autoScreensUI.spec.js +++ b/packages/builder/cypress/integration/autoScreensUI.spec.js @@ -82,10 +82,10 @@ filterTests(['smoke', 'all'], () => { }) if (Cypress.env("TEST_ENV")) { - it("should generate data source screens", () => { - // Using MySQL data source for testing this + it("should generate datasource screens", () => { + // Using MySQL datasource for testing this const datasource = "MySQL" - // Select & configure MySQL data source + // Select & configure MySQL datasource cy.selectExternalDatasource(datasource) cy.addDatasourceConfig(datasource) // Create Autogenerated screens from a MySQL table - MySQL contains books table diff --git a/packages/builder/cypress/integration/datasources/mySql.spec.js b/packages/builder/cypress/integration/datasources/mySql.spec.js index 654705a24e..33aa72f0bb 100644 --- a/packages/builder/cypress/integration/datasources/mySql.spec.js +++ b/packages/builder/cypress/integration/datasources/mySql.spec.js @@ -11,8 +11,8 @@ filterTests(["all"], () => { const queryName = "Cypress Test Query" const queryRename = "CT Query Rename" - it("Should add MySQL data source without configuration", () => { - // Select MySQL data source + it("Should add MySQL datasource without configuration", () => { + // Select MySQL datasource cy.selectExternalDatasource(datasource) // Attempt to fetch tables without applying configuration cy.intercept("**/datasources").as("datasource") @@ -35,8 +35,8 @@ filterTests(["all"], () => { cy.get(".spectrum-Button").contains("Skip table fetch").click({ force: true }) }) - it("should add MySQL data source and fetch tables", () => { - // Add & configure MySQL data source + it("should add MySQL datasource and fetch tables", () => { + // Add & configure MySQL datasource cy.selectExternalDatasource(datasource) cy.intercept("**/datasources").as("datasource") cy.addDatasourceConfig(datasource) @@ -52,7 +52,7 @@ filterTests(["all"], () => { }) it("should check table fetching error", () => { - // MySQL test data source contains tables without primary keys + // MySQL test datasource contains tables without primary keys cy.get(".spectrum-InLineAlert") .should("contain", "Error fetching tables") .and("contain", "No primary key constraint found") diff --git a/packages/builder/cypress/integration/datasources/oracle.spec.js b/packages/builder/cypress/integration/datasources/oracle.spec.js index 5d92d6b217..ae1ca5cd75 100644 --- a/packages/builder/cypress/integration/datasources/oracle.spec.js +++ b/packages/builder/cypress/integration/datasources/oracle.spec.js @@ -11,8 +11,8 @@ filterTests(["all"], () => { const queryName = "Cypress Test Query" const queryRename = "CT Query Rename" - it("Should add Oracle data source and skip table fetch", () => { - // Select Oracle data source + it("Should add Oracle datasource and skip table fetch", () => { + // Select Oracle datasource cy.selectExternalDatasource(datasource) // Skip table fetch - no config added cy.get(".spectrum-Button") @@ -23,7 +23,7 @@ filterTests(["all"], () => { cy.get(".spectrum-Textfield-input", { timeout: 500 }) .eq(1) .should("have.value", "localhost") - // Add another Oracle data source, configure & skip table fetch + // Add another Oracle datasource, configure & skip table fetch cy.selectExternalDatasource(datasource) cy.addDatasourceConfig(datasource, true) // Confirm config and no tables @@ -33,8 +33,8 @@ filterTests(["all"], () => { cy.get(".spectrum-Body").eq(2).should("contain", "No tables found.") }) - it("Should add Oracle data source and fetch tables without configuration", () => { - // Select Oracle data source + it("Should add Oracle datasource and fetch tables without configuration", () => { + // Select Oracle datasource cy.selectExternalDatasource(datasource) // Attempt to fetch tables without applying configuration cy.intercept("**/datasources").as("datasource") @@ -49,8 +49,8 @@ filterTests(["all"], () => { cy.get(".spectrum-Button").contains("Skip table fetch").click({ force: true }) }) - xit("should add Oracle data source and fetch tables", () => { - // Add & configure Oracle data source + xit("should add Oracle datasource and fetch tables", () => { + // Add & configure Oracle datasource cy.selectExternalDatasource(datasource) cy.intercept("**/datasources").as("datasource") cy.addDatasourceConfig(datasource) diff --git a/packages/builder/cypress/integration/datasources/postgreSql.spec.js b/packages/builder/cypress/integration/datasources/postgreSql.spec.js index 622c3ade73..8ef574566e 100644 --- a/packages/builder/cypress/integration/datasources/postgreSql.spec.js +++ b/packages/builder/cypress/integration/datasources/postgreSql.spec.js @@ -11,8 +11,8 @@ filterTests(["all"], () => { const queryName = "Cypress Test Query" const queryRename = "CT Query Rename" - xit("Should add PostgreSQL data source without configuration", () => { - // Select PostgreSQL data source + xit("Should add PostgreSQL datasource without configuration", () => { + // Select PostgreSQL datasource cy.selectExternalDatasource(datasource) // Attempt to fetch tables without applying configuration cy.intercept("**/datasources").as("datasource") @@ -27,8 +27,8 @@ filterTests(["all"], () => { cy.get(".spectrum-Button").contains("Skip table fetch").click({ force: true }) }) - it("should add PostgreSQL data source and fetch tables", () => { - // Add & configure PostgreSQL data source + it("should add PostgreSQL datasource and fetch tables", () => { + // Add & configure PostgreSQL datasource cy.selectExternalDatasource(datasource) cy.intercept("**/datasources").as("datasource") cy.addDatasourceConfig(datasource) diff --git a/packages/builder/cypress/integration/datasources/rest.spec.js b/packages/builder/cypress/integration/datasources/rest.spec.js index 7a145049e2..ec9864a47d 100644 --- a/packages/builder/cypress/integration/datasources/rest.spec.js +++ b/packages/builder/cypress/integration/datasources/rest.spec.js @@ -10,8 +10,8 @@ filterTests(["smoke", "all"], () => { const datasource = "REST" const restUrl = "https://api.openbrewerydb.org/breweries" - it("Should add REST data source with incorrect API", () => { - // Select REST data source + it("Should add REST datasource with incorrect API", () => { + // Select REST datasource cy.selectExternalDatasource(datasource) // Enter incorrect api & attempt to send query cy.get(".query-buttons", { timeout: 1000 }).contains("Add query").click({ force: true }) diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js index a07a22188f..53accfbbe4 100644 --- a/packages/builder/cypress/support/commands.js +++ b/packages/builder/cypress/support/commands.js @@ -763,7 +763,7 @@ Cypress.Commands.add("navigateToDataSection", () => { }) Cypress.Commands.add("navigateToAutogeneratedModal", () => { - // Screen name must already exist within data source + // Screen name must already exist within datasource cy.contains("Design").click() cy.get(".spectrum-Button").contains("Add screen").click({ force: true }) cy.get(".spectrum-Modal").within(() => { @@ -779,7 +779,7 @@ Cypress.Commands.add("navigateToAutogeneratedModal", () => { Cypress.Commands.add("selectExternalDatasource", datasourceName => { // Navigates to Data Section cy.navigateToDataSection() - // Open Data Source modal + // Open Datasource modal cy.get(".nav").within(() => { cy.get(".add-button").click() }) diff --git a/packages/builder/src/builderStore/datasource.js b/packages/builder/src/builderStore/datasource.js index 84edcdd6ad..e12b318e1c 100644 --- a/packages/builder/src/builderStore/datasource.js +++ b/packages/builder/src/builderStore/datasource.js @@ -27,7 +27,7 @@ export async function saveDatasource(config, skipFetch = false) { // Create datasource const resp = await datasources.save(datasource, !skipFetch && datasource.plus) - // update the tables incase data source plus + // update the tables incase datasource plus await tables.fetch() await datasources.select(resp._id) return resp diff --git a/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte b/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte index 6235e52916..19946a2386 100644 --- a/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte +++ b/packages/builder/src/components/backend/DatasourceNavigator/DatasourceNavigator.svelte @@ -32,8 +32,8 @@ : [] $: openDataSource = enrichedDataSources.find(x => x.open) $: { - // Ensure the open data source is always included in the list of open - // data sources + // Ensure the open datasource is always included in the list of open + // datasources if (openDataSource) { openNode(openDataSource) } @@ -79,7 +79,7 @@ }) const containsActiveEntity = datasource => { - // If we're view a query then the data source ID is in the URL + // If we're view a query then the datasource ID is in the URL if ($params.selectedDatasource === datasource._id) { return true } diff --git a/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte b/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte index 1c9d3c76a8..40ef294339 100644 --- a/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte +++ b/packages/builder/src/components/backend/DatasourceNavigator/modals/CreateDatasourceModal.svelte @@ -126,7 +126,7 @@ - Connect to an external data source + Connect to an external datasource

{#each Object.entries(integrations).filter(([key, val]) => key !== IntegrationTypes.INTERNAL && !val.custom) as [integrationType, schema]} 0} - Custom data source + Custom datasource
{#each customIntegrations as [integrationType, schema]} - Choose the data source that provides the row you would like to duplicate. + Choose the datasource that provides the row you would like to duplicate.
You can always add or override fields manually.
- + - Select which data source you would like to use to create your screens + Select which datasource you would like to use to create your screens {#each filteredSources as datasource} diff --git a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/screens/_components/NewScreenModal.svelte b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/screens/_components/NewScreenModal.svelte index e2d66a80c0..04e0cc242a 100644 --- a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/screens/_components/NewScreenModal.svelte +++ b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/screens/_components/NewScreenModal.svelte @@ -66,7 +66,7 @@ Autogenerated screens Add autogenerated screens with CRUD functionality to get a working - app quickly! (Requires a data source) + app quickly! (Requires a datasource)
diff --git a/packages/builder/src/pages/builder/portal/manage/plugins/_components/PluginRow.svelte b/packages/builder/src/pages/builder/portal/manage/plugins/_components/PluginRow.svelte index 73a6ebc700..18390c7fcb 100644 --- a/packages/builder/src/pages/builder/portal/manage/plugins/_components/PluginRow.svelte +++ b/packages/builder/src/pages/builder/portal/manage/plugins/_components/PluginRow.svelte @@ -20,6 +20,8 @@ ? plugin.schema.schema.icon || "Book" : plugin.schema.schema.icon || "Beaker" + $: friendlyName = plugin?.schema?.schema?.friendlyName + function pluginDeleted() { if (detailsModal) { detailsModal.hide() @@ -41,6 +43,9 @@ > {plugin.name} + + {friendlyName} +
@@ -65,6 +70,11 @@ +
+ + +
+
{ let enrichedColumns = [] diff --git a/packages/server/specs/openapi.json b/packages/server/specs/openapi.json index ed58c12525..97c0fa9551 100644 --- a/packages/server/specs/openapi.json +++ b/packages/server/specs/openapi.json @@ -1327,7 +1327,7 @@ "type": "string" }, "datasourceId": { - "description": "The ID of the data source the query belongs to.", + "description": "The ID of the datasource the query belongs to.", "type": "string" }, "parameters": { @@ -1386,7 +1386,7 @@ "type": "string" }, "datasourceId": { - "description": "The ID of the data source the query belongs to.", + "description": "The ID of the datasource the query belongs to.", "type": "string" }, "parameters": { @@ -2289,7 +2289,7 @@ }, "responses": { "200": { - "description": "Returns the created table, including the ID which has been generated for it. This can be internal or external data sources.", + "description": "Returns the created table, including the ID which has been generated for it. This can be internal or external datasources.", "content": { "application/json": { "schema": { diff --git a/packages/server/specs/openapi.yaml b/packages/server/specs/openapi.yaml index cbc7c1ea53..3bcb893862 100644 --- a/packages/server/specs/openapi.yaml +++ b/packages/server/specs/openapi.yaml @@ -1004,7 +1004,7 @@ components: description: The ID of the query. type: string datasourceId: - description: The ID of the data source the query belongs to. + description: The ID of the datasource the query belongs to. type: string parameters: description: The bindings which are required to perform this query. @@ -1051,7 +1051,7 @@ components: description: The ID of the query. type: string datasourceId: - description: The ID of the data source the query belongs to. + description: The ID of the datasource the query belongs to. type: string parameters: description: The bindings which are required to perform this query. @@ -1665,7 +1665,7 @@ paths: responses: "200": description: Returns the created table, including the ID which has been - generated for it. This can be internal or external data sources. + generated for it. This can be internal or external datasources. content: application/json: schema: diff --git a/packages/server/specs/resources/query.js b/packages/server/specs/resources/query.js index d4a4882fb2..1442e46a04 100644 --- a/packages/server/specs/resources/query.js +++ b/packages/server/specs/resources/query.js @@ -82,7 +82,7 @@ const querySchema = object( type: "string", }, datasourceId: { - description: "The ID of the data source the query belongs to.", + description: "The ID of the datasource the query belongs to.", type: "string", }, parameters: { diff --git a/packages/server/src/api/controllers/row/external.js b/packages/server/src/api/controllers/row/external.js index c9f6aa2f78..fa48106d26 100644 --- a/packages/server/src/api/controllers/row/external.js +++ b/packages/server/src/api/controllers/row/external.js @@ -53,7 +53,7 @@ exports.save = async ctx => { } exports.fetchView = async ctx => { - // there are no views in external data sources, shouldn't ever be called + // there are no views in external datasources, shouldn't ever be called // for now just fetch const split = ctx.params.viewName.split("all_") ctx.params.tableId = split[1] ? split[1] : split[0] diff --git a/packages/server/src/api/routes/public/tables.ts b/packages/server/src/api/routes/public/tables.ts index b57425e08f..7e8ce29ae3 100644 --- a/packages/server/src/api/routes/public/tables.ts +++ b/packages/server/src/api/routes/public/tables.ts @@ -26,7 +26,7 @@ const read = [], * responses: * 200: * description: Returns the created table, including the ID which has been generated for it. This can be - * internal or external data sources. + * internal or external datasources. * content: * application/json: * schema: diff --git a/packages/server/src/api/routes/table.js b/packages/server/src/api/routes/table.js index 5d2378710d..9de36cac72 100644 --- a/packages/server/src/api/routes/table.js +++ b/packages/server/src/api/routes/table.js @@ -55,7 +55,7 @@ router * @apiParam (Body) {string} [_rev] If updating an existing internal table then the revision must also be specified. * @apiParam (Body) {string} type] This should either be "internal" or "external" depending on the table type - * this will default to internal. - * @apiParam (Body) {string} [sourceId] If creating an external table then this should be set to the data source ID. If + * @apiParam (Body) {string} [sourceId] If creating an external table then this should be set to the datasource ID. If * building an internal table this does not need to be set, although it will be returned as "bb_internal". * @apiParam (Body) {string} name The name of the table, this will be used in the UI. To rename the table simply * supply the table structure to this endpoint with the name changed. diff --git a/packages/server/src/definitions/openapi.ts b/packages/server/src/definitions/openapi.ts index 6cc0de2472..486901acad 100644 --- a/packages/server/src/definitions/openapi.ts +++ b/packages/server/src/definitions/openapi.ts @@ -344,7 +344,7 @@ export interface paths { }; }; responses: { - /** Returns the created table, including the ID which has been generated for it. This can be internal or external data sources. */ + /** Returns the created table, including the ID which has been generated for it. This can be internal or external datasources. */ 200: { content: { "application/json": components["schemas"]["tableOutput"]; @@ -965,7 +965,7 @@ export interface components { query: { /** @description The ID of the query. */ _id: string; - /** @description The ID of the data source the query belongs to. */ + /** @description The ID of the datasource the query belongs to. */ datasourceId?: string; /** @description The bindings which are required to perform this query. */ parameters?: string[]; @@ -989,7 +989,7 @@ export interface components { data: { /** @description The ID of the query. */ _id: string; - /** @description The ID of the data source the query belongs to. */ + /** @description The ID of the datasource the query belongs to. */ datasourceId?: string; /** @description The bindings which are required to perform this query. */ parameters?: string[]; diff --git a/packages/server/src/tests/utilities/TestConfiguration.js b/packages/server/src/tests/utilities/TestConfiguration.js index d1dbe59def..38aa84be2d 100644 --- a/packages/server/src/tests/utilities/TestConfiguration.js +++ b/packages/server/src/tests/utilities/TestConfiguration.js @@ -560,7 +560,7 @@ class TestConfiguration { async createQuery(config = null) { if (!this.datasource && !config) { - throw "No data source created for query." + throw "No datasource created for query." } config = config || basicQuery(this.datasource._id) return this._req(config, null, controllers.query.save)