Skip to main content

Server Configuration

All values are set in <ICP_HOME>/conf/deployment.toml. Commented-out keys show default values.

Server settings

KeyTypeDefaultDescription
serverPortint9446HTTPS port for all ICP endpoints
serverHoststring"0.0.0.0"Bind address
logLevelstring"INFO"Log verbosity — DEBUG, INFO, WARN, ERROR
enableAuditLoggingbooleantrueEnable audit log for authentication and management events
enableMetricsbooleantrueExpose Prometheus metrics endpoint
schedulerIntervalSecondsint60How often ICP checks for inactive runtimes and marks them as offline
refreshTokenCleanupIntervalSecondsint86400How often expired refresh tokens are purged from the database

TLS settings

ICP serves the console and API over HTTPS by default. The distribution uses the default keystore at <ICP_HOME>/conf/security/wso2carbon.jks, but you should replace it with a CA-signed certificate for production deployments.

Add the keystore configuration as top-level values in <ICP_HOME>/conf/deployment.toml, before any [icp_server.*] table:

keystorePath = "../conf/security/<custom-keystore>.jks"
keystorePassword = "<keystore-password>"

If you use a relative path, it is resolved from <ICP_HOME>/bin, because ICP is started from the bin directory. You can also use an absolute path.

The keystore must contain the private key and certificate chain for the hostname used to access ICP. If the certificate is signed by an internal CA, make sure that CA is trusted by the browsers and clients that connect to ICP.

KeyTypeDefaultDescription
keystorePathstring"../conf/security/wso2carbon.jks"Path to the keystore used by the ICP HTTPS listener
keystorePasswordstring"wso2carbon"Password of the keystore

Backend endpoint settings

These values default to localhost:9446 and must be updated when ICP is accessed through a different hostname or behind a reverse proxy.

KeyTypeDefaultDescription
backendGraphqlEndpointstring"https://localhost:9446/graphql"URL of the ICP GraphQL API endpoint
backendAuthBaseUrlstring"https://localhost:9446/auth"Base URL of the ICP authentication service
backendObservabilityEndpointstring"https://localhost:9446/icp/observability"URL of the ICP observability endpoint

Authentication settings

KeyTypeDefaultDescription
authBackendUrlstring"https://localhost:9447"URL of the authentication backend service
frontendJwtHMACSecretstringHMAC-SHA256 secret for signing JWT tokens (minimum 32 characters)
defaultTokenExpiryTimeint3600JWT access token lifetime in seconds
refreshTokenExpiryTimeint86400Refresh token lifetime in seconds (default: 1 day)
enableRefreshTokenRotationbooleantrueRotate refresh token on each use
maxRefreshTokensPerUserint10Maximum active refresh tokens per user (0 = unlimited)