@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 +37 -0
- package/dist/ScaffolderPlugin.cjs.js +2 -1
- package/dist/ScaffolderPlugin.cjs.js.map +1 -1
- package/dist/index.cjs.js +0 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +6 -405
- package/dist/scaffolder/actions/TemplateActionRegistry.cjs.js.map +1 -1
- package/dist/scaffolder/tasks/DatabaseTaskStore.cjs.js.map +1 -1
- package/dist/scaffolder/tasks/NunjucksWorkflowRunner.cjs.js.map +1 -1
- package/dist/scaffolder/tasks/StorageTaskBroker.cjs.js.map +1 -1
- package/dist/scaffolder/tasks/TaskWorker.cjs.js.map +1 -1
- package/package.json +32 -32
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(
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEO,MAAM,mBAAmBA,oCAAA,CAAoB;AAAA,EAClD,QAAA,EAAU,YAAA;AAAA,EACV,SAAS,GAAA,EAAK;AACZ,IAAA,MAAM,YAAA,GAAe,IAAI,KAAA,EAAgC;AACzD,IAAA,GAAA,CAAI,uBAAuBC,oDAAA,EAAiC;AAAA,MAC1D,cAAc,UAAA,EAAmC;AAC/C,QAAA,YAAA,CAAa,IAAA,CAAK,GAAG,UAAU,CAAA;AAAA,MACjC;AAAA,KACD,CAAA;AAED,IAAA,IAAI,UAAA;AACJ,IAAA,GAAA,CAAI,uBAAuBC,wCAAA,EAAoC;AAAA,MAC7D,cAAc,aAAA,EAAe;AAC3B,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,MAAM,IAAI,MAAM,kCAAkC,CAAA;AAAA,QACpD;AACA,QAAA,UAAA,GAAa,aAAA;AAAA,MACf;AAAA,KACD,CAAA;AAED,IAAA,MAAM,4BAA+D,EAAC;AACtE,IAAA,MAAM,4BAAqD,EAAC;AAE5D,IAAA,GAAA,CAAI,uBAAuBC,wCAAA,EAAoC;AAAA,MAC7D,mBAAmB,UAAA,EAAY;AAC7B,QAAA,yBAAA,CAA0B,IAAA;AAAA,UACxB,GAAI,MAAM,OAAA,CAAQ,UAAU,IACxB,UAAA,GACA,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,CAAE,GAAA;AAAA,YAAI,CAAC,CAAC,EAAA,EAAI,MAAM,MACzCC,0BAAA,CAAqB;AAAA,cACnB,EAAA;AAAA,cACA;AAAA,aACD;AAAA;AACH,SACN;AAAA,MACF,CAAA;AAAA,MACA,mBAAmB,UAAA,EAAY;AAC7B,QAAA,yBAAA,CAA0B,IAAA;AAAA,UACxB,GAAI,MAAM,OAAA,CAAQ,UAAU,IACxB,UAAA,GACA,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,CAAE,GAAA;AAAA,YAAI,CAAC,CAAC,EAAA,EAAI,MAAM,MACzC,OAAO,MAAA,KAAW,aACdC,kCAAA,CAA6B,EAAE,IAAI,EAAA,EAAI,MAAA,EAAQ,CAAA,GAC/CC,+BAAA,CAA0B,EAAE,EAAA,EAAI,KAAA,EAAO,QAAQ;AAAA;AACrD,SACN;AAAA,MACF;AAAA,KACD,CAAA;AAED,IAAA,MAAM,uBAA4D,EAAC;AACnE,IAAA,GAAA,CAAI,uBAAuBC,0CAAA,EAAsC;AAAA,MAC/D,wBAAwB,QAAA,EAAU;AAChC,QAAA,oBAAA,CAAqB,QAAA,CAAS,EAAE,CAAA,GAAI,QAAA,CAAS,OAAA;AAAA,MAC/C;AAAA,KACD,CAAA;AAED,IAAA,MAAM,+BAAkE,EAAC;AACzE,IAAA,GAAA,CAAI,uBAAuBC,+CAAA,EAA2C;AAAA,MACpE,aAAa,QAAA,EAAU;AACrB,QAAA,MAAA,CAAO,MAAA,CAAO,8BAA8B,QAAQ,CAAA;AAAA,MACtD;AAAA,KACD,CAAA;AAED,IAAA,GAAA,CAAI,YAAA,CAAa;AAAA,MACf,IAAA,EAAM;AAAA,QACJ,QAAQC,6BAAA,CAAa,MAAA;AAAA,QACrB,QAAQA,6BAAA,CAAa,UAAA;AAAA,QACrB,WAAWA,6BAAA,CAAa,aAAA;AAAA,QACxB,QAAQA,6BAAA,CAAa,SAAA;AAAA,QACrB,aAAaA,6BAAA,CAAa,WAAA;AAAA,QAC1B,UAAUA,6BAAA,CAAa,QAAA;AAAA,QACvB,MAAMA,6BAAA,CAAa,IAAA;AAAA,QACnB,YAAYA,6BAAA,CAAa,UAAA;AAAA,QACzB,UAAUA,6BAAA,CAAa,QAAA;AAAA,QACvB,SAASA,6BAAA,CAAa,OAAA;AAAA,QACtB,OAAA,EAASC,mCAAA;AAAA,QACT,MAAA,EAAQC,iCAAA;AAAA,QACR,eAAA,EAAiBC;AAAA,OACnB;AAAA,MACA,MAAM,IAAA,CAAK;AAAA,QACT,MAAA;AAAA,QACA,MAAA;AAAA,QACA,SAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA;AAAA,QACA,UAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA,WAAA;AAAA,QACA,MAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,OACF,EAAG;AACD,QAAA,MAAMC,KAAA,GAAMC,4CAAsB,MAAM,CAAA;AACxC,QAAA,MAAM,YAAA,GAAeC,2BAAA,CAAgB,UAAA,CAAW,MAAM,CAAA;AAEtD,QAAA,MAAM,kBAAA,GAAqB;AAAA,UACzB,yBAAA,EAA2BC,iCAAA;AAAA,YACzB;AAAA,WACF;AAAA,UACA,yBAAA,EAA2BC,iCAAA;AAAA,YACzB;AAAA;AACF,SACF;AACA,QAAA,MAAM,OAAA,GAAU;AAAA;AAAA,UAEd,GAAG,YAAA;AAAA;AAAA,UAGHC,4BAAA,CAAuB;AAAA,YACrB,MAAA;AAAA,YACA;AAAA,WACD,CAAA;AAAA,UACDC,oCAAA,CAA2B;AAAA,YACzB,MAAA;AAAA,YACA;AAAA,WACD,CAAA;AAAA,UACDC,kCAAA,CAA0B;AAAA,YACxB,YAAA;AAAA,YACA,MAAA;AAAA,YACA,GAAG;AAAA,WACJ,CAAA;AAAA,UACDC,0CAAA,CAA8B;AAAA,YAC5B,YAAA;AAAA,YACA,MAAA;AAAA,YACA,GAAG;AAAA,WACJ,CAAA;AAAA,UACDC,wBAAA,EAAqB;AAAA,UACrBC,qBAAA,EAAiB;AAAA;AAAA,UAEjBC,oCAAA,CAA4B,EAAE,OAAA,EAAS,YAAA,EAAc,CAAA;AAAA,UACrDC,oCAAA,CAA+B,EAAE,OAAA,EAAS,CAAA;AAAA,UAC1CC,8BAAA,EAAyB;AAAA,UACzBC,oCAAA,EAA6B;AAAA,UAC7BC,mCAAA,EAA6B;AAAA,UAC7BC,kCAAA;AAA8B,SAChC;AAEA,QAAA,MAAM,SAAA,GAAY,QAAQ,GAAA,CAAI,CAAA,MAAA,KAAU,OAAO,EAAE,CAAA,CAAE,KAAK,IAAI,CAAA;AAE5D,QAAAhB,KAAA,CAAI,IAAA;AAAA,UACF,0DAA0D,SAAS,CAAA;AAAA,SACrE;AAEA,QAAA,MAAMiB,QAAA,GAAS,MAAMC,mBAAA,CAAa;AAAA,UAChC,MAAA;AAAA,UACA,MAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAA;AAAA,UACA,SAAA;AAAA,UACA,OAAA;AAAA,UACA,UAAA;AAAA,UACA,yBAAA;AAAA,UACA,yBAAA;AAAA,UACA,IAAA;AAAA,UACA,QAAA;AAAA,UACA,WAAA;AAAA,UACA,oBAAA;AAAA,UACA,4BAAA;AAAA,UACA,MAAA;AAAA,UACA,OAAA;AAAA,UACA;AAAA,SACD,CAAA;AACD,QAAA,UAAA,CAAW,IAAID,QAAM,CAAA;AAAA,MACvB;AAAA,KACD,CAAA;AAAA,EACH;AACF,CAAC;;;;"}
|
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
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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;;;;"}
|