@backstage/plugin-scaffolder-backend 2.2.1 → 3.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,42 @@
1
1
  # @backstage/plugin-scaffolder-backend
2
2
 
3
+ ## 3.0.0-next.0
4
+
5
+ ### Major Changes
6
+
7
+ - 9b81a90: **BREAKING** - Removing the deprecated types and interfaces, there's no replacement for these types, and hopefully not currently used as they offer no value with the plugin being on the new backend system and no way to consume them.
8
+
9
+ Affected types: `CreateWorkerOptions`, `CurrentClaimedTask`, `DatabaseTaskStore`, `DatabaseTaskStoreOptions`, `TaskManager`, `TaskStore`, `TaskStoreCreateTaskOptions`, `TaskStoreCreateTaskResult`, `TaskStoreEmitOptions`, `TaskStoreListEventsOptions`, `TaskStoreRecoverTaskOptions`, `TaskStoreShutDownTaskOptions`, `TaskWorker` and `TemplateActionRegistry`.
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+ - @backstage/backend-defaults@0.13.0-next.0
15
+ - @backstage/integration@1.18.1-next.0
16
+ - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.14-next.0
17
+ - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.2.14-next.0
18
+ - @backstage/plugin-scaffolder-backend-module-bitbucket@0.3.15-next.0
19
+ - @backstage/plugin-scaffolder-backend-module-gerrit@0.2.14-next.0
20
+ - @backstage/plugin-scaffolder-backend-module-github@0.9.1-next.0
21
+ - @backstage/plugin-scaffolder-backend-module-gitlab@0.9.6-next.0
22
+ - @backstage/plugin-scaffolder-backend-module-azure@0.2.14-next.0
23
+ - @backstage/plugin-scaffolder-backend-module-gitea@0.2.14-next.0
24
+ - @backstage/plugin-scaffolder-node@0.12.0-next.0
25
+ - @backstage/plugin-bitbucket-cloud-common@0.3.3-next.0
26
+ - @backstage/plugin-auth-node@0.6.7
27
+ - @backstage/plugin-permission-node@0.10.4
28
+ - @backstage/plugin-scaffolder-common@1.7.2-next.0
29
+ - @backstage/backend-openapi-utils@0.6.1
30
+ - @backstage/backend-plugin-api@1.4.3
31
+ - @backstage/catalog-model@1.7.5
32
+ - @backstage/config@1.3.3
33
+ - @backstage/errors@1.2.7
34
+ - @backstage/types@1.2.2
35
+ - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.13-next.0
36
+ - @backstage/plugin-catalog-node@1.19.0
37
+ - @backstage/plugin-events-node@0.4.15
38
+ - @backstage/plugin-permission-common@0.9.1
39
+
3
40
  ## 2.2.1
4
41
 
5
42
  ### Patch Changes
@@ -4,6 +4,7 @@ var backendPluginApi = require('@backstage/backend-plugin-api');
4
4
  var integration = require('@backstage/integration');
5
5
  var pluginCatalogNode = require('@backstage/plugin-catalog-node');
6
6
  var pluginEventsNode = require('@backstage/plugin-events-node');
7
+ var pluginScaffolderNode = require('@backstage/plugin-scaffolder-node');
7
8
  var alpha = require('@backstage/plugin-scaffolder-node/alpha');
8
9
  var register = require('./scaffolder/actions/builtin/catalog/register.cjs.js');
9
10
  var write = require('./scaffolder/actions/builtin/catalog/write.cjs.js');
@@ -36,7 +37,7 @@ const scaffolderPlugin = backendPluginApi.createBackendPlugin({
36
37
  pluginId: "scaffolder",
37
38
  register(env) {
38
39
  const addedActions = new Array();
39
- env.registerExtensionPoint(alpha.scaffolderActionsExtensionPoint, {
40
+ env.registerExtensionPoint(pluginScaffolderNode.scaffolderActionsExtensionPoint, {
40
41
  addActions(...newActions) {
41
42
  addedActions.push(...newActions);
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScaffolderPlugin.cjs.js","sources":["../src/ScaffolderPlugin.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n coreServices,\n createBackendPlugin,\n} from '@backstage/backend-plugin-api';\nimport { ScmIntegrations } from '@backstage/integration';\nimport { catalogServiceRef } from '@backstage/plugin-catalog-node';\nimport { eventsServiceRef } from '@backstage/plugin-events-node';\nimport { TaskBroker, TemplateAction } from '@backstage/plugin-scaffolder-node';\nimport {\n AutocompleteHandler,\n CreatedTemplateFilter,\n CreatedTemplateGlobal,\n createTemplateFilter,\n createTemplateGlobalFunction,\n createTemplateGlobalValue,\n scaffolderActionsExtensionPoint,\n scaffolderAutocompleteExtensionPoint,\n scaffolderTaskBrokerExtensionPoint,\n scaffolderTemplatingExtensionPoint,\n scaffolderWorkspaceProviderExtensionPoint,\n WorkspaceProvider,\n} from '@backstage/plugin-scaffolder-node/alpha';\nimport {\n createCatalogRegisterAction,\n createCatalogWriteAction,\n createDebugLogAction,\n createFetchCatalogEntityAction,\n createFetchPlainAction,\n createFetchPlainFileAction,\n createFetchTemplateAction,\n createFetchTemplateFileAction,\n createFilesystemDeleteAction,\n createFilesystemReadDirAction,\n createFilesystemRenameAction,\n createWaitAction,\n} from './scaffolder';\nimport { createRouter } from './service/router';\nimport { loggerToWinstonLogger } from './util/loggerToWinstonLogger';\nimport {\n convertFiltersToRecord,\n convertGlobalsToRecord,\n} from './util/templating';\nimport { actionsServiceRef } from '@backstage/backend-plugin-api/alpha';\n\n/**\n * Scaffolder plugin\n *\n * @public\n */\nexport const scaffolderPlugin = createBackendPlugin({\n pluginId: 'scaffolder',\n register(env) {\n const addedActions = new Array<TemplateAction<any, any>>();\n env.registerExtensionPoint(scaffolderActionsExtensionPoint, {\n addActions(...newActions: TemplateAction<any>[]) {\n addedActions.push(...newActions);\n },\n });\n\n let taskBroker: TaskBroker | undefined;\n env.registerExtensionPoint(scaffolderTaskBrokerExtensionPoint, {\n setTaskBroker(newTaskBroker) {\n if (taskBroker) {\n throw new Error('Task broker may only be set once');\n }\n taskBroker = newTaskBroker;\n },\n });\n\n const additionalTemplateFilters: CreatedTemplateFilter<any, any>[] = [];\n const additionalTemplateGlobals: CreatedTemplateGlobal[] = [];\n\n env.registerExtensionPoint(scaffolderTemplatingExtensionPoint, {\n addTemplateFilters(newFilters) {\n additionalTemplateFilters.push(\n ...(Array.isArray(newFilters)\n ? newFilters\n : Object.entries(newFilters).map(([id, filter]) =>\n createTemplateFilter({\n id,\n filter,\n }),\n )),\n );\n },\n addTemplateGlobals(newGlobals) {\n additionalTemplateGlobals.push(\n ...(Array.isArray(newGlobals)\n ? newGlobals\n : Object.entries(newGlobals).map(([id, global]) =>\n typeof global === 'function'\n ? createTemplateGlobalFunction({ id, fn: global })\n : createTemplateGlobalValue({ id, value: global }),\n )),\n );\n },\n });\n\n const autocompleteHandlers: Record<string, AutocompleteHandler> = {};\n env.registerExtensionPoint(scaffolderAutocompleteExtensionPoint, {\n addAutocompleteProvider(provider) {\n autocompleteHandlers[provider.id] = provider.handler;\n },\n });\n\n const additionalWorkspaceProviders: Record<string, WorkspaceProvider> = {};\n env.registerExtensionPoint(scaffolderWorkspaceProviderExtensionPoint, {\n addProviders(provider) {\n Object.assign(additionalWorkspaceProviders, provider);\n },\n });\n\n env.registerInit({\n deps: {\n logger: coreServices.logger,\n config: coreServices.rootConfig,\n lifecycle: coreServices.rootLifecycle,\n reader: coreServices.urlReader,\n permissions: coreServices.permissions,\n database: coreServices.database,\n auth: coreServices.auth,\n httpRouter: coreServices.httpRouter,\n httpAuth: coreServices.httpAuth,\n auditor: coreServices.auditor,\n catalog: catalogServiceRef,\n events: eventsServiceRef,\n actionsRegistry: actionsServiceRef,\n },\n async init({\n logger,\n config,\n lifecycle,\n reader,\n database,\n auth,\n httpRouter,\n httpAuth,\n catalog,\n permissions,\n events,\n auditor,\n actionsRegistry,\n }) {\n const log = loggerToWinstonLogger(logger);\n const integrations = ScmIntegrations.fromConfig(config);\n\n const templateExtensions = {\n additionalTemplateFilters: convertFiltersToRecord(\n additionalTemplateFilters,\n ),\n additionalTemplateGlobals: convertGlobalsToRecord(\n additionalTemplateGlobals,\n ),\n };\n const actions = [\n // actions provided from other modules\n ...addedActions,\n\n // built-in actions for the scaffolder\n createFetchPlainAction({\n reader,\n integrations,\n }),\n createFetchPlainFileAction({\n reader,\n integrations,\n }),\n createFetchTemplateAction({\n integrations,\n reader,\n ...templateExtensions,\n }),\n createFetchTemplateFileAction({\n integrations,\n reader,\n ...templateExtensions,\n }),\n createDebugLogAction(),\n createWaitAction(),\n // todo(blam): maybe these should be a -catalog module?\n createCatalogRegisterAction({ catalog, integrations }),\n createFetchCatalogEntityAction({ catalog }),\n createCatalogWriteAction(),\n createFilesystemDeleteAction(),\n createFilesystemRenameAction(),\n createFilesystemReadDirAction(),\n ];\n\n const actionIds = actions.map(action => action.id).join(', ');\n\n log.info(\n `Starting scaffolder with the following actions enabled ${actionIds}`,\n );\n\n const router = await createRouter({\n logger,\n config,\n database,\n catalog,\n lifecycle,\n actions,\n taskBroker,\n additionalTemplateFilters,\n additionalTemplateGlobals,\n auth,\n httpAuth,\n permissions,\n autocompleteHandlers,\n additionalWorkspaceProviders,\n events,\n auditor,\n actionsRegistry,\n });\n httpRouter.use(router);\n },\n });\n },\n});\n"],"names":["createBackendPlugin","scaffolderActionsExtensionPoint","scaffolderTaskBrokerExtensionPoint","scaffolderTemplatingExtensionPoint","createTemplateFilter","createTemplateGlobalFunction","createTemplateGlobalValue","scaffolderAutocompleteExtensionPoint","scaffolderWorkspaceProviderExtensionPoint","coreServices","catalogServiceRef","eventsServiceRef","actionsServiceRef","log","loggerToWinstonLogger","ScmIntegrations","convertFiltersToRecord","convertGlobalsToRecord","createFetchPlainAction","createFetchPlainFileAction","createFetchTemplateAction","createFetchTemplateFileAction","createDebugLogAction","createWaitAction","createCatalogRegisterAction","createFetchCatalogEntityAction","createCatalogWriteAction","createFilesystemDeleteAction","createFilesystemRenameAction","createFilesystemReadDirAction","router","createRouter"],"mappings":"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"}
1
+ {"version":3,"file":"ScaffolderPlugin.cjs.js","sources":["../src/ScaffolderPlugin.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n coreServices,\n createBackendPlugin,\n} from '@backstage/backend-plugin-api';\nimport { ScmIntegrations } from '@backstage/integration';\nimport { catalogServiceRef } from '@backstage/plugin-catalog-node';\nimport { eventsServiceRef } from '@backstage/plugin-events-node';\nimport {\n scaffolderActionsExtensionPoint,\n TaskBroker,\n TemplateAction,\n} from '@backstage/plugin-scaffolder-node';\nimport {\n AutocompleteHandler,\n CreatedTemplateFilter,\n CreatedTemplateGlobal,\n createTemplateFilter,\n createTemplateGlobalFunction,\n createTemplateGlobalValue,\n scaffolderAutocompleteExtensionPoint,\n scaffolderTaskBrokerExtensionPoint,\n scaffolderTemplatingExtensionPoint,\n scaffolderWorkspaceProviderExtensionPoint,\n WorkspaceProvider,\n} from '@backstage/plugin-scaffolder-node/alpha';\nimport {\n createCatalogRegisterAction,\n createCatalogWriteAction,\n createDebugLogAction,\n createFetchCatalogEntityAction,\n createFetchPlainAction,\n createFetchPlainFileAction,\n createFetchTemplateAction,\n createFetchTemplateFileAction,\n createFilesystemDeleteAction,\n createFilesystemReadDirAction,\n createFilesystemRenameAction,\n createWaitAction,\n} from './scaffolder';\nimport { createRouter } from './service/router';\nimport { loggerToWinstonLogger } from './util/loggerToWinstonLogger';\nimport {\n convertFiltersToRecord,\n convertGlobalsToRecord,\n} from './util/templating';\nimport { actionsServiceRef } from '@backstage/backend-plugin-api/alpha';\n\n/**\n * Scaffolder plugin\n *\n * @public\n */\nexport const scaffolderPlugin = createBackendPlugin({\n pluginId: 'scaffolder',\n register(env) {\n const addedActions = new Array<TemplateAction<any, any>>();\n env.registerExtensionPoint(scaffolderActionsExtensionPoint, {\n addActions(...newActions: TemplateAction<any>[]) {\n addedActions.push(...newActions);\n },\n });\n\n let taskBroker: TaskBroker | undefined;\n env.registerExtensionPoint(scaffolderTaskBrokerExtensionPoint, {\n setTaskBroker(newTaskBroker) {\n if (taskBroker) {\n throw new Error('Task broker may only be set once');\n }\n taskBroker = newTaskBroker;\n },\n });\n\n const additionalTemplateFilters: CreatedTemplateFilter<any, any>[] = [];\n const additionalTemplateGlobals: CreatedTemplateGlobal[] = [];\n\n env.registerExtensionPoint(scaffolderTemplatingExtensionPoint, {\n addTemplateFilters(newFilters) {\n additionalTemplateFilters.push(\n ...(Array.isArray(newFilters)\n ? newFilters\n : Object.entries(newFilters).map(([id, filter]) =>\n createTemplateFilter({\n id,\n filter,\n }),\n )),\n );\n },\n addTemplateGlobals(newGlobals) {\n additionalTemplateGlobals.push(\n ...(Array.isArray(newGlobals)\n ? newGlobals\n : Object.entries(newGlobals).map(([id, global]) =>\n typeof global === 'function'\n ? createTemplateGlobalFunction({ id, fn: global })\n : createTemplateGlobalValue({ id, value: global }),\n )),\n );\n },\n });\n\n const autocompleteHandlers: Record<string, AutocompleteHandler> = {};\n env.registerExtensionPoint(scaffolderAutocompleteExtensionPoint, {\n addAutocompleteProvider(provider) {\n autocompleteHandlers[provider.id] = provider.handler;\n },\n });\n\n const additionalWorkspaceProviders: Record<string, WorkspaceProvider> = {};\n env.registerExtensionPoint(scaffolderWorkspaceProviderExtensionPoint, {\n addProviders(provider) {\n Object.assign(additionalWorkspaceProviders, provider);\n },\n });\n\n env.registerInit({\n deps: {\n logger: coreServices.logger,\n config: coreServices.rootConfig,\n lifecycle: coreServices.rootLifecycle,\n reader: coreServices.urlReader,\n permissions: coreServices.permissions,\n database: coreServices.database,\n auth: coreServices.auth,\n httpRouter: coreServices.httpRouter,\n httpAuth: coreServices.httpAuth,\n auditor: coreServices.auditor,\n catalog: catalogServiceRef,\n events: eventsServiceRef,\n actionsRegistry: actionsServiceRef,\n },\n async init({\n logger,\n config,\n lifecycle,\n reader,\n database,\n auth,\n httpRouter,\n httpAuth,\n catalog,\n permissions,\n events,\n auditor,\n actionsRegistry,\n }) {\n const log = loggerToWinstonLogger(logger);\n const integrations = ScmIntegrations.fromConfig(config);\n\n const templateExtensions = {\n additionalTemplateFilters: convertFiltersToRecord(\n additionalTemplateFilters,\n ),\n additionalTemplateGlobals: convertGlobalsToRecord(\n additionalTemplateGlobals,\n ),\n };\n const actions = [\n // actions provided from other modules\n ...addedActions,\n\n // built-in actions for the scaffolder\n createFetchPlainAction({\n reader,\n integrations,\n }),\n createFetchPlainFileAction({\n reader,\n integrations,\n }),\n createFetchTemplateAction({\n integrations,\n reader,\n ...templateExtensions,\n }),\n createFetchTemplateFileAction({\n integrations,\n reader,\n ...templateExtensions,\n }),\n createDebugLogAction(),\n createWaitAction(),\n // todo(blam): maybe these should be a -catalog module?\n createCatalogRegisterAction({ catalog, integrations }),\n createFetchCatalogEntityAction({ catalog }),\n createCatalogWriteAction(),\n createFilesystemDeleteAction(),\n createFilesystemRenameAction(),\n createFilesystemReadDirAction(),\n ];\n\n const actionIds = actions.map(action => action.id).join(', ');\n\n log.info(\n `Starting scaffolder with the following actions enabled ${actionIds}`,\n );\n\n const router = await createRouter({\n logger,\n config,\n database,\n catalog,\n lifecycle,\n actions,\n taskBroker,\n additionalTemplateFilters,\n additionalTemplateGlobals,\n auth,\n httpAuth,\n permissions,\n autocompleteHandlers,\n additionalWorkspaceProviders,\n events,\n auditor,\n actionsRegistry,\n });\n httpRouter.use(router);\n },\n });\n },\n});\n"],"names":["createBackendPlugin","scaffolderActionsExtensionPoint","scaffolderTaskBrokerExtensionPoint","scaffolderTemplatingExtensionPoint","createTemplateFilter","createTemplateGlobalFunction","createTemplateGlobalValue","scaffolderAutocompleteExtensionPoint","scaffolderWorkspaceProviderExtensionPoint","coreServices","catalogServiceRef","eventsServiceRef","actionsServiceRef","log","loggerToWinstonLogger","ScmIntegrations","convertFiltersToRecord","convertGlobalsToRecord","createFetchPlainAction","createFetchPlainFileAction","createFetchTemplateAction","createFetchTemplateFileAction","createDebugLogAction","createWaitAction","createCatalogRegisterAction","createFetchCatalogEntityAction","createCatalogWriteAction","createFilesystemDeleteAction","createFilesystemRenameAction","createFilesystemReadDirAction","router","createRouter"],"mappings":"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"}
package/dist/index.cjs.js CHANGED
@@ -15,10 +15,6 @@ var templateFile = require('./scaffolder/actions/builtin/fetch/templateFile.cjs.
15
15
  var _delete = require('./scaffolder/actions/builtin/filesystem/delete.cjs.js');
16
16
  var rename = require('./scaffolder/actions/builtin/filesystem/rename.cjs.js');
17
17
  var read = require('./scaffolder/actions/builtin/filesystem/read.cjs.js');
18
- var TemplateActionRegistry = require('./scaffolder/actions/TemplateActionRegistry.cjs.js');
19
- var DatabaseTaskStore = require('./scaffolder/tasks/DatabaseTaskStore.cjs.js');
20
- var StorageTaskBroker = require('./scaffolder/tasks/StorageTaskBroker.cjs.js');
21
- var TaskWorker = require('./scaffolder/tasks/TaskWorker.cjs.js');
22
18
 
23
19
 
24
20
 
@@ -35,8 +31,4 @@ exports.createFetchTemplateFileAction = templateFile.createFetchTemplateFileActi
35
31
  exports.createFilesystemDeleteAction = _delete.createFilesystemDeleteAction;
36
32
  exports.createFilesystemRenameAction = rename.createFilesystemRenameAction;
37
33
  exports.createFilesystemReadDirAction = read.createFilesystemReadDirAction;
38
- exports.TemplateActionRegistry = TemplateActionRegistry.TemplateActionRegistry;
39
- exports.DatabaseTaskStore = DatabaseTaskStore.DatabaseTaskStore;
40
- exports.TaskManager = StorageTaskBroker.TaskManager;
41
- exports.TaskWorker = TaskWorker.TaskWorker;
42
34
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,20 +1,15 @@
1
1
  import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
2
- import { UrlReaderService, DatabaseService, LoggerService, AuthService, BackstageCredentials, AuditorService } from '@backstage/backend-plugin-api';
2
+ import { UrlReaderService } from '@backstage/backend-plugin-api';
3
3
  import * as _backstage_plugin_scaffolder_node from '@backstage/plugin-scaffolder-node';
4
- import { TemplateFilter, TemplateGlobal, TemplateAction, TaskSecrets, SerializedTask, TaskStatus, TaskFilters, SerializedTaskEvent, TaskContext, TaskCompletionState, TaskBroker } from '@backstage/plugin-scaffolder-node';
4
+ import { TemplateFilter, TemplateGlobal } from '@backstage/plugin-scaffolder-node';
5
5
  import { ScmIntegrations } from '@backstage/integration';
6
6
  import { CatalogService } from '@backstage/plugin-catalog-node';
7
- import { HumanDuration, JsonObject } from '@backstage/types';
7
+ import { HumanDuration } from '@backstage/types';
8
8
  import { Duration } from 'luxon';
9
- import { Knex } from 'knex';
10
- import * as _backstage_plugin_scaffolder_common from '@backstage/plugin-scaffolder-common';
11
- import { TaskSpec, TaskRecovery, TemplateEntityStepV1beta3, TemplateParametersV1beta3 } from '@backstage/plugin-scaffolder-common';
12
- import { PermissionCriteria, PermissionEvaluator, PermissionRuleParams } from '@backstage/plugin-permission-common';
13
- import { EventsService } from '@backstage/plugin-events-node';
14
- import { Config } from '@backstage/config';
15
- import { WorkspaceProvider, UpdateTaskCheckpointOptions } from '@backstage/plugin-scaffolder-node/alpha';
16
9
  import { PermissionRule } from '@backstage/plugin-permission-node';
10
+ import { TemplateEntityStepV1beta3, TemplateParametersV1beta3 } from '@backstage/plugin-scaffolder-common';
17
11
  import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, RESOURCE_TYPE_SCAFFOLDER_ACTION } from '@backstage/plugin-scaffolder-common/alpha';
12
+ import { PermissionRuleParams } from '@backstage/plugin-permission-common';
18
13
 
19
14
  /**
20
15
  * Scaffolder plugin
@@ -241,400 +236,6 @@ declare const createFilesystemReadDirAction: () => _backstage_plugin_scaffolder_
241
236
  }[];
242
237
  }, "v2">;
243
238
 
244
- /**
245
- * Registry of all registered template actions.
246
- * @public
247
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
248
- */
249
- declare class TemplateActionRegistry {
250
- private readonly actions;
251
- register(action: TemplateAction<any, any, any>): void;
252
- get(actionId: string): TemplateAction<any, any, any>;
253
- list(): TemplateAction<any, any, any>[];
254
- }
255
-
256
- /**
257
- * TaskStoreEmitOptions
258
- *
259
- * @public
260
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
261
- */
262
- type TaskStoreEmitOptions<TBody = JsonObject> = {
263
- taskId: string;
264
- body: TBody;
265
- };
266
- /**
267
- * TaskStoreListEventsOptions
268
- *
269
- * @public
270
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
271
- */
272
- type TaskStoreListEventsOptions = {
273
- isTaskRecoverable?: boolean;
274
- taskId: string;
275
- after?: number | undefined;
276
- };
277
- /**
278
- * TaskStoreShutDownTaskOptions
279
- *
280
- * @public
281
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
282
- */
283
- type TaskStoreShutDownTaskOptions = {
284
- taskId: string;
285
- };
286
- /**
287
- * The options passed to {@link TaskStore.createTask}
288
- * @public
289
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
290
- */
291
- type TaskStoreCreateTaskOptions = {
292
- spec: TaskSpec;
293
- createdBy?: string;
294
- secrets?: TaskSecrets;
295
- };
296
- /**
297
- * The options passed to {@link TaskStore.recoverTasks}
298
- * @public
299
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
300
- */
301
- type TaskStoreRecoverTaskOptions = {
302
- timeout: HumanDuration;
303
- };
304
- /**
305
- * The response from {@link TaskStore.createTask}
306
- * @public
307
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
308
- */
309
- type TaskStoreCreateTaskResult = {
310
- taskId: string;
311
- };
312
- /**
313
- * TaskStore
314
- *
315
- * @public
316
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
317
- */
318
- interface TaskStore {
319
- cancelTask?(options: TaskStoreEmitOptions): Promise<void>;
320
- createTask(options: TaskStoreCreateTaskOptions): Promise<TaskStoreCreateTaskResult>;
321
- retryTask?(options: {
322
- secrets?: TaskSecrets;
323
- taskId: string;
324
- }): Promise<void>;
325
- recoverTasks?(options: TaskStoreRecoverTaskOptions): Promise<{
326
- ids: string[];
327
- }>;
328
- getTask(taskId: string): Promise<SerializedTask>;
329
- claimTask(): Promise<SerializedTask | undefined>;
330
- completeTask(options: {
331
- taskId: string;
332
- status: TaskStatus;
333
- eventBody: JsonObject;
334
- }): Promise<void>;
335
- heartbeatTask(taskId: string): Promise<void>;
336
- listStaleTasks(options: {
337
- timeoutS: number;
338
- }): Promise<{
339
- tasks: {
340
- taskId: string;
341
- }[];
342
- }>;
343
- list?(options: {
344
- filters?: {
345
- createdBy?: string | string[];
346
- status?: TaskStatus | TaskStatus[];
347
- };
348
- pagination?: {
349
- limit?: number;
350
- offset?: number;
351
- };
352
- permissionFilters?: PermissionCriteria<TaskFilters>;
353
- order?: {
354
- order: 'asc' | 'desc';
355
- field: string;
356
- }[];
357
- }): Promise<{
358
- tasks: SerializedTask[];
359
- totalTasks?: number;
360
- }>;
361
- /**
362
- * @deprecated Make sure to pass `createdBy` and `status` in the `filters` parameter instead
363
- */
364
- list?(options: {
365
- createdBy?: string;
366
- status?: TaskStatus;
367
- filters?: {
368
- createdBy?: string | string[];
369
- status?: TaskStatus | TaskStatus[];
370
- };
371
- pagination?: {
372
- limit?: number;
373
- offset?: number;
374
- };
375
- order?: {
376
- order: 'asc' | 'desc';
377
- field: string;
378
- }[];
379
- }): Promise<{
380
- tasks: SerializedTask[];
381
- totalTasks?: number;
382
- }>;
383
- emitLogEvent(options: TaskStoreEmitOptions): Promise<void>;
384
- getTaskState?({ taskId }: {
385
- taskId: string;
386
- }): Promise<{
387
- state: JsonObject;
388
- } | undefined>;
389
- saveTaskState?(options: {
390
- taskId: string;
391
- state?: JsonObject;
392
- }): Promise<void>;
393
- listEvents(options: TaskStoreListEventsOptions): Promise<{
394
- events: SerializedTaskEvent[];
395
- }>;
396
- shutdownTask?(options: TaskStoreShutDownTaskOptions): Promise<void>;
397
- rehydrateWorkspace?(options: {
398
- taskId: string;
399
- targetPath: string;
400
- }): Promise<void>;
401
- cleanWorkspace?({ taskId }: {
402
- taskId: string;
403
- }): Promise<void>;
404
- serializeWorkspace?({ path, taskId, }: {
405
- path: string;
406
- taskId: string;
407
- }): Promise<void>;
408
- }
409
-
410
- /**
411
- * DatabaseTaskStore
412
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
413
- * @public
414
- */
415
- type DatabaseTaskStoreOptions = {
416
- database: DatabaseService | Knex;
417
- events?: EventsService;
418
- };
419
- /**
420
- * DatabaseTaskStore
421
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
422
- * @public
423
- */
424
- declare class DatabaseTaskStore implements TaskStore {
425
- private readonly db;
426
- private readonly events?;
427
- static create(options: DatabaseTaskStoreOptions): Promise<DatabaseTaskStore>;
428
- private isRecoverableTask;
429
- private parseSpec;
430
- private parseTaskSecrets;
431
- private static getClient;
432
- private static runMigrations;
433
- private constructor();
434
- private getState;
435
- private isTaskFilter;
436
- private parseFilter;
437
- list(options: {
438
- createdBy?: string;
439
- status?: TaskStatus;
440
- filters?: {
441
- createdBy?: string | string[];
442
- status?: TaskStatus | TaskStatus[];
443
- };
444
- pagination?: {
445
- limit?: number;
446
- offset?: number;
447
- };
448
- order?: {
449
- order: 'asc' | 'desc';
450
- field: string;
451
- }[];
452
- permissionFilters?: PermissionCriteria<TaskFilters>;
453
- }): Promise<{
454
- tasks: SerializedTask[];
455
- totalTasks?: number;
456
- }>;
457
- getTask(taskId: string): Promise<SerializedTask>;
458
- private parseTaskRow;
459
- createTask(options: TaskStoreCreateTaskOptions): Promise<TaskStoreCreateTaskResult>;
460
- claimTask(): Promise<SerializedTask | undefined>;
461
- heartbeatTask(taskId: string): Promise<void>;
462
- listStaleTasks(options: {
463
- timeoutS: number;
464
- }): Promise<{
465
- tasks: {
466
- taskId: string;
467
- recovery?: TaskRecovery;
468
- }[];
469
- }>;
470
- completeTask(options: {
471
- taskId: string;
472
- status: TaskStatus;
473
- eventBody: JsonObject;
474
- }): Promise<void>;
475
- emitLogEvent(options: TaskStoreEmitOptions<{
476
- message: string;
477
- } & JsonObject>): Promise<void>;
478
- getTaskState({ taskId }: {
479
- taskId: string;
480
- }): Promise<{
481
- state: JsonObject;
482
- } | undefined>;
483
- saveTaskState(options: {
484
- taskId: string;
485
- state?: JsonObject;
486
- }): Promise<void>;
487
- listEvents(options: TaskStoreListEventsOptions): Promise<{
488
- events: SerializedTaskEvent[];
489
- }>;
490
- shutdownTask(options: TaskStoreShutDownTaskOptions): Promise<void>;
491
- rehydrateWorkspace(options: {
492
- taskId: string;
493
- targetPath: string;
494
- }): Promise<void>;
495
- cleanWorkspace({ taskId }: {
496
- taskId: string;
497
- }): Promise<void>;
498
- serializeWorkspace(options: {
499
- path: string;
500
- taskId: string;
501
- }): Promise<void>;
502
- cancelTask(options: TaskStoreEmitOptions<{
503
- message: string;
504
- } & JsonObject>): Promise<void>;
505
- retryTask?(options: {
506
- secrets?: TaskSecrets;
507
- taskId: string;
508
- }): Promise<void>;
509
- recoverTasks(options: TaskStoreRecoverTaskOptions): Promise<{
510
- ids: string[];
511
- }>;
512
- }
513
-
514
- /**
515
- * TaskManager
516
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
517
- * @public
518
- */
519
- declare class TaskManager implements TaskContext {
520
- private readonly task;
521
- private readonly storage;
522
- private readonly signal;
523
- private readonly logger;
524
- private readonly workspaceService;
525
- private readonly auth?;
526
- private isDone;
527
- private heartbeatTimeoutId?;
528
- static create(task: CurrentClaimedTask, storage: TaskStore, abortSignal: AbortSignal, logger: LoggerService, auth?: AuthService, config?: Config, additionalWorkspaceProviders?: Record<string, WorkspaceProvider>): TaskManager;
529
- private constructor();
530
- get taskId(): string;
531
- get spec(): _backstage_plugin_scaffolder_common.TaskSpecV1beta3;
532
- get cancelSignal(): AbortSignal;
533
- get secrets(): TaskSecrets | undefined;
534
- get createdBy(): string | undefined;
535
- getWorkspaceName(): Promise<string>;
536
- rehydrateWorkspace?(options: {
537
- taskId: string;
538
- targetPath: string;
539
- }): Promise<void>;
540
- get done(): boolean;
541
- emitLog(message: string, logMetadata?: JsonObject): Promise<void>;
542
- getTaskState?(): Promise<{
543
- state?: JsonObject;
544
- } | undefined>;
545
- updateCheckpoint?(options: UpdateTaskCheckpointOptions): Promise<void>;
546
- serializeWorkspace?(options: {
547
- path: string;
548
- }): Promise<void>;
549
- cleanWorkspace?(): Promise<void>;
550
- complete(result: TaskCompletionState, metadata?: JsonObject): Promise<void>;
551
- private startTimeout;
552
- getInitiatorCredentials(): Promise<BackstageCredentials>;
553
- }
554
- /**
555
- * Stores the state of the current claimed task passed to the TaskContext
556
- *
557
- * @public
558
- */
559
- interface CurrentClaimedTask {
560
- /**
561
- * The TaskSpec of the current claimed task.
562
- */
563
- spec: TaskSpec;
564
- /**
565
- * The uuid of the current claimed task.
566
- */
567
- taskId: string;
568
- /**
569
- * The secrets that are stored with the task.
570
- */
571
- secrets?: TaskSecrets;
572
- /**
573
- * The state of checkpoints of the task.
574
- */
575
- state?: JsonObject;
576
- /**
577
- * The creator of the task.
578
- */
579
- createdBy?: string;
580
- /**
581
- * The workspace of the task.
582
- */
583
- workspace?: Promise<Buffer>;
584
- }
585
-
586
- /**
587
- * CreateWorkerOptions
588
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
589
- * @public
590
- */
591
- type CreateWorkerOptions = {
592
- taskBroker: TaskBroker;
593
- actionRegistry: TemplateActionRegistry;
594
- integrations: ScmIntegrations;
595
- workingDirectory: string;
596
- logger: LoggerService;
597
- auditor?: AuditorService;
598
- config?: Config;
599
- additionalTemplateFilters?: Record<string, TemplateFilter>;
600
- /**
601
- * The number of tasks that can be executed at the same time by the worker
602
- * @defaultValue 10
603
- * @example
604
- * ```
605
- * {
606
- * concurrentTasksLimit: 1,
607
- * // OR
608
- * concurrentTasksLimit: Infinity
609
- * }
610
- * ```
611
- */
612
- concurrentTasksLimit?: number;
613
- additionalTemplateGlobals?: Record<string, TemplateGlobal>;
614
- permissions?: PermissionEvaluator;
615
- gracefulShutdown?: boolean;
616
- };
617
- /**
618
- * TaskWorker
619
- * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.
620
- * @public
621
- */
622
- declare class TaskWorker {
623
- private readonly options;
624
- private taskQueue;
625
- private logger;
626
- private auditor;
627
- private parameterAuditTransform;
628
- private stopWorkers;
629
- private constructor();
630
- static create(options: CreateWorkerOptions): Promise<TaskWorker>;
631
- recoverTasks(): Promise<void>;
632
- start(): void;
633
- stop(): Promise<void>;
634
- protected onReadyToClaimTask(): Promise<void>;
635
- runOneTask(task: TaskContext): Promise<void>;
636
- }
637
-
638
239
  /**
639
240
  * @public
640
241
  */
@@ -645,4 +246,4 @@ type TemplatePermissionRuleInput<TParams extends PermissionRuleParams = Permissi
645
246
  */
646
247
  type ActionPermissionRuleInput<TParams extends PermissionRuleParams = PermissionRuleParams> = PermissionRule<TemplateEntityStepV1beta3 | TemplateParametersV1beta3, {}, typeof RESOURCE_TYPE_SCAFFOLDER_ACTION, TParams>;
647
248
 
648
- export { type ActionPermissionRuleInput, type CreateWorkerOptions, type CurrentClaimedTask, DatabaseTaskStore, type DatabaseTaskStoreOptions, TaskManager, type TaskStore, type TaskStoreCreateTaskOptions, type TaskStoreCreateTaskResult, type TaskStoreEmitOptions, type TaskStoreListEventsOptions, type TaskStoreRecoverTaskOptions, type TaskStoreShutDownTaskOptions, TaskWorker, TemplateActionRegistry, type TemplatePermissionRuleInput, createCatalogRegisterAction, createCatalogWriteAction, createDebugLogAction, createFetchCatalogEntityAction, createFetchPlainAction, createFetchPlainFileAction, createFetchTemplateAction, createFetchTemplateFileAction, createFilesystemDeleteAction, createFilesystemReadDirAction, createFilesystemRenameAction, createWaitAction, scaffolderPlugin as default };
249
+ export { type ActionPermissionRuleInput, type TemplatePermissionRuleInput, createCatalogRegisterAction, createCatalogWriteAction, createDebugLogAction, createFetchCatalogEntityAction, createFetchPlainAction, createFetchPlainFileAction, createFetchTemplateAction, createFetchTemplateFileAction, createFilesystemDeleteAction, createFilesystemReadDirAction, createFilesystemRenameAction, createWaitAction, scaffolderPlugin as default };
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateActionRegistry.cjs.js","sources":["../../../src/scaffolder/actions/TemplateActionRegistry.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConflictError, NotFoundError } from '@backstage/errors';\nimport { TemplateAction } from '@backstage/plugin-scaffolder-node';\n/**\n * Registry of all registered template actions.\n * @public\n * @deprecated this type is deprecated, and there will be a new way to create Workers in the next major version.\n */\nexport class TemplateActionRegistry {\n private readonly actions = new Map<string, TemplateAction>();\n\n register(action: TemplateAction<any, any, any>) {\n if (this.actions.has(action.id)) {\n throw new ConflictError(\n `Template action with ID '${action.id}' has already been registered`,\n );\n }\n\n this.actions.set(action.id, action);\n }\n\n get(actionId: string): TemplateAction<any, any, any> {\n const action = this.actions.get(actionId);\n if (!action) {\n throw new NotFoundError(\n `Template action with ID '${actionId}' is not registered. See https://backstage.io/docs/features/software-templates/builtin-actions/ on how to add a new action module.`,\n );\n }\n return action;\n }\n\n list(): TemplateAction<any, any, any>[] {\n return [...this.actions.values()];\n }\n}\n"],"names":["ConflictError","NotFoundError"],"mappings":";;;;AAuBO,MAAM,sBAAA,CAAuB;AAAA,EACjB,OAAA,uBAAc,GAAA,EAA4B;AAAA,EAE3D,SAAS,MAAA,EAAuC;AAC9C,IAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAO,EAAE,CAAA,EAAG;AAC/B,MAAA,MAAM,IAAIA,oBAAA;AAAA,QACR,CAAA,yBAAA,EAA4B,OAAO,EAAE,CAAA,6BAAA;AAAA,OACvC;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAO,EAAA,EAAI,MAAM,CAAA;AAAA,EACpC;AAAA,EAEA,IAAI,QAAA,EAAiD;AACnD,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA;AACxC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,MAAM,IAAIC,oBAAA;AAAA,QACR,4BAA4B,QAAQ,CAAA,kIAAA;AAAA,OACtC;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,IAAA,GAAwC;AACtC,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,OAAA,CAAQ,QAAQ,CAAA;AAAA,EAClC;AACF;;;;"}
1
+ {"version":3,"file":"TemplateActionRegistry.cjs.js","sources":["../../../src/scaffolder/actions/TemplateActionRegistry.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConflictError, NotFoundError } from '@backstage/errors';\nimport { TemplateAction } from '@backstage/plugin-scaffolder-node';\n\n/**\n * Registry of all registered template actions.\n */\nexport class TemplateActionRegistry {\n private readonly actions = new Map<string, TemplateAction>();\n\n register(action: TemplateAction<any, any, any>) {\n if (this.actions.has(action.id)) {\n throw new ConflictError(\n `Template action with ID '${action.id}' has already been registered`,\n );\n }\n\n this.actions.set(action.id, action);\n }\n\n get(actionId: string): TemplateAction<any, any, any> {\n const action = this.actions.get(actionId);\n if (!action) {\n throw new NotFoundError(\n `Template action with ID '${actionId}' is not registered. See https://backstage.io/docs/features/software-templates/builtin-actions/ on how to add a new action module.`,\n );\n }\n return action;\n }\n\n list(): TemplateAction<any, any, any>[] {\n return [...this.actions.values()];\n }\n}\n"],"names":["ConflictError","NotFoundError"],"mappings":";;;;AAsBO,MAAM,sBAAA,CAAuB;AAAA,EACjB,OAAA,uBAAc,GAAA,EAA4B;AAAA,EAE3D,SAAS,MAAA,EAAuC;AAC9C,IAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAO,EAAE,CAAA,EAAG;AAC/B,MAAA,MAAM,IAAIA,oBAAA;AAAA,QACR,CAAA,yBAAA,EAA4B,OAAO,EAAE,CAAA,6BAAA;AAAA,OACvC;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAO,EAAA,EAAI,MAAM,CAAA;AAAA,EACpC;AAAA,EAEA,IAAI,QAAA,EAAiD;AACnD,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA;AACxC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,MAAM,IAAIC,oBAAA;AAAA,QACR,4BAA4B,QAAQ,CAAA,kIAAA;AAAA,OACtC;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,IAAA,GAAwC;AACtC,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,OAAA,CAAQ,QAAQ,CAAA;AAAA,EAClC;AACF;;;;"}