Skip to main content
Skip table of contents

Admin: Containerization

Overview

RPI is made available via a series of container images, which can be deployed by a DevOps team using their container orchestration platform of choice. The containers are:

  • redpoint-integration-api

  • redpoint-interaction-api

  • redpoint-interaction-core-help

  • redpoint-interaction-execution-service

  • redpoint-interaction-node-manager

  • redpoint-interaction-queue-reader

  • redpoint-interaction-plugins-callbackservicewebapi

  • redpoint-realtime-agent

  • redpoint-realtime-api

  • redpoint-realtime-plus-agent

Application settings

RPI services can be configured using a series of application settings. Application setting values can be set in the following contexts:

  • Environment variables

  • AppSettings files

  • Cloud secret managers

Each service’s application settings are documented in the following Settings Editor web pages, which are accessible from the Configuration service’s Home Page:

Screenshot 2024-03-18 154205.png

The following example shows the application settings available for the Interaction API web service:

Screenshot 2024-03-18 154305.png

The Settings Editor pages facilitate the following:

  • Determination of the names of application settings: having determined the name of a setting, you can set an environment variable to override an application setting.
    For example, here are the application setting names used to configure the Execution service’s File Output settings:

Screenshot 2024-03-18 154418.png
  • Construction of an appsettings.json override file: the JSON Output section, at the bottom of each App Settings Editor, displays a JSON representation of the current state of the application settings managed within the editor. If you prefer, you can make changes to the JSON directly. Any such changes are reflected in the fields above when you click the Update button.

Each section within the Editor is accompanied by an Object Properties button, shown to the right of the section header. Clicking the same allows you to include or exclude the section’s properties within JSON Output:

Screenshot 2024-03-18 175903.png

The following application settings warrant special note:

  • All services require the following connection strings to be supplied:

    • ConnectionStrings__OperationalDatabase

    • ConnectionStrings__LoggingDatabase

  • A file output directory must be made available and accessible to all RPI containers. The following setting refers: RPI__FileOutput__Directory=exports.

This setting can be overridden on a tenant-by-tenant basis by setting the FileOutputDirectory system configuration setting in the RPI Configuration interface.

  • The following settings apply only to the Interaction API web service, and can only be set using environment variables. They are used to configure the Kestrel web server, which is used by all ASP.NET Core application (upon which RPI web services are built). Example values are provided:

    • ASPNETCORE_Kestrel__Certificates__Default__Path=/root/.aspnet/https/[xxx].pfx

    • ASPNETCORE_Kestrel__Certificates__Default__Password= [xxx]

    • ASPNETCORE_URLS=http://+:8080;https://+:8443

Health checks

The RPI services expose the following HTTP health check endpoints, which can be used by a container orchestration platform to determine the service’s current status:

  • Readiness: /health/ready

  • Liveness: /health/live

The endpoints return the following information depending on the context in which invoked:

  • Interaction API web service:

    • Readiness: API and Pulse database are both available.

    • Liveness: API available.

  • Configuration service:

    • Readiness: API available.

    • Liveness: API available.

  • Execution service:

    • Readiness: Execution service heartbeat is being updated.

    • Liveness: Execution service heartbeat is being updated.

  • Node Manager service:

    • Readiness: Node manager heartbeat is being updated.

    • Liveness: Node manager heartbeat is being updated.

  • Queue Reader service:

    • Readiness: Queue reader service heartbeat is being updated.

    • Liveness: Queue reader service heartbeat is being updated.

  • Realtime Agent web service:

    • Readiness: API and Pulse database are both available.

    • Liveness: API available.

  • Realtime web service:

    • Readiness: API, Agent, Cache and OAuth DB (if configured) are available.

    • Liveness: API available.

Example return packet

CODE
{
    "status": "Healthy", 
    "results": { 
        "NodeManagerHeartbeat": { 
            "status": "Healthy" 
        } 
    } 
}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.