From e9486a4701b06983b040ef912badd00e63370b4e Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 4 Apr 2023 12:42:21 +0200 Subject: [PATCH] scaffolder: actions api report Signed-off-by: Vincenzo Scamporlino --- .../scaffolder-backend/alpha-api-report.md | 60 ++++++++++++++++--- plugins/scaffolder-backend/api-report.md | 15 ++--- plugins/scaffolder-common/alpha-api-report.md | 11 +++- 3 files changed, 71 insertions(+), 15 deletions(-) diff --git a/plugins/scaffolder-backend/alpha-api-report.md b/plugins/scaffolder-backend/alpha-api-report.md index e762c2be4f..1ea6c02cbe 100644 --- a/plugins/scaffolder-backend/alpha-api-report.md +++ b/plugins/scaffolder-backend/alpha-api-report.md @@ -6,6 +6,7 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common'; import { Conditions } from '@backstage/plugin-permission-node'; +import { JsonObject } from '@backstage/types'; import { PermissionCondition } from '@backstage/plugin-permission-common'; import { PermissionCriteria } from '@backstage/plugin-permission-common'; import { PermissionRule } from '@backstage/plugin-permission-node'; @@ -20,20 +21,53 @@ import { TemplateParametersV1beta3 } from '@backstage/plugin-scaffolder-common'; // @alpha export const catalogModuleTemplateKind: () => BackendFeature; +// @alpha (undocumented) +export const createScaffolderActionConditionalDecision: ( + permission: ResourcePermission<'scaffolder-action'>, + conditions: PermissionCriteria>, +) => ConditionalPolicyDecision; + // @alpha -export const createScaffolderConditionalDecision: ( +export const createScaffolderTemplateConditionalDecision: ( permission: ResourcePermission<'scaffolder-template'>, conditions: PermissionCriteria>, ) => ConditionalPolicyDecision; // @alpha -export const scaffolderConditions: Conditions<{ - hasTag: PermissionRule< - TemplateParametersV1beta3 | TemplateEntityStepV1beta3, - {}, - 'scaffolder-template', +export const scaffolderActionConditions: Conditions<{ + hasActionId: PermissionRule< { - tag: string; + action: string; + input: JsonObject | undefined; + }, + {}, + 'scaffolder-action', + { + actionId: string; + } + >; + hasNumberProperty: PermissionRule< + { + action: string; + input: JsonObject | undefined; + }, + {}, + 'scaffolder-action', + { + value: number; + key: string; + } + >; + hasStringProperty: PermissionRule< + { + action: string; + input: JsonObject | undefined; + }, + {}, + 'scaffolder-action', + { + value: string; + key: string; } >; }>; @@ -52,5 +86,17 @@ export type ScaffolderPluginOptions = { additionalTemplateGlobals?: Record; }; +// @alpha +export const scaffolderTemplateConditions: Conditions<{ + hasTag: PermissionRule< + TemplateEntityStepV1beta3 | TemplateParametersV1beta3, + {}, + 'scaffolder-template', + { + tag: string; + } + >; +}>; + // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 2faaeca7cc..7e6050fe1d 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -273,7 +273,7 @@ export function createGithubRepoCreateAction(options: { requiredStatusCheckContexts?: string[] | undefined; requireBranchesToBeUpToDate?: boolean | undefined; requiredConversationResolution?: boolean | undefined; - repoVisibility?: 'internal' | 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | 'internal' | undefined; collaborators?: | ( | { @@ -388,7 +388,7 @@ export function createPublishBitbucketAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | undefined; sourcePath?: string | undefined; enableLFS?: boolean | undefined; token?: string | undefined; @@ -408,7 +408,7 @@ export function createPublishBitbucketCloudAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | undefined; sourcePath?: string | undefined; token?: string | undefined; }, @@ -424,7 +424,7 @@ export function createPublishBitbucketServerAction(options: { repoUrl: string; description?: string | undefined; defaultBranch?: string | undefined; - repoVisibility?: 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | undefined; sourcePath?: string | undefined; enableLFS?: boolean | undefined; token?: string | undefined; @@ -517,7 +517,7 @@ export function createPublishGithubAction(options: { requiredStatusCheckContexts?: string[] | undefined; requireBranchesToBeUpToDate?: boolean | undefined; requiredConversationResolution?: boolean | undefined; - repoVisibility?: 'internal' | 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | 'internal' | undefined; collaborators?: | ( | { @@ -571,7 +571,7 @@ export function createPublishGitlabAction(options: { { repoUrl: string; defaultBranch?: string | undefined; - repoVisibility?: 'internal' | 'private' | 'public' | undefined; + repoVisibility?: 'public' | 'private' | 'internal' | undefined; sourcePath?: string | undefined; token?: string | undefined; gitCommitMessage?: string | undefined; @@ -595,7 +595,7 @@ export const createPublishGitlabMergeRequestAction: (options: { sourcePath?: string | undefined; targetPath?: string | undefined; token?: string | undefined; - commitAction?: 'update' | 'delete' | 'create' | undefined; + commitAction?: 'create' | 'update' | 'delete' | undefined; projectid?: string | undefined; removeSourceBranch?: boolean | undefined; assignee?: string | undefined; @@ -650,6 +650,7 @@ export type CreateWorkerOptions = { additionalTemplateFilters?: Record; concurrentTasksLimit?: number; additionalTemplateGlobals?: Record; + permissionApi?: PermissionEvaluator; }; // @public diff --git a/plugins/scaffolder-common/alpha-api-report.md b/plugins/scaffolder-common/alpha-api-report.md index e89999ad85..d6e746026a 100644 --- a/plugins/scaffolder-common/alpha-api-report.md +++ b/plugins/scaffolder-common/alpha-api-report.md @@ -5,11 +5,20 @@ ```ts import { ResourcePermission } from '@backstage/plugin-permission-common'; +// @alpha +export const actionExecutePermission: ResourcePermission<'scaffolder-action'>; + +// @alpha +export const RESOURCE_TYPE_SCAFFOLDER_ACTION = 'scaffolder-action'; + // @alpha export const RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = 'scaffolder-template'; // @alpha -export const scaffolderPermissions: ResourcePermission<'scaffolder-template'>[]; +export const scaffolderPermissions: ( + | ResourcePermission<'scaffolder-action'> + | ResourcePermission<'scaffolder-template'> +)[]; // @alpha export const templateParameterReadPermission: ResourcePermission<'scaffolder-template'>;