Für die Einrichtung der Schnittstelle zu proALPHA ERP ist ein YARP-Server erforderlich.
Der erforderliche YARP-Server kann über Proalpha angefordert werden.

Einrichtung des YARP Servers

Bitte ersetzen Sie die Datei “appsettings.json” (Dateiinhalt siehe unten) auf dem installierten YARP-Server und passen Sie diese anschließend wie folgt an:

  1. “RootCertificatePath”: “./certs/root.crt
    Bitte geben Sie hier den Dateinamen des Root-Zertifikats Ihrer Zertifizierungsstelle ein oder kopieren Sie die Datei in das Unterverzeichnis „certs“ auf Ihrem YARP-Server.
  2. “Path”: “./certs/certificate.crt
    Bitte geben Sie hier den Pfad zu Ihrem Domain-Zertifikat ein oder kopieren Sie die Datei in das Unterverzeichnis „certs“ auf Ihrem YARP-Server.
  3. “KeyPath”: “./certs/certificate.key
    Bitte geben Sie hier den Pfad zu Ihrem Registrierungsschlüssel ein oder kopieren Sie die Datei in das Unterverzeichnis „certs“ auf Ihrem YARP-Server.
  4. [Platzhalter]
    Ersetzen Sie alle Platzhalter in [eckigen Klammern] durch die auf Ihre Umgebung passenden Pfade und Variablen. Entfernen Sie dabei die eckigen Klammern.

Datei: appsettings.json (Stand 03/25 – Beispielkonfiguration für Version 3.0.27)

{
    "RootCertificatePath": "./certs/root.crt", // is optional, can be left empty 
    "Cors": {
        "default": [
            "https://localhost:4200" // at leat the default policy needs to be defined
        ]
    },
    "Kestrel": {
        "Endpoints": {
            "Https": {
                "Certificate": {
                    "KeyPath": "./certs/certificate.key",
                    "Path": "./certs/certificate.crt"
                },
                "Url": "https://*:[YARP_Port]"
            }
        }
    },
    "Logging": {
        "LogLevel": {
            "Default": "Debug",
            "Microsoft": "Information",
            "System": "Information"
        }
    },
    "ReverseProxy": {
        "Clusters": {
            "[CXM_Instance]": {
                "Destinations": {
                    "Default": {
                        "Address": "https://[server.domain.tl][:PortWithoutYARP]/[CXMInstanceWithoutYARP]",
                        "Swaggers": [
                            {
                                "MetadataPath": "/api/update",
                                "Paths": [
                                    "/swagger/v1.0/swagger.json"
                                ]
                            }
                        ]
                    }
                },
                "HttpRequest": {
                    "ActivityTimeout": "00:10:00"
                }
            }
        },
        "Routes": {
            "[CXM_Intance_Prefix]CompanyCustomer": {
                "ClusterId": "[CXM_Instance]",
                "Match": {
                    "Path": "[CXM_Intance_Prefix]/api/v1/customer/{**catch-all}"
                },
                "Transforms": [
                    {
                        "PathRemovePrefix": "/[CXM_Intance_Prefix]"
                    },
                    {
                        "PathPrefix": ""
                    }
                ]
            },
            "[CXM_Intance_Prefix]CompanyOpportunity": {
                "ClusterId": "[CXM_Instance]",
                "Match": {
                    "Path": "[CXM_Intance_Prefix]/api/v1/opportunity/{**catch-all}"
                },
                "Transforms": [
                    {
                        "PathRemovePrefix": "/[CXM_Intance_Prefix]"
                    },
                    {
                        "PathPrefix": ""
                    }
                ]
            },
            "[CXM_Intance_Prefix]CompanyQuote": {
                "ClusterId": "[CXM_Instance]",
                "Match": {
                    "Path": "[CXM_Intance_Prefix]/api/v1/quote/{**catch-all}"
                },
                "Transforms": [
                    {
                        "PathRemovePrefix": "/[CXM_Intance_Prefix]"
                    },
                    {
                        "PathPrefix": ""
                    }
                ]
            },
            "[CXM_Intance_Prefix]CompanyTransmissionInformation": {
                "ClusterId": "[CXM_Instance]",
                "Match": {
                    "Path": "[CXM_Intance_Prefix]/api/v1/inform-transmission/{**catch-all}"
                },
                "Transforms": [
                    {
                        "PathRemovePrefix": "/[CXM_Intance_Prefix]"
                    },
                    {
                        "PathPrefix": ""
                    }
                ]
            },
            "[CXM_Intance_Prefix]ContactContactPerson": {
                "ClusterId": "[CXM_Instance]",
                "Match": {
                    "Path": "[CXM_Intance_Prefix]/api/v1/contactperson/{**catch-all}"
                },
                "Transforms": [
                    {
                        "PathRemovePrefix": "/[CXM_Intance_Prefix]"
                    },
                    {
                        "PathPrefix": ""
                    }
                ]
            },
            "Bad": {
                "ClusterId": "Bad",
                "Match": {
                    "Path": "{**catch-all}"
                }
            }
        }
    }
}