@backstage/plugin-scaffolder-common 1.5.12-next.0 → 1.6.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,31 @@
1
1
  # @backstage/plugin-scaffolder-common
2
2
 
3
+ ## 1.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - c1ce316: BREAKING `/alpha`: Converted `scaffolder.task.read` and `scaffolder.task.cancel` into Resource Permissions.
8
+
9
+ BREAKING `/alpha`: Added a new scaffolder rule `isTaskOwner` for `scaffolder.task.read` and `scaffolder.task.cancel` to allow for conditional permission policies such as restricting access to tasks and task events based on task creators.
10
+
11
+ BREAKING `/alpha`: Retrying a task now requires both `scaffolder.task.read` and `scaffolder.task.create` permissions, replacing the previous requirement of `scaffolder.task.read` and `scaffolder.task.cancel`.
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies
16
+ - @backstage/plugin-permission-common@0.9.1
17
+ - @backstage/catalog-model@1.7.5
18
+
19
+ ## 1.6.0-next.1
20
+
21
+ ### Minor Changes
22
+
23
+ - c1ce316: BREAKING `/alpha`: Converted `scaffolder.task.read` and `scaffolder.task.cancel` into Resource Permissions.
24
+
25
+ BREAKING `/alpha`: Added a new scaffolder rule `isTaskOwner` for `scaffolder.task.read` and `scaffolder.task.cancel` to allow for conditional permission policies such as restricting access to tasks and task events based on task creators.
26
+
27
+ BREAKING `/alpha`: Retrying a task now requires both `scaffolder.task.read` and `scaffolder.task.create` permissions, replacing the previous requirement of `scaffolder.task.read` and `scaffolder.task.cancel`.
28
+
3
29
  ## 1.5.12-next.0
4
30
 
5
31
  ### Patch Changes
package/dist/alpha.cjs.js CHANGED
@@ -5,6 +5,7 @@ var permissions = require('./permissions.cjs.js');
5
5
 
6
6
 
7
7
  exports.RESOURCE_TYPE_SCAFFOLDER_ACTION = permissions.RESOURCE_TYPE_SCAFFOLDER_ACTION;
8
+ exports.RESOURCE_TYPE_SCAFFOLDER_TASK = permissions.RESOURCE_TYPE_SCAFFOLDER_TASK;
8
9
  exports.RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = permissions.RESOURCE_TYPE_SCAFFOLDER_TEMPLATE;
9
10
  exports.actionExecutePermission = permissions.actionExecutePermission;
10
11
  exports.scaffolderActionPermissions = permissions.scaffolderActionPermissions;
@@ -1 +1 @@
1
- {"version":3,"file":"alpha.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"alpha.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
package/dist/alpha.d.ts CHANGED
@@ -12,6 +12,12 @@ declare const RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = "scaffolder-template";
12
12
  * @alpha
13
13
  */
14
14
  declare const RESOURCE_TYPE_SCAFFOLDER_ACTION = "scaffolder-action";
15
+ /**
16
+ * Permission resource type which corresponds to scaffolder tasks
17
+ *
18
+ * @alpha
19
+ */
20
+ declare const RESOURCE_TYPE_SCAFFOLDER_TASK = "scaffolder-task";
15
21
  /**
16
22
  * This permission is used to authorize actions that involve executing
17
23
  * an action from a template.
@@ -47,7 +53,7 @@ declare const templateStepReadPermission: _backstage_plugin_permission_common.Re
47
53
  *
48
54
  * @alpha
49
55
  */
50
- declare const taskReadPermission: _backstage_plugin_permission_common.BasicPermission;
56
+ declare const taskReadPermission: _backstage_plugin_permission_common.ResourcePermission<"scaffolder-task">;
51
57
  /**
52
58
  * This permission is used to authorize actions that involve the creation of tasks in the scaffolder.
53
59
  *
@@ -59,7 +65,7 @@ declare const taskCreatePermission: _backstage_plugin_permission_common.BasicPer
59
65
  *
60
66
  * @alpha
61
67
  */
62
- declare const taskCancelPermission: _backstage_plugin_permission_common.BasicPermission;
68
+ declare const taskCancelPermission: _backstage_plugin_permission_common.ResourcePermission<"scaffolder-task">;
63
69
  /**
64
70
  * This permission is used to authorize template management features.
65
71
  *
@@ -80,11 +86,11 @@ declare const scaffolderActionPermissions: _backstage_plugin_permission_common.R
80
86
  * List of the scaffolder permissions that are associated with scaffolder tasks.
81
87
  * @alpha
82
88
  */
83
- declare const scaffolderTaskPermissions: _backstage_plugin_permission_common.BasicPermission[];
89
+ declare const scaffolderTaskPermissions: (_backstage_plugin_permission_common.BasicPermission | _backstage_plugin_permission_common.ResourcePermission<"scaffolder-task">)[];
84
90
  /**
85
91
  * List of all the scaffolder permissions
86
92
  * @alpha
87
93
  */
88
- declare const scaffolderPermissions: (_backstage_plugin_permission_common.BasicPermission | _backstage_plugin_permission_common.ResourcePermission<"scaffolder-action"> | _backstage_plugin_permission_common.ResourcePermission<"scaffolder-template">)[];
94
+ declare const scaffolderPermissions: (_backstage_plugin_permission_common.BasicPermission | _backstage_plugin_permission_common.ResourcePermission<"scaffolder-action"> | _backstage_plugin_permission_common.ResourcePermission<"scaffolder-template"> | _backstage_plugin_permission_common.ResourcePermission<"scaffolder-task">)[];
89
95
 
90
- export { RESOURCE_TYPE_SCAFFOLDER_ACTION, RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, actionExecutePermission, scaffolderActionPermissions, scaffolderPermissions, scaffolderTaskPermissions, scaffolderTemplatePermissions, taskCancelPermission, taskCreatePermission, taskReadPermission, templateManagementPermission, templateParameterReadPermission, templateStepReadPermission };
96
+ export { RESOURCE_TYPE_SCAFFOLDER_ACTION, RESOURCE_TYPE_SCAFFOLDER_TASK, RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, actionExecutePermission, scaffolderActionPermissions, scaffolderPermissions, scaffolderTaskPermissions, scaffolderTemplatePermissions, taskCancelPermission, taskCreatePermission, taskReadPermission, templateManagementPermission, templateParameterReadPermission, templateStepReadPermission };
package/dist/alpha.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- export { RESOURCE_TYPE_SCAFFOLDER_ACTION, RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, actionExecutePermission, scaffolderActionPermissions, scaffolderPermissions, scaffolderTaskPermissions, scaffolderTemplatePermissions, taskCancelPermission, taskCreatePermission, taskReadPermission, templateManagementPermission, templateParameterReadPermission, templateStepReadPermission } from './permissions.esm.js';
1
+ export { RESOURCE_TYPE_SCAFFOLDER_ACTION, RESOURCE_TYPE_SCAFFOLDER_TASK, RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, actionExecutePermission, scaffolderActionPermissions, scaffolderPermissions, scaffolderTaskPermissions, scaffolderTemplatePermissions, taskCancelPermission, taskCreatePermission, taskReadPermission, templateManagementPermission, templateParameterReadPermission, templateStepReadPermission } from './permissions.esm.js';
2
2
  //# sourceMappingURL=alpha.esm.js.map
@@ -4,6 +4,7 @@ var pluginPermissionCommon = require('@backstage/plugin-permission-common');
4
4
 
5
5
  const RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = "scaffolder-template";
6
6
  const RESOURCE_TYPE_SCAFFOLDER_ACTION = "scaffolder-action";
7
+ const RESOURCE_TYPE_SCAFFOLDER_TASK = "scaffolder-task";
7
8
  const actionExecutePermission = pluginPermissionCommon.createPermission({
8
9
  name: "scaffolder.action.execute",
9
10
  attributes: {},
@@ -27,7 +28,8 @@ const taskReadPermission = pluginPermissionCommon.createPermission({
27
28
  name: "scaffolder.task.read",
28
29
  attributes: {
29
30
  action: "read"
30
- }
31
+ },
32
+ resourceType: RESOURCE_TYPE_SCAFFOLDER_TASK
31
33
  });
32
34
  const taskCreatePermission = pluginPermissionCommon.createPermission({
33
35
  name: "scaffolder.task.create",
@@ -37,7 +39,8 @@ const taskCreatePermission = pluginPermissionCommon.createPermission({
37
39
  });
38
40
  const taskCancelPermission = pluginPermissionCommon.createPermission({
39
41
  name: "scaffolder.task.cancel",
40
- attributes: {}
42
+ attributes: {},
43
+ resourceType: RESOURCE_TYPE_SCAFFOLDER_TASK
41
44
  });
42
45
  const templateManagementPermission = pluginPermissionCommon.createPermission({
43
46
  name: "scaffolder.template.management",
@@ -61,6 +64,7 @@ const scaffolderPermissions = [
61
64
  ];
62
65
 
63
66
  exports.RESOURCE_TYPE_SCAFFOLDER_ACTION = RESOURCE_TYPE_SCAFFOLDER_ACTION;
67
+ exports.RESOURCE_TYPE_SCAFFOLDER_TASK = RESOURCE_TYPE_SCAFFOLDER_TASK;
64
68
  exports.RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = RESOURCE_TYPE_SCAFFOLDER_TEMPLATE;
65
69
  exports.actionExecutePermission = actionExecutePermission;
66
70
  exports.scaffolderActionPermissions = scaffolderActionPermissions;
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.cjs.js","sources":["../src/permissions.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 { createPermission } from '@backstage/plugin-permission-common';\n\n/**\n * Permission resource type which corresponds to a scaffolder templates.\n *\n * @alpha\n */\nexport const RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = 'scaffolder-template';\n\n/**\n * Permission resource type which corresponds to a scaffolder action.\n *\n * @alpha\n */\nexport const RESOURCE_TYPE_SCAFFOLDER_ACTION = 'scaffolder-action';\n\n/**\n * This permission is used to authorize actions that involve executing\n * an action from a template.\n *\n * @alpha\n */\nexport const actionExecutePermission = createPermission({\n name: 'scaffolder.action.execute',\n attributes: {},\n resourceType: RESOURCE_TYPE_SCAFFOLDER_ACTION,\n});\n\n/**\n * This permission is used to authorize actions that involve reading\n * one or more parameters from a template.\n *\n * If this permission is not authorized, it will appear that the\n * parameter does not exist in the template — both in the frontend\n * and in API responses.\n *\n * @alpha\n */\nexport const templateParameterReadPermission = createPermission({\n name: 'scaffolder.template.parameter.read',\n attributes: {\n action: 'read',\n },\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TEMPLATE,\n});\n\n/**\n * This permission is used to authorize actions that involve reading\n * one or more steps from a template.\n *\n * If this permission is not authorized, it will appear that the\n * step does not exist in the template — both in the frontend\n * and in API responses. Steps will also not be executed.\n *\n * @alpha\n */\nexport const templateStepReadPermission = createPermission({\n name: 'scaffolder.template.step.read',\n attributes: {\n action: 'read',\n },\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TEMPLATE,\n});\n\n/**\n * This permission is used to authorize actions that involve reading one or more tasks in the scaffolder,\n * and reading logs of tasks\n *\n * @alpha\n */\nexport const taskReadPermission = createPermission({\n name: 'scaffolder.task.read',\n attributes: {\n action: 'read',\n },\n});\n\n/**\n * This permission is used to authorize actions that involve the creation of tasks in the scaffolder.\n *\n * @alpha\n */\nexport const taskCreatePermission = createPermission({\n name: 'scaffolder.task.create',\n attributes: {\n action: 'create',\n },\n});\n\n/**\n * This permission is used to authorize actions that involve the cancellation of tasks in the scaffolder.\n *\n * @alpha\n */\nexport const taskCancelPermission = createPermission({\n name: 'scaffolder.task.cancel',\n attributes: {},\n});\n\n/**\n * This permission is used to authorize template management features.\n *\n * @alpha\n */\nexport const templateManagementPermission = createPermission({\n name: 'scaffolder.template.management',\n attributes: {},\n});\n\n/**\n * List of the scaffolder permissions that are associated with template steps and parameters.\n * @alpha\n */\nexport const scaffolderTemplatePermissions = [\n templateParameterReadPermission,\n templateStepReadPermission,\n];\n\n/**\n * List of the scaffolder permissions that are associated with scaffolder actions.\n * @alpha\n */\nexport const scaffolderActionPermissions = [actionExecutePermission];\n\n/**\n * List of the scaffolder permissions that are associated with scaffolder tasks.\n * @alpha\n */\nexport const scaffolderTaskPermissions = [\n taskCancelPermission,\n taskCreatePermission,\n taskReadPermission,\n];\n\n/**\n * List of all the scaffolder permissions\n * @alpha\n */\nexport const scaffolderPermissions = [\n ...scaffolderTemplatePermissions,\n ...scaffolderActionPermissions,\n ...scaffolderTaskPermissions,\n templateManagementPermission,\n];\n"],"names":["createPermission"],"mappings":";;;;AAuBO,MAAM,iCAAoC,GAAA;AAO1C,MAAM,+BAAkC,GAAA;AAQxC,MAAM,0BAA0BA,uCAAiB,CAAA;AAAA,EACtD,IAAM,EAAA,2BAAA;AAAA,EACN,YAAY,EAAC;AAAA,EACb,YAAc,EAAA;AAChB,CAAC;AAYM,MAAM,kCAAkCA,uCAAiB,CAAA;AAAA,EAC9D,IAAM,EAAA,oCAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,YAAc,EAAA;AAChB,CAAC;AAYM,MAAM,6BAA6BA,uCAAiB,CAAA;AAAA,EACzD,IAAM,EAAA,+BAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,YAAc,EAAA;AAChB,CAAC;AAQM,MAAM,qBAAqBA,uCAAiB,CAAA;AAAA,EACjD,IAAM,EAAA,sBAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA;AAEZ,CAAC;AAOM,MAAM,uBAAuBA,uCAAiB,CAAA;AAAA,EACnD,IAAM,EAAA,wBAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA;AAEZ,CAAC;AAOM,MAAM,uBAAuBA,uCAAiB,CAAA;AAAA,EACnD,IAAM,EAAA,wBAAA;AAAA,EACN,YAAY;AACd,CAAC;AAOM,MAAM,+BAA+BA,uCAAiB,CAAA;AAAA,EAC3D,IAAM,EAAA,gCAAA;AAAA,EACN,YAAY;AACd,CAAC;AAMM,MAAM,6BAAgC,GAAA;AAAA,EAC3C,+BAAA;AAAA,EACA;AACF;AAMa,MAAA,2BAAA,GAA8B,CAAC,uBAAuB;AAM5D,MAAM,yBAA4B,GAAA;AAAA,EACvC,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF;AAMO,MAAM,qBAAwB,GAAA;AAAA,EACnC,GAAG,6BAAA;AAAA,EACH,GAAG,2BAAA;AAAA,EACH,GAAG,yBAAA;AAAA,EACH;AACF;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"permissions.cjs.js","sources":["../src/permissions.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 { createPermission } from '@backstage/plugin-permission-common';\n\n/**\n * Permission resource type which corresponds to a scaffolder templates.\n *\n * @alpha\n */\nexport const RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = 'scaffolder-template';\n\n/**\n * Permission resource type which corresponds to a scaffolder action.\n *\n * @alpha\n */\nexport const RESOURCE_TYPE_SCAFFOLDER_ACTION = 'scaffolder-action';\n\n/**\n * Permission resource type which corresponds to scaffolder tasks\n *\n * @alpha\n */\nexport const RESOURCE_TYPE_SCAFFOLDER_TASK = 'scaffolder-task';\n\n/**\n * This permission is used to authorize actions that involve executing\n * an action from a template.\n *\n * @alpha\n */\nexport const actionExecutePermission = createPermission({\n name: 'scaffolder.action.execute',\n attributes: {},\n resourceType: RESOURCE_TYPE_SCAFFOLDER_ACTION,\n});\n\n/**\n * This permission is used to authorize actions that involve reading\n * one or more parameters from a template.\n *\n * If this permission is not authorized, it will appear that the\n * parameter does not exist in the template — both in the frontend\n * and in API responses.\n *\n * @alpha\n */\nexport const templateParameterReadPermission = createPermission({\n name: 'scaffolder.template.parameter.read',\n attributes: {\n action: 'read',\n },\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TEMPLATE,\n});\n\n/**\n * This permission is used to authorize actions that involve reading\n * one or more steps from a template.\n *\n * If this permission is not authorized, it will appear that the\n * step does not exist in the template — both in the frontend\n * and in API responses. Steps will also not be executed.\n *\n * @alpha\n */\nexport const templateStepReadPermission = createPermission({\n name: 'scaffolder.template.step.read',\n attributes: {\n action: 'read',\n },\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TEMPLATE,\n});\n\n/**\n * This permission is used to authorize actions that involve reading one or more tasks in the scaffolder,\n * and reading logs of tasks\n *\n * @alpha\n */\nexport const taskReadPermission = createPermission({\n name: 'scaffolder.task.read',\n attributes: {\n action: 'read',\n },\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TASK,\n});\n\n/**\n * This permission is used to authorize actions that involve the creation of tasks in the scaffolder.\n *\n * @alpha\n */\nexport const taskCreatePermission = createPermission({\n name: 'scaffolder.task.create',\n attributes: {\n action: 'create',\n },\n});\n\n/**\n * This permission is used to authorize actions that involve the cancellation of tasks in the scaffolder.\n *\n * @alpha\n */\nexport const taskCancelPermission = createPermission({\n name: 'scaffolder.task.cancel',\n attributes: {},\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TASK,\n});\n\n/**\n * This permission is used to authorize template management features.\n *\n * @alpha\n */\nexport const templateManagementPermission = createPermission({\n name: 'scaffolder.template.management',\n attributes: {},\n});\n\n/**\n * List of the scaffolder permissions that are associated with template steps and parameters.\n * @alpha\n */\nexport const scaffolderTemplatePermissions = [\n templateParameterReadPermission,\n templateStepReadPermission,\n];\n\n/**\n * List of the scaffolder permissions that are associated with scaffolder actions.\n * @alpha\n */\nexport const scaffolderActionPermissions = [actionExecutePermission];\n\n/**\n * List of the scaffolder permissions that are associated with scaffolder tasks.\n * @alpha\n */\nexport const scaffolderTaskPermissions = [\n taskCancelPermission,\n taskCreatePermission,\n taskReadPermission,\n];\n\n/**\n * List of all the scaffolder permissions\n * @alpha\n */\nexport const scaffolderPermissions = [\n ...scaffolderTemplatePermissions,\n ...scaffolderActionPermissions,\n ...scaffolderTaskPermissions,\n templateManagementPermission,\n];\n"],"names":["createPermission"],"mappings":";;;;AAuBO,MAAM,iCAAoC,GAAA;AAO1C,MAAM,+BAAkC,GAAA;AAOxC,MAAM,6BAAgC,GAAA;AAQtC,MAAM,0BAA0BA,uCAAiB,CAAA;AAAA,EACtD,IAAM,EAAA,2BAAA;AAAA,EACN,YAAY,EAAC;AAAA,EACb,YAAc,EAAA;AAChB,CAAC;AAYM,MAAM,kCAAkCA,uCAAiB,CAAA;AAAA,EAC9D,IAAM,EAAA,oCAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,YAAc,EAAA;AAChB,CAAC;AAYM,MAAM,6BAA6BA,uCAAiB,CAAA;AAAA,EACzD,IAAM,EAAA,+BAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,YAAc,EAAA;AAChB,CAAC;AAQM,MAAM,qBAAqBA,uCAAiB,CAAA;AAAA,EACjD,IAAM,EAAA,sBAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,YAAc,EAAA;AAChB,CAAC;AAOM,MAAM,uBAAuBA,uCAAiB,CAAA;AAAA,EACnD,IAAM,EAAA,wBAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA;AAEZ,CAAC;AAOM,MAAM,uBAAuBA,uCAAiB,CAAA;AAAA,EACnD,IAAM,EAAA,wBAAA;AAAA,EACN,YAAY,EAAC;AAAA,EACb,YAAc,EAAA;AAChB,CAAC;AAOM,MAAM,+BAA+BA,uCAAiB,CAAA;AAAA,EAC3D,IAAM,EAAA,gCAAA;AAAA,EACN,YAAY;AACd,CAAC;AAMM,MAAM,6BAAgC,GAAA;AAAA,EAC3C,+BAAA;AAAA,EACA;AACF;AAMa,MAAA,2BAAA,GAA8B,CAAC,uBAAuB;AAM5D,MAAM,yBAA4B,GAAA;AAAA,EACvC,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF;AAMO,MAAM,qBAAwB,GAAA;AAAA,EACnC,GAAG,6BAAA;AAAA,EACH,GAAG,2BAAA;AAAA,EACH,GAAG,yBAAA;AAAA,EACH;AACF;;;;;;;;;;;;;;;;;"}
@@ -2,6 +2,7 @@ import { createPermission } from '@backstage/plugin-permission-common';
2
2
 
3
3
  const RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = "scaffolder-template";
4
4
  const RESOURCE_TYPE_SCAFFOLDER_ACTION = "scaffolder-action";
5
+ const RESOURCE_TYPE_SCAFFOLDER_TASK = "scaffolder-task";
5
6
  const actionExecutePermission = createPermission({
6
7
  name: "scaffolder.action.execute",
7
8
  attributes: {},
@@ -25,7 +26,8 @@ const taskReadPermission = createPermission({
25
26
  name: "scaffolder.task.read",
26
27
  attributes: {
27
28
  action: "read"
28
- }
29
+ },
30
+ resourceType: RESOURCE_TYPE_SCAFFOLDER_TASK
29
31
  });
30
32
  const taskCreatePermission = createPermission({
31
33
  name: "scaffolder.task.create",
@@ -35,7 +37,8 @@ const taskCreatePermission = createPermission({
35
37
  });
36
38
  const taskCancelPermission = createPermission({
37
39
  name: "scaffolder.task.cancel",
38
- attributes: {}
40
+ attributes: {},
41
+ resourceType: RESOURCE_TYPE_SCAFFOLDER_TASK
39
42
  });
40
43
  const templateManagementPermission = createPermission({
41
44
  name: "scaffolder.template.management",
@@ -58,5 +61,5 @@ const scaffolderPermissions = [
58
61
  templateManagementPermission
59
62
  ];
60
63
 
61
- export { RESOURCE_TYPE_SCAFFOLDER_ACTION, RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, actionExecutePermission, scaffolderActionPermissions, scaffolderPermissions, scaffolderTaskPermissions, scaffolderTemplatePermissions, taskCancelPermission, taskCreatePermission, taskReadPermission, templateManagementPermission, templateParameterReadPermission, templateStepReadPermission };
64
+ export { RESOURCE_TYPE_SCAFFOLDER_ACTION, RESOURCE_TYPE_SCAFFOLDER_TASK, RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, actionExecutePermission, scaffolderActionPermissions, scaffolderPermissions, scaffolderTaskPermissions, scaffolderTemplatePermissions, taskCancelPermission, taskCreatePermission, taskReadPermission, templateManagementPermission, templateParameterReadPermission, templateStepReadPermission };
62
65
  //# sourceMappingURL=permissions.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.esm.js","sources":["../src/permissions.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 { createPermission } from '@backstage/plugin-permission-common';\n\n/**\n * Permission resource type which corresponds to a scaffolder templates.\n *\n * @alpha\n */\nexport const RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = 'scaffolder-template';\n\n/**\n * Permission resource type which corresponds to a scaffolder action.\n *\n * @alpha\n */\nexport const RESOURCE_TYPE_SCAFFOLDER_ACTION = 'scaffolder-action';\n\n/**\n * This permission is used to authorize actions that involve executing\n * an action from a template.\n *\n * @alpha\n */\nexport const actionExecutePermission = createPermission({\n name: 'scaffolder.action.execute',\n attributes: {},\n resourceType: RESOURCE_TYPE_SCAFFOLDER_ACTION,\n});\n\n/**\n * This permission is used to authorize actions that involve reading\n * one or more parameters from a template.\n *\n * If this permission is not authorized, it will appear that the\n * parameter does not exist in the template — both in the frontend\n * and in API responses.\n *\n * @alpha\n */\nexport const templateParameterReadPermission = createPermission({\n name: 'scaffolder.template.parameter.read',\n attributes: {\n action: 'read',\n },\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TEMPLATE,\n});\n\n/**\n * This permission is used to authorize actions that involve reading\n * one or more steps from a template.\n *\n * If this permission is not authorized, it will appear that the\n * step does not exist in the template — both in the frontend\n * and in API responses. Steps will also not be executed.\n *\n * @alpha\n */\nexport const templateStepReadPermission = createPermission({\n name: 'scaffolder.template.step.read',\n attributes: {\n action: 'read',\n },\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TEMPLATE,\n});\n\n/**\n * This permission is used to authorize actions that involve reading one or more tasks in the scaffolder,\n * and reading logs of tasks\n *\n * @alpha\n */\nexport const taskReadPermission = createPermission({\n name: 'scaffolder.task.read',\n attributes: {\n action: 'read',\n },\n});\n\n/**\n * This permission is used to authorize actions that involve the creation of tasks in the scaffolder.\n *\n * @alpha\n */\nexport const taskCreatePermission = createPermission({\n name: 'scaffolder.task.create',\n attributes: {\n action: 'create',\n },\n});\n\n/**\n * This permission is used to authorize actions that involve the cancellation of tasks in the scaffolder.\n *\n * @alpha\n */\nexport const taskCancelPermission = createPermission({\n name: 'scaffolder.task.cancel',\n attributes: {},\n});\n\n/**\n * This permission is used to authorize template management features.\n *\n * @alpha\n */\nexport const templateManagementPermission = createPermission({\n name: 'scaffolder.template.management',\n attributes: {},\n});\n\n/**\n * List of the scaffolder permissions that are associated with template steps and parameters.\n * @alpha\n */\nexport const scaffolderTemplatePermissions = [\n templateParameterReadPermission,\n templateStepReadPermission,\n];\n\n/**\n * List of the scaffolder permissions that are associated with scaffolder actions.\n * @alpha\n */\nexport const scaffolderActionPermissions = [actionExecutePermission];\n\n/**\n * List of the scaffolder permissions that are associated with scaffolder tasks.\n * @alpha\n */\nexport const scaffolderTaskPermissions = [\n taskCancelPermission,\n taskCreatePermission,\n taskReadPermission,\n];\n\n/**\n * List of all the scaffolder permissions\n * @alpha\n */\nexport const scaffolderPermissions = [\n ...scaffolderTemplatePermissions,\n ...scaffolderActionPermissions,\n ...scaffolderTaskPermissions,\n templateManagementPermission,\n];\n"],"names":[],"mappings":";;AAuBO,MAAM,iCAAoC,GAAA;AAO1C,MAAM,+BAAkC,GAAA;AAQxC,MAAM,0BAA0B,gBAAiB,CAAA;AAAA,EACtD,IAAM,EAAA,2BAAA;AAAA,EACN,YAAY,EAAC;AAAA,EACb,YAAc,EAAA;AAChB,CAAC;AAYM,MAAM,kCAAkC,gBAAiB,CAAA;AAAA,EAC9D,IAAM,EAAA,oCAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,YAAc,EAAA;AAChB,CAAC;AAYM,MAAM,6BAA6B,gBAAiB,CAAA;AAAA,EACzD,IAAM,EAAA,+BAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,YAAc,EAAA;AAChB,CAAC;AAQM,MAAM,qBAAqB,gBAAiB,CAAA;AAAA,EACjD,IAAM,EAAA,sBAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA;AAEZ,CAAC;AAOM,MAAM,uBAAuB,gBAAiB,CAAA;AAAA,EACnD,IAAM,EAAA,wBAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA;AAEZ,CAAC;AAOM,MAAM,uBAAuB,gBAAiB,CAAA;AAAA,EACnD,IAAM,EAAA,wBAAA;AAAA,EACN,YAAY;AACd,CAAC;AAOM,MAAM,+BAA+B,gBAAiB,CAAA;AAAA,EAC3D,IAAM,EAAA,gCAAA;AAAA,EACN,YAAY;AACd,CAAC;AAMM,MAAM,6BAAgC,GAAA;AAAA,EAC3C,+BAAA;AAAA,EACA;AACF;AAMa,MAAA,2BAAA,GAA8B,CAAC,uBAAuB;AAM5D,MAAM,yBAA4B,GAAA;AAAA,EACvC,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF;AAMO,MAAM,qBAAwB,GAAA;AAAA,EACnC,GAAG,6BAAA;AAAA,EACH,GAAG,2BAAA;AAAA,EACH,GAAG,yBAAA;AAAA,EACH;AACF;;;;"}
1
+ {"version":3,"file":"permissions.esm.js","sources":["../src/permissions.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 { createPermission } from '@backstage/plugin-permission-common';\n\n/**\n * Permission resource type which corresponds to a scaffolder templates.\n *\n * @alpha\n */\nexport const RESOURCE_TYPE_SCAFFOLDER_TEMPLATE = 'scaffolder-template';\n\n/**\n * Permission resource type which corresponds to a scaffolder action.\n *\n * @alpha\n */\nexport const RESOURCE_TYPE_SCAFFOLDER_ACTION = 'scaffolder-action';\n\n/**\n * Permission resource type which corresponds to scaffolder tasks\n *\n * @alpha\n */\nexport const RESOURCE_TYPE_SCAFFOLDER_TASK = 'scaffolder-task';\n\n/**\n * This permission is used to authorize actions that involve executing\n * an action from a template.\n *\n * @alpha\n */\nexport const actionExecutePermission = createPermission({\n name: 'scaffolder.action.execute',\n attributes: {},\n resourceType: RESOURCE_TYPE_SCAFFOLDER_ACTION,\n});\n\n/**\n * This permission is used to authorize actions that involve reading\n * one or more parameters from a template.\n *\n * If this permission is not authorized, it will appear that the\n * parameter does not exist in the template — both in the frontend\n * and in API responses.\n *\n * @alpha\n */\nexport const templateParameterReadPermission = createPermission({\n name: 'scaffolder.template.parameter.read',\n attributes: {\n action: 'read',\n },\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TEMPLATE,\n});\n\n/**\n * This permission is used to authorize actions that involve reading\n * one or more steps from a template.\n *\n * If this permission is not authorized, it will appear that the\n * step does not exist in the template — both in the frontend\n * and in API responses. Steps will also not be executed.\n *\n * @alpha\n */\nexport const templateStepReadPermission = createPermission({\n name: 'scaffolder.template.step.read',\n attributes: {\n action: 'read',\n },\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TEMPLATE,\n});\n\n/**\n * This permission is used to authorize actions that involve reading one or more tasks in the scaffolder,\n * and reading logs of tasks\n *\n * @alpha\n */\nexport const taskReadPermission = createPermission({\n name: 'scaffolder.task.read',\n attributes: {\n action: 'read',\n },\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TASK,\n});\n\n/**\n * This permission is used to authorize actions that involve the creation of tasks in the scaffolder.\n *\n * @alpha\n */\nexport const taskCreatePermission = createPermission({\n name: 'scaffolder.task.create',\n attributes: {\n action: 'create',\n },\n});\n\n/**\n * This permission is used to authorize actions that involve the cancellation of tasks in the scaffolder.\n *\n * @alpha\n */\nexport const taskCancelPermission = createPermission({\n name: 'scaffolder.task.cancel',\n attributes: {},\n resourceType: RESOURCE_TYPE_SCAFFOLDER_TASK,\n});\n\n/**\n * This permission is used to authorize template management features.\n *\n * @alpha\n */\nexport const templateManagementPermission = createPermission({\n name: 'scaffolder.template.management',\n attributes: {},\n});\n\n/**\n * List of the scaffolder permissions that are associated with template steps and parameters.\n * @alpha\n */\nexport const scaffolderTemplatePermissions = [\n templateParameterReadPermission,\n templateStepReadPermission,\n];\n\n/**\n * List of the scaffolder permissions that are associated with scaffolder actions.\n * @alpha\n */\nexport const scaffolderActionPermissions = [actionExecutePermission];\n\n/**\n * List of the scaffolder permissions that are associated with scaffolder tasks.\n * @alpha\n */\nexport const scaffolderTaskPermissions = [\n taskCancelPermission,\n taskCreatePermission,\n taskReadPermission,\n];\n\n/**\n * List of all the scaffolder permissions\n * @alpha\n */\nexport const scaffolderPermissions = [\n ...scaffolderTemplatePermissions,\n ...scaffolderActionPermissions,\n ...scaffolderTaskPermissions,\n templateManagementPermission,\n];\n"],"names":[],"mappings":";;AAuBO,MAAM,iCAAoC,GAAA;AAO1C,MAAM,+BAAkC,GAAA;AAOxC,MAAM,6BAAgC,GAAA;AAQtC,MAAM,0BAA0B,gBAAiB,CAAA;AAAA,EACtD,IAAM,EAAA,2BAAA;AAAA,EACN,YAAY,EAAC;AAAA,EACb,YAAc,EAAA;AAChB,CAAC;AAYM,MAAM,kCAAkC,gBAAiB,CAAA;AAAA,EAC9D,IAAM,EAAA,oCAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,YAAc,EAAA;AAChB,CAAC;AAYM,MAAM,6BAA6B,gBAAiB,CAAA;AAAA,EACzD,IAAM,EAAA,+BAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,YAAc,EAAA;AAChB,CAAC;AAQM,MAAM,qBAAqB,gBAAiB,CAAA;AAAA,EACjD,IAAM,EAAA,sBAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,YAAc,EAAA;AAChB,CAAC;AAOM,MAAM,uBAAuB,gBAAiB,CAAA;AAAA,EACnD,IAAM,EAAA,wBAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA;AAAA;AAEZ,CAAC;AAOM,MAAM,uBAAuB,gBAAiB,CAAA;AAAA,EACnD,IAAM,EAAA,wBAAA;AAAA,EACN,YAAY,EAAC;AAAA,EACb,YAAc,EAAA;AAChB,CAAC;AAOM,MAAM,+BAA+B,gBAAiB,CAAA;AAAA,EAC3D,IAAM,EAAA,gCAAA;AAAA,EACN,YAAY;AACd,CAAC;AAMM,MAAM,6BAAgC,GAAA;AAAA,EAC3C,+BAAA;AAAA,EACA;AACF;AAMa,MAAA,2BAAA,GAA8B,CAAC,uBAAuB;AAM5D,MAAM,yBAA4B,GAAA;AAAA,EACvC,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF;AAMO,MAAM,qBAAwB,GAAA;AAAA,EACnC,GAAG,6BAAA;AAAA,EACH,GAAG,2BAAA;AAAA,EACH,GAAG,yBAAA;AAAA,EACH;AACF;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-scaffolder-common",
3
- "version": "1.5.12-next.0",
3
+ "version": "1.6.0",
4
4
  "description": "Common functionalities for the scaffolder, to be shared between scaffolder and scaffolder-backend plugin",
5
5
  "backstage": {
6
6
  "role": "common-library",
@@ -70,12 +70,12 @@
70
70
  "test": "backstage-cli package test"
71
71
  },
72
72
  "dependencies": {
73
- "@backstage/catalog-model": "1.7.5-next.0",
74
- "@backstage/plugin-permission-common": "0.9.1-next.0",
75
- "@backstage/types": "1.2.1"
73
+ "@backstage/catalog-model": "^1.7.5",
74
+ "@backstage/plugin-permission-common": "^0.9.1",
75
+ "@backstage/types": "^1.2.1"
76
76
  },
77
77
  "devDependencies": {
78
- "@backstage/cli": "0.33.1-next.1"
78
+ "@backstage/cli": "^0.33.1"
79
79
  },
80
80
  "module": "./dist/index.esm.js"
81
81
  }