Fixing an issue with automations being unable to access app databases due to new context stack up.

This commit is contained in:
mike12345567 2022-07-18 17:38:58 +01:00
parent d2e78b9099
commit 078cf9e95f
2 changed files with 6 additions and 11 deletions

View File

@ -67,6 +67,7 @@ export const getTenantIDFromAppID = (appId: string) => {
// used for automations, API endpoints should always be in context already
export const doInTenant = (tenantId: string | null, task: any) => {
tenantId = tenantId || DEFAULT_TENANT_ID
// the internal function is so that we can re-use an existing
// context - don't want to close DB on a parent context
async function internal(opts = { existing: false }) {

View File

@ -3,9 +3,7 @@ const actions = require("../automations/actions")
const automationUtils = require("../automations/automationUtils")
const AutomationEmitter = require("../events/AutomationEmitter")
const { processObject } = require("@budibase/string-templates")
const { DEFAULT_TENANT_ID } = require("@budibase/backend-core/constants")
const { DocumentTypes } = require("../db/utils")
const { doInTenant } = require("@budibase/backend-core/tenancy")
const { definitions: triggerDefs } = require("../automations/triggerInfo")
const { doInAppContext, getAppDB } = require("@budibase/backend-core/context")
const { AutomationErrors, LoopStepTypes } = require("../constants")
@ -134,7 +132,6 @@ class Orchestrator {
async execute() {
let automation = this._automation
const app = await this.getApp()
let stopped = false
let loopStep = null
@ -264,14 +261,11 @@ class Orchestrator {
inputs = automationUtils.cleanInputValues(inputs, step.schema.inputs)
try {
// appId is always passed
let tenantId = app.tenantId || DEFAULT_TENANT_ID
const outputs = await doInTenant(tenantId, () => {
return stepFn({
inputs: inputs,
appId: this._appId,
emitter: this._emitter,
context: this._context,
})
const outputs = await stepFn({
inputs: inputs,
appId: this._appId,
emitter: this._emitter,
context: this._context,
})
this._context.steps[stepCount] = outputs
// if filter causes us to stop execution don't break the loop, set a var