@forge/manifest 2.6.0-next.19 → 2.6.0-next.20
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 +10 -0
- package/out/mapping/product-event-to-scope-mapping.json +8 -8
- package/out/processor/full-validation-processor.d.ts.map +1 -1
- package/out/processor/full-validation-processor.js +2 -0
- package/out/scopes/deprecated-shipyard-scopes.json +24 -0
- package/out/scopes/shipyard-scopes.json +47 -69
- package/out/text/errors.d.ts +1 -0
- package/out/text/errors.d.ts.map +1 -1
- package/out/text/errors.js +2 -1
- package/out/validators/deprecated-permissions-validator.d.ts +7 -0
- package/out/validators/deprecated-permissions-validator.d.ts.map +1 -0
- package/out/validators/deprecated-permissions-validator.js +31 -0
- package/out/validators/permissions-validator.d.ts.map +1 -1
- package/out/validators/permissions-validator.js +3 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @forge/manifest
|
|
2
2
|
|
|
3
|
+
## 2.6.0-next.20
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 2bca1c0: Show a warning message during forge lint if manifest has deprecated permission scope
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 271b98a: add new, granular scopes for custom field related product events
|
|
12
|
+
|
|
3
13
|
## 2.6.0-next.19
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -45,49 +45,49 @@
|
|
|
45
45
|
{
|
|
46
46
|
"productEvent": "avi:jira:created:field",
|
|
47
47
|
"oAuthScopes": [
|
|
48
|
-
"
|
|
48
|
+
"read:field:jira"
|
|
49
49
|
]
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"productEvent": "avi:jira:updated:field",
|
|
53
53
|
"oAuthScopes": [
|
|
54
|
-
"
|
|
54
|
+
"read:field:jira"
|
|
55
55
|
]
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"productEvent": "avi:jira:trashed:field",
|
|
59
59
|
"oAuthScopes": [
|
|
60
|
-
"
|
|
60
|
+
"read:field:jira"
|
|
61
61
|
]
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
"productEvent": "avi:jira:deleted:field",
|
|
65
65
|
"oAuthScopes": [
|
|
66
|
-
"
|
|
66
|
+
"read:field:jira"
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
"productEvent": "avi:jira:restored:field",
|
|
71
71
|
"oAuthScopes": [
|
|
72
|
-
"
|
|
72
|
+
"read:field:jira"
|
|
73
73
|
]
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
"productEvent": "avi:jira:created:field:context",
|
|
77
77
|
"oAuthScopes": [
|
|
78
|
-
"
|
|
78
|
+
"read:field:jira"
|
|
79
79
|
]
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
"productEvent": "avi:jira:updated:field:context",
|
|
83
83
|
"oAuthScopes": [
|
|
84
|
-
"
|
|
84
|
+
"read:field:jira"
|
|
85
85
|
]
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
88
|
"productEvent": "avi:jira:deleted:field:context",
|
|
89
89
|
"oAuthScopes": [
|
|
90
|
-
"
|
|
90
|
+
"read:field:jira"
|
|
91
91
|
]
|
|
92
92
|
},
|
|
93
93
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"full-validation-processor.d.ts","sourceRoot":"","sources":["../../src/processor/full-validation-processor.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"full-validation-processor.d.ts","sourceRoot":"","sources":["../../src/processor/full-validation-processor.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,qBAAa,uBAAwB,SAAQ,2BAA2B,CAAC,cAAc,CAAC;;CAiBvF"}
|
|
@@ -6,6 +6,7 @@ const validators_1 = require("../validators");
|
|
|
6
6
|
const FULL_SCHEMA = tslib_1.__importStar(require("../schema/manifest-schema.json"));
|
|
7
7
|
const DISPLAY_CONDITIONS_SCHEMA = tslib_1.__importStar(require("../schema/display-conditions-schema.json"));
|
|
8
8
|
const abstract_validation_processor_1 = require("./abstract-validation-processor");
|
|
9
|
+
const deprecated_permissions_validator_1 = require("../validators/deprecated-permissions-validator");
|
|
9
10
|
class FullValidationProcessor extends abstract_validation_processor_1.AbstractValidationProcessor {
|
|
10
11
|
constructor() {
|
|
11
12
|
super([
|
|
@@ -18,6 +19,7 @@ class FullValidationProcessor extends abstract_validation_processor_1.AbstractVa
|
|
|
18
19
|
new validators_1.ConnectRemoteValidator(),
|
|
19
20
|
new validators_1.ConnectAuthenticationValidator(),
|
|
20
21
|
new validators_1.PermissionsValidator(),
|
|
22
|
+
new deprecated_permissions_validator_1.DeprecatedPermissionsValidator(),
|
|
21
23
|
new validators_1.DisplayConditionsValidator(DISPLAY_CONDITIONS_SCHEMA),
|
|
22
24
|
new validators_1.ProvidersValidator()
|
|
23
25
|
]);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[
|
|
2
|
+
"manage:confluence-configuration",
|
|
3
|
+
"manage:jira-configuration",
|
|
4
|
+
"manage:jira-data-provider",
|
|
5
|
+
"manage:jira-project",
|
|
6
|
+
"manage:jira-webhook",
|
|
7
|
+
"read:confluence-content.all",
|
|
8
|
+
"read:confluence-content.permission",
|
|
9
|
+
"read:confluence-content.summary",
|
|
10
|
+
"read:confluence-groups",
|
|
11
|
+
"read:confluence-props",
|
|
12
|
+
"read:confluence-space.summary",
|
|
13
|
+
"read:confluence-user",
|
|
14
|
+
"read:jira-user",
|
|
15
|
+
"read:jira-work",
|
|
16
|
+
"readonly:content.attachment:confluence",
|
|
17
|
+
"search:confluence",
|
|
18
|
+
"write:confluence-content",
|
|
19
|
+
"write:confluence-file",
|
|
20
|
+
"write:confluence-groups",
|
|
21
|
+
"write:confluence-props",
|
|
22
|
+
"write:confluence-space",
|
|
23
|
+
"write:jira-work"
|
|
24
|
+
]
|
|
@@ -11,46 +11,46 @@
|
|
|
11
11
|
"delete:avatar:jira",
|
|
12
12
|
"delete:blogpost:confluence",
|
|
13
13
|
"delete:board-scope.admin:jira-software",
|
|
14
|
-
"delete:comment.property:jira",
|
|
15
14
|
"delete:comment:confluence",
|
|
16
15
|
"delete:comment:jira",
|
|
16
|
+
"delete:comment.property:jira",
|
|
17
17
|
"delete:connect-confluence",
|
|
18
18
|
"delete:connect-jira",
|
|
19
19
|
"delete:content:confluence",
|
|
20
20
|
"delete:custom-content:confluence",
|
|
21
|
-
"delete:dashboard.property:jira",
|
|
22
21
|
"delete:dashboard:jira",
|
|
22
|
+
"delete:dashboard.property:jira",
|
|
23
23
|
"delete:field-configuration-scheme:jira",
|
|
24
24
|
"delete:field-configuration:jira",
|
|
25
|
-
"delete:field.option:jira",
|
|
26
25
|
"delete:field:jira",
|
|
27
|
-
"delete:
|
|
26
|
+
"delete:field.option:jira",
|
|
28
27
|
"delete:filter:jira",
|
|
28
|
+
"delete:filter.column:jira",
|
|
29
29
|
"delete:group:jira",
|
|
30
30
|
"delete:issue-link-type:jira",
|
|
31
31
|
"delete:issue-link:jira",
|
|
32
32
|
"delete:issue-type-scheme:jira",
|
|
33
33
|
"delete:issue-type-screen-scheme:jira",
|
|
34
|
-
"delete:issue-type.property:jira",
|
|
35
34
|
"delete:issue-type:jira",
|
|
36
|
-
"delete:issue-
|
|
35
|
+
"delete:issue-type.property:jira",
|
|
37
36
|
"delete:issue-worklog:jira",
|
|
37
|
+
"delete:issue-worklog.property:jira",
|
|
38
|
+
"delete:issue:jira",
|
|
38
39
|
"delete:issue.property:jira",
|
|
39
40
|
"delete:issue.remote-link:jira",
|
|
40
|
-
"delete:
|
|
41
|
+
"delete:organization:jira-service-management",
|
|
41
42
|
"delete:organization.property:jira-service-management",
|
|
42
43
|
"delete:organization.user:jira-service-management",
|
|
43
|
-
"delete:organization:jira-service-management",
|
|
44
44
|
"delete:page:confluence",
|
|
45
45
|
"delete:permission-scheme:jira",
|
|
46
46
|
"delete:permission:jira",
|
|
47
47
|
"delete:project-category:jira",
|
|
48
48
|
"delete:project-role:jira",
|
|
49
49
|
"delete:project-version:jira",
|
|
50
|
+
"delete:project:jira",
|
|
50
51
|
"delete:project.avatar:jira",
|
|
51
52
|
"delete:project.component:jira",
|
|
52
53
|
"delete:project.property:jira",
|
|
53
|
-
"delete:project:jira",
|
|
54
54
|
"delete:request.feedback:jira-service-management",
|
|
55
55
|
"delete:request.notification:jira-service-management",
|
|
56
56
|
"delete:request.participant:jira-service-management",
|
|
@@ -68,13 +68,8 @@
|
|
|
68
68
|
"delete:user.property:jira",
|
|
69
69
|
"delete:webhook:jira",
|
|
70
70
|
"delete:workflow-scheme:jira",
|
|
71
|
-
"delete:workflow.property:jira",
|
|
72
71
|
"delete:workflow:jira",
|
|
73
|
-
"
|
|
74
|
-
"manage:jira-configuration",
|
|
75
|
-
"manage:jira-data-provider",
|
|
76
|
-
"manage:jira-project",
|
|
77
|
-
"manage:jira-webhook",
|
|
72
|
+
"delete:workflow.property:jira",
|
|
78
73
|
"manage:servicedesk-customer",
|
|
79
74
|
"project-admin:connect-jira",
|
|
80
75
|
"read:account",
|
|
@@ -86,47 +81,40 @@
|
|
|
86
81
|
"read:audit-log:jira",
|
|
87
82
|
"read:avatar:jira",
|
|
88
83
|
"read:blogpost:confluence",
|
|
89
|
-
"read:board-scope.admin:jira-software",
|
|
90
84
|
"read:board-scope:jira-software",
|
|
85
|
+
"read:board-scope.admin:jira-software",
|
|
91
86
|
"read:build:jira-software",
|
|
92
|
-
"read:comment.property:jira",
|
|
93
87
|
"read:comment:confluence",
|
|
94
88
|
"read:comment:jira",
|
|
89
|
+
"read:comment.property:jira",
|
|
95
90
|
"read:component:compass",
|
|
96
91
|
"read:configuration:confluence",
|
|
97
|
-
"read:confluence-content.all",
|
|
98
|
-
"read:confluence-content.permission",
|
|
99
|
-
"read:confluence-content.summary",
|
|
100
|
-
"read:confluence-groups",
|
|
101
|
-
"read:confluence-props",
|
|
102
|
-
"read:confluence-space.summary",
|
|
103
|
-
"read:confluence-user",
|
|
104
92
|
"read:connect-confluence",
|
|
105
93
|
"read:connect-jira",
|
|
106
94
|
"read:content-details:confluence",
|
|
95
|
+
"read:content:confluence",
|
|
107
96
|
"read:content.metadata:confluence",
|
|
108
97
|
"read:content.permission:confluence",
|
|
109
98
|
"read:content.property:confluence",
|
|
110
99
|
"read:content.restriction:confluence",
|
|
111
|
-
"read:content:confluence",
|
|
112
100
|
"read:custom-content:confluence",
|
|
113
101
|
"read:custom-field-contextual-configuration:jira",
|
|
114
102
|
"read:customer:jira-service-management",
|
|
115
|
-
"read:dashboard.property:jira",
|
|
116
103
|
"read:dashboard:jira",
|
|
104
|
+
"read:dashboard.property:jira",
|
|
117
105
|
"read:deployment:jira-software",
|
|
118
106
|
"read:epic:jira-software",
|
|
119
107
|
"read:event:compass",
|
|
120
108
|
"read:feature-flag:jira-software",
|
|
121
109
|
"read:field-configuration-scheme:jira",
|
|
122
110
|
"read:field-configuration:jira",
|
|
111
|
+
"read:field:jira",
|
|
123
112
|
"read:field.default-value:jira",
|
|
124
113
|
"read:field.option:jira",
|
|
125
114
|
"read:field.options:jira",
|
|
126
|
-
"read:
|
|
115
|
+
"read:filter:jira",
|
|
127
116
|
"read:filter.column:jira",
|
|
128
117
|
"read:filter.default-share-scope:jira",
|
|
129
|
-
"read:filter:jira",
|
|
130
118
|
"read:group:confluence",
|
|
131
119
|
"read:group:jira",
|
|
132
120
|
"read:inlinetask:confluence",
|
|
@@ -144,10 +132,12 @@
|
|
|
144
132
|
"read:issue-type-scheme:jira",
|
|
145
133
|
"read:issue-type-screen-scheme:jira",
|
|
146
134
|
"read:issue-type-transition:jira",
|
|
147
|
-
"read:issue-type.property:jira",
|
|
148
135
|
"read:issue-type:jira",
|
|
149
|
-
"read:issue-
|
|
136
|
+
"read:issue-type.property:jira",
|
|
150
137
|
"read:issue-worklog:jira",
|
|
138
|
+
"read:issue-worklog.property:jira",
|
|
139
|
+
"read:issue:jira",
|
|
140
|
+
"read:issue:jira-software",
|
|
151
141
|
"read:issue.changelog:jira",
|
|
152
142
|
"read:issue.property:jira",
|
|
153
143
|
"read:issue.remote-link:jira",
|
|
@@ -156,11 +146,7 @@
|
|
|
156
146
|
"read:issue.vote:jira",
|
|
157
147
|
"read:issue.votes:jira",
|
|
158
148
|
"read:issue.watcher:jira",
|
|
159
|
-
"read:issue:jira",
|
|
160
|
-
"read:issue:jira-software",
|
|
161
149
|
"read:jira-expressions:jira",
|
|
162
|
-
"read:jira-user",
|
|
163
|
-
"read:jira-work",
|
|
164
150
|
"read:jql:jira",
|
|
165
151
|
"read:knowledgebase:jira-service-management",
|
|
166
152
|
"read:label:confluence",
|
|
@@ -169,9 +155,9 @@
|
|
|
169
155
|
"read:me",
|
|
170
156
|
"read:metric:compass",
|
|
171
157
|
"read:notification-scheme:jira",
|
|
158
|
+
"read:organization:jira-service-management",
|
|
172
159
|
"read:organization.property:jira-service-management",
|
|
173
160
|
"read:organization.user:jira-service-management",
|
|
174
|
-
"read:organization:jira-service-management",
|
|
175
161
|
"read:page:confluence",
|
|
176
162
|
"read:permission-scheme:jira",
|
|
177
163
|
"read:permission:jira",
|
|
@@ -180,15 +166,16 @@
|
|
|
180
166
|
"read:project-role:jira",
|
|
181
167
|
"read:project-type:jira",
|
|
182
168
|
"read:project-version:jira",
|
|
169
|
+
"read:project:jira",
|
|
183
170
|
"read:project.avatar:jira",
|
|
184
171
|
"read:project.component:jira",
|
|
185
172
|
"read:project.email:jira",
|
|
186
173
|
"read:project.feature:jira",
|
|
187
174
|
"read:project.property:jira",
|
|
188
|
-
"read:project:jira",
|
|
189
175
|
"read:queue:jira-service-management",
|
|
190
176
|
"read:relation:confluence",
|
|
191
177
|
"read:remote-link:jira-software",
|
|
178
|
+
"read:request:jira-service-management",
|
|
192
179
|
"read:request.action:jira-service-management",
|
|
193
180
|
"read:request.approval:jira-service-management",
|
|
194
181
|
"read:request.attachment:jira-service-management",
|
|
@@ -198,9 +185,8 @@
|
|
|
198
185
|
"read:request.participant:jira-service-management",
|
|
199
186
|
"read:request.sla:jira-service-management",
|
|
200
187
|
"read:request.status:jira-service-management",
|
|
201
|
-
"read:request:jira-service-management",
|
|
202
|
-
"read:requesttype.property:jira-service-management",
|
|
203
188
|
"read:requesttype:jira-service-management",
|
|
189
|
+
"read:requesttype.property:jira-service-management",
|
|
204
190
|
"read:resolution:jira",
|
|
205
191
|
"read:role:jira",
|
|
206
192
|
"read:scorecard:compass",
|
|
@@ -210,33 +196,31 @@
|
|
|
210
196
|
"read:screen:jira",
|
|
211
197
|
"read:screenable-field:jira",
|
|
212
198
|
"read:servicedesk-request",
|
|
199
|
+
"read:servicedesk:jira-service-management",
|
|
213
200
|
"read:servicedesk.customer:jira-service-management",
|
|
214
201
|
"read:servicedesk.organization:jira-service-management",
|
|
215
202
|
"read:servicedesk.property:jira-service-management",
|
|
216
|
-
"read:servicedesk:jira-service-management",
|
|
217
203
|
"read:servicemanagement-insight-objects",
|
|
218
204
|
"read:source-code:jira-software",
|
|
219
205
|
"read:space-details:confluence",
|
|
206
|
+
"read:space:confluence",
|
|
220
207
|
"read:space.permission:confluence",
|
|
221
208
|
"read:space.property:confluence",
|
|
222
209
|
"read:space.setting:confluence",
|
|
223
|
-
"read:space:confluence",
|
|
224
210
|
"read:sprint:jira-software",
|
|
225
211
|
"read:status:jira",
|
|
226
212
|
"read:template:confluence",
|
|
227
213
|
"read:user-configuration:jira",
|
|
228
|
-
"read:user.columns:jira",
|
|
229
|
-
"read:user.property:jira",
|
|
230
214
|
"read:user:confluence",
|
|
231
215
|
"read:user:jira",
|
|
216
|
+
"read:user.columns:jira",
|
|
217
|
+
"read:user.property:jira",
|
|
232
218
|
"read:watcher:confluence",
|
|
233
219
|
"read:webhook:jira",
|
|
234
220
|
"read:workflow-scheme:jira",
|
|
235
|
-
"read:workflow.property:jira",
|
|
236
221
|
"read:workflow:jira",
|
|
237
|
-
"
|
|
222
|
+
"read:workflow.property:jira",
|
|
238
223
|
"report:personal-data",
|
|
239
|
-
"search:confluence",
|
|
240
224
|
"send:notification:jira",
|
|
241
225
|
"space-admin:connect-confluence",
|
|
242
226
|
"storage:app",
|
|
@@ -246,41 +230,36 @@
|
|
|
246
230
|
"write:audit-log:confluence",
|
|
247
231
|
"write:avatar:jira",
|
|
248
232
|
"write:blogpost:confluence",
|
|
249
|
-
"write:board-scope.admin:jira-software",
|
|
250
233
|
"write:board-scope:jira-software",
|
|
234
|
+
"write:board-scope.admin:jira-software",
|
|
251
235
|
"write:build:jira-software",
|
|
252
|
-
"write:comment.property:jira",
|
|
253
236
|
"write:comment:confluence",
|
|
254
237
|
"write:comment:jira",
|
|
238
|
+
"write:comment.property:jira",
|
|
255
239
|
"write:component:compass",
|
|
256
240
|
"write:configuration:confluence",
|
|
257
|
-
"write:confluence-content",
|
|
258
|
-
"write:confluence-file",
|
|
259
|
-
"write:confluence-groups",
|
|
260
|
-
"write:confluence-props",
|
|
261
|
-
"write:confluence-space",
|
|
262
241
|
"write:connect-confluence",
|
|
263
242
|
"write:connect-jira",
|
|
243
|
+
"write:content:confluence",
|
|
264
244
|
"write:content.property:confluence",
|
|
265
245
|
"write:content.restriction:confluence",
|
|
266
|
-
"write:content:confluence",
|
|
267
246
|
"write:custom-content:confluence",
|
|
268
247
|
"write:custom-field-contextual-configuration:jira",
|
|
269
248
|
"write:customer:jira-service-management",
|
|
270
|
-
"write:dashboard.property:jira",
|
|
271
249
|
"write:dashboard:jira",
|
|
250
|
+
"write:dashboard.property:jira",
|
|
272
251
|
"write:deployment:jira-software",
|
|
273
252
|
"write:epic:jira-software",
|
|
274
253
|
"write:event:compass",
|
|
275
254
|
"write:feature-flag:jira-software",
|
|
276
255
|
"write:field-configuration-scheme:jira",
|
|
277
256
|
"write:field-configuration:jira",
|
|
257
|
+
"write:field:jira",
|
|
278
258
|
"write:field.default-value:jira",
|
|
279
259
|
"write:field.option:jira",
|
|
280
|
-
"write:
|
|
260
|
+
"write:filter:jira",
|
|
281
261
|
"write:filter.column:jira",
|
|
282
262
|
"write:filter.default-share-scope:jira",
|
|
283
|
-
"write:filter:jira",
|
|
284
263
|
"write:group:confluence",
|
|
285
264
|
"write:group:jira",
|
|
286
265
|
"write:inlinetask:confluence",
|
|
@@ -289,37 +268,37 @@
|
|
|
289
268
|
"write:issue-link:jira",
|
|
290
269
|
"write:issue-type-scheme:jira",
|
|
291
270
|
"write:issue-type-screen-scheme:jira",
|
|
292
|
-
"write:issue-type.property:jira",
|
|
293
271
|
"write:issue-type:jira",
|
|
294
|
-
"write:issue-
|
|
272
|
+
"write:issue-type.property:jira",
|
|
295
273
|
"write:issue-worklog:jira",
|
|
274
|
+
"write:issue-worklog.property:jira",
|
|
275
|
+
"write:issue:jira",
|
|
276
|
+
"write:issue:jira-software",
|
|
296
277
|
"write:issue.property:jira",
|
|
297
278
|
"write:issue.remote-link:jira",
|
|
298
279
|
"write:issue.time-tracking:jira",
|
|
299
280
|
"write:issue.vote:jira",
|
|
300
281
|
"write:issue.watcher:jira",
|
|
301
|
-
"write:issue:jira",
|
|
302
|
-
"write:issue:jira-software",
|
|
303
|
-
"write:jira-work",
|
|
304
282
|
"write:label:confluence",
|
|
305
283
|
"write:metric:compass",
|
|
284
|
+
"write:organization:jira-service-management",
|
|
306
285
|
"write:organization.property:jira-service-management",
|
|
307
286
|
"write:organization.user:jira-service-management",
|
|
308
|
-
"write:organization:jira-service-management",
|
|
309
287
|
"write:page:confluence",
|
|
310
288
|
"write:permission-scheme:jira",
|
|
311
289
|
"write:permission:jira",
|
|
312
290
|
"write:project-category:jira",
|
|
313
291
|
"write:project-role:jira",
|
|
314
292
|
"write:project-version:jira",
|
|
293
|
+
"write:project:jira",
|
|
315
294
|
"write:project.avatar:jira",
|
|
316
295
|
"write:project.component:jira",
|
|
317
296
|
"write:project.email:jira",
|
|
318
297
|
"write:project.feature:jira",
|
|
319
298
|
"write:project.property:jira",
|
|
320
|
-
"write:project:jira",
|
|
321
299
|
"write:relation:confluence",
|
|
322
300
|
"write:remote-link:jira-software",
|
|
301
|
+
"write:request:jira-service-management",
|
|
323
302
|
"write:request.approval:jira-service-management",
|
|
324
303
|
"write:request.attachment:jira-service-management",
|
|
325
304
|
"write:request.comment:jira-service-management",
|
|
@@ -327,24 +306,23 @@
|
|
|
327
306
|
"write:request.notification:jira-service-management",
|
|
328
307
|
"write:request.participant:jira-service-management",
|
|
329
308
|
"write:request.status:jira-service-management",
|
|
330
|
-
"write:request:jira-service-management",
|
|
331
|
-
"write:requesttype.property:jira-service-management",
|
|
332
309
|
"write:requesttype:jira-service-management",
|
|
310
|
+
"write:requesttype.property:jira-service-management",
|
|
333
311
|
"write:scorecard:compass",
|
|
334
312
|
"write:screen-scheme:jira",
|
|
335
313
|
"write:screen-tab:jira",
|
|
336
314
|
"write:screen:jira",
|
|
337
315
|
"write:screenable-field:jira",
|
|
338
316
|
"write:servicedesk-request",
|
|
317
|
+
"write:servicedesk:jira-service-management",
|
|
339
318
|
"write:servicedesk.customer:jira-service-management",
|
|
340
319
|
"write:servicedesk.organization:jira-service-management",
|
|
341
320
|
"write:servicedesk.property:jira-service-management",
|
|
342
|
-
"write:servicedesk:jira-service-management",
|
|
343
321
|
"write:source-code:jira-software",
|
|
322
|
+
"write:space:confluence",
|
|
344
323
|
"write:space.permission:confluence",
|
|
345
324
|
"write:space.property:confluence",
|
|
346
325
|
"write:space.setting:confluence",
|
|
347
|
-
"write:space:confluence",
|
|
348
326
|
"write:sprint:jira-software",
|
|
349
327
|
"write:template:confluence",
|
|
350
328
|
"write:user-configuration:jira",
|
|
@@ -352,6 +330,6 @@
|
|
|
352
330
|
"write:watcher:confluence",
|
|
353
331
|
"write:webhook:jira",
|
|
354
332
|
"write:workflow-scheme:jira",
|
|
355
|
-
"write:workflow
|
|
356
|
-
"write:workflow:jira"
|
|
333
|
+
"write:workflow:jira",
|
|
334
|
+
"write:workflow.property:jira"
|
|
357
335
|
]
|
package/out/text/errors.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare const errors: {
|
|
|
11
11
|
permissions: {
|
|
12
12
|
invalidPermission: (element: string, value: string) => string;
|
|
13
13
|
missingPermissionFromScope: (scope: string, event: string) => string;
|
|
14
|
+
deprecatedPermission: (element: string, value: string[]) => string;
|
|
14
15
|
};
|
|
15
16
|
connectModules: {
|
|
16
17
|
invalidConnectModule: (module: string) => string;
|
package/out/text/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/text/errors.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;8BACS,MAAM,KAAG,MAAM;2BACpB,MAAM;yBAEN,MAAM,GAAG,SAAS,QAAQ,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS,KAAG,MAAM;;uBAO3E,MAAM,EAAE,EAAE,GAAG,SAAS,KAAG,MAAM;4BAI1B,MAAM,EAAE,KAAG,MAAM;mCACV,MAAM,SAAS,MAAM,0CAA4B,MAAM;mDAIvC,MAAM,KAAG,MAAM;;;qCAI7B,MAAM,SAAS,MAAM,KAAG,MAAM;4CAEvB,MAAM,SAAS,MAAM,KAAG,MAAM;;;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/text/errors.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;8BACS,MAAM,KAAG,MAAM;2BACpB,MAAM;yBAEN,MAAM,GAAG,SAAS,QAAQ,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS,KAAG,MAAM;;uBAO3E,MAAM,EAAE,EAAE,GAAG,SAAS,KAAG,MAAM;4BAI1B,MAAM,EAAE,KAAG,MAAM;mCACV,MAAM,SAAS,MAAM,0CAA4B,MAAM;mDAIvC,MAAM,KAAG,MAAM;;;qCAI7B,MAAM,SAAS,MAAM,KAAG,MAAM;4CAEvB,MAAM,SAAS,MAAM,KAAG,MAAM;wCAElC,MAAM,SAAS,MAAM,EAAE,KAAG,MAAM;;;uCAMjC,MAAM,KAAG,MAAM;oCACpB,MAAM;iCAEP,MAAM,KAAG,MAAM;4CACJ,MAAM,KAAG,MAAM;;;gCAG3B,MAAM,KAAG,MAAM;6BACpB,MAAM;+BACJ,MAAM;iCACF,MAAM,KAAG,MAAM;yCACP,MAAM,eAAe,MAAM,KAAG,MAAM;yCAEpC,MAAM,eAAe,MAAM,KAAG,MAAM;;yCAGtC,MAAM,KAAG,MAAM;iCAEvB,MAAM,KAAG,MAAM;4CACJ,MAAM,gBAAgB,MAAM,KAAG,MAAM;sCAE3C,MAAM,gBAAgB,MAAM,gBAAgB,MAAM,KAAG,MAAM;;;mCAI9D,MAAM,KAAG,MAAM;mCAEf,MAAM,KAAG,MAAM;;;mCAIf,MAAM,KAAG,MAAM;;;mCAIf,MAAM,EAAE,KAAG,MAAM;;;oCAIhB,MAAM,KAAG,MAAM;;oCAEjB,MAAM,SAAS,MAAM,KAAG,MAAM;qCAI7B,MAAM,YAAY,MAAM,KAAG,MAAM;;;;;mCAQ/B,MAAM,OAAO,MAAM,KAAG,MAAM;iCAE9B,MAAM,OAAO,MAAM,KAAG,MAAM;oCAEzB,MAAM,OAAO,MAAM,KAAG,MAAM;gDAEhB,MAAM,KAAG,MAAM;uCAExB,MAAM,KAAG,MAAM;;;;;;;;kCAQpB,MAAM,UAAU,MAAM,KAAG,MAAM;gCAEjC,MAAM,KAAG,MAAM;2CAEJ,MAAM,eAAe,MAAM,KAAG,MAAM;;;uCAI1C,MAAM;uCAEJ,MAAM,KAAG,MAAM;qCAEnB,MAAM;;CAGpC,CAAC;AAEF,oBAAY,UAAU;IACpB,eAAe,2BAA2B;IAC1C,eAAe,wBAAwB;IACvC,WAAW,4BAA4B;IACvC,WAAW,+BAA+B;IAC1C,aAAa,8BAA8B;IAC3C,OAAO,0BAA0B;IACjC,cAAc,kCAAkC;IAChD,mBAAmB,0BAA0B;IAC7C,SAAS,4BAA4B;IACrC,SAAS,4BAA4B;IACrC,UAAU,wBAAwB;IAClC,GAAG,8BAA8B;CAClC"}
|
package/out/text/errors.js
CHANGED
|
@@ -22,7 +22,8 @@ exports.errors = {
|
|
|
22
22
|
},
|
|
23
23
|
permissions: {
|
|
24
24
|
invalidPermission: (element, value) => `Invalid '${element}' permission in the manifest.yml file - '${value}'. Learn more about permissions at: https://go.atlassian.com/forge-permissions.`,
|
|
25
|
-
missingPermissionFromScope: (scope, event) => `Trigger event: '${event}' requires '${scope}' scope
|
|
25
|
+
missingPermissionFromScope: (scope, event) => `Trigger event: '${event}' requires '${scope}' scope`,
|
|
26
|
+
deprecatedPermission: (element, value) => `Deprecated '${element}' permissions in the manifest.yml file - '${value.join(', ')}'. You need to update this app to use our new scopes, as all of our old scopes have been deprecated. You must do this before the deprecation period for our old scopes ends. Learn more about our new scopes at: https://go.atlassian.com/forge-permissions.`
|
|
26
27
|
},
|
|
27
28
|
connectModules: {
|
|
28
29
|
invalidConnectModule: (module) => `invalid value '${module}' in connectModules`,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ValidatorInterface } from './validator-interface';
|
|
2
|
+
import { ManifestObject, ManifestValidationResult } from '../types';
|
|
3
|
+
import { ManifestSchema } from '../schema/manifest';
|
|
4
|
+
export declare class DeprecatedPermissionsValidator implements ValidatorInterface<ManifestObject<ManifestSchema> | undefined, ManifestSchema> {
|
|
5
|
+
validate(manifest: ManifestObject<ManifestSchema> | undefined): ManifestValidationResult<ManifestSchema>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=deprecated-permissions-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated-permissions-validator.d.ts","sourceRoot":"","sources":["../../src/validators/deprecated-permissions-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAmB,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKpD,qBAAa,8BACX,YAAW,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;IACzF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,GAAG,wBAAwB,CAAC,cAAc,CAAC;CAoCzG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeprecatedPermissionsValidator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const deprecated_shipyard_scopes_json_1 = tslib_1.__importDefault(require("../scopes/deprecated-shipyard-scopes.json"));
|
|
6
|
+
const text_1 = require("../text");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
class DeprecatedPermissionsValidator {
|
|
9
|
+
validate(manifest) {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
if (!((_a = manifest === null || manifest === void 0 ? void 0 : manifest.typedContent) === null || _a === void 0 ? void 0 : _a.permissions)) {
|
|
12
|
+
return {
|
|
13
|
+
success: false,
|
|
14
|
+
manifestObject: manifest
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const validationErrors = [];
|
|
18
|
+
function addValidationError(element, value, schemaManifestObject) {
|
|
19
|
+
validationErrors.push(Object.assign({ message: text_1.errors.permissions.deprecatedPermission(element, value), reference: text_1.References.Permissions, level: 'warning' }, utils_1.findPosition(value[0], schemaManifestObject.yamlContentByLine)));
|
|
20
|
+
}
|
|
21
|
+
const deprecatedScopes = (_b = manifest.typedContent.permissions.scopes) === null || _b === void 0 ? void 0 : _b.filter((key) => deprecated_shipyard_scopes_json_1.default.includes(key));
|
|
22
|
+
if (deprecatedScopes && deprecatedScopes.length > 0) {
|
|
23
|
+
addValidationError('scopes', deprecatedScopes, manifest);
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
success: validationErrors.length === 0,
|
|
27
|
+
errors: validationErrors
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.DeprecatedPermissionsValidator = DeprecatedPermissionsValidator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions-validator.d.ts","sourceRoot":"","sources":["../../src/validators/permissions-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAmB,MAAM,UAAU,CAAC;AAGrF,OAAO,EAAE,cAAc,EAAU,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions-validator.d.ts","sourceRoot":"","sources":["../../src/validators/permissions-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAmB,MAAM,UAAU,CAAC;AAGrF,OAAO,EAAE,cAAc,EAAU,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAM3D,qBAAa,oBACX,YAAW,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,EAAE,cAAc,CAAC;IACzF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,SAAS,GAAG,wBAAwB,CAAC,cAAc,CAAC;CAkIzG"}
|
|
@@ -7,6 +7,7 @@ const text_1 = require("../text");
|
|
|
7
7
|
const egress_types_1 = require("../types/egress-types");
|
|
8
8
|
const url_1 = require("url");
|
|
9
9
|
const shipyard_scopes_json_1 = tslib_1.__importDefault(require("../scopes/shipyard-scopes.json"));
|
|
10
|
+
const deprecated_shipyard_scopes_json_1 = tslib_1.__importDefault(require("../scopes/deprecated-shipyard-scopes.json"));
|
|
10
11
|
class PermissionsValidator {
|
|
11
12
|
validate(manifest) {
|
|
12
13
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
|
@@ -54,7 +55,8 @@ class PermissionsValidator {
|
|
|
54
55
|
return false;
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
|
-
const
|
|
58
|
+
const ALL_SCOPES = shipyard_scopes_json_1.default.concat(deprecated_shipyard_scopes_json_1.default);
|
|
59
|
+
const invalidScope = (_a = manifest.typedContent.permissions.scopes) === null || _a === void 0 ? void 0 : _a.find((key) => !ALL_SCOPES.includes(key));
|
|
58
60
|
if (invalidScope) {
|
|
59
61
|
addValidationError('scopes', invalidScope, manifest);
|
|
60
62
|
}
|