From 2761eaed2d323553d106ca0d82f5d3053635102b Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 19 May 2021 20:58:59 +0100 Subject: [PATCH 01/19] postgres connection pooling --- packages/bbui/src/Typography/Body.svelte | 2 +- packages/bbui/src/Typography/Heading.svelte | 2 +- .../src/components/login/ForgotForm.svelte | 8 ++++-- .../src/components/login/ResetForm.svelte | 5 ++-- packages/server/src/integrations/postgres.js | 28 +++++++++++++------ 5 files changed, 29 insertions(+), 16 deletions(-) diff --git a/packages/bbui/src/Typography/Body.svelte b/packages/bbui/src/Typography/Body.svelte index ec32e54140..13e83434e4 100644 --- a/packages/bbui/src/Typography/Body.svelte +++ b/packages/bbui/src/Typography/Body.svelte @@ -8,7 +8,7 @@

diff --git a/packages/builder/src/components/login/ForgotForm.svelte b/packages/builder/src/components/login/ForgotForm.svelte index afadf9f4cf..25d72228ef 100644 --- a/packages/builder/src/components/login/ForgotForm.svelte +++ b/packages/builder/src/components/login/ForgotForm.svelte @@ -30,12 +30,14 @@ Forgotten your password? - No problem! Just enter your account's email address and we'll send - you a link to reset it. + No problem! Just enter your account's email address and we'll send you + a link to reset it. - + diff --git a/packages/builder/src/components/login/ResetForm.svelte b/packages/builder/src/components/login/ResetForm.svelte index 4ae19b1ab1..83e9ab7a6e 100644 --- a/packages/builder/src/components/login/ResetForm.svelte +++ b/packages/builder/src/components/login/ResetForm.svelte @@ -16,7 +16,6 @@ } catch (err) { notifications.error("Unable to reset password") } - } @@ -33,7 +32,9 @@ - + diff --git a/packages/server/src/integrations/postgres.js b/packages/server/src/integrations/postgres.js index c6a24577b3..d567db7ba0 100644 --- a/packages/server/src/integrations/postgres.js +++ b/packages/server/src/integrations/postgres.js @@ -1,4 +1,6 @@ -const { Client } = require("pg") +const { Pool } = require("pg") + +let pool const SCHEMA = { docs: "https://node-postgres.com", @@ -51,31 +53,39 @@ const SCHEMA = { class PostgresIntegration { constructor(config) { this.config = config - this.client = new Client(config) - this.connect() + if (!pool) { + pool = new Pool(this.config) + } } - async connect() { - return this.client.connect() + async query(sql) { + try { + this.client = await pool.connect() + return await this.client.query(sql) + } catch (err) { + throw new Error(err) + } finally { + this.client.release() + } } async create({ sql }) { - const response = await this.client.query(sql) + const response = await this.query(sql) return response.rows.length ? response.rows : [{ created: true }] } async read({ sql }) { - const response = await this.client.query(sql) + const response = await this.query(sql) return response.rows } async update({ sql }) { - const response = await this.client.query(sql) + const response = await this.query(sql) return response.rows.length ? response.rows : [{ updated: true }] } async delete({ sql }) { - const response = await this.client.query(sql) + const response = await this.query(sql) return response.rows.length ? response.rows : [{ deleted: true }] } } From f152dc5ff5cfcbbafba8a4477d6266fc0a3798f7 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 20 May 2021 12:55:24 +0100 Subject: [PATCH 02/19] lint --- packages/server/src/utilities/queue/inMemoryQueue.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/server/src/utilities/queue/inMemoryQueue.js b/packages/server/src/utilities/queue/inMemoryQueue.js index 1a9fc90d5c..d4b1d297d8 100644 --- a/packages/server/src/utilities/queue/inMemoryQueue.js +++ b/packages/server/src/utilities/queue/inMemoryQueue.js @@ -80,6 +80,7 @@ class InMemoryQueue { */ removeRepeatableByKey(cronJobId) { // TODO: implement for testing + console.log(cronJobId) } } From beae1cec711a28cc16c2b3dc213624f484fb4247 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 20 May 2021 13:05:58 +0100 Subject: [PATCH 03/19] Removing all login/logout functionality from apps. --- .../EventsEditor/actions/LogIn.svelte | 40 ------------- .../EventsEditor/actions/LogOut.svelte | 14 ----- .../EventsEditor/actions/index.js | 10 ---- .../server/src/api/controllers/application.js | 9 +-- packages/server/src/constants/screens.js | 58 ------------------- .../standard-components/src/Navigation.svelte | 10 ---- 6 files changed, 1 insertion(+), 140 deletions(-) delete mode 100644 packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/LogIn.svelte delete mode 100644 packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/LogOut.svelte diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/LogIn.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/LogIn.svelte deleted file mode 100644 index d64fd1e654..0000000000 --- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/LogIn.svelte +++ /dev/null @@ -1,40 +0,0 @@ - - -
- - (parameters.email = value.detail)} - {bindings} - /> - - (parameters.password = value.detail)} - {bindings} - /> -
- - diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/LogOut.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/LogOut.svelte deleted file mode 100644 index 8782127243..0000000000 --- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/LogOut.svelte +++ /dev/null @@ -1,14 +0,0 @@ - - -
- This action doesn't require any additional settings. -
- - diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/index.js b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/index.js index 4700ea5c8f..e851bdb4be 100644 --- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/index.js +++ b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/index.js @@ -4,8 +4,6 @@ import DeleteRow from "./DeleteRow.svelte" import ExecuteQuery from "./ExecuteQuery.svelte" import TriggerAutomation from "./TriggerAutomation.svelte" import ValidateForm from "./ValidateForm.svelte" -import LogIn from "./LogIn.svelte" -import LogOut from "./LogOut.svelte" // defines what actions are available, when adding a new one // the component is the setup panel for the action @@ -37,12 +35,4 @@ export default [ name: "Validate Form", component: ValidateForm, }, - { - name: "Log In", - component: LogIn, - }, - { - name: "Log Out", - component: LogOut, - }, ] diff --git a/packages/server/src/api/controllers/application.js b/packages/server/src/api/controllers/application.js index 2956e45b11..1300619879 100644 --- a/packages/server/src/api/controllers/application.js +++ b/packages/server/src/api/controllers/application.js @@ -22,10 +22,7 @@ const { } = require("../../db/utils") const { BUILTIN_ROLE_IDS, AccessController } = require("@budibase/auth/roles") const { BASE_LAYOUTS } = require("../../constants/layouts") -const { - createHomeScreen, - createLoginScreen, -} = require("../../constants/screens") +const { createHomeScreen } = require("../../constants/screens") const { cloneDeep } = require("lodash/fp") const { processObject } = require("@budibase/string-templates") const { getAllApps } = require("../../utilities") @@ -260,9 +257,5 @@ const createEmptyAppPackage = async (ctx, app) => { homeScreen._id = generateScreenID() screensAndLayouts.push(homeScreen) - const loginScreen = createLoginScreen(app) - loginScreen._id = generateScreenID() - screensAndLayouts.push(loginScreen) - await db.bulkDocs(screensAndLayouts) } diff --git a/packages/server/src/constants/screens.js b/packages/server/src/constants/screens.js index 55f493c362..eb9dc8f702 100644 --- a/packages/server/src/constants/screens.js +++ b/packages/server/src/constants/screens.js @@ -1,6 +1,5 @@ const { BUILTIN_ROLE_IDS } = require("@budibase/auth/roles") const { BASE_LAYOUT_PROP_IDS } = require("./layouts") -const { LOGO_URL } = require("../constants") exports.createHomeScreen = () => ({ description: "", @@ -49,60 +48,3 @@ exports.createHomeScreen = () => ({ }, name: "home-screen", }) - -exports.createLoginScreen = app => ({ - description: "", - url: "", - layoutId: BASE_LAYOUT_PROP_IDS.PUBLIC, - props: { - _instanceName: "LoginScreenContainer", - _id: "5beb4c7b-3c8b-49b2-b8b3-d447dc76dda7", - _component: "@budibase/standard-components/container", - _styles: { - normal: { - flex: "1 1 auto", - display: "flex", - "flex-direction": "column", - "justify-content": "center", - "align-items": "center", - }, - hover: {}, - active: {}, - selected: {}, - }, - _transition: "fade", - type: "div", - _children: [ - { - _id: "781e497e-2e7c-11eb-adc1-0242ac120002", - _component: "@budibase/standard-components/login", - _styles: { - normal: { - padding: "64px", - background: "rgba(255, 255, 255, 0.4)", - "border-radius": "0.5rem", - "margin-top": "0px", - "box-shadow": - "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)", - "font-size": "16px", - "font-family": "Inter", - flex: "0 1 auto", - }, - hover: {}, - active: {}, - selected: {}, - }, - logo: LOGO_URL, - title: `Log in to ${app.name}`, - buttonText: "Log In", - _children: [], - _instanceName: "Login", - }, - ], - }, - routing: { - route: "/", - roleId: BUILTIN_ROLE_IDS.PUBLIC, - }, - name: "login-screen", -}) diff --git a/packages/standard-components/src/Navigation.svelte b/packages/standard-components/src/Navigation.svelte index 2062a9d982..b0f043b75c 100644 --- a/packages/standard-components/src/Navigation.svelte +++ b/packages/standard-components/src/Navigation.svelte @@ -5,13 +5,6 @@ const component = getContext("component") export let logoUrl - - const logOut = async () => { - if ($builderStore.inBuilder) { - return - } - await authStore.actions.logOut() - }