Skip to main content

Control Plane Configuration Reference

This document lists the configuration parameters of the Control Plane.

Server​

ParameterTypeDefaultDescription
HOSTstring"0.0.0.0" (container image)Address the server listens on. Outside the container image the default is "127.0.0.1".
PORTinteger4411Port of the UI and the API.
NODE_ENVstring"production" (container image)production serves the built UI together with the API.

Installation and Storage​

ParameterTypeDefaultDescription
CONTROL_PLANE_CONFIGstring"/app/config/epam" (container image)Configuration folder of the installation: clients, projects, sources and defaults. Empty: an empty installation is created in config/local on the first start.
CONTROL_PLANE_DBstring"/app/data/control-plane.db" (container image)SQLite database with the harvested data. A database belongs to the installation that first wrote to it.
CP_APP_DBstringFolder of CONTROL_PLANE_DBSQLite database with the application state, such as the feature switches saved in Settings → Features.
CONTROL_PLANE_JOBS_DIRstring".work/jobs"Folder with the harvest and transform jobs: their state and logs.

Authentication and Access​

By default, the Control Plane expects to run behind an OAuth2 proxy and reads the signed-in user from the headers the proxy forwards. With authentication on, set CP_ADMIN_ROLES, CP_CODEMIE_API_URL or both; otherwise the server does not start.

ParameterTypeDefaultDescription
CP_AUTH_DISABLEDbooleanfalsetrue turns off sign-in: every caller has full access. Use only on a host that nobody else can reach.
CP_OPS_ALLOW_REMOTEstring""1 allows configuration changes and harvests from a non-loopback address while authentication is off. Required in a container with CP_AUTH_DISABLED=true.
CP_ADMIN_ROLESstring""Comma-separated token roles that make a user an administrator, for example admin.
CP_ROLE_CLAIMstring"realm_access.roles"Token claim that holds the roles checked against CP_ADMIN_ROLES.
CP_CODEMIE_API_URLstring""CodeMie API URL. When set, CodeMie decides who is an administrator (while CP_ADMIN_ROLES is empty), auditor or project administrator, and CodeMie becomes the LLM provider.

Data Sources​

ParameterTypeDefaultDescription
JIRA_TOKENstring""Jira personal access token. For Jira Cloud, an API token.
JIRA_EMAILstring""Jira Cloud (*.atlassian.net) only: the account email that owns the API token.
GITLAB_TOKEN_<HOST>string""GitLab token for one host. The host is upper-cased and every other character than a letter or digit becomes _: gitlab.example.com is GITLAB_TOKEN_GITLAB_EXAMPLE_COM.
GH_TOKENstring""GitHub token. GITHUB_TOKEN is also accepted.
SONAR_TOKENstring""SonarQube user token, for code quality figures. A SonarQube source can name another variable.
CODEMIE_ANALYTICS_PG_URLstring""Read-only connection string to the CodeMie analytics database, for example postgresql://<role>@<host>:5432/<db>. Needed only to read CLI sessions from CodeMie.
CP_CODEMIE_TOKEN_<PROJECT>string""CodeMie service account token for scheduled harvests of one project. The project ID is converted like the GitLab host: epm-cdme is CP_CODEMIE_TOKEN_EPM_CDME.

LLM Provider​

An LLM is optional. It is used by the Chat page and by AI matching, which links AI sessions to tickets and merge requests.

ParameterTypeDefaultDescription
LLM_PROVIDERstring""codemie, litellm or openai. Empty: chosen automatically, in this order: CP_CODEMIE_API_URL, then LITELLM_URL, then OPENAI_KEY.
LLM_CHAT_MODELstring""Model for the Chat page. Empty: Chat is off, except on CodeMie, where the user's default model is used.
LLM_MATCH_MODELstring""Model for AI matching. Empty: AI matching with a model is off, except on CodeMie, where the CodeMie default model is used.
LLM_CHECK_MODELstring""Model that checks the AI matching answers. Empty: the check is off, except on CodeMie, where a model of another family is used.
LITELLM_URLstring""LiteLLM proxy URL. Also used to load model prices from the proxy.
LITELLM_KEYstring""LiteLLM proxy key.
OPENAI_KEYstring""OpenAI API key.
OPENAI_BASE_URLstring"https://api.openai.com/v1"OpenAI-compatible API URL.

Chat​

ParameterTypeDefaultDescription
CP_CHAT_TIMEOUT_MSinteger120000Max milliseconds one Chat answer can take.
CP_CHAT_HEARTBEAT_MSinteger15000Interval of keep-alive messages, so a proxy does not cut a long answer.
CP_CHAT_MAX_CONCURRENTinteger4Max Chat answers in progress at once.
CP_CHAT_MAX_CONCURRENT_PER_USERinteger2Max Chat answers in progress at once for one user.

Feature Flags​

Every feature is on by default. A feature can also be turned off in Settings → Features. A value set in the environment wins and cannot be changed in the UI: true turns the feature on, any other value turns it off.

ParameterTypeDefaultDescription
FEATURE_CHATbooleanonThe Chat page.
FEATURE_AI_MATCHbooleanonAI matching in a harvest.
FEATURE_SCHEDULESbooleanonScheduled harvests.
FEATURE_CODEMIE_IMPORTbooleanonImporting clients, projects and people from CodeMie.
FEATURE_DELIVERY_MANAGEMENTbooleanonReading sprints from Jira for projects that fill their iterations from them.

Harvest​

ParameterTypeDefaultDescription
CP_HARVEST_WORKERSinteger8Parallel requests per source during a harvest.
CP_DEBUGstring""Any value: a failing source prints its full error trace to the log.