diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts index adc5152e4f..1542db8438 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts @@ -50,7 +50,6 @@ import { import { createConditionAuthorizer } from '@backstage/plugin-permission-node'; import { actionExecutePermission } from '@backstage/plugin-scaffolder-common/alpha'; import { - CheckpointContext, TaskContext, TemplateAction, TemplateFilter, @@ -61,7 +60,10 @@ import { scaffolderActionRules } from '../../service/rules'; import { createCounterMetric, createHistogramMetric } from '../../util/metrics'; import { BackstageLoggerTransport, WinstonLogger } from './logger'; import { convertFiltersToRecord } from '../../util/templating'; -import { CheckpointState } from '@backstage/plugin-scaffolder-node'; +import { + CheckpointState, + CheckpointContext, +} from '@backstage/plugin-scaffolder-node/alpha'; type NunjucksWorkflowRunnerOptions = { workingDirectory: string; diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts index 5e90a11d83..c88a1f687c 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts @@ -23,7 +23,6 @@ import { import { Config } from '@backstage/config'; import { TaskSpec } from '@backstage/plugin-scaffolder-common'; import { - CheckpointState, SerializedTask, SerializedTaskEvent, TaskBroker, @@ -32,9 +31,12 @@ import { TaskContext, TaskSecrets, TaskStatus, - UpdateTaskCheckpointOptions, } from '@backstage/plugin-scaffolder-node'; -import { WorkspaceProvider } from '@backstage/plugin-scaffolder-node/alpha'; +import { + CheckpointState, + WorkspaceProvider, + UpdateTaskCheckpointOptions, +} from '@backstage/plugin-scaffolder-node/alpha'; import { JsonObject, Observable, createDeferred } from '@backstage/types'; import ObservableImpl from 'zen-observable'; import { DefaultWorkspaceService, WorkspaceService } from './WorkspaceService'; diff --git a/plugins/scaffolder-node-test-utils/src/actions/mockActionContext.ts b/plugins/scaffolder-node-test-utils/src/actions/mockActionContext.ts index d364d4dc1e..e2f07f2320 100644 --- a/plugins/scaffolder-node-test-utils/src/actions/mockActionContext.ts +++ b/plugins/scaffolder-node-test-utils/src/actions/mockActionContext.ts @@ -21,10 +21,8 @@ import { mockServices, } from '@backstage/backend-test-utils'; import { JsonObject, JsonValue } from '@backstage/types'; -import { - ActionContext, - CheckpointContext, -} from '@backstage/plugin-scaffolder-node'; +import { ActionContext } from '@backstage/plugin-scaffolder-node'; +import { CheckpointContext } from '@backstage/plugin-scaffolder-node/alpha'; import { loggerToWinstonLogger } from './loggerToWinstonLogger'; /** diff --git a/plugins/scaffolder-node/src/actions/types.ts b/plugins/scaffolder-node/src/actions/types.ts index 8104470dd8..32ab12657c 100644 --- a/plugins/scaffolder-node/src/actions/types.ts +++ b/plugins/scaffolder-node/src/actions/types.ts @@ -23,7 +23,7 @@ import { BackstageCredentials, LoggerService, } from '@backstage/backend-plugin-api'; -import { CheckpointContext } from '../checkpoints'; +import { CheckpointContext } from '../alpha'; /** * ActionContext is passed into scaffolder actions. diff --git a/plugins/scaffolder-node/src/checkpoints/index.ts b/plugins/scaffolder-node/src/alpha/checkpoints/index.ts similarity index 93% rename from plugins/scaffolder-node/src/checkpoints/index.ts rename to plugins/scaffolder-node/src/alpha/checkpoints/index.ts index 5d542de408..16c936b235 100644 --- a/plugins/scaffolder-node/src/checkpoints/index.ts +++ b/plugins/scaffolder-node/src/alpha/checkpoints/index.ts @@ -1,5 +1,5 @@ /* - * Copyright 2024 The Backstage Authors + * Copyright 2025 The Backstage Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,5 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - export * from './types'; diff --git a/plugins/scaffolder-node/src/checkpoints/types.ts b/plugins/scaffolder-node/src/alpha/checkpoints/types.ts similarity index 96% rename from plugins/scaffolder-node/src/checkpoints/types.ts rename to plugins/scaffolder-node/src/alpha/checkpoints/types.ts index eecf769f5a..45f1c03430 100644 --- a/plugins/scaffolder-node/src/checkpoints/types.ts +++ b/plugins/scaffolder-node/src/alpha/checkpoints/types.ts @@ -18,14 +18,14 @@ import { JsonValue } from '@backstage/types'; /** * The status of a checkpoint, indicating whether it succeeded or failed. * - * @public + * @alpha */ export type CheckpointStatus = 'failed' | 'success'; /** * Represents a successful checkpoint state with a value. * - * @public + * @alpha */ export type CheckpointSuccessState = { status: 'success'; @@ -35,7 +35,7 @@ export type CheckpointSuccessState = { /** * Represents a failed checkpoint state with a reason for failure. * - * @public + * @alpha */ export type CheckpointFailedState = { status: 'failed'; @@ -45,7 +45,7 @@ export type CheckpointFailedState = { /** * Represents the union of all possible checkpoint state values. * - * @public + * @alpha */ export type CheckpointStateValue = | CheckpointSuccessState @@ -54,7 +54,7 @@ export type CheckpointStateValue = /** * A map of checkpoint keys to their states. * - * @public + * @alpha */ export type CheckpointState = { [key: string]: CheckpointStateValue; @@ -63,7 +63,7 @@ export type CheckpointState = { /** * Context for checkpoint function invocation. * - * @public + * @alpha */ export type CheckpointContext = { /** diff --git a/plugins/scaffolder-node/src/alpha/index.ts b/plugins/scaffolder-node/src/alpha/index.ts index 9df968a52d..30f95f116a 100644 --- a/plugins/scaffolder-node/src/alpha/index.ts +++ b/plugins/scaffolder-node/src/alpha/index.ts @@ -28,6 +28,7 @@ export * from '../tasks/alpha'; export * from './filters'; export * from './globals'; export * from './types'; +export * from './checkpoints'; /** * Extension point for managing scaffolder actions. diff --git a/plugins/scaffolder-node/src/index.ts b/plugins/scaffolder-node/src/index.ts index d44f0e9c50..5d49ee874c 100644 --- a/plugins/scaffolder-node/src/index.ts +++ b/plugins/scaffolder-node/src/index.ts @@ -24,4 +24,3 @@ export * from './actions'; export * from './tasks'; export * from './files'; export * from './types'; -export * from './checkpoints'; diff --git a/plugins/scaffolder-node/src/tasks/alpha.ts b/plugins/scaffolder-node/src/tasks/alpha.ts index fb6b09026c..4354a798cf 100644 --- a/plugins/scaffolder-node/src/tasks/alpha.ts +++ b/plugins/scaffolder-node/src/tasks/alpha.ts @@ -1,3 +1,5 @@ +import { CheckpointStateValue } from '../alpha'; + /* * Copyright 2024 The Backstage Authors * @@ -14,3 +16,12 @@ * limitations under the License. */ export * from './serializer'; + +/** + * Options for updating a checkpoint in a task. + * + * @alpha + */ +export type UpdateTaskCheckpointOptions = { + key: string; +} & CheckpointStateValue; diff --git a/plugins/scaffolder-node/src/tasks/index.ts b/plugins/scaffolder-node/src/tasks/index.ts index e047131d2b..2ff31857f5 100644 --- a/plugins/scaffolder-node/src/tasks/index.ts +++ b/plugins/scaffolder-node/src/tasks/index.ts @@ -25,5 +25,5 @@ export type { TaskContext, TaskEventType, TaskStatus, - UpdateTaskCheckpointOptions, + // UpdateTaskCheckpointOptions, } from './types'; diff --git a/plugins/scaffolder-node/src/tasks/types.ts b/plugins/scaffolder-node/src/tasks/types.ts index e3b64fea15..5621aa117b 100644 --- a/plugins/scaffolder-node/src/tasks/types.ts +++ b/plugins/scaffolder-node/src/tasks/types.ts @@ -17,7 +17,7 @@ import { BackstageCredentials } from '@backstage/backend-plugin-api'; import { TaskSpec } from '@backstage/plugin-scaffolder-common'; import { JsonObject, Observable } from '@backstage/types'; -import { CheckpointStateValue } from '../checkpoints'; +import { UpdateTaskCheckpointOptions } from '../alpha'; /** * TaskSecrets @@ -105,15 +105,6 @@ export type TaskBrokerDispatchOptions = { createdBy?: string; }; -/** - * Options for updating a checkpoint in a task. - * - * @public - */ -export type UpdateTaskCheckpointOptions = { - key: string; -} & CheckpointStateValue; - /** * Task *