From 6f995f306581dda3faa545e9c2a3e869b039fdd9 Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Mon, 7 Nov 2022 09:45:00 +0000 Subject: [PATCH] Configurable CDN --- packages/server/src/environment.js | 1 + packages/server/src/utilities/index.js | 4 +--- packages/server/src/utilities/plugins.js | 2 +- packages/worker/src/api/controllers/global/configs.js | 4 +--- packages/worker/src/environment.ts | 1 + 5 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/server/src/environment.js b/packages/server/src/environment.js index ef8e674a86..72baab9167 100644 --- a/packages/server/src/environment.js +++ b/packages/server/src/environment.js @@ -46,6 +46,7 @@ module.exports = { AWS_REGION: process.env.AWS_REGION, MINIO_ACCESS_KEY: process.env.MINIO_ACCESS_KEY, MINIO_SECRET_KEY: process.env.MINIO_SECRET_KEY, + CDN_URL: process.env.CDN_URL || "https://cdn.budi.live", REDIS_URL: process.env.REDIS_URL, REDIS_PASSWORD: process.env.REDIS_PASSWORD, INTERNAL_API_KEY: process.env.INTERNAL_API_KEY, diff --git a/packages/server/src/utilities/index.js b/packages/server/src/utilities/index.js index 38e15b5f58..9b51e0e628 100644 --- a/packages/server/src/utilities/index.js +++ b/packages/server/src/utilities/index.js @@ -5,8 +5,6 @@ const { generateMetadataID } = require("../db/utils") const Readable = require("stream").Readable const { getAppDB } = require("@budibase/backend-core/context") -const BB_CDN = "https://cdn.budi.live" - exports.wait = ms => new Promise(resolve => setTimeout(resolve, ms)) exports.isDev = env.isDev @@ -40,7 +38,7 @@ exports.objectStoreUrl = () => { // can use a relative url for this as all goes through the proxy (this is hosted in minio) return OBJ_STORE_DIRECTORY } else { - return BB_CDN + return env.CDN_URL } } diff --git a/packages/server/src/utilities/plugins.js b/packages/server/src/utilities/plugins.js index 202a349b16..139639e814 100644 --- a/packages/server/src/utilities/plugins.js +++ b/packages/server/src/utilities/plugins.js @@ -13,7 +13,7 @@ exports.enrichPluginURLs = plugins => { // In self host we need to prefix the path, as the bucket name is not part // of the bucket path. In cloud, it's already part of the bucket path. - let jsUrl = cloud ? "https://cdn.budi.live/" : `/${bucket}/` + let jsUrl = cloud ? `${env.CDN_URL}/` : `/${bucket}/` jsUrl += ProPlugins.getBucketPath(plugin.name) jsUrl += jsFileName return { ...plugin, jsUrl } diff --git a/packages/worker/src/api/controllers/global/configs.js b/packages/worker/src/api/controllers/global/configs.js index 54de62a2aa..5be6141c3f 100644 --- a/packages/worker/src/api/controllers/global/configs.js +++ b/packages/worker/src/api/controllers/global/configs.js @@ -22,8 +22,6 @@ const { const { events } = require("@budibase/backend-core") const { checkAnyUserExists } = require("../../../utilities/users") -const BB_TENANT_CDN = "https://tenants.cdn.budi.live" - const getEventFns = async (db, config) => { const fns = [] const type = config.type @@ -350,7 +348,7 @@ exports.upload = async function (ctx) { if (env.SELF_HOSTED) { url = `/${bucket}/${key}` } else { - url = `${BB_TENANT_CDN}/${key}` + url = `${env.CDN_URL}/${key}` } cfgStructure.config[`${name}`] = url diff --git a/packages/worker/src/environment.ts b/packages/worker/src/environment.ts index 5b39ce6655..c9eabdfdb4 100644 --- a/packages/worker/src/environment.ts +++ b/packages/worker/src/environment.ts @@ -42,6 +42,7 @@ const env = { ACCOUNT_PORTAL_URL: process.env.ACCOUNT_PORTAL_URL, PLATFORM_URL: process.env.PLATFORM_URL, APPS_URL: process.env.APPS_URL, + CDN_URL: process.env.CDN_URL || "https://tenants.cdn.budi.live", // ports // prefer worker port to generic port PORT: process.env.WORKER_PORT || process.env.PORT,