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.
  1. “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.
  2. “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.
  3. [Platzhalter]
    Ersetzen Sie alle Platzhalter in [eckigen Klammern] durch die auf Ihre Umgebung passenden Pfade und Variablen. Entfernen Sie dabei die eckigen Klammern.

Beispiele für die Platzhalter, je nach Umgebung:
[server.domain.tl] => ihre-firma.de
[PortWithoutYARP] => 443
[YARP_Port] = 8023
[CXM_Instance_NoYARP] = cxm (das ist der letzte Teil der URL, wenn ohne YARP zugegriffen wird)
[CXM_Instance_YARP] = cxm (das ist der letzte Teil der URL, wenn mit YARP zugegriffen wird)

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

{
    "RootCertificatePath": "./certs/root.crt",
    "Cors": {
        "default": [
            "https://localhost:4200"
        ]
    },
    "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_NoYARP]": {
                "Destinations": {
                    "Default": {
                        "Address": "https://[server.domain.tl]:[PortWithoutYARP]/[CXM_Instance_NoYARP]",
                        "Swaggers": [
                            {
                                "MetadataPath": "/api/update",
                                "Paths": [
                                    "/swagger/v1.0/swagger.json"
                                ]
                            }
                        ]
                    }
                },
                "HttpRequest": {
                    "ActivityTimeout": "00:10:00"
                }
            }
        },
        "Routes": {
            "[CXM_Instance_Prefix]CompanyCustomer": {
                "ClusterId": "[CXM_Instance_NoYARP]",
                "Match": {
                    "Path": "[CXM_Instance_YARP]/api/v1/customer/{**catch-all}"
                },
                "Transforms": [
                    {
                        "PathRemovePrefix": "/[CXM_Instance_YARP]"
                    },
                    {
                        "PathPrefix": ""
                    }
                ]
            },
            "[CXM_Instance_Prefix]CompanyOpportunity": {
                "ClusterId": "[CXM_Instance_NoYARP]",
                "Match": {
                    "Path": "[CXM_Instance_YARP]/api/v1/opportunity/{**catch-all}"
                },
                "Transforms": [
                    {
                        "PathRemovePrefix": "/[CXM_Instance_YARP]"
                    },
                    {
                        "PathPrefix": ""
                    }
                ]
            },
            "[CXM_Instance_Prefix]CompanyQuote": {
                "ClusterId": "[CXM_Instance_NoYARP]",
                "Match": {
                    "Path": "[CXM_Instance_YARP]/api/v1/quote/{**catch-all}"
                },
                "Transforms": [
                    {
                        "PathRemovePrefix": "/[CXM_Instance_YARP]"
                    },
                    {
                        "PathPrefix": ""
                    }
                ]
            },
            "[CXM_Instance_Prefix]CompanyTransmissionInformation": {
                "ClusterId": "[CXM_Instance_NoYARP]",
                "Match": {
                    "Path": "[CXM_Instance_YARP]/api/v1/inform-transmission/{**catch-all}"
                },
                "Transforms": [
                    {
                        "PathRemovePrefix": "/[CXM_Instance_YARP]"
                    },
                    {
                        "PathPrefix": ""
                    }
                ]
            },
            "[CXM_Instance_Prefix]ContactContactPerson": {
                "ClusterId": "[CXM_Instance_NoYARP]",
                "Match": {
                    "Path": "[CXM_Instance_YARP]/api/v1/contactperson/{**catch-all}"
                },
                "Transforms": [
                    {
                        "PathRemovePrefix": "/[CXM_Instance_YARP]"
                    },
                    {
                        "PathPrefix": ""
                    }
                ]
            },
            "Bad": {
                "ClusterId": "Bad",
                "Match": {
                    "Path": "{**catch-all}"
                }
            }
        }
    }
}