@forge/api 6.1.1-experimental-3f68b81 → 6.1.1-experimental-73629cc
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 +2 -2
- package/out/api/permissions.d.ts +1 -1
- package/out/api/permissions.d.ts.map +1 -1
- package/out/api/permissions.js +110 -95
- package/out/api/runtime.d.ts.map +1 -1
- package/out/api/runtime.js +3 -8
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# @forge/api
|
|
2
2
|
|
|
3
|
-
## 6.1.1-experimental-
|
|
3
|
+
## 6.1.1-experimental-73629cc
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
7
|
- fe2852a: Added backend SDK for permission handling
|
|
8
8
|
- Updated dependencies [fe2852a]
|
|
9
|
-
- @forge/manifest@10.4.0-experimental-
|
|
9
|
+
- @forge/manifest@10.4.0-experimental-73629cc
|
|
10
10
|
|
|
11
11
|
## 6.1.1
|
|
12
12
|
|
package/out/api/permissions.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type { PermissionRequirements };
|
|
|
8
8
|
export type { MissingPermissions };
|
|
9
9
|
export interface PermissionResult {
|
|
10
10
|
granted: boolean;
|
|
11
|
-
missing
|
|
11
|
+
missing?: MissingPermissions;
|
|
12
12
|
}
|
|
13
13
|
export declare const hasPermission: (requirements: Partial<PermissionRequirements>) => PermissionResult;
|
|
14
14
|
export declare const hasScope: (scope: string) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/api/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/api/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EAGnB,MAAM,WAAW,CAAC;AAOnB,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAQ/F;AAeD,YAAY,EAAE,sBAAsB,EAAE,CAAC;AAKvC,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAKnC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAsCD,eAAO,MAAM,aAAa,iBAAkB,QAAQ,sBAAsB,CAAC,KAAG,gBA4G7E,CAAC;AAmBF,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,OAaxC,CAAC;AAyBF,eAAO,MAAM,YAAY,SAAU,SAAS,GAAG,QAAQ,OAAO,MAAM,KAAG,OAiBtE,CAAC;AAyBF,eAAO,MAAM,eAAe,SACpB,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,OAC/D,MAAM,KACV,OAiBF,CAAC;AAKF,eAAO,MAAM,WAAW;kCAxOoB,QAAQ,sBAAsB,CAAC,KAAG,gBAAgB;sBA+H9D,MAAM,KAAG,OAAO;yBAsCb,SAAS,GAAG,QAAQ,OAAO,MAAM,KAAG,OAAO;4BA2CtE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,OAC/D,MAAM,KACV,OAAO;CA2BT,CAAC"}
|
package/out/api/permissions.js
CHANGED
|
@@ -14,123 +14,138 @@ function extractUrlString(url) {
|
|
|
14
14
|
return url.remote;
|
|
15
15
|
}
|
|
16
16
|
exports.extractUrlString = extractUrlString;
|
|
17
|
+
function wrapInSyncMetrics(options, cb) {
|
|
18
|
+
const metrics = (0, runtime_1.__getRuntime)().metrics;
|
|
19
|
+
metrics.counter(options.name, options.tags).incr();
|
|
20
|
+
return cb();
|
|
21
|
+
}
|
|
17
22
|
const hasPermission = (requirements) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const appContext = (0, runtime_1.getAppContext)();
|
|
22
|
-
const currentGrantedPermissions = appContext.permissions;
|
|
23
|
-
const missingPermissions = {};
|
|
24
|
-
let hasMissingPermissions = false;
|
|
25
|
-
if (requirements.scopes && Array.isArray(requirements.scopes) && requirements.scopes.length > 0) {
|
|
26
|
-
const currentGrantedScopes = Array.isArray(currentGrantedPermissions.scopes)
|
|
27
|
-
? currentGrantedPermissions.scopes
|
|
28
|
-
: [];
|
|
29
|
-
const missingScopes = requirements.scopes.filter((scope) => !currentGrantedScopes.includes(scope));
|
|
30
|
-
if (missingScopes.length > 0) {
|
|
31
|
-
missingPermissions.scopes = missingScopes;
|
|
32
|
-
hasMissingPermissions = true;
|
|
23
|
+
return wrapInSyncMetrics({ name: 'api.permissions.hasPermission' }, () => {
|
|
24
|
+
if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
|
|
25
|
+
throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
|
|
33
26
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
27
|
+
const appContext = (0, runtime_1.getAppContext)();
|
|
28
|
+
const currentGrantedPermissions = appContext.permissions;
|
|
29
|
+
const missingPermissions = {};
|
|
30
|
+
let hasMissingPermissions = false;
|
|
31
|
+
if (requirements.scopes && Array.isArray(requirements.scopes) && requirements.scopes.length > 0) {
|
|
32
|
+
const currentGrantedScopes = Array.isArray(currentGrantedPermissions.scopes)
|
|
33
|
+
? currentGrantedPermissions.scopes
|
|
34
|
+
: [];
|
|
35
|
+
const missingScopes = requirements.scopes.filter((scope) => !currentGrantedScopes.includes(scope));
|
|
36
|
+
if (missingScopes.length > 0) {
|
|
37
|
+
missingPermissions.scopes = missingScopes;
|
|
38
|
+
hasMissingPermissions = true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (requirements.external) {
|
|
42
|
+
const { external } = requirements;
|
|
43
|
+
const currentGrantedExternal = currentGrantedPermissions.external || {};
|
|
44
|
+
if (external.fetch) {
|
|
45
|
+
const missingFetch = {};
|
|
46
|
+
if (external.fetch.backend && external.fetch.backend.length > 0) {
|
|
47
|
+
const missingBackend = external.fetch.backend.filter((requiredUrl) => {
|
|
48
|
+
const currentGrantedBackendUrls = currentGrantedExternal.fetch?.backend || [];
|
|
49
|
+
const isUrlAlreadyGranted = currentGrantedBackendUrls.some((currentGrantedUrl) => {
|
|
50
|
+
return (0, minimatch_1.minimatch)(extractUrlString(requiredUrl), extractUrlString(currentGrantedUrl));
|
|
51
|
+
});
|
|
52
|
+
return !isUrlAlreadyGranted;
|
|
45
53
|
});
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
hasMissingPermissions = true;
|
|
54
|
+
if (missingBackend.length > 0) {
|
|
55
|
+
missingFetch.backend = missingBackend.map(extractUrlString);
|
|
56
|
+
hasMissingPermissions = true;
|
|
57
|
+
}
|
|
51
58
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
if (external.fetch.client && external.fetch.client.length > 0) {
|
|
60
|
+
const missingClient = external.fetch.client.filter((requiredUrl) => {
|
|
61
|
+
const currentGrantedClientUrls = currentGrantedExternal.fetch?.client || [];
|
|
62
|
+
const isUrlAlreadyGranted = currentGrantedClientUrls.some((currentGrantedUrl) => {
|
|
63
|
+
return (0, minimatch_1.minimatch)(extractUrlString(requiredUrl), extractUrlString(currentGrantedUrl));
|
|
64
|
+
});
|
|
65
|
+
return !isUrlAlreadyGranted;
|
|
58
66
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
if (missingClient.length > 0) {
|
|
68
|
+
missingFetch.client = missingClient.map(extractUrlString);
|
|
69
|
+
hasMissingPermissions = true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (Object.keys(missingFetch).length > 0) {
|
|
73
|
+
missingPermissions.external = { ...missingPermissions.external, fetch: missingFetch };
|
|
64
74
|
}
|
|
65
75
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const isUrlAlreadyGranted = currentGrantedUrls.some((currentGrantedUrl) => {
|
|
77
|
-
return (0, minimatch_1.minimatch)(extractUrlString(requiredUrl), extractUrlString(currentGrantedUrl));
|
|
76
|
+
const externalTypes = ['fonts', 'styles', 'frames', 'images', 'media', 'scripts'];
|
|
77
|
+
for (const type of externalTypes) {
|
|
78
|
+
const externalUrls = external[type];
|
|
79
|
+
if (externalUrls && externalUrls.length > 0) {
|
|
80
|
+
const missingUrls = externalUrls.filter((requiredUrl) => {
|
|
81
|
+
const currentGrantedUrls = currentGrantedExternal[type] || [];
|
|
82
|
+
const isUrlAlreadyGranted = currentGrantedUrls.some((currentGrantedUrl) => {
|
|
83
|
+
return (0, minimatch_1.minimatch)(extractUrlString(requiredUrl), extractUrlString(currentGrantedUrl));
|
|
84
|
+
});
|
|
85
|
+
return !isUrlAlreadyGranted;
|
|
78
86
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
missingPermissions.external =
|
|
87
|
+
if (missingUrls.length > 0) {
|
|
88
|
+
if (!missingPermissions.external) {
|
|
89
|
+
missingPermissions.external = {};
|
|
90
|
+
}
|
|
91
|
+
missingPermissions.external[type] = missingUrls.map(extractUrlString);
|
|
92
|
+
hasMissingPermissions = true;
|
|
84
93
|
}
|
|
85
|
-
missingPermissions.external[type] = missingUrls.map(extractUrlString);
|
|
86
|
-
hasMissingPermissions = true;
|
|
87
94
|
}
|
|
88
95
|
}
|
|
89
96
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
97
|
+
return {
|
|
98
|
+
granted: !hasMissingPermissions,
|
|
99
|
+
...(hasMissingPermissions && {
|
|
100
|
+
missing: new runtime_1.MissingPermissions(missingPermissions.scopes, missingPermissions.external, missingPermissions.content)
|
|
101
|
+
})
|
|
102
|
+
};
|
|
103
|
+
});
|
|
95
104
|
};
|
|
96
105
|
exports.hasPermission = hasPermission;
|
|
97
106
|
const hasScope = (scope) => {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
+
return wrapInSyncMetrics({ name: 'api.permissions.hasScope' }, () => {
|
|
108
|
+
if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
|
|
109
|
+
throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
|
|
110
|
+
}
|
|
111
|
+
const appContext = (0, runtime_1.getAppContext)();
|
|
112
|
+
const currentScopes = appContext.permissions.scopes;
|
|
113
|
+
if (Array.isArray(currentScopes)) {
|
|
114
|
+
return currentScopes.includes(scope);
|
|
115
|
+
}
|
|
116
|
+
return false;
|
|
117
|
+
});
|
|
107
118
|
};
|
|
108
119
|
exports.hasScope = hasScope;
|
|
109
120
|
const canFetchFrom = (type, url) => {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
return
|
|
121
|
+
return wrapInSyncMetrics({ name: 'api.permissions.canFetchFrom' }, () => {
|
|
122
|
+
if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
|
|
123
|
+
throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
|
|
124
|
+
}
|
|
125
|
+
const appContext = (0, runtime_1.getAppContext)();
|
|
126
|
+
const grantedUrls = appContext.permissions.external?.fetch?.[type];
|
|
127
|
+
if (!grantedUrls || grantedUrls.length === 0) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
return grantedUrls.some((grantedUrl) => {
|
|
131
|
+
return (0, minimatch_1.minimatch)(url, extractUrlString(grantedUrl));
|
|
132
|
+
});
|
|
120
133
|
});
|
|
121
134
|
};
|
|
122
135
|
exports.canFetchFrom = canFetchFrom;
|
|
123
136
|
const canLoadResource = (type, url) => {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
return
|
|
137
|
+
return wrapInSyncMetrics({ name: 'api.permissions.canLoadResource' }, () => {
|
|
138
|
+
if (!(0, runtime_1.arePermsAvailableInRuntime)()) {
|
|
139
|
+
throw new errors_1.ApiNotReadyError('API not ready: permissions are not available in the runtime object');
|
|
140
|
+
}
|
|
141
|
+
const appContext = (0, runtime_1.getAppContext)();
|
|
142
|
+
const grantedUrls = appContext.permissions.external?.[type];
|
|
143
|
+
if (!grantedUrls || grantedUrls.length === 0) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
return grantedUrls.some((grantedUrl) => {
|
|
147
|
+
return (0, minimatch_1.minimatch)(url, extractUrlString(grantedUrl));
|
|
148
|
+
});
|
|
134
149
|
});
|
|
135
150
|
};
|
|
136
151
|
exports.canLoadResource = canLoadResource;
|
package/out/api/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/api/runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/api/runtime.ts"],"names":[],"mappings":"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"}
|
package/out/api/runtime.js
CHANGED
|
@@ -142,13 +142,8 @@ function bindInvocationContext(fn) {
|
|
|
142
142
|
}
|
|
143
143
|
exports.bindInvocationContext = bindInvocationContext;
|
|
144
144
|
function arePermsAvailableInRuntime() {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
return !!(permissions && typeof permissions === 'object');
|
|
149
|
-
}
|
|
150
|
-
catch {
|
|
151
|
-
return false;
|
|
152
|
-
}
|
|
145
|
+
const runtime = __getRuntime();
|
|
146
|
+
const permissions = runtime.appContext.permissions;
|
|
147
|
+
return !!(permissions && typeof permissions === 'object');
|
|
153
148
|
}
|
|
154
149
|
exports.arePermsAvailableInRuntime = arePermsAvailableInRuntime;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/api",
|
|
3
|
-
"version": "6.1.1-experimental-
|
|
3
|
+
"version": "6.1.1-experimental-73629cc",
|
|
4
4
|
"description": "Forge API methods",
|
|
5
5
|
"author": "Atlassian",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@forge/auth": "0.0.8",
|
|
29
29
|
"@forge/egress": "2.0.3",
|
|
30
30
|
"@forge/i18n": "0.0.7",
|
|
31
|
-
"@forge/manifest": "^10.4.0-experimental-
|
|
31
|
+
"@forge/manifest": "^10.4.0-experimental-73629cc",
|
|
32
32
|
"@forge/storage": "2.0.2",
|
|
33
33
|
"headers-utils": "^3.0.2",
|
|
34
34
|
"minimatch": "^9.0.5"
|