Fixing issue #1050 - two issues found, one with running automations in self host throwing an error when trying to access cloud resources (Dynamo) and secondly the worker pool does not have access to resources in the main server instance, therefore need to re-init when running an external action (get manifest, to download the package).

This commit is contained in:
mike12345567 2021-02-17 13:40:14 +00:00
parent f01e9998b8
commit 1f92d09d7f
4 changed files with 11 additions and 3 deletions

View File

@ -14,7 +14,6 @@ exports.fetchInfo = async ctx => {
}
exports.save = async ctx => {
console.trace("DID A SAVE!")
const db = new CouchDB(BUILDER_CONFIG_DB)
const { type } = ctx.request.body
if (type === HostingTypes.CLOUD && ctx.request.body._rev) {

View File

@ -53,6 +53,10 @@ module.exports.getAction = async function(actionName) {
if (BUILTIN_ACTIONS[actionName] != null) {
return BUILTIN_ACTIONS[actionName]
}
// worker pools means that a worker may not have manifest
if (env.CLOUD && MANIFEST == null) {
MANIFEST = await module.exports.init()
}
// env setup to get async packages
if (!MANIFEST || !MANIFEST.packages || !MANIFEST.packages[actionName]) {
return null
@ -86,8 +90,10 @@ module.exports.init = async function() {
? Object.assign(MANIFEST.packages, BUILTIN_DEFINITIONS)
: BUILTIN_DEFINITIONS
} catch (err) {
console.error(err)
Sentry.captureException(err)
}
return MANIFEST
}
module.exports.DEFINITIONS = BUILTIN_DEFINITIONS

View File

@ -34,7 +34,7 @@ module.exports.init = function() {
actions.init().then(() => {
triggers.automationQueue.process(async job => {
try {
if (env.CLOUD && job.data.automation) {
if (env.CLOUD && job.data.automation && !env.SELF_HOSTED) {
job.data.automation.apiKey = await updateQuota(job.data.automation)
}
if (env.BUDIBASE_ENVIRONMENT === "PRODUCTION") {

View File

@ -50,6 +50,9 @@ exports.Properties = {
}
exports.getAPIKey = async appId => {
if (env.SELF_HOSTED) {
return { apiKey: null }
}
return apiKeyTable.get({ primary: appId })
}
@ -63,7 +66,7 @@ exports.getAPIKey = async appId => {
*/
exports.update = async (apiKey, property, usage) => {
// don't try validate in builder
if (!env.CLOUD) {
if (!env.CLOUD || env.SELF_HOSTED) {
return
}
try {