@backstage/plugin-scaffolder-backend 1.21.3 → 1.22.0-next.1
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 +74 -65
- package/alpha/package.json +1 -1
- package/dist/alpha.cjs.js +12 -3
- package/dist/alpha.cjs.js.map +1 -1
- package/dist/cjs/{router-f392ade6.cjs.js → router-1665319e.cjs.js} +145 -44
- package/dist/cjs/router-1665319e.cjs.js.map +1 -0
- package/dist/index.cjs.js +2 -2
- package/dist/index.d.ts +50 -5
- package/migrations/20240203232000_state.js +35 -0
- package/package.json +28 -27
- package/dist/cjs/router-f392ade6.cjs.js.map +0 -1
package/dist/index.cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var router = require('./cjs/router-
|
|
5
|
+
var router = require('./cjs/router-1665319e.cjs.js');
|
|
6
6
|
var github = require('@backstage/plugin-scaffolder-backend-module-github');
|
|
7
7
|
var gitlab = require('@backstage/plugin-scaffolder-backend-module-gitlab');
|
|
8
8
|
var azure = require('@backstage/plugin-scaffolder-backend-module-azure');
|
|
@@ -12,6 +12,7 @@ var bitbucketServer = require('@backstage/plugin-scaffolder-backend-module-bitbu
|
|
|
12
12
|
var gerrit = require('@backstage/plugin-scaffolder-backend-module-gerrit');
|
|
13
13
|
var pluginScaffolderNode = require('@backstage/plugin-scaffolder-node');
|
|
14
14
|
var pluginCatalogBackendModuleScaffolderEntityModel = require('@backstage/plugin-catalog-backend-module-scaffolder-entity-model');
|
|
15
|
+
require('@backstage/backend-common');
|
|
15
16
|
require('@backstage/catalog-model');
|
|
16
17
|
require('@backstage/config');
|
|
17
18
|
require('@backstage/errors');
|
|
@@ -24,7 +25,6 @@ require('jsonschema');
|
|
|
24
25
|
require('zod');
|
|
25
26
|
require('yaml');
|
|
26
27
|
require('fs-extra');
|
|
27
|
-
require('@backstage/backend-common');
|
|
28
28
|
require('path');
|
|
29
29
|
require('luxon');
|
|
30
30
|
require('globby');
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as _backstage_plugin_scaffolder_node from '@backstage/plugin-scaffolder-node';
|
|
2
2
|
import { TemplateFilter as TemplateFilter$1, TemplateGlobal as TemplateGlobal$1, TemplateAction as TemplateAction$1, TaskStatus as TaskStatus$1, TaskCompletionState as TaskCompletionState$1, SerializedTask as SerializedTask$1, TaskEventType as TaskEventType$1, SerializedTaskEvent as SerializedTaskEvent$1, TaskBrokerDispatchResult as TaskBrokerDispatchResult$1, TaskBrokerDispatchOptions as TaskBrokerDispatchOptions$1, TaskContext as TaskContext$1, TaskBroker as TaskBroker$1, TaskSecrets as TaskSecrets$1, ActionContext as ActionContext$1, ExecuteShellCommandOptions, executeShellCommand as executeShellCommand$1, fetchContents as fetchContents$1 } from '@backstage/plugin-scaffolder-node';
|
|
3
3
|
import * as _backstage_types from '@backstage/types';
|
|
4
|
-
import { HumanDuration, JsonObject } from '@backstage/types';
|
|
4
|
+
import { HumanDuration, JsonObject, JsonValue } from '@backstage/types';
|
|
5
5
|
import * as _backstage_integration from '@backstage/integration';
|
|
6
6
|
import { ScmIntegrations } from '@backstage/integration';
|
|
7
7
|
import { CatalogApi } from '@backstage/catalog-client';
|
|
8
|
+
import { AuthService, BackstageCredentials, LifecycleService, PermissionsService, HttpAuthService, DiscoveryService } from '@backstage/backend-plugin-api';
|
|
8
9
|
import { UrlReader, PluginDatabaseManager } from '@backstage/backend-common';
|
|
9
10
|
import { Config } from '@backstage/config';
|
|
10
11
|
import { Duration } from 'luxon';
|
|
@@ -23,9 +24,8 @@ import { PermissionEvaluator, PermissionRuleParams } from '@backstage/plugin-per
|
|
|
23
24
|
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
|
24
25
|
import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, RESOURCE_TYPE_SCAFFOLDER_ACTION } from '@backstage/plugin-scaffolder-common/alpha';
|
|
25
26
|
import express from 'express';
|
|
26
|
-
import { IdentityApi } from '@backstage/plugin-auth-node';
|
|
27
27
|
import { PermissionRule } from '@backstage/plugin-permission-node';
|
|
28
|
-
import {
|
|
28
|
+
import { IdentityApi } from '@backstage/plugin-auth-node';
|
|
29
29
|
import * as jsonschema from 'jsonschema';
|
|
30
30
|
import * as zod from 'zod';
|
|
31
31
|
import { ScaffolderEntitiesProcessor as ScaffolderEntitiesProcessor$1 } from '@backstage/plugin-catalog-backend-module-scaffolder-entity-model';
|
|
@@ -37,6 +37,7 @@ import { ScaffolderEntitiesProcessor as ScaffolderEntitiesProcessor$1 } from '@b
|
|
|
37
37
|
declare function createCatalogRegisterAction(options: {
|
|
38
38
|
catalogClient: CatalogApi;
|
|
39
39
|
integrations: ScmIntegrations;
|
|
40
|
+
auth?: AuthService;
|
|
40
41
|
}): _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
41
42
|
catalogInfoUrl: string;
|
|
42
43
|
optional?: boolean | undefined;
|
|
@@ -62,6 +63,7 @@ declare function createCatalogWriteAction(): _backstage_plugin_scaffolder_node.T
|
|
|
62
63
|
*/
|
|
63
64
|
declare function createFetchCatalogEntityAction(options: {
|
|
64
65
|
catalogClient: CatalogApi;
|
|
66
|
+
auth?: AuthService;
|
|
65
67
|
}): _backstage_plugin_scaffolder_node.TemplateAction<{
|
|
66
68
|
entityRef?: string | undefined;
|
|
67
69
|
entityRefs?: string[] | undefined;
|
|
@@ -90,6 +92,10 @@ interface CreateBuiltInActionsOptions {
|
|
|
90
92
|
* The {@link @backstage/catalog-client#CatalogApi} that will be used in the default actions.
|
|
91
93
|
*/
|
|
92
94
|
catalogClient: CatalogApi;
|
|
95
|
+
/**
|
|
96
|
+
* The {@link @backstage/backend-plugin-api#AuthService} that will be used in the default actions.
|
|
97
|
+
*/
|
|
98
|
+
auth?: AuthService;
|
|
93
99
|
/**
|
|
94
100
|
* The {@link @backstage/config#Config} that will be used in the default actions.
|
|
95
101
|
*/
|
|
@@ -482,6 +488,15 @@ interface TaskStore {
|
|
|
482
488
|
tasks: SerializedTask[];
|
|
483
489
|
}>;
|
|
484
490
|
emitLogEvent(options: TaskStoreEmitOptions): Promise<void>;
|
|
491
|
+
getTaskState?({ taskId }: {
|
|
492
|
+
taskId: string;
|
|
493
|
+
}): Promise<{
|
|
494
|
+
state: JsonObject;
|
|
495
|
+
} | undefined>;
|
|
496
|
+
saveTaskState?(options: {
|
|
497
|
+
taskId: string;
|
|
498
|
+
state?: JsonObject;
|
|
499
|
+
}): Promise<void>;
|
|
485
500
|
listEvents(options: TaskStoreListEventsOptions): Promise<{
|
|
486
501
|
events: SerializedTaskEvent[];
|
|
487
502
|
}>;
|
|
@@ -535,6 +550,15 @@ declare class DatabaseTaskStore implements TaskStore {
|
|
|
535
550
|
emitLogEvent(options: TaskStoreEmitOptions<{
|
|
536
551
|
message: string;
|
|
537
552
|
} & JsonObject>): Promise<void>;
|
|
553
|
+
getTaskState({ taskId }: {
|
|
554
|
+
taskId: string;
|
|
555
|
+
}): Promise<{
|
|
556
|
+
state: JsonObject;
|
|
557
|
+
} | undefined>;
|
|
558
|
+
saveTaskState(options: {
|
|
559
|
+
taskId: string;
|
|
560
|
+
state?: JsonObject;
|
|
561
|
+
}): Promise<void>;
|
|
538
562
|
listEvents(options: TaskStoreListEventsOptions): Promise<{
|
|
539
563
|
events: SerializedTaskEvent$1[];
|
|
540
564
|
}>;
|
|
@@ -557,9 +581,10 @@ declare class TaskManager implements TaskContext$1 {
|
|
|
557
581
|
private readonly storage;
|
|
558
582
|
private readonly signal;
|
|
559
583
|
private readonly logger;
|
|
584
|
+
private readonly auth?;
|
|
560
585
|
private isDone;
|
|
561
586
|
private heartbeatTimeoutId?;
|
|
562
|
-
static create(task: CurrentClaimedTask, storage: TaskStore, abortSignal: AbortSignal, logger: Logger): TaskManager;
|
|
587
|
+
static create(task: CurrentClaimedTask, storage: TaskStore, abortSignal: AbortSignal, logger: Logger, auth?: AuthService): TaskManager;
|
|
563
588
|
private constructor();
|
|
564
589
|
get spec(): _backstage_plugin_scaffolder_common.TaskSpecV1beta3;
|
|
565
590
|
get cancelSignal(): AbortSignal;
|
|
@@ -568,8 +593,21 @@ declare class TaskManager implements TaskContext$1 {
|
|
|
568
593
|
getWorkspaceName(): Promise<string>;
|
|
569
594
|
get done(): boolean;
|
|
570
595
|
emitLog(message: string, logMetadata?: JsonObject): Promise<void>;
|
|
596
|
+
getTaskState?(): Promise<{
|
|
597
|
+
state?: JsonObject;
|
|
598
|
+
} | undefined>;
|
|
599
|
+
updateCheckpoint?(options: {
|
|
600
|
+
key: string;
|
|
601
|
+
status: 'success';
|
|
602
|
+
value: JsonValue;
|
|
603
|
+
} | {
|
|
604
|
+
key: string;
|
|
605
|
+
status: 'failed';
|
|
606
|
+
reason: string;
|
|
607
|
+
}): Promise<void>;
|
|
571
608
|
complete(result: TaskCompletionState$1, metadata?: JsonObject): Promise<void>;
|
|
572
609
|
private startTimeout;
|
|
610
|
+
getInitiatorCredentials(): Promise<BackstageCredentials>;
|
|
573
611
|
}
|
|
574
612
|
/**
|
|
575
613
|
* Stores the state of the current claimed task passed to the TaskContext
|
|
@@ -589,6 +627,10 @@ interface CurrentClaimedTask {
|
|
|
589
627
|
* The secrets that are stored with the task.
|
|
590
628
|
*/
|
|
591
629
|
secrets?: TaskSecrets$1;
|
|
630
|
+
/**
|
|
631
|
+
* The state of checkpoints of the task.
|
|
632
|
+
*/
|
|
633
|
+
state?: JsonObject;
|
|
592
634
|
/**
|
|
593
635
|
* The creator of the task.
|
|
594
636
|
*/
|
|
@@ -679,9 +721,12 @@ interface RouterOptions {
|
|
|
679
721
|
taskBroker?: TaskBroker$1;
|
|
680
722
|
additionalTemplateFilters?: Record<string, TemplateFilter$1>;
|
|
681
723
|
additionalTemplateGlobals?: Record<string, TemplateGlobal$1>;
|
|
682
|
-
permissions?:
|
|
724
|
+
permissions?: PermissionsService;
|
|
683
725
|
permissionRules?: Array<TemplatePermissionRuleInput | ActionPermissionRuleInput>;
|
|
726
|
+
auth?: AuthService;
|
|
727
|
+
httpAuth?: HttpAuthService;
|
|
684
728
|
identity?: IdentityApi;
|
|
729
|
+
discovery?: DiscoveryService;
|
|
685
730
|
}
|
|
686
731
|
/**
|
|
687
732
|
* A method to create a router for the scaffolder backend plugin.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 The Backstage Authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
// @ts-check
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @param {import('knex').Knex} knex
|
|
21
|
+
*/
|
|
22
|
+
exports.up = async function up(knex) {
|
|
23
|
+
await knex.schema.alterTable('tasks', table => {
|
|
24
|
+
table.text('state').nullable().comment('A state of the checkpoints');
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @param {import('knex').Knex} knex
|
|
30
|
+
*/
|
|
31
|
+
exports.down = async function down(knex) {
|
|
32
|
+
await knex.schema.alterTable('tasks', table => {
|
|
33
|
+
table.dropColumn('state');
|
|
34
|
+
});
|
|
35
|
+
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-scaffolder-backend",
|
|
3
3
|
"description": "The Backstage backend plugin that helps you create new things",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.22.0-next.1",
|
|
5
5
|
"main": "./dist/index.cjs.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -44,29 +44,29 @@
|
|
|
44
44
|
"build:assets": "node scripts/build-nunjucks.js"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@backstage/backend-common": "^0.21.
|
|
48
|
-
"@backstage/backend-plugin-api": "^0.6.
|
|
49
|
-
"@backstage/backend-tasks": "^0.5.
|
|
50
|
-
"@backstage/catalog-client": "^1.6.0",
|
|
51
|
-
"@backstage/catalog-model": "^1.4.
|
|
52
|
-
"@backstage/config": "^1.
|
|
53
|
-
"@backstage/errors": "^1.2.
|
|
54
|
-
"@backstage/integration": "^1.9.
|
|
55
|
-
"@backstage/plugin-auth-node": "^0.4.
|
|
56
|
-
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.1.
|
|
57
|
-
"@backstage/plugin-catalog-node": "^1.
|
|
58
|
-
"@backstage/plugin-permission-common": "^0.7.
|
|
59
|
-
"@backstage/plugin-permission-node": "^0.7.
|
|
60
|
-
"@backstage/plugin-scaffolder-backend-module-azure": "^0.1.
|
|
61
|
-
"@backstage/plugin-scaffolder-backend-module-bitbucket": "^0.2.
|
|
62
|
-
"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "^0.1.
|
|
63
|
-
"@backstage/plugin-scaffolder-backend-module-bitbucket-server": "^0.1.
|
|
64
|
-
"@backstage/plugin-scaffolder-backend-module-gerrit": "^0.1.
|
|
65
|
-
"@backstage/plugin-scaffolder-backend-module-gitea": "^0.1.
|
|
66
|
-
"@backstage/plugin-scaffolder-backend-module-github": "^0.2.
|
|
67
|
-
"@backstage/plugin-scaffolder-backend-module-gitlab": "^0.2.
|
|
68
|
-
"@backstage/plugin-scaffolder-common": "^1.5.
|
|
69
|
-
"@backstage/plugin-scaffolder-node": "^0.
|
|
47
|
+
"@backstage/backend-common": "^0.21.4-next.1",
|
|
48
|
+
"@backstage/backend-plugin-api": "^0.6.14-next.1",
|
|
49
|
+
"@backstage/backend-tasks": "^0.5.19-next.1",
|
|
50
|
+
"@backstage/catalog-client": "^1.6.1-next.0",
|
|
51
|
+
"@backstage/catalog-model": "^1.4.5-next.0",
|
|
52
|
+
"@backstage/config": "^1.2.0-next.1",
|
|
53
|
+
"@backstage/errors": "^1.2.4-next.0",
|
|
54
|
+
"@backstage/integration": "^1.9.1-next.1",
|
|
55
|
+
"@backstage/plugin-auth-node": "^0.4.9-next.1",
|
|
56
|
+
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.1.11-next.1",
|
|
57
|
+
"@backstage/plugin-catalog-node": "^1.8.0-next.1",
|
|
58
|
+
"@backstage/plugin-permission-common": "^0.7.13-next.1",
|
|
59
|
+
"@backstage/plugin-permission-node": "^0.7.25-next.1",
|
|
60
|
+
"@backstage/plugin-scaffolder-backend-module-azure": "^0.1.6-next.1",
|
|
61
|
+
"@backstage/plugin-scaffolder-backend-module-bitbucket": "^0.2.4-next.1",
|
|
62
|
+
"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "^0.1.4-next.1",
|
|
63
|
+
"@backstage/plugin-scaffolder-backend-module-bitbucket-server": "^0.1.4-next.1",
|
|
64
|
+
"@backstage/plugin-scaffolder-backend-module-gerrit": "^0.1.6-next.1",
|
|
65
|
+
"@backstage/plugin-scaffolder-backend-module-gitea": "^0.1.4-next.1",
|
|
66
|
+
"@backstage/plugin-scaffolder-backend-module-github": "^0.2.4-next.1",
|
|
67
|
+
"@backstage/plugin-scaffolder-backend-module-gitlab": "^0.2.17-next.1",
|
|
68
|
+
"@backstage/plugin-scaffolder-common": "^1.5.1-next.1",
|
|
69
|
+
"@backstage/plugin-scaffolder-node": "^0.4.0-next.1",
|
|
70
70
|
"@backstage/types": "^1.1.1",
|
|
71
71
|
"@types/express": "^4.17.6",
|
|
72
72
|
"@types/luxon": "^3.0.0",
|
|
@@ -84,15 +84,16 @@
|
|
|
84
84
|
"p-limit": "^3.1.0",
|
|
85
85
|
"p-queue": "^6.6.2",
|
|
86
86
|
"prom-client": "^15.0.0",
|
|
87
|
-
"uuid": "^
|
|
87
|
+
"uuid": "^9.0.0",
|
|
88
88
|
"winston": "^3.2.1",
|
|
89
89
|
"yaml": "^2.0.0",
|
|
90
90
|
"zen-observable": "^0.10.0",
|
|
91
91
|
"zod": "^3.22.4"
|
|
92
92
|
},
|
|
93
93
|
"devDependencies": {
|
|
94
|
-
"@backstage/backend-test-utils": "^0.3.
|
|
95
|
-
"@backstage/cli": "^0.25.
|
|
94
|
+
"@backstage/backend-test-utils": "^0.3.4-next.1",
|
|
95
|
+
"@backstage/cli": "^0.25.3-next.1",
|
|
96
|
+
"@backstage/plugin-scaffolder-node-test-utils": "^0.1.0-next.1",
|
|
96
97
|
"@types/fs-extra": "^11.0.0",
|
|
97
98
|
"@types/nunjucks": "^3.1.4",
|
|
98
99
|
"@types/supertest": "^2.0.8",
|