npm package diff
Package: @forge/csp
Versions: 4.1.0-experimental-255e232 - 4.2.0-next.0
Modified: package/out/csp/csp-injection-service.js
Index: package/out/csp/csp-injection-service.js
===================================================================
--- package/out/csp/csp-injection-service.js
+++ package/out/csp/csp-injection-service.js
@@ -1,156 +1,173 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.CSPInjectionService = exports.EXTERNAL_ALLOW_LISTED_IMAGES_HOSTS = exports.ATLASSIAN_IMAGES_HOSTS = void 0;
+exports.CSPInjectionService = exports.EXTERNAL_ALLOW_LISTED_IMAGES_HOSTS = exports.getAtlassianImageHost = void 0;
const types_1 = require("../types");
-const ATLASSIAN_API_GATEWAY_HOST = {
- dev: 'https://api.dev.atlassian.com',
- stg: 'https://api.stg.atlassian.com',
- prod: 'https://api.atlassian.com',
- 'fedramp-stg': 'https://api.stg.atlassian-us-gov-mod.com',
- 'fedramp-prod': 'https://api.atlassian-us-gov-mod.com'
+const ATLASSIAN_HOST = {
+ ATLASSIAN_API_GATEWAY_HOST: {
+ dev: 'https://api.dev.atlassian.com',
+ stg: 'https://api.stg.atlassian.com',
+ prod: 'https://api.atlassian.com',
+ 'fedramp-stg': 'https://api.stg.atlassian-us-gov-mod.com',
+ 'fedramp-prod': 'https://api.atlassian-us-gov-mod.com',
+ 'ic-stg': (_icOptions) => 'https://api.pear.oasis-stg.com',
+ 'ic-prod': ({ icLabel }) => `https://api.${icLabel}.atlassian-isolated.net`
+ },
+ ATLASSIAN_MEDIA_GATEWAY_HOST: {
+ dev: 'https://media.dev.atl-paas.net',
+ stg: 'https://media.staging.atl-paas.net',
+ prod: 'https://api.media.atlassian.com',
+ 'fedramp-stg': 'https://api-media.stg.atlassian-us-gov-mod.com',
+ 'fedramp-prod': 'https://api-media.atlassian-us-gov-mod.com',
+ 'ic-stg': (_icOptions) => 'https://media-api.pear.oasis-stg.com',
+ 'ic-prod': ({ icLabel }) => `https://media-api.${icLabel}.atlassian-isolated.net`
+ },
+ ATLASSIAN_AVATAR_HOST: {
+ dev: 'avatar-management--avatars.us-west-2.staging.public.atl-paas.net',
+ stg: 'avatar-management--avatars.us-west-2.staging.public.atl-paas.net',
+ prod: 'avatar-management--avatars.us-west-2.prod.public.atl-paas.net',
+ 'fedramp-stg': 'avatar-management--avatars.us-east-1.staging.cdn.atlassian-us-gov-mod.com',
+ 'fedramp-prod': 'avatar-management--avatars.us-east-1.prod.cdn.atlassian-us-gov-mod.com',
+ 'ic-stg': (_icOptions) => 'avatar-management--avatars.us-west-2.staging.public.atl-paas.net',
+ 'ic-prod': ({ icLabel }) => 'avatar-management--avatars.us-west-2.prod.public.atl-paas.net'
+ },
+ ATLASSIAN_TEAM_HEADER_HOST: {
+ dev: 'https://ptc-directory-sited-static.us-east-1.staging.public.atl-paas.net/gradients/',
+ stg: 'https://ptc-directory-sited-static.us-east-1.staging.public.atl-paas.net/gradients/',
+ prod: 'https://ptc-directory-sited-static.us-east-1.prod.public.atl-paas.net/gradients/',
+ 'fedramp-stg': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/',
+ 'fedramp-prod': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/',
+ 'ic-stg': (_icOptions) => 'https://teams-directory-frontend.services.pear.oasis-stg.com/bfa/',
+ 'ic-prod': ({ icLabel }) => `https://teams-directory-frontend.services.${icLabel}.atlassian-isolated.net/bfa/`
+ },
+ ATLASSIAN_TEAM_AVATAR_HOST: {
+ dev: 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/',
+ stg: 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/',
+ prod: 'https://teams-directory-frontend.prod-east.frontend.public.atl-paas.net/assets/',
+ 'fedramp-stg': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/',
+ 'fedramp-prod': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/',
+ 'ic-stg': (_icOptions) => 'https://teams-directory-frontend.services.pear.oasis-stg.com/bfa/',
+ 'ic-prod': ({ icLabel }) => `https://teams-directory-frontend.services.${icLabel}.atlassian-isolated.net/bfa/`
+ },
+ ATLASSIAN_EMOJIS_HOST: {
+ dev: 'https://pf-emoji-service--cdn.ap-southeast-2.dev.public.atl-paas.net',
+ stg: 'https://pf-emoji-service--cdn.us-east-1.staging.public.atl-paas.net',
+ prod: 'https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net',
+ 'fedramp-stg': 'https://pf-emoji-service--cdn.us-east-1.staging.cdn.atlassian-us-gov-mod.com',
+ 'fedramp-prod': 'https://pf-emoji-service--cdn.us-east-1.prod.cdn.atlassian-us-gov-mod.com',
+ 'ic-stg': (_icOptions) => 'https://pf-emoji-service.pear.oasis-stg.com',
+ 'ic-prod': ({ icLabel }) => `https://pf-emoji-service.${icLabel}.atlassian-isolated.net`
+ }
};
-const ATLASSIAN_MEDIA_GATEWAY_HOST = {
- dev: 'https://media.dev.atl-paas.net',
- stg: 'https://media.staging.atl-paas.net',
- prod: 'https://api.media.atlassian.com',
- 'fedramp-stg': 'https://api-media.stg.atlassian-us-gov-mod.com',
- 'fedramp-prod': 'https://api-media.atlassian-us-gov-mod.com'
+const getAtlassianHost = (hostType, microsEnv, icOptions) => {
+ const hostMap = ATLASSIAN_HOST[hostType];
+ if (microsEnv === 'ic-prod' || microsEnv === 'ic-stg') {
+ if (!icOptions) {
+ throw new Error('Missing IC label');
+ }
+ return hostMap[microsEnv](icOptions);
+ }
+ return hostMap[microsEnv];
};
-const ATLASSIAN_AVATAR_HOST = {
- dev: 'avatar-management--avatars.us-west-2.staging.public.atl-paas.net',
- stg: 'avatar-management--avatars.us-west-2.staging.public.atl-paas.net',
- prod: 'avatar-management--avatars.us-west-2.prod.public.atl-paas.net',
- 'fedramp-stg': 'avatar-management--avatars.us-east-1.staging.cdn.atlassian-us-gov-mod.com',
- 'fedramp-prod': 'avatar-management--avatars.us-east-1.prod.cdn.atlassian-us-gov-mod.com'
+const getAtlassianImageHost = (microsEnv, icOptions) => {
+ return [
+ `https://${getAtlassianHost('ATLASSIAN_AVATAR_HOST', microsEnv, icOptions)}`,
+ `https://*.wp.com/${getAtlassianHost('ATLASSIAN_AVATAR_HOST', microsEnv, icOptions)}/`,
+ getAtlassianHost('ATLASSIAN_API_GATEWAY_HOST', microsEnv, icOptions),
+ getAtlassianHost('ATLASSIAN_MEDIA_GATEWAY_HOST', microsEnv, icOptions),
+ getAtlassianHost('ATLASSIAN_EMOJIS_HOST', microsEnv, icOptions),
+ getAtlassianHost('ATLASSIAN_TEAM_AVATAR_HOST', microsEnv, icOptions),
+ getAtlassianHost('ATLASSIAN_TEAM_HEADER_HOST', microsEnv, icOptions)
+ ];
};
-const ATLASSIAN_TEAM_HEADER_HOST = {
- dev: 'https://ptc-directory-sited-static.us-east-1.staging.public.atl-paas.net/gradients/',
- stg: 'https://ptc-directory-sited-static.us-east-1.staging.public.atl-paas.net/gradients/',
- prod: 'https://ptc-directory-sited-static.us-east-1.prod.public.atl-paas.net/gradients/',
- 'fedramp-stg': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/',
- 'fedramp-prod': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/'
-};
-const ATLASSIAN_TEAM_AVATAR_HOST = {
- dev: 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/',
- stg: 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/',
- prod: 'https://teams-directory-frontend.prod-east.frontend.public.atl-paas.net/assets/',
- 'fedramp-stg': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/',
- 'fedramp-prod': 'https://teams-directory-frontend.frontend.cdn.atlassian-us-gov-mod.com/assets/'
-};
-const ATLASSIAN_EMOJIS_HOST = {
- dev: 'https://pf-emoji-service--cdn.ap-southeast-2.dev.public.atl-paas.net',
- stg: 'https://pf-emoji-service--cdn.us-east-1.staging.public.atl-paas.net',
- prod: 'https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net',
- 'fedramp-stg': 'https://pf-emoji-service--cdn.us-east-1.staging.cdn.atlassian-us-gov-mod.com',
- 'fedramp-prod': 'https://pf-emoji-service--cdn.us-east-1.prod.cdn.atlassian-us-gov-mod.com'
-};
-exports.ATLASSIAN_IMAGES_HOSTS = {
- dev: [
- `https://${ATLASSIAN_AVATAR_HOST['dev']}`,
- `https://*.wp.com/${ATLASSIAN_AVATAR_HOST['dev']}/`,
- ATLASSIAN_API_GATEWAY_HOST['dev'],
- ATLASSIAN_MEDIA_GATEWAY_HOST['dev'],
- ATLASSIAN_EMOJIS_HOST['dev'],
- ATLASSIAN_TEAM_AVATAR_HOST['dev'],
- ATLASSIAN_TEAM_HEADER_HOST['dev']
- ],
- stg: [
- `https://${ATLASSIAN_AVATAR_HOST['stg']}`,
- `https://*.wp.com/${ATLASSIAN_AVATAR_HOST['stg']}/`,
- ATLASSIAN_API_GATEWAY_HOST['stg'],
- ATLASSIAN_MEDIA_GATEWAY_HOST['stg'],
- ATLASSIAN_EMOJIS_HOST['stg'],
- ATLASSIAN_TEAM_AVATAR_HOST['stg'],
- ATLASSIAN_TEAM_HEADER_HOST['stg']
- ],
- prod: [
- `https://${ATLASSIAN_AVATAR_HOST['prod']}`,
- `https://*.wp.com/${ATLASSIAN_AVATAR_HOST['prod']}/`,
- ATLASSIAN_API_GATEWAY_HOST['prod'],
- ATLASSIAN_MEDIA_GATEWAY_HOST['prod'],
- ATLASSIAN_EMOJIS_HOST['prod'],
- ATLASSIAN_TEAM_AVATAR_HOST['prod'],
- ATLASSIAN_TEAM_HEADER_HOST['prod']
- ],
- 'fedramp-stg': [
- `https://${ATLASSIAN_AVATAR_HOST['fedramp-stg']}`,
- `https://*.wp.com/${ATLASSIAN_AVATAR_HOST['fedramp-stg']}/`,
- ATLASSIAN_API_GATEWAY_HOST['fedramp-stg'],
- ATLASSIAN_MEDIA_GATEWAY_HOST['fedramp-stg'],
- ATLASSIAN_EMOJIS_HOST['fedramp-stg'],
- ATLASSIAN_TEAM_AVATAR_HOST['fedramp-stg'],
- ATLASSIAN_TEAM_HEADER_HOST['fedramp-stg']
- ],
- 'fedramp-prod': [
- `https://${ATLASSIAN_AVATAR_HOST['fedramp-prod']}`,
- `https://*.wp.com/${ATLASSIAN_AVATAR_HOST['fedramp-prod']}/`,
- ATLASSIAN_API_GATEWAY_HOST['fedramp-prod'],
- ATLASSIAN_MEDIA_GATEWAY_HOST['fedramp-prod'],
- ATLASSIAN_EMOJIS_HOST['fedramp-prod'],
- ATLASSIAN_TEAM_AVATAR_HOST['fedramp-prod'],
- ATLASSIAN_TEAM_HEADER_HOST['fedramp-prod']
- ]
-};
+exports.getAtlassianImageHost = getAtlassianImageHost;
exports.EXTERNAL_ALLOW_LISTED_IMAGES_HOSTS = ['https://secure.gravatar.com', 'https://images.unsplash.com'];
class CSPInjectionService {
- getCSPReportUri(microsEnv) {
+ isIsolatedContext(microsEnv, icOptions) {
+ return microsEnv.startsWith('ic') && !!icOptions;
+ }
+ getCSPReportUri(microsEnv, icOptions) {
+ const serviceName = this.isIsolatedContext(microsEnv, icOptions) ? icOptions.serviceName : 'forge-cdn';
if (microsEnv === 'dev' || microsEnv === 'stg')
- return 'https://web-security-reports.stg.services.atlassian.com/csp-report/forge-cdn';
- return 'https://web-security-reports.services.atlassian.com/csp-report/forge-cdn';
+ return `https://web-security-reports.stg.services.atlassian.com/csp-report/${serviceName}`;
+ return `https://web-security-reports.services.atlassian.com/csp-report/${serviceName}`;
}
- getForgeGlobalCSP(microsEnv, isFedRAMP = false) {
+ getForgeGlobalCSP(microsEnv, isFedRAMP = false, icOptions) {
+ if (this.isIsolatedContext(microsEnv, icOptions)) {
+ return microsEnv === 'ic-stg'
+ ? 'https://forge.forge-cdn.pear.oasis-stg.com'
+ : `https://forge.forge-cdn.${icOptions.icLabel}.atlassian-isolated.net`;
+ }
return isFedRAMP
? `https://forge.cdn.${microsEnv.split('-')[1]}.atlassian-dev-us-gov-mod.net`
: `https://forge.cdn.${microsEnv}.atlassian-dev.net`;
}
+ getMetalClientCSP(microsEnv, icOptions) {
+ if (this.isIsolatedContext(microsEnv, icOptions)) {
+ return microsEnv === 'ic-stg'
+ ? 'https://api.pear.oasis-stg/metal/ingest'
+ : `https://api.${icOptions.icLabel}.atlassian-isolated.net/metal/ingest`;
+ }
+ return `https://api.${microsEnv === 'prod' ? '' : 'stg.'}atlassian.com/metal/ingest`;
+ }
getExistingCSPDetails(cspType, cspDetails) {
return cspDetails[cspType] ?? [];
}
- getConnectSrc(microsEnv, isTunnelling) {
+ getConnectSrc(microsEnv, isTunnelling, icOptions) {
const allowed = [];
if (isTunnelling) {
allowed.push(...['ws://localhost:*', 'http://localhost:*']);
}
- allowed.push(`https://api.${microsEnv === 'prod' ? '' : 'stg.'}atlassian.com/metal/ingest`);
- allowed.push(`${ATLASSIAN_API_GATEWAY_HOST[microsEnv]}/gateway/api/emoji/`);
- allowed.push(ATLASSIAN_MEDIA_GATEWAY_HOST[microsEnv]);
+ const metalClientCSP = this.getMetalClientCSP(microsEnv, icOptions);
+ allowed.push(metalClientCSP);
+ allowed.push(`${getAtlassianHost('ATLASSIAN_API_GATEWAY_HOST', microsEnv, icOptions)}/gateway/api/emoji/`);
+ allowed.push(getAtlassianHost('ATLASSIAN_MEDIA_GATEWAY_HOST', microsEnv, icOptions));
return allowed;
}
getFrameAncestors(microsEnv, hostname) {
let frameAncestors = [];
- if (microsEnv === 'dev' || microsEnv === 'stg') {
- frameAncestors = [
- '*.jira-dev.com',
- 'http://localhost:*',
- 'http://devbucket.localhost',
- 'https://integration.bb-inf.net',
- '*.atl-paas.net',
- '*.stg.atlassian.com'
- ];
+ switch (microsEnv) {
+ case 'dev':
+ case 'stg':
+ frameAncestors = [
+ '*.jira-dev.com',
+ 'http://localhost:*',
+ 'http://devbucket.localhost',
+ 'https://integration.bb-inf.net',
+ '*.atl-paas.net',
+ '*.stg.atlassian.com'
+ ];
+ break;
+ case 'fedramp-stg':
+ frameAncestors = ['*.atlassian-stg-fedm.net'];
+ break;
+ case 'fedramp-prod':
+ frameAncestors = ['*.atlassian-us-gov-mod.net'];
+ break;
+ case 'ic-stg':
+ frameAncestors = ['*.oasis-stg.com'];
+ break;
+ case 'ic-prod':
+ frameAncestors = ['*.atlassian-isolated.net'];
+ break;
+ case 'prod':
+ default:
+ frameAncestors = [
+ '*.atlassian.net',
+ 'bitbucket.org',
+ '*.jira.com',
+ '*.atlassian.com',
+ '*.frontend.public.atl-paas.net'
+ ];
+ break;
}
- else if (microsEnv === 'fedramp-stg') {
- frameAncestors = ['*.atlassian-stg-fedm.net'];
- }
- else if (microsEnv === 'fedramp-prod') {
- frameAncestors = ['*.atlassian-us-gov-mod.net'];
- }
- else {
- frameAncestors = [
- '*.atlassian.net',
- 'bitbucket.org',
- '*.jira.com',
- '*.atlassian.com',
- '*.frontend.public.atl-paas.net'
- ];
- }
if (hostname) {
frameAncestors.push(hostname);
}
return frameAncestors;
}
- getInjectableCSP = ({ existingCSPDetails, microsEnv, tunnelCSPReporterUri, hostname, isFedRAMP }) => {
- const reportUri = tunnelCSPReporterUri || this.getCSPReportUri(microsEnv);
+ getInjectableCSP = ({ existingCSPDetails, microsEnv, tunnelCSPReporterUri, hostname, isFedRAMP, icOptions }) => {
+ const reportUri = tunnelCSPReporterUri || this.getCSPReportUri(microsEnv, icOptions);
const defaultSrc = `'self'`;
const frameAncestors = ["'self'", ...this.getFrameAncestors(microsEnv, hostname)].join(' ');
const frameSrc = ["'self'", hostname, ...this.getExistingCSPDetails(types_1.ExternalCspType.FRAME_SRC, existingCSPDetails)]
.filter((a) => a)
@@ -161,9 +178,9 @@
'data:',
'blob:',
hostname,
...exports.EXTERNAL_ALLOW_LISTED_IMAGES_HOSTS,
- ...exports.ATLASSIAN_IMAGES_HOSTS[microsEnv],
+ ...(0, exports.getAtlassianImageHost)(microsEnv, icOptions),
...this.getExistingCSPDetails(types_1.ExternalCspType.IMG_SRC, existingCSPDetails)
]
.filter((a) => a)
.join(' ');
@@ -171,26 +188,26 @@
"'self'",
'data:',
'blob:',
hostname,
- ATLASSIAN_MEDIA_GATEWAY_HOST[microsEnv],
+ getAtlassianHost('ATLASSIAN_MEDIA_GATEWAY_HOST', microsEnv, icOptions),
...this.getExistingCSPDetails(types_1.ExternalCspType.MEDIA_SRC, existingCSPDetails)
]
.filter((a) => a)
.join(' ');
const connectSrc = [
"'self'",
- ...this.getConnectSrc(microsEnv, !!tunnelCSPReporterUri),
+ ...this.getConnectSrc(microsEnv, !!tunnelCSPReporterUri, icOptions),
...this.getExistingCSPDetails(types_1.ExternalCspType.CONNECT_SRC, existingCSPDetails)
].join(' ');
const scriptSrc = [
"'self'",
- this.getForgeGlobalCSP(microsEnv, isFedRAMP),
+ this.getForgeGlobalCSP(microsEnv, isFedRAMP, icOptions),
...this.getExistingCSPDetails(types_1.ExternalCspType.SCRIPT_SRC, existingCSPDetails)
].join(' ');
const styleSrc = [
"'self'",
- this.getForgeGlobalCSP(microsEnv, isFedRAMP),
+ this.getForgeGlobalCSP(microsEnv, isFedRAMP, icOptions),
...this.getExistingCSPDetails(types_1.ExternalCspType.STYLE_SRC, existingCSPDetails)
].join(' ');
return [
`default-src ${defaultSrc}`,
Modified: package/package.json
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "@forge/csp",
- "version": "4.1.0-experimental-255e232",
+ "version": "4.2.0-next.0",
"description": "Contains the CSP configuration for Custom UI resources in Forge",
"main": "out/index.js",
"author": "Atlassian",
"license": "SEE LICENSE IN LICENSE.txt",
@@ -10,10 +10,10 @@
"compile": "tsc -b -v",
"clean": "rm -rf ./out && rm -f tsconfig.tsbuildinfo"
},
"devDependencies": {
- "@forge/cli-shared": "8.2.0-next.5-experimental-255e232",
- "@forge/manifest": "10.1.1-next.0-experimental-255e232",
+ "@forge/cli-shared": "8.2.0-next.10",
+ "@forge/manifest": "10.1.1-next.2",
"@types/jest": "^29.5.14",
"@types/node": "20.19.1"
},
"dependencies": {
Modified: package/out/csp/csp-injection-service.d.ts.map
Index: package/out/csp/csp-injection-service.d.ts.map
===================================================================
--- package/out/csp/csp-injection-service.d.ts.map
+++ package/out/csp/csp-injection-service.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"csp-injection-service.d.ts","sourceRoot":"","sources":["../../src/csp/csp-injection-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AA2DvD,eAAO,MAAM,sBAAsB,EAAE;KAAG,SAAS,IAAI,iBAAiB,GAAG,MAAM,EAAE;CA8ChF,CAAC;AAMF,eAAO,MAAM,kCAAkC,UAAiE,CAAC;AAEjH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,iBAAiB;IAoClB,gBAAgB;4BAOD,UAAU;mBACnB,iBAAiB;;;;UAI1B,MAAM,EAAE,CA8DV;CACH"}
\ No newline at end of file
+{"version":3,"file":"csp-injection-service.d.ts","sourceRoot":"","sources":["../../src/csp/csp-injection-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAEvD,aAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AA6FF,eAAO,MAAM,qBAAqB,cAAe,iBAAiB,cAAc,SAAS,KAAG,MAAM,EAUjG,CAAC;AAMF,eAAO,MAAM,kCAAkC,UAAiE,CAAC;AAEjH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,iBAAiB;IAiDlB,gBAAgB;4BAQD,UAAU;mBACnB,iBAAiB;;;;;UAK1B,MAAM,EAAE,CA8DV;CACH"}
\ No newline at end of file
Modified: package/CHANGELOG.md
Index: package/CHANGELOG.md
===================================================================
--- package/CHANGELOG.md
+++ package/CHANGELOG.md
@@ -1,6 +1,12 @@
# @forge/csp
+## 4.2.0-next.0
+
+### Minor Changes
+
+- cfde21e: Add CSP Urls for IC environment
+
## 4.1.0
### Minor Changes
Modified: package/out/csp/csp-injection-service.d.ts
Index: package/out/csp/csp-injection-service.d.ts
===================================================================
--- package/out/csp/csp-injection-service.d.ts
+++ package/out/csp/csp-injection-service.d.ts
@@ -1,21 +1,27 @@
import type { LambdaEnvironment } from '@forge/cli-shared';
import { CSPDetails } from '../types';
-export declare const ATLASSIAN_IMAGES_HOSTS: {
- [microsEnv in LambdaEnvironment]: string[];
+declare type IcOptions = {
+ icLabel: string;
+ serviceName: string;
};
+export declare const getAtlassianImageHost: (microsEnv: LambdaEnvironment, icOptions?: IcOptions) => string[];
export declare const EXTERNAL_ALLOW_LISTED_IMAGES_HOSTS: string[];
export declare class CSPInjectionService {
+ private isIsolatedContext;
private getCSPReportUri;
private getForgeGlobalCSP;
+ private getMetalClientCSP;
private getExistingCSPDetails;
private getConnectSrc;
private getFrameAncestors;
- getInjectableCSP: ({ existingCSPDetails, microsEnv, tunnelCSPReporterUri, hostname, isFedRAMP }: {
+ getInjectableCSP: ({ existingCSPDetails, microsEnv, tunnelCSPReporterUri, hostname, isFedRAMP, icOptions }: {
existingCSPDetails: CSPDetails;
microsEnv: LambdaEnvironment;
tunnelCSPReporterUri?: string | undefined;
hostname?: string | undefined;
isFedRAMP?: boolean | undefined;
+ icOptions?: IcOptions | undefined;
}) => string[];
}
+export {};
//# sourceMappingURL=csp-injection-service.d.ts.map
\ No newline at end of file