@@ -8,9 +8,15 @@ import proxy from './server/app.js';
88import envPlugin from './server/config/env.js' ;
99import { copyFileSync } from 'node:fs' ;
1010import * as Sentry from '@sentry/node' ;
11+ import { injectDynatraceTag } from './server/config/dynatrace.js' ;
1112
1213dotenv . config ( ) ;
1314
15+ const { DYNATRACE_SCRIPT_URL } = process . env ;
16+ if ( DYNATRACE_SCRIPT_URL ) {
17+ injectDynatraceTag ( DYNATRACE_SCRIPT_URL ) ;
18+ }
19+
1420if ( ! process . env . BFF_SENTRY_DSN || process . env . BFF_SENTRY_DSN . trim ( ) === '' ) {
1521 console . error ( 'Error: Sentry DSN is not provided. Sentry will not be initialized.' ) ;
1622} else {
@@ -70,11 +76,21 @@ if (fastify.config.VITE_SENTRY_DSN && fastify.config.VITE_SENTRY_DSN.length > 0)
7076 }
7177}
7278
79+ let dynatraceOrigin = '' ;
80+ if ( DYNATRACE_SCRIPT_URL ) {
81+ try {
82+ dynatraceOrigin = new URL ( DYNATRACE_SCRIPT_URL ) . origin ;
83+ } catch {
84+ console . error ( 'DYNATRACE_SCRIPT_URL is not a valid URL' ) ;
85+ }
86+ }
87+
88+
7389fastify . register ( helmet , {
7490 contentSecurityPolicy : {
7591 directives : {
76- 'connect-src' : [ "'self'" , 'sdk.openui5.org' , sentryHost ] ,
77- 'script-src' : isLocalDev ? [ "'self'" , "'unsafe-inline'" ] : [ "'self'" ] ,
92+ 'connect-src' : [ "'self'" , 'sdk.openui5.org' , sentryHost , dynatraceOrigin ] ,
93+ 'script-src' : isLocalDev ? [ "'self'" , "'unsafe-inline'" , dynatraceOrigin ] : [ "'self'" , dynatraceOrigin ] ,
7894 // @ts -ignore
7995 'frame-ancestors' : [ fastify . config . FRAME_ANCESTORS ] ,
8096 } ,
0 commit comments