-
ABP Framework version: v9.0.2
-
UI Type: Angular
-
Database System: EF Core (PostgreSQL, etc..)
-
Tiered (for MVC) or Auth Server Separated (for Angular): yes
-
Exception message and full stack trace: Access to XMLHttpRequest at 'https://treva-publicgateway.tav.aero/api/abp/application-configuration?includeLocalizationResources=false' from origin 'https://treva-website.tav.aero' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
-
Steps to reproduce the issue: Everything is working on local, but when i build and deploy it'starts to give above exception.
19 Answer(s)
-
0
Angular docker file:
FROM node:22.13-alpine as builder
WORKDIR /srcCOPY . .
WORKDIR /srcRUN yarn
RUN yarn run build:prodFROM nginx:alpine as publish
COPY --from=builder /src/dynamic-env.json /usr/share/nginx/html
COPY --from=builder /src/nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /src/dist/treva /usr/share/nginx/htmlenvironment.ts:
import { Environment } from '@abp/ng.core';const baseUrl = 'http://localhost:4200';
const oAuthConfig = {
issuer: 'https://treva-authserver.tav.aero/',
// redirectUri: baseUrl,
clientId: 'WebSite',
// responseType: 'code',
dummyClientSecret: '1q2w3e*',
scope: 'offline_access openid address email phone profile roles AuthServer AdministrationService GdprService LanguageService ChatService ContentManagementService DocumentManagementService FormManagementService EmailService SmsService NotificationService DemoService FastTrackService LoungeService AtuService DutyFreeService',
requireHttps: false,
impersonation: {
tenantImpersonation: true,
userImpersonation: true
}
};export const environment = {
production: false,
application: {
baseUrl,
name: 'Treva'
},
localization: {
defaultResourceName: 'Treva'
},
oAuthConfig,
apis: {
default: {
url: 'https://treva-publicgateway.tav.aero',
rootNamespace: 'TavTechnologies.Treva'
},
AbpAccountPublic: {
url: oAuthConfig.issuer,
rootNamespace: 'AbpAccountPublic'
}
}
} as Environment;environment.prod.ts:
import { Environment } from '@abp/ng.core';const baseUrl = 'https://treva-website.tav.aero';
const oAuthConfig = {
issuer: 'https://treva-authserver.tav.aero/',
// redirectUri: baseUrl,
clientId: 'WebSite',
// responseType: 'code',
dummyClientSecret: '1q2w3e*',
scope: 'offline_access openid address email phone profile roles AuthServer AdministrationService GdprService LanguageService ChatService ContentManagementService DocumentManagementService FormManagementService EmailService SmsService NotificationService DemoService FastTrackService LoungeService AtuService DutyFreeService',
requireHttps: true,
impersonation: {
tenantImpersonation: true,
userImpersonation: true
},
strictDiscoveryDocumentValidation: false,
skipIssuerCheck: true
};export const environment = {
production: true,
application: {
baseUrl,
name: 'Treva',
},
localization: {
defaultResourceName: 'Treva'
},
oAuthConfig,
apis: {
default: {
url: 'https://treva-publicgateway.tav.aero',
rootNamespace: 'TavTechnologies.Treva'
},
AbpAccountPublic: {
url: oAuthConfig.issuer,
rootNamespace: 'AbpAccountPublic'
}
},
remoteEnv: {
url: '/getEnvConfig',
mergeStrategy: 'overwrite'
}
} as Environment;website-configmap.yaml:
apiVersion: v1
kind: ConfigMap
metadata:
name: "treva-website-configmap"
data:
dynamic-env.json: |-
{
"production": "true",
"application": {
"baseUrl": "https://treva-website.tav.aero",
"name": "Treva",
"logoUrl": ""
},
"localization": {
"defaultResourceName": "Treva"
},
"oAuthConfig": {
"issuer": "https://treva-authserver.tav.aero",
"clientId": "WebSite",
"dummyClientSecret": "1q2w3e*",
"scope": "offline_access openid address email phone profile roles AuthServer AdministrationService AuditLoggingService ChatService ContentManagementService DemoService DocumentManagementService EmailService FileManagementService FormManagementService GdprService IdentityService LanguageService NotificationService SaasService SmsService FastTrackService LoungeService AtuService DutyFreeService SettingService ProfileService OrderService PaymentService",
"requireHttps": "true",
"impersonation": {
"tenantImpersonation": "true",
"userImpersonation": "true"
},
"strictDiscoveryDocumentValidation": "false",
"skipIssuerCheck": "true"
},
"apis": {
"default": {
"url": "https://treva-publicgateway.tav.aero",
"rootNamespace": "TavTechnologies.Treva"
},
"AbpAccountPublic": {
"url": "https://treva-authserver.tav.aero",
"rootNamespace": "AbpAccountPublic"
}
}
} -
0
PublicGatewayLog:
[12:00:35 INF] Request starting HTTP/1.1 OPTIONS http://treva-publicgateway.tav.aero/api/abp/application-configuration?includeLocalizationResources=false - null null
[12:00:35 INF] CORS policy execution failed.
[12:00:35 INF] Request origin https://treva-website.tav.aero does not have permission to access the resource.
[12:00:35 INF] Request finished HTTP/1.1 OPTIONS http://treva-publicgateway.tav.aero/api/abp/application-configuration?includeLocalizationResources=false - 204 null null 0.2578ms -
0
-
0
Dear friends can you help me, please?
-
0
Hello,
You can configure CORS and others via
appsettings.json
of end applications(e.g. AuthServer, HttpApiHost, etc) like below: -
0
Hello Berkan,
Thank you for your quick response. I already add the "https://treva-website.tav.aero" value to app settings, helm chart values and I can see the CORS values in pod yaml too.
I couldn't find a proper way too understand the real problem.
-
0
Hello,
When you look at the pod's container, can you see that the relevant environment variable is set? ,
Also, the problem seems to be caused by CORS, but can you disable it as mentioned in this document to clear your doubts here?
You can search for
context.Services.AddCors
in the solution and find where it is configured. -
0
TrevaPublicGatewayModule:
private static void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration) { var corsOrigins = configuration["App:CorsOrigins"]; context.Services.AddCors(options => { options.AddDefaultPolicy(builder => { if (!corsOrigins.IsNullOrEmpty()) { builder .WithOrigins( corsOrigins! .Split(",", StringSplitOptions.RemoveEmptyEntries) .Select(o => o.RemovePostFix("/")) .ToArray() ) .WithAbpExposedHeaders() .SetIsOriginAllowedToAllowWildcardSubdomains() .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials(); } }); }); }
-
0
website.yaml:
apiVersion: apps/v1 kind: Deployment metadata: name: "treva-website" spec: selector: matchLabels: app: "treva-website" template: metadata: labels: app: "treva-website" spec: containers: - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: "{{ .Values.image.pullPolicy }}" name: "treva-website" ports: - name: "http" containerPort: 80 volumeMounts: - name: config-volume mountPath: /usr/share/nginx/html/dynamic-env.json subPath: dynamic-env.json volumes: - name: config-volume configMap: name: treva-website-configmap **website-configmap.yaml**: apiVersion: v1 kind: ConfigMap metadata: name: "treva-website-configmap" data: dynamic-env.json: |- { "production": "true", "application": { "baseUrl": "https://treva-website.tav.aero", "name": "Treva", "logoUrl": "" }, "localization": { "defaultResourceName": "Treva" }, "oAuthConfig": { "issuer": "https://treva-authserver.tav.aero", "clientId": "WebSite", "dummyClientSecret": "1q2w3e*", "scope": "offline_access openid address email phone profile roles AuthServer AdministrationService AuditLoggingService ChatService ContentManagementService DemoService DocumentManagementService EmailService FileManagementService FormManagementService GdprService IdentityService LanguageService NotificationService SaasService SmsService FastTrackService LoungeService AtuService DutyFreeService SettingService ProfileService OrderService PaymentService", "requireHttps": "true", "impersonation": { "tenantImpersonation": "true", "userImpersonation": "true" }, "strictDiscoveryDocumentValidation": "false", "skipIssuerCheck": "true" }, "apis": { "default": { "url": "https://treva-publicgateway.tav.aero", "rootNamespace": "TavTechnologies.Treva" }, "AbpAccountPublic": { "url": "https://treva-authserver.tav.aero", "rootNamespace": "AbpAccountPublic" } } }
-
0
Also, there is another client app which created with Mvc UI also using same gateway and there is not any problem.
-
0
I don't see that you override any CorsOrigins variable in your ConfigMap, am I missing something? Where do you set
CorsOrigins
for values in production environment? -
0
Hi Berkan,
I didn't make any CORS configuration on Angular side if i had to where it had to be?
-
0
nginx.conf:
server {
listen 80;
listen [::]:80;
server_name _;#access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html =404; } location /getEnvConfig { default_type 'application/json'; add_header 'Access-Control-Allow-Origin' 'https://treva-website.tav.aero' always; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT' always; add_header 'Content-Type' 'application/json'; try_files $uri /dynamic-env.json; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }
}
Dockerfile.azure:
FROM node:22.13-alpine as builder
WORKDIR /srcCOPY . .
WORKDIR /srcRUN yarn
RUN yarn run build:prodFROM nginx:alpine as publish
COPY --from=builder /src/dynamic-env.json /usr/share/nginx/html
COPY --from=builder /src/nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /src/dist/treva /usr/share/nginx/htmlBut i used nginx for reverse proxying and i added the headers that i need to add.
-
0
Can you also send the Helm configurations of your public gateway application?
-
0
publicgateway.yaml:
apiVersion: apps/v1 kind: Deployment metadata: name: "treva-publicgateway" spec: selector: matchLabels: app: "treva-publicgateway" template: metadata: labels: app: "treva-publicgateway" spec: containers: - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: "{{ .Values.image.pullPolicy }}" name: "treva-publicgateway" ports: - name: "http" containerPort: 80 env: - name: "DOTNET_ENVIRONMENT" value: "{{ .Values.global.dotnetEnvironment }}" - name: "App__CorsOrigins" value: "{{ .Values.app.corsOrigins }}, {{ include "treva.hosts.authserver" . }}, {{ include "treva.hosts.webpublic" . }}, {{ include "treva.hosts.angular" . }}" - name: "ElasticSearch__IsLoggingEnabled" value: "{{ .Values.global.elasticSearch.isLoggingEnabled }}" - name: "ElasticSearch__Url" value: "http://treva-elasticsearch:{{ .Values.global.elasticSearch.port }}" - name: "Swagger__IsEnabled" value: "{{ .Values.swagger.isEnabled }}" - name: "AbpStudioClient__StudioUrl" value: "{{ .Values.global.abpStudioClient.studioUrl }}" - name: "AbpStudioClient__IsLinkEnabled" value: "{{ .Values.global.abpStudioClient.isLinkEnabled }}" - name: "ReverseProxy__Clusters__AuthServer__Destinations__AuthServer__Address" value: "http://treva-authserver" - name: "ReverseProxy__Clusters__Administration__Destinations__Administration__Address" value: "http://treva-administration" - name: "ReverseProxy__Clusters__Saas__Destinations__Saas__Address" value: "http://treva-saas" - name: "ReverseProxy__Clusters__AuditLogging__Destinations__AuditLogging__Address" value: "http://treva-auditlogging" - name: "ReverseProxy__Clusters__Gdpr__Destinations__Gdpr__Address" value: "http://treva-gdpr" - name: "ReverseProxy__Clusters__FileManagement__Destinations__FileManagement__Address" value: "http://treva-fileManagement" - name: "ReverseProxy__Clusters__Language__Destinations__Language__Address" value: "http://treva-language" - name: "ReverseProxy__Clusters__Chat__Destinations__Chat__Address" value: "http://treva-chat" - name: "ReverseProxy__Clusters__Identity__Destinations__Identity__Address" value: "http://treva-identity" - name: "ReverseProxy__Clusters__ContentManagement__Destinations__ContentManagement__Address" value: "http://treva-contentmanagement" - name: "ReverseProxy__Clusters__DocumentManagement__Destinations__DocumentManagement__Address" value: "http://treva-documentmanagement" - name: "ReverseProxy__Clusters__FormManagement__Destinations__FormManagement__Address" value: "http://treva-formmanagement" - name: "ReverseProxy__Clusters__Email__Destinations__Email__Address" value: "http://treva-email" - name: "ReverseProxy__Clusters__Sms__Destinations__Sms__Address" value: "http://treva-sms" - name: "ReverseProxy__Clusters__Notification__Destinations__Notification__Address" value: "http://treva-notification" - name: "ReverseProxy__Clusters__Demo__Destinations__Demo__Address" value: "http://treva-demo" - name: "ReverseProxy__Clusters__FastTrack__Destinations__FastTrack__Address" value: "http://treva-fasttrack" - name: "ReverseProxy__Clusters__Lounge__Destinations__Lounge__Address" value: "http://treva-lounge" - name: "ReverseProxy__Clusters__DutyFree__Destinations__DutyFree__Address" value: "http://treva-dutyfree" - name: "ReverseProxy__Clusters__Atu__Destinations__Atu__Address" value: "http://treva-atu" - name: "ReverseProxy__Clusters__Setting__Destinations__Setting__Address" value: "http://treva-setting" - name: "ReverseProxy__Clusters__PrimeClass__Destinations__PrimeClass__Address" value: "http://treva-primeclass" - name: "ReverseProxy__Clusters__Yolcu360__Destinations__Yolcu360__Address" value: "http://treva-yolcu360" - name: "ReverseProxy__Clusters__Order__Destinations__Order__Address" value: "http://treva-order" - name: "ReverseProxy__Clusters__Profile__Destinations__Profile__Address" value: "http://treva-profile" - name: "ReverseProxy__Clusters__Payment__Destinations__Payment__Address" value: "http://treva-payment"
publicgateway-service.yaml:
apiVersion: v1 kind: Service metadata: labels: name: "treva-publicgateway" name: "treva-publicgateway" spec: ports: - name: "80" port: 80 selector: app: "treva-publicgateway"
publicgateway-ingress.yaml:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: "treva-publicgateway" annotations: nginx.ingress.kubernetes.io/rewrite-target: "/" nginx.ingress.kubernetes.io/force-ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-buffer-size: "32k" nginx.ingress.kubernetes.io/proxy-buffers-number: "8" # cert-manager.io/cluster-issuer: "letsencrypt" spec: ingressClassName: "nginx" tls: - hosts: - "{{ (include "treva.hosts.publicgateway" .) | trimPrefix "https://" }}" secretName: "{{ .Values.global.tlsSecret }}" rules: - host: "{{ (include "treva.hosts.publicgateway" .) | trimPrefix "https://" }}" http: paths: - path: / pathType: "Prefix" backend: service: name: "treva-publicgateway" port: number: 80
_helpers.tpl:
{{- define "treva.hosts.authserver" -}} {{- print "https://" (.Values.global.hosts.authserver | replace "[RELEASE_NAME]" "treva") -}} {{- end -}} {{- define "treva.hosts.webgateway" -}} {{- print "https://" (.Values.global.hosts.webgateway | replace "[RELEASE_NAME]" "treva") -}} {{- end -}} {{- define "treva.hosts.kibana" -}} {{- print "https://" (.Values.global.hosts.kibana | replace "[RELEASE_NAME]" "treva") -}} {{- end -}} {{- define "treva.hosts.grafana" -}} {{- print "https://" (.Values.global.hosts.grafana | replace "[RELEASE_NAME]" "treva") -}} {{- end -}} {{- define "treva.hosts.web" -}} {{- print "https://" (.Values.global.hosts.web | replace "[RELEASE_NAME]" "treva") -}} {{- end -}} {{- define "treva.hosts.mobilegateway" -}} {{- print "https://" (.Values.global.hosts.mobilegateway | replace "[RELEASE_NAME]" "treva") -}} {{- end -}} {{- define "treva.hosts.webpublic" -}} {{- print "https://" (.Values.global.hosts.webpublic | replace "[RELEASE_NAME]" "treva") -}} {{- end -}} {{- define "treva.hosts.angular" -}} {{- print "https://" (.Values.global.hosts.angular | replace "[RELEASE_NAME]" "treva") -}} {{- end -}} {{- define "treva.hosts.publicgateway" -}} {{- print "https://" (.Values.global.hosts.publicgateway | replace "[RELEASE_NAME]" "treva") -}} {{- end -}}
values.yaml:
global: tlsSecret: "treva-tls" abpStudioClient: isLinkEnabled: "false" studioUrl: "http://abp-studio-proxy:38271" elasticSearch: isLoggingEnabled: "true" port: 9200 hosts: authserver: "[RELEASE_NAME]-authserver.tav.aero" webgateway: "[RELEASE_NAME]-webgateway.tav.aero" kibana: "[RELEASE_NAME]-kibana.tav.aero" grafana: "[RELEASE_NAME]-grafana.tav.aero" web: "[RELEASE_NAME]-web.tav.aero" mobilegateway: "[RELEASE_NAME]-mobilegateway.tav.aero" publicgateway: "[RELEASE_NAME]-publicgateway.tav.aero" webpublic: "[RELEASE_NAME]-webpublic.tav.aero" angular: "[RELEASE_NAME]-website.tav.aero" connectionStrings: payment: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_PaymentService;User ID=postgres;Password=myPassword;Timeout=240;" profile: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_ProfileService;User ID=postgres;Password=myPassword;Timeout=240;" order: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_OrderService;User ID=postgres;Password=myPassword;Timeout=240;" yolcu360: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_Yolcu360Service;User ID=postgres;Password=myPassword;Timeout=240;" primeclass: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_PrimeClassService;User ID=postgres;Password=myPassword;Timeout=240;" setting: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_SettingService;User ID=postgres;Password=myPassword;Timeout=240;" dutyfree: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_DutyFreeService;User ID=postgres;Password=myPassword;Timeout=240;" atu: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_AtuService;User ID=postgres;Password=myPassword;Timeout=240;" lounge: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_LoungeService;User ID=postgres;Password=myPassword;Timeout=240;" fasttrack: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_FastTrackService;User ID=postgres;Password=myPassword;Timeout=240;" demo: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_DemoService;User ID=postgres;Password=myPassword;Timeout=240;" notification: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_NotificationService;User ID=postgres;Password=myPassword;Timeout=240;" sms: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_SmsService;User ID=postgres;Password=myPassword;Timeout=240;" email: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_EmailService;User ID=postgres;Password=myPassword;Timeout=240;" formmanagement: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_FormManagementService;User ID=postgres;Password=myPassword;Timeout=240;" documentmanagement: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_DocumentManagementService;User ID=postgres;Password=myPassword;Timeout=240;" contentmanagement: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_ContentManagementService;User ID=postgres;Password=myPassword;Timeout=240;" administration: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_Administration;User ID=postgres;Password=myPassword;Timeout=240;" blobStoring: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_BlobStoring;User ID=postgres;Password=myPassword;Timeout=240;" identity: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_Identity;User ID=postgres;Password=myPassword;Timeout=240;" saas: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_SaasService;User ID=postgres;Password=myPassword;Timeout=240;" auditLogging: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_AuditLoggingService;User ID=postgres;Password=myPassword;Timeout=240;" gdpr: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_GdprService;User ID=postgres;Password=myPassword;Timeout=240;" filemanagement: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_FileManagementService;User ID=postgres;Password=myPassword;Timeout=240;" language: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_LanguageService;User ID=postgres;Password=myPassword;Timeout=240;" chat: "Host=[RELEASE_NAME]-postgresql;Port=5432;Database=Treva_ChatService;User ID=postgres;Password=myPassword;Timeout=240;" dotnetEnvironment: "Staging" enablePII: "true" stringEncryptionDefaultPassPhrase: "KiT4nzwu9KfP40zB" image: repository: "tavhqwebtrvdcr.tav.aero/treva/publicgateway" tag: "latest" pullPolicy: "IfNotPresent" swagger: isEnabled: "true" app: corsOrigins: "http://localhost:4200,http://localhost:44381,http://localhost:44380"
-
0
appsettings.json:
{ "App": { "CorsOrigins": "http://localhost:4200,http://localhost:44381,http://localhost:44380" }, "AuthServer": { "SwaggerClientId": "SwaggerTestUI" }, "ElasticSearch": { "IsLoggingEnabled": true, "Url": "http://localhost:9200" }, "Swagger": { "IsEnabled": true }, "ReverseProxy": { "Routes": { "AbpApi": { "ClusterId": "Administration", "Match": { "Path": "/api/abp/{**catch-all}" } }, "AdministrationSwagger": { "ClusterId": "Administration", "Match": { "Path": "/swagger-json/Administration/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Administration" } ] }, "Account": { "ClusterId": "AuthServer", "Match": { "Path": "/api/account/{**catch-all}" } }, "AuthServerSwagger": { "ClusterId": "AuthServer", "Match": { "Path": "/swagger-json/AuthServer/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/AuthServer" } ] }, "Gdpr": { "ClusterId": "Gdpr", "Match": { "Path": "/api/gdpr/{**catch-all}" } }, "GdprSwagger": { "ClusterId": "Gdpr", "Match": { "Path": "/swagger-json/Gdpr/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Gdpr" } ] }, "Language": { "ClusterId": "Language", "Match": { "Path": "/api/language-management/{**catch-all}" } }, "LanguageSwagger": { "ClusterId": "Language", "Match": { "Path": "/swagger-json/Language/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Language" } ] }, "Chat": { "ClusterId": "Chat", "Match": { "Path": "/api/chat/{**catch-all}" } }, "ChatSwagger": { "ClusterId": "Chat", "Match": { "Path": "/swagger-json/Chat/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Chat" } ] }, "CmsKit": { "ClusterId": "ContentManagement", "Match": { "Path": "/api/cms-kit/{**catch-all}" } }, "CmsKitPublic": { "ClusterId": "ContentManagement", "Match": { "Path": "/api/cms-kit-public/{**catch-all}" } }, "ContentManagement": { "ClusterId": "ContentManagement", "Match": { "Path": "/api/contentmanagement/{**catch-all}" } }, "ContentManagementSwagger": { "ClusterId": "ContentManagement", "Match": { "Path": "/swagger-json/ContentManagement/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/ContentManagement" } ] }, "DocumentManagement": { "ClusterId": "DocumentManagement", "Match": { "Path": "/api/documentmanagement/{**catch-all}" } }, "DocumentManagementSwagger": { "ClusterId": "DocumentManagement", "Match": { "Path": "/swagger-json/DocumentManagement/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/DocumentManagement" } ] }, "Forms": { "ClusterId": "FormManagement", "Match": { "Path": "/api/forms/{**catch-all}" } }, "Questions": { "ClusterId": "FormManagement", "Match": { "Path": "/api/questions/{**catch-all}" } }, "Responses": { "ClusterId": "FormManagement", "Match": { "Path": "/api/responses/{**catch-all}" } }, "FormManagement": { "ClusterId": "FormManagement", "Match": { "Path": "/api/formmanagement/{**catch-all}" } }, "FormManagementSwagger": { "ClusterId": "FormManagement", "Match": { "Path": "/swagger-json/FormManagement/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/FormManagement" } ] }, "Email": { "ClusterId": "Email", "Match": { "Path": "/api/email/{**catch-all}" } }, "EmailSwagger": { "ClusterId": "Email", "Match": { "Path": "/swagger-json/Email/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Email" } ] }, "Sms": { "ClusterId": "Sms", "Match": { "Path": "/api/sms/{**catch-all}" } }, "SmsSwagger": { "ClusterId": "Sms", "Match": { "Path": "/swagger-json/Sms/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Sms" } ] }, "Notification": { "ClusterId": "Notification", "Match": { "Path": "/api/notification/{**catch-all}" } }, "NotificationSwagger": { "ClusterId": "Notification", "Match": { "Path": "/swagger-json/Notification/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Notification" } ] }, "Demo": { "ClusterId": "Demo", "Match": { "Path": "/api/demo/{**catch-all}" } }, "DemoSwagger": { "ClusterId": "Demo", "Match": { "Path": "/swagger-json/Demo/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Demo" } ] }, "FastTrack": { "ClusterId": "FastTrack", "Match": { "Path": "/api/fasttrack/{**catch-all}" } }, "FastTrackSwagger": { "ClusterId": "FastTrack", "Match": { "Path": "/swagger-json/FastTrack/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/FastTrack" } ] }, "Lounge": { "ClusterId": "Lounge", "Match": { "Path": "/api/lounge/{**catch-all}" } }, "LoungeSwagger": { "ClusterId": "Lounge", "Match": { "Path": "/swagger-json/Lounge/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Lounge" } ] }, "Atu": { "ClusterId": "Atu", "Match": { "Path": "/api/atu/{**catch-all}" } }, "AtuSwagger": { "ClusterId": "Atu", "Match": { "Path": "/swagger-json/Atu/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Atu" } ] }, "DutyFree": { "ClusterId": "DutyFree", "Match": { "Path": "/api/dutyfree/{**catch-all}" } }, "DutyFreeSwagger": { "ClusterId": "DutyFree", "Match": { "Path": "/swagger-json/DutyFree/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/DutyFree" } ] }, "Setting": { "ClusterId": "Setting", "Match": { "Path": "/api/setting/{**catch-all}" } }, "SettingSwagger": { "ClusterId": "Setting", "Match": { "Path": "/swagger-json/Setting/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Setting" } ] }, "Yolcu360": { "ClusterId": "Yolcu360", "Match": { "Path": "/api/yolcu360/{**catch-all}" } }, "Yolcu360Swagger": { "ClusterId": "Yolcu360", "Match": { "Path": "/swagger-json/Yolcu360/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Yolcu360" } ] }, "Order": { "ClusterId": "Order", "Match": { "Path": "/api/order/{**catch-all}" } }, "OrderSwagger": { "ClusterId": "Order", "Match": { "Path": "/swagger-json/Order/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Order" } ] }, "Profile": { "ClusterId": "Profile", "Match": { "Path": "/api/profile/{**catch-all}" } }, "ProfileSwagger": { "ClusterId": "Profile", "Match": { "Path": "/swagger-json/Profile/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Profile" } ] }, "Payment": { "ClusterId": "Payment", "Match": { "Path": "/api/payment/{**catch-all}" } }, "PaymentSwagger": { "ClusterId": "Payment", "Match": { "Path": "/swagger-json/Payment/swagger/v1/swagger.json" }, "Transforms": [ { "PathRemovePrefix": "/swagger-json/Payment" } ] } }, "Clusters": { "AuthServer": { "Destinations": { "AuthServer": { "Address": "http://localhost:44381/" } } }, "Administration": { "Destinations": { "Administration": { "Address": "http://localhost:44351/" } } }, "Gdpr": { "Destinations": { "Gdpr": { "Address": "http://localhost:44330/" } } }, "Language": { "Destinations": { "Language": { "Address": "http://localhost:44374/" } } }, "Chat": { "Destinations": { "Chat": { "Address": "http://localhost:44374/" } } }, "ContentManagement": { "Destinations": { "ContentManagement": { "Address": "http://localhost:44388/" } } }, "DocumentManagement": { "Destinations": { "DocumentManagement": { "Address": "http://localhost:44386/" } } }, "FormManagement": { "Destinations": { "FormManagement": { "Address": "http://localhost:44319/" } } }, "Email": { "Destinations": { "Email": { "Address": "http://localhost:44310/" } } }, "Sms": { "Destinations": { "Sms": { "Address": "http://localhost:44392/" } } }, "Notification": { "Destinations": { "Notification": { "Address": "http://localhost:44331/" } } }, "Demo": { "Destinations": { "Demo": { "Address": "http://localhost:44328/" } } }, "FastTrack": { "Destinations": { "FastTrack": { "Address": "http://localhost:44316/" } } }, "Lounge": { "Destinations": { "Lounge": { "Address": "http://localhost:44360/" } } }, "DutyFree": { "Destinations": { "DutyFree": { "Address": "http://localhost:44334/" } } }, "Atu": { "Destinations": { "Atu": { "Address": "http://localhost:44348/" } } }, "Setting": { "Destinations": { "Setting": { "Address": "http://localhost:44367/" } } }, "Yolcu360": { "Destinations": { "Setting": { "Address": "http://localhost:44333/" } } }, "Order": { "Destinations": { "Order": { "Address": "http://localhost:44354/" } } }, "Profile": { "Destinations": { "Profile": { "Address": "http://localhost:44360/" } } }, "Payment": { "Destinations": { "Payment": { "Address": "http://localhost:44372/" } } } } } }
-
0
Hi,
Sorry about the late reply.
I don't think we can solve the problem like this. If your problem still persists, we can schedule a meeting at a convenient time and look at it together. Is that okay with you?
-
0
Hi Berkan,
If you hava a time, i'll be really happy. Because it's very important for us.
-
0
Hi,
I missed what you wrote because someone else replied. If you want, we can schedule it for Monday?