@forge/csp
6.3.3-next.06.4.0-next.1
~
Modified (4 files)
Index: package/out/csp/csp-injection-service.js
===================================================================
--- package/out/csp/csp-injection-service.js
+++ package/out/csp/csp-injection-service.js
@@ -2,8 +2,9 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.CSPInjectionService = exports.EXTERNAL_ALLOW_LISTED_IMAGES_HOSTS = exports.getAtlassianImageHost = void 0;
const types_1 = require("../types");
const isICEnvKey = (env) => env === 'ic-prod' || env === 'ic-stg';
+const isGCPEnvKey = (env) => env.endsWith('-gcentral');
const makeICDomain = (env, icLabel) => `${icLabel}.${env === 'ic-prod' ? 'atlassian-isolated.net' : 'oasis-stg.com'}`;
const getICDomain = (env, icOptions) => {
if ('getICDomain' in icOptions) {
return icOptions.getICDomain();
@@ -22,89 +23,100 @@
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',
- ...makeICHosts((env, icOptions) => `https://api.${getICDomain(env, icOptions)}`)
+ ...makeICHosts((env, icOptions) => `https://api.${getICDomain(env, icOptions)}`),
+ 'stg-gcentral': 'https://api.stg.atlassian.com'
},
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',
- ...makeICHosts((env, icOptions) => `https://media-api.${getICDomain(env, icOptions)}`)
+ ...makeICHosts((env, icOptions) => `https://media-api.${getICDomain(env, icOptions)}`),
+ 'stg-gcentral': ''
},
ATLASSIAN_ASSETS_MEDIA_HOST: {
dev: 'https://assets-media.stg.atlassian.com',
stg: 'https://assets-media.stg.atlassian.com',
prod: 'https://assets-media.atlassian.com',
'fedramp-stg': 'https://assets-media.stg.atlassian-us-gov-mod.com',
'fedramp-prod': 'https://assets-media.atlassian-us-gov-mod.com',
- ...makeICHosts((env, icOptions) => `https://assets-media.${getICDomain(env, icOptions)}`)
+ ...makeICHosts((env, icOptions) => `https://assets-media.${getICDomain(env, icOptions)}`),
+ 'stg-gcentral': ''
},
ATLASSIAN_ANALYTICS_GATEWAY_HOST: {
dev: 'https://as.dev.atl-paas.net',
stg: 'https://as.staging.atl-paas.net',
prod: 'https://as.atlassian.com',
'fedramp-stg': 'https://as.stg.atlassian-us-gov-mod.com',
'fedramp-prod': 'https://as.atlassian-us-gov-mod.com',
- ...makeICHosts((env, icOptions) => `https://as.${getICDomain(env, icOptions)}`)
+ ...makeICHosts((env, icOptions) => `https://as.${getICDomain(env, icOptions)}`),
+ 'stg-gcentral': 'https://as.staging.atl-paas.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',
- ...makeICHosts((env, icOptions) => `avatar-management.services.${getICDomain(env, icOptions)}`)
+ ...makeICHosts((env, icOptions) => `avatar-management.services.${getICDomain(env, icOptions)}`),
+ 'stg-gcentral': 'avatar-management--avatars.us-west-2.staging.public.atl-paas.net'
},
ATLASSIAN_TEAM_HEADER_HOST: {
dev: 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/gradients/',
stg: 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/gradients/',
prod: 'https://teams-directory-frontend.prod-east.frontend.public.atl-paas.net/assets/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/',
- ...makeICHosts((env, icOptions) => `https://teams-directory-frontend.services.${getICDomain(env, icOptions)}/bfa/`)
+ ...makeICHosts((env, icOptions) => `https://teams-directory-frontend.services.${getICDomain(env, icOptions)}/bfa/`),
+ 'stg-gcentral': 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/'
},
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/',
- ...makeICHosts((env, icOptions) => `https://teams-directory-frontend.services.${getICDomain(env, icOptions)}/bfa/`)
+ ...makeICHosts((env, icOptions) => `https://teams-directory-frontend.services.${getICDomain(env, icOptions)}/bfa/`),
+ 'stg-gcentral': 'https://teams-directory-frontend.stg-east.frontend.public.atl-paas.net/assets/'
},
ATLASSIAN_EMOJIS_HOST: {
dev: 'https://pf-emoji-service.ddev.frontend.public.atl-paas.net',
stg: 'https://pf-emoji-service.stg-east.frontend.public.atl-paas.net',
prod: 'https://pf-emoji-service.prod-east.frontend.public.atl-paas.net',
'fedramp-stg': 'https://pf-emoji-service.frontend.staging.cdn.atlassian-us-gov-mod.com',
'fedramp-prod': 'https://pf-emoji-service.frontend.cdn.atlassian-us-gov-mod.com',
- ...makeICHosts((env, icOptions) => `https://pf-emoji-service.${getICDomain(env, icOptions)}/bfa/emoji-service/`)
+ ...makeICHosts((env, icOptions) => `https://pf-emoji-service.${getICDomain(env, icOptions)}/bfa/emoji-service/`),
+ 'stg-gcentral': ''
},
ATLASSIAN_REACTIONS_HOST: {
dev: 'https://pf-reactions-service.ddev.frontend.public.atl-paas.net',
stg: 'https://pf-reactions-service.stg-east.frontend.public.atl-paas.net',
prod: 'https://pf-reactions-service.prod-east.frontend.public.atl-paas.net',
'fedramp-stg': 'https://pf-reactions-service.frontend.staging.cdn.atlassian-us-gov-mod.com',
'fedramp-prod': 'https://pf-reactions-service.frontend.cdn.atlassian-us-gov-mod.com',
- ...makeICHosts((env, icOptions) => `https://pf-reactions-service.services.${getICDomain(env, icOptions)}/bfa/reactions-service/`)
+ ...makeICHosts((env, icOptions) => `https://pf-reactions-service.services.${getICDomain(env, icOptions)}/bfa/reactions-service/`),
+ 'stg-gcentral': ''
},
ATLASSIAN_FOP_GE_HOST: {
dev: 'https://forge-outbound-proxy.dev.services.atlassian.com',
stg: 'https://forge-outbound-proxy.stg.services.atlassian.com',
prod: 'https://forge-outbound-proxy.services.atlassian.com',
'fedramp-stg': '',
'fedramp-prod': '',
- ...makeICHosts((env, icOptions) => '')
+ ...makeICHosts((env, icOptions) => ''),
+ 'stg-gcentral': ''
},
ATLASSIAN_FOS_HOST: {
dev: 'https://tdp-os.dev.services.atlassian.com',
stg: 'https://tdp-os.stg.services.atlassian.com',
prod: 'https://tdp-os.services.atlassian.com',
'fedramp-stg': 'https://tdp-os.stg.services.atlassian-us-gov-mod.com',
'fedramp-prod': 'https://tdp-os.services.atlassian-us-gov-mod.com',
- ...makeICHosts((env, icOptions) => `https://tdp-os.services.${getICDomain(env, icOptions)}`)
+ ...makeICHosts((env, icOptions) => `https://tdp-os.services.${getICDomain(env, icOptions)}`),
+ 'stg-gcentral': 'https://tdp-os.stg.services.atlassian.com'
}
};
const getAtlassianHost = (hostType, microsEnv, icOptions) => {
const hostMap = ATLASSIAN_HOST[hostType];
@@ -118,10 +130,14 @@
};
const FOS_CDN_STANDARD_HOST = {
dev: 'https://object-store.stg.atlassian.com',
stg: 'https://object-store.stg.atlassian.com',
- prod: 'https://object-store.atlassian.com'
+ prod: 'https://object-store.atlassian.com',
+ 'stg-gcentral': 'https://object-store.stg.atlassian.com'
};
+const GCP_FORGE_CDN_HOST = {
+ 'stg-gcentral': 'https://forge.cdn.stg.atlassian-dev.net'
+};
const FOS_CDN_IC_HOST = makeICHosts((env, icOptions) => `https://object-store.${getICDomain(env, icOptions)}`);
const FOS_CDN_PATH = '/os/ecosystem/installation/';
const getFOSCDNHost = (microsEnv, icOptions) => {
if (isICEnvKey(microsEnv)) {
@@ -130,17 +146,13 @@
return FOS_CDN_STANDARD_HOST[microsEnv];
};
const getFOSHostDownload = (microsEnv, icOptions) => {
const fosHost = getAtlassianHost('ATLASSIAN_FOS_HOST', microsEnv, icOptions);
- return isICEnvKey(microsEnv)
- ? [`${fosHost}/fos/app/download/`, `${fosHost}/fos/cdn/download/`]
- : [`${fosHost}/fos-eap/download/`, `${fosHost}/fos/app/download/`, `${fosHost}/fos/cdn/download/`];
+ return [`${fosHost}/fos/app/download/`, `${fosHost}/fos/cdn/download/`];
};
const getFOSHostUpload = (microsEnv, icOptions) => {
const fosHost = getAtlassianHost('ATLASSIAN_FOS_HOST', microsEnv, icOptions);
- return isICEnvKey(microsEnv)
- ? [`${fosHost}/fos/app/upload/`, `${fosHost}/fos/cdn/upload/`]
- : [`${fosHost}/fos-eap/upload/`, `${fosHost}/fos/app/upload/`, `${fosHost}/fos/cdn/upload/`];
+ return [`${fosHost}/fos/app/upload/`, `${fosHost}/fos/cdn/upload/`];
};
const getFOSCDNUrls = (microsEnv, icOptions) => {
const fosCDNHost = getFOSCDNHost(microsEnv, icOptions);
return fosCDNHost ? [`${fosCDNHost}${FOS_CDN_PATH}`] : [];
@@ -260,16 +272,19 @@
};
}
getCSPReportUri(microsEnv, icOptions) {
const serviceName = isICEnvKey(microsEnv) && icOptions ? icOptions.serviceName : 'forge-cdn';
- if (microsEnv === 'dev' || microsEnv === 'stg')
+ if (microsEnv === 'dev' || microsEnv === 'stg' || microsEnv === 'stg-gcentral')
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, icOptions) {
if (isICEnvKey(microsEnv) && icOptions) {
return `https://forge.forge-cdn.${getICDomain(microsEnv, icOptions)}`;
}
+ if (isGCPEnvKey(microsEnv)) {
+ return GCP_FORGE_CDN_HOST[microsEnv];
+ }
return isFedRAMP
? `https://forge.cdn.${microsEnv.split('-')[1]}.atlassian-dev-us-gov-mod.net`
: `https://forge.cdn.${microsEnv}.atlassian-dev.net`;
}
@@ -308,8 +323,9 @@
const localhostWithPortRegex = /^localhost:\d+$/;
switch (microsEnv) {
case 'dev':
case 'stg':
+ case 'stg-gcentral':
frameAncestors = [
'*.jira-dev.com',
'http://localhost:*',
'http://devbucket.localhost', Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "@forge/csp",
- "version": "6.3.3-next.0",
+ "version": "6.4.0-next.1",
"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": "9.8.1-next.1",
- "@forge/manifest": "13.7.1-next.1",
+ "@forge/cli-shared": "9.9.0-next.5",
+ "@forge/manifest": "13.8.0-next.4",
"@types/jest": "^30.0.0",
"@types/node": "20.19.1",
"cheerio": "^1.2.0",
"typescript": "5.9.2" 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;AAEvD,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,KAAK,oBAAoB,GAAG;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,MAAM,CAAC;CAC3B,CAAC;AAEF,KAAK,SAAS,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AA0M1D,eAAO,MAAM,qBAAqB,GAAI,WAAW,iBAAiB,EAAE,YAAY,SAAS,KAAG,MAAM,EAcjG,CAAC;AAMF,eAAO,MAAM,kCAAkC,UAAiE,CAAC;AAEjH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,iBAAiB;IA4ElB,gBAAgB,GAAI,2JAUxB;QACD,kBAAkB,EAAE,UAAU,CAAC;QAC/B,SAAS,EAAE,iBAAiB,CAAC;QAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,KAAG,MAAM,EAAE,CAsGV;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,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,KAAK,oBAAoB,GAAG;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,MAAM,CAAC;CAC3B,CAAC;AAEF,KAAK,SAAS,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAuO1D,eAAO,MAAM,qBAAqB,GAAI,WAAW,iBAAiB,EAAE,YAAY,SAAS,KAAG,MAAM,EAcjG,CAAC;AAMF,eAAO,MAAM,kCAAkC,UAAiE,CAAC;AAEjH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,iBAAiB;IA6ElB,gBAAgB,GAAI,2JAUxB;QACD,kBAAkB,EAAE,UAAU,CAAC;QAC/B,SAAS,EAAE,iBAAiB,CAAC;QAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,KAAG,MAAM,EAAE,CAsGV;CACH"}
\ No newline at end of file Index: package/CHANGELOG.md
===================================================================
--- package/CHANGELOG.md
+++ package/CHANGELOG.md
@@ -1,6 +1,12 @@
# @forge/csp
+## 6.4.0-next.1
+
+### Minor Changes
+
+- 4dd1a11: Add stg-gcentral as env and setup forge csp for gcp service urls
+
## 6.3.3-next.0
### Patch Changes