Activities of "consultant.ahmet.ulusoy"

When application starts it gives below warnings [14:37:29 DBG] Could not find bind method for Services.TrevaProfiles.ITrevaProfileAppService. [14:37:32 WRN] Signature not recognized for Services.TrevaProfiles.ITrevaProfileAppService.GetAsync; method will not be bound [14:37:32 DBG] No gRPC methods discovered for Services.TrevaProfiles.ITrevaProfileAppService. [14:37:32 INF] Initialized all ABP modules. [14:37:32 WRN] Overriding address(es) 'http://localhost:44360, http://localhost:44361'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. [14:37:32 WRN] HTTP/2 is not enabled for 127.0.0.1:44360. The endpoint is configured to use HTTP/1.1 and HTTP/2, but TLS is not enabled. HTTP/2 requires TLS application protocol negotiation. Connections to this endpoint will use HTTP/1.1. [14:37:32 WRN] HTTP/2 is not enabled for [::1]:44360. The endpoint is configured to use HTTP/1.1 and HTTP/2, but TLS is not enabled. HTTP/2 requires TLS application protocol negotiation. Connections to this endpoint will use HTTP/1.1.

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/"
          }
        }
      }
    }
  }
}

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"

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 /src

COPY . . WORKDIR /src

RUN yarn RUN yarn run build:prod

FROM 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/html

But i used nginx for reverse proxying and i added the headers that i need to add.

Hi Berkan,

I didn't make any CORS configuration on Angular side if i had to where it had to be?

Also, there is another client app which created with Mvc UI also using same gateway and there is not any problem.

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"
            }
        }
    }

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();
                }
            });
        });
    }

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.

Dear friends can you help me, please?

Showing 31 to 40 of 64 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.3.0-preview. Updated on March 09, 2026, 08:51
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.