From 054fb24ea935ce59c0872f7033f37fe2a4df75d5 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 20 Jul 2023 16:15:59 +0100 Subject: [PATCH 1/8] demote some app metadata related bb-alert messages --- packages/backend-core/src/cache/appMetadata.ts | 11 ++++------- packages/backend-core/src/db/utils.ts | 6 +++--- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/packages/backend-core/src/cache/appMetadata.ts b/packages/backend-core/src/cache/appMetadata.ts index 5b66c356d3..f1f3133757 100644 --- a/packages/backend-core/src/cache/appMetadata.ts +++ b/packages/backend-core/src/cache/appMetadata.ts @@ -2,8 +2,8 @@ import { getAppClient } from "../redis/init" import { doWithDB, DocumentType } from "../db" import { Database, App } from "@budibase/types" -const AppState = { - INVALID: "invalid", +export enum AppState { + INVALID = "invalid" } const EXPIRY_SECONDS = 3600 @@ -61,11 +61,8 @@ export async function getAppMetadata(appId: string) { } await client.store(appId, metadata, expiry) } - // we've stored in the cache an object to tell us that it is currently invalid - if (isInvalid(metadata)) { - throw { status: 404, message: "No app metadata found" } - } - return metadata as App + + return metadata as App & { state: AppState } } /** diff --git a/packages/backend-core/src/db/utils.ts b/packages/backend-core/src/db/utils.ts index 6034296996..137e210898 100644 --- a/packages/backend-core/src/db/utils.ts +++ b/packages/backend-core/src/db/utils.ts @@ -2,7 +2,7 @@ import env from "../environment" import { DEFAULT_TENANT_ID, SEPARATOR, DocumentType } from "../constants" import { getTenantId, getGlobalDBName } from "../context" import { doWithDB, directCouchAllDbs } from "./db" -import { getAppMetadata } from "../cache/appMetadata" +import { AppState, getAppMetadata } from "../cache/appMetadata" import { isDevApp, isDevAppID, getProdAppID } from "../docIds/conversions" import { App, Database } from "@budibase/types" import { getStartEndKeyURL } from "../docIds" @@ -101,7 +101,7 @@ export async function getAllApps({ const response = await Promise.allSettled(appPromises) const apps = response .filter( - (result: any) => result.status === "fulfilled" && result.value != null + (result: any) => result.status === "fulfilled" && result.value?.state !== AppState.INVALID ) .map(({ value }: any) => value) if (!all) { @@ -126,7 +126,7 @@ export async function getAppsByIDs(appIds: string[]) { ) // have to list the apps which exist, some may have been deleted return settled - .filter(promise => promise.status === "fulfilled") + .filter(promise => promise.status === "fulfilled" && promise.value.state !== AppState.INVALID) .map(promise => (promise as PromiseFulfilledResult).value) } From 6b6fba9393bd83f849ad89a1cbc919915f26e626 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 20 Jul 2023 16:38:24 +0100 Subject: [PATCH 2/8] optional chain --- packages/backend-core/src/db/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-core/src/db/utils.ts b/packages/backend-core/src/db/utils.ts index 137e210898..08764154eb 100644 --- a/packages/backend-core/src/db/utils.ts +++ b/packages/backend-core/src/db/utils.ts @@ -126,7 +126,7 @@ export async function getAppsByIDs(appIds: string[]) { ) // have to list the apps which exist, some may have been deleted return settled - .filter(promise => promise.status === "fulfilled" && promise.value.state !== AppState.INVALID) + .filter(promise => promise.status === "fulfilled" && promise.value?.state !== AppState.INVALID) .map(promise => (promise as PromiseFulfilledResult).value) } From b5340c20d8a23f0f3f7a6ce738152747aaa2439d Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 20 Jul 2023 16:56:31 +0100 Subject: [PATCH 3/8] lint --- packages/backend-core/src/cache/appMetadata.ts | 2 +- packages/backend-core/src/db/utils.ts | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/backend-core/src/cache/appMetadata.ts b/packages/backend-core/src/cache/appMetadata.ts index f1f3133757..5ecc6f10b1 100644 --- a/packages/backend-core/src/cache/appMetadata.ts +++ b/packages/backend-core/src/cache/appMetadata.ts @@ -3,7 +3,7 @@ import { doWithDB, DocumentType } from "../db" import { Database, App } from "@budibase/types" export enum AppState { - INVALID = "invalid" + INVALID = "invalid", } const EXPIRY_SECONDS = 3600 diff --git a/packages/backend-core/src/db/utils.ts b/packages/backend-core/src/db/utils.ts index 08764154eb..b6e793c065 100644 --- a/packages/backend-core/src/db/utils.ts +++ b/packages/backend-core/src/db/utils.ts @@ -101,7 +101,9 @@ export async function getAllApps({ const response = await Promise.allSettled(appPromises) const apps = response .filter( - (result: any) => result.status === "fulfilled" && result.value?.state !== AppState.INVALID + (result: any) => + result.status === "fulfilled" && + result.value?.state !== AppState.INVALID ) .map(({ value }: any) => value) if (!all) { @@ -126,7 +128,11 @@ export async function getAppsByIDs(appIds: string[]) { ) // have to list the apps which exist, some may have been deleted return settled - .filter(promise => promise.status === "fulfilled" && promise.value?.state !== AppState.INVALID) + .filter( + promise => + promise.status === "fulfilled" && + promise.value?.state !== AppState.INVALID + ) .map(promise => (promise as PromiseFulfilledResult).value) } From 567c7fd485724823542b7c3f436c00ded5dcef42 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 21 Jul 2023 09:43:25 +0100 Subject: [PATCH 4/8] code review --- packages/backend-core/src/cache/appMetadata.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/backend-core/src/cache/appMetadata.ts b/packages/backend-core/src/cache/appMetadata.ts index 5ecc6f10b1..69f734162b 100644 --- a/packages/backend-core/src/cache/appMetadata.ts +++ b/packages/backend-core/src/cache/appMetadata.ts @@ -24,6 +24,10 @@ function isInvalid(metadata?: { state: string }) { return !metadata || metadata.state === AppState.INVALID } +interface DeletedAppMetadata { + state: AppState +} + /** * Get the requested app metadata by id. * Use redis cache to first read the app metadata. @@ -31,7 +35,9 @@ function isInvalid(metadata?: { state: string }) { * @param {string} appId the id of the app to get metadata from. * @returns {object} the app metadata. */ -export async function getAppMetadata(appId: string) { +export async function getAppMetadata( + appId: string +): Promise { const client = await getAppClient() // try cache let metadata = await client.get(appId) @@ -62,7 +68,7 @@ export async function getAppMetadata(appId: string) { await client.store(appId, metadata, expiry) } - return metadata as App & { state: AppState } + return metadata } /** From 108d18df75753d9569637fa4441a3ae6f009eec1 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 21 Jul 2023 09:57:37 +0100 Subject: [PATCH 5/8] fix type check for deleted app type --- packages/backend-core/src/cache/appMetadata.ts | 13 ++++++------- packages/backend-core/src/db/utils.ts | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/backend-core/src/cache/appMetadata.ts b/packages/backend-core/src/cache/appMetadata.ts index 69f734162b..0c320ec776 100644 --- a/packages/backend-core/src/cache/appMetadata.ts +++ b/packages/backend-core/src/cache/appMetadata.ts @@ -5,6 +5,11 @@ import { Database, App } from "@budibase/types" export enum AppState { INVALID = "invalid", } + +export interface DeletedApp { + state: AppState +} + const EXPIRY_SECONDS = 3600 /** @@ -24,10 +29,6 @@ function isInvalid(metadata?: { state: string }) { return !metadata || metadata.state === AppState.INVALID } -interface DeletedAppMetadata { - state: AppState -} - /** * Get the requested app metadata by id. * Use redis cache to first read the app metadata. @@ -35,9 +36,7 @@ interface DeletedAppMetadata { * @param {string} appId the id of the app to get metadata from. * @returns {object} the app metadata. */ -export async function getAppMetadata( - appId: string -): Promise { +export async function getAppMetadata(appId: string): Promise { const client = await getAppClient() // try cache let metadata = await client.get(appId) diff --git a/packages/backend-core/src/db/utils.ts b/packages/backend-core/src/db/utils.ts index b6e793c065..4ebf8392b5 100644 --- a/packages/backend-core/src/db/utils.ts +++ b/packages/backend-core/src/db/utils.ts @@ -2,7 +2,7 @@ import env from "../environment" import { DEFAULT_TENANT_ID, SEPARATOR, DocumentType } from "../constants" import { getTenantId, getGlobalDBName } from "../context" import { doWithDB, directCouchAllDbs } from "./db" -import { AppState, getAppMetadata } from "../cache/appMetadata" +import { AppState, DeletedApp, getAppMetadata } from "../cache/appMetadata" import { isDevApp, isDevAppID, getProdAppID } from "../docIds/conversions" import { App, Database } from "@budibase/types" import { getStartEndKeyURL } from "../docIds" @@ -131,7 +131,7 @@ export async function getAppsByIDs(appIds: string[]) { .filter( promise => promise.status === "fulfilled" && - promise.value?.state !== AppState.INVALID + (promise.value as DeletedApp).state !== AppState.INVALID ) .map(promise => (promise as PromiseFulfilledResult).value) } From fb725f91b37051367aa6740e6a04255608cfed8f Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 21 Jul 2023 12:27:05 +0100 Subject: [PATCH 6/8] Update pro ref --- packages/pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/pro b/packages/pro index 4d9840700e..93291fc6b8 160000 --- a/packages/pro +++ b/packages/pro @@ -1 +1 @@ -Subproject commit 4d9840700e7684581c39965b7cb6a2b2428c477c +Subproject commit 93291fc6b8227be8b1decafe2765c1b742fc4f21 From ad1b96a50ecb4cad298ade6e016fe189f260dcf5 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 21 Jul 2023 18:05:50 +0100 Subject: [PATCH 7/8] update pro ref --- packages/pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/pro b/packages/pro index 93291fc6b8..fecebc4adc 160000 --- a/packages/pro +++ b/packages/pro @@ -1 +1 @@ -Subproject commit 93291fc6b8227be8b1decafe2765c1b742fc4f21 +Subproject commit fecebc4adcc7353810c585195026c29f85db6c10 From cf2776e7cb50e77c9e5ca7929035bddd2408a9e4 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Sun, 23 Jul 2023 10:53:50 +0100 Subject: [PATCH 8/8] fix lint --- .../src/components/backend/TableNavigator/TableDataImport.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte b/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte index ca76037b9d..7bf2bbbbab 100644 --- a/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte +++ b/packages/builder/src/components/backend/TableNavigator/TableDataImport.svelte @@ -44,7 +44,6 @@ let fileInput let error = null let fileName = null - let fileType = null let loading = false let validation = {} let validateHash = ""