@@ -12,12 +12,14 @@ async function handleAIChatRequest(req, res) {
1212 req . body . toString ( ) ,
1313 ) ;
1414 const clusterUrl = req . headers [ 'x-cluster-url' ] ;
15- const clusterToken = req . headers [ 'x-k8s-authorization' ] . replace (
15+ const certificateAuthorityData =
16+ req . headers [ 'x-cluster-certificate-authority-data' ] ;
17+ const clusterToken = req . headers [ 'x-k8s-authorization' ] ?. replace (
1618 / ^ B e a r e r \s + / i,
1719 '' ,
1820 ) ;
19- const certificateAuthorityData =
20- req . headers [ 'x-cluster-certificate-authority -data' ] ;
21+ const clientCertificateData = req . headers [ 'x-client-certificate-data' ] ;
22+ const clientKeyData = req . headers [ 'x-client-key -data' ] ;
2123
2224 try {
2325 const url = 'https://companion.cp.dev.kyma.cloud.sap/api/conversations/' ;
@@ -30,16 +32,26 @@ async function handleAIChatRequest(req, res) {
3032
3133 const AUTH_TOKEN = await tokenManager . getToken ( ) ;
3234
35+ const headers = {
36+ Accept : 'application/json' ,
37+ 'Content-Type' : 'application/json' ,
38+ Authorization : `Bearer ${ AUTH_TOKEN } ` ,
39+ 'X-Cluster-Certificate-Authority-Data' : certificateAuthorityData ,
40+ 'X-Cluster-Url' : clusterUrl ,
41+ } ;
42+
43+ if ( clusterToken ) {
44+ headers [ 'X-K8s-Authorization' ] = clusterToken ;
45+ } else if ( clientCertificateData && clientKeyData ) {
46+ headers [ 'X-Client-Certificate-Data' ] = clientCertificateData ;
47+ headers [ 'X-Client-Key-Data' ] = clientKeyData ;
48+ } else {
49+ throw new Error ( 'Missing authentication credentials' ) ;
50+ }
51+
3352 const response = await fetch ( url , {
3453 method : 'POST' ,
35- headers : {
36- Accept : 'application/json' ,
37- 'Content-Type' : 'application/json' ,
38- Authorization : `Bearer ${ AUTH_TOKEN } ` ,
39- 'X-Cluster-Certificate-Authority-Data' : certificateAuthorityData ,
40- 'X-Cluster-Url' : clusterUrl ,
41- 'X-K8s-Authorization' : clusterToken ,
42- } ,
54+ headers,
4355 body : JSON . stringify ( payload ) ,
4456 } ) ;
4557
0 commit comments