Skip to content
GitHub

Frontend service

Rafiki’s frontend service provides an optional internal admin interface, called the Rafiki Admin application, for you to manage your Rafiki instance through a Remix web app.

This service communicates with the Backend Admin API to facilitate administrative tasks, such as tenant and tenant resource management. The frontend service HMAC-signs requests (HMAC SHA-256) to the Backend Admin API and includes a tenant-id header. The tenant-id header identifies the tenant on whose behalf the request is made.

The following are required when using the frontend service:

  • A Rafiki backend service up and running to access the Backend Admin API.
  • An identity provider for authentication and user management. Out of the box, the Rafiki Admin app uses Ory Kratos , a secure and fully open source identity management solution.

You must also set the environment variables for the frontend service.

VariableHelm value nameDefaultDescription
GRAPHQL_URLconfig.frontend.serviceUrls.GRAPHQL_URLundefinedURL of Rafiki’s GraphQL Backend Admin API.
OPEN_PAYMENTS_URLconfig.frontend.serviceUrls.OPEN_PAYMENTS_URLundefinedYour Open Payments API endpoint.

The following variables are required only when AUTH_ENABLED is set to true.

VariableHelm value nameDefaultDescription
KRATOS_ADMIN_URLundefinedundefinedThe admin endpoint/container address for Kratos.
KRATOS_BROWSER_PUBLIC_URLundefinedundefinedThe URL to access the Kratos Docker container from a browser outside the Docker network. This is used for calls from a browser (what you see in the Rafiki Admin UI) to the Kratos server on the backend.
KRATOS_CONTAINER_PUBLIC_URLundefinedundefinedThe URL to access the Kratos Docker container from in the Docker network. This is used for backend calls to Kratos.
VariableHelm value nameDefaultDescription
AUTH_ENABLEDconfig.frontend.kratos.enabledtrueWhen true, only authenticated users can be granted access to Rafiki Admin by an administrator.
ENABLE_INSECURE_MESSAGE_COOKIEundefinedundefinedWhen set to true, t, or 1, cookie will be transmitted over insecure HTTP connection. Insecure message cookies are required for flash messages to work over HTTP.
LOG_LEVELconfig.frontend.logLevelinfoPino log level .
NODE_ENVconfig.frontend.nodeEnvundefinedThe type of node environment: development, test, or production.
PORTconfig.frontend.port3010Port from which to host the Rafiki Remix app.
SIGNATURE_VERSIONundefinedundefinedThe signature version number used when HMAC-signing requests to the Backend Admin API (HMAC SHA-256).