scaffolder: make permissionApi optional

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
This commit is contained in:
Vincenzo Scamporlino
2023-04-03 18:52:48 +02:00
parent 6ffbf079fb
commit 942f06b9c9
3 changed files with 13 additions and 9 deletions
@@ -54,10 +54,10 @@ export type TemplateTesterCreateOptions = {
logger: Logger;
integrations: ScmIntegrations;
actionRegistry: TemplateActionRegistry;
permissionApi: PermissionEvaluator;
workingDirectory: string;
additionalTemplateFilters?: Record<string, TemplateFilter>;
additionalTemplateGlobals?: Record<string, TemplateGlobal>;
permissionApi?: PermissionEvaluator;
};
/**
@@ -48,7 +48,10 @@ import { createConditionAuthorizer } from '@backstage/plugin-permission-node';
import { UserEntity } from '@backstage/catalog-model';
import { createCounterMetric, createHistogramMetric } from '../../util/metrics';
import { createDefaultFilters } from '../../lib/templating/filters';
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
import {
AuthorizeResult,
PermissionEvaluator,
} from '@backstage/plugin-permission-common';
import { scaffolderActionRules } from '../../service/rules';
import { actionExecutePermission } from '@backstage/plugin-scaffolder-common/alpha';
@@ -59,7 +62,7 @@ type NunjucksWorkflowRunnerOptions = {
logger: winston.Logger;
additionalTemplateFilters?: Record<string, TemplateFilter>;
additionalTemplateGlobals?: Record<string, TemplateGlobal>;
permissionApi: PermissionEvaluator;
permissionApi?: PermissionEvaluator;
};
type TemplateContext = {
@@ -292,10 +295,11 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
}
}
const [decision] = await this.options.permissionApi.authorizeConditional(
[{ permission: actionExecutePermission }],
{ token: task.secrets?.backstageToken },
);
const [decision] =
(await this.options.permissionApi?.authorizeConditional(
[{ permission: actionExecutePermission }],
{ token: task.secrets?.backstageToken },
)) || [{ result: AuthorizeResult.ALLOW }];
if (!isActionAuthorized(decision, { action: action.id, input })) {
throw new InputError(
@@ -30,11 +30,11 @@ import { PermissionEvaluator } from '@backstage/plugin-permission-common';
*/
export type TaskWorkerOptions = {
taskBroker: TaskBroker;
permissionApi: PermissionEvaluator;
runners: {
workflowRunner: WorkflowRunner;
};
concurrentTasksLimit: number;
permissionApi?: PermissionEvaluator;
};
/**
@@ -44,7 +44,6 @@ export type TaskWorkerOptions = {
*/
export type CreateWorkerOptions = {
taskBroker: TaskBroker;
permissionApi: PermissionEvaluator;
actionRegistry: TemplateActionRegistry;
integrations: ScmIntegrations;
workingDirectory: string;
@@ -64,6 +63,7 @@ export type CreateWorkerOptions = {
*/
concurrentTasksLimit?: number;
additionalTemplateGlobals?: Record<string, TemplateGlobal>;
permissionApi?: PermissionEvaluator;
};
/**