From e1bacb7cca9338c763f411d46f41bb5abe71fc8c Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 23 May 2022 16:57:15 +0100 Subject: [PATCH] making checklist cache length controllable through env var --- .../src/api/controllers/global/configs.js | 103 +++++++++--------- packages/worker/src/environment.js | 4 +- 2 files changed, 56 insertions(+), 51 deletions(-) diff --git a/packages/worker/src/api/controllers/global/configs.js b/packages/worker/src/api/controllers/global/configs.js index 147c5296ce..df3326ef26 100644 --- a/packages/worker/src/api/controllers/global/configs.js +++ b/packages/worker/src/api/controllers/global/configs.js @@ -17,7 +17,6 @@ const { googleCallbackUrl, oidcCallbackUrl } = require("./auth") const { withCache, CacheKeys, - TTL, bustCache, } = require("@budibase/backend-core/cache") @@ -256,58 +255,62 @@ exports.configChecklist = async function (ctx) { const tenantId = getTenantId() try { - ctx.body = await withCache(CacheKeys.CHECKLIST, TTL.ONE_HOUR, async () => { - let apps = [] - if (!env.MULTI_TENANCY || tenantId) { - // Apps exist - apps = await getAllApps({ idsOnly: true, efficient: true }) - } + ctx.body = await withCache( + CacheKeys.CHECKLIST, + env.CHECKLIST_CACHE_TTL, + async () => { + let apps = [] + if (!env.MULTI_TENANCY || tenantId) { + // Apps exist + apps = await getAllApps({ idsOnly: true, efficient: true }) + } - // They have set up SMTP - const smtpConfig = await getScopedFullConfig(db, { - type: Configs.SMTP, - }) - - // They have set up Google Auth - const googleConfig = await getScopedFullConfig(db, { - type: Configs.GOOGLE, - }) - - // They have set up OIDC - const oidcConfig = await getScopedFullConfig(db, { - type: Configs.OIDC, - }) - - // They have set up an global user - const users = await db.allDocs( - getGlobalUserParams(null, { - include_docs: true, - limit: 1, + // They have set up SMTP + const smtpConfig = await getScopedFullConfig(db, { + type: Configs.SMTP, }) - ) - return { - apps: { - checked: apps.length > 0, - label: "Create your first app", - link: "/builder/portal/apps", - }, - smtp: { - checked: !!smtpConfig, - label: "Set up email", - link: "/builder/portal/manage/email", - }, - adminUser: { - checked: users && users.rows.length >= 1, - label: "Create your first user", - link: "/builder/portal/manage/users", - }, - sso: { - checked: !!googleConfig || !!oidcConfig, - label: "Set up single sign-on", - link: "/builder/portal/manage/auth", - }, + + // They have set up Google Auth + const googleConfig = await getScopedFullConfig(db, { + type: Configs.GOOGLE, + }) + + // They have set up OIDC + const oidcConfig = await getScopedFullConfig(db, { + type: Configs.OIDC, + }) + + // They have set up an global user + const users = await db.allDocs( + getGlobalUserParams(null, { + include_docs: true, + limit: 1, + }) + ) + return { + apps: { + checked: apps.length > 0, + label: "Create your first app", + link: "/builder/portal/apps", + }, + smtp: { + checked: !!smtpConfig, + label: "Set up email", + link: "/builder/portal/manage/email", + }, + adminUser: { + checked: users && users.rows.length >= 1, + label: "Create your first user", + link: "/builder/portal/manage/users", + }, + sso: { + checked: !!googleConfig || !!oidcConfig, + label: "Set up single sign-on", + link: "/builder/portal/manage/auth", + }, + } } - }) + ) } catch (err) { ctx.throw(err.status, err) } diff --git a/packages/worker/src/environment.js b/packages/worker/src/environment.js index 790448d7e8..a6a60c0a88 100644 --- a/packages/worker/src/environment.js +++ b/packages/worker/src/environment.js @@ -1,4 +1,5 @@ const { join } = require("path") +const { TTL } = require("@budibase/backend-core/cache") function isDev() { return process.env.NODE_ENV !== "production" @@ -52,7 +53,8 @@ module.exports = { SMTP_FROM_ADDRESS: process.env.SMTP_FROM_ADDRESS, PLATFORM_URL: process.env.PLATFORM_URL, COOKIE_DOMAIN: process.env.COOKIE_DOMAIN, - CHECKLIST_CACHE_TTL: parseIntSafe(process.env.CHECKLIST_CACHE_TTL) || 600, + CHECKLIST_CACHE_TTL: + parseIntSafe(process.env.CHECKLIST_CACHE_TTL) || TTL.ONE_HOUR, APPS_URL: process.env.APPS_URL, _set(key, value) { process.env[key] = value