@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