— means no default. The conditions use two terms:
- Production environment:
ENV_NAMEisproductionorprod. - Development environment:
ENV_NAMEisdevelopment,develop,dev,localortest.
15m or 24h. A duration that cannot be read is replaced by its default. A duration of zero or less in a DESK_ variable stops startup. A number that cannot be read is replaced by its default too.
Runtime and server
DEPLOYMENT_MODE set to saas also needs these values:
ENV_NAMEisproduction,prodorstaging.DB_SSLMODEisrequire,verify-caorverify-full.PLUGIN_AUTH_ADDRESS,PLUGIN_ACCESS_MANAGER_URLandDESK_SPI_CALLBACK_URLusehttpswhen they are set.
DESK_CORS_ALLOWED_ORIGINS is a list that you separate with commas. Write each origin as scheme://host[:port], with http or https, a lowercase host, no default port, no path, no query and no credentials. A wildcard or an entry in another form stops startup. An empty value adds no CORS headers.
Database
Telemetry
Authentication
The Cabine API checks the permissions of each request with Access Manager. See Access and roles.PLUGIN_AUTH_ENABLED=false is not accepted when ENV_NAME is not set. An unset ENV_NAME does not count as a development environment.
Calls to Access Manager
After a different Cabine API admin approves the deletion of an operator user, the Cabine API deletes the user in Access Manager. It signs in as an Access Manager application. See Administration.Calls to Lerian SPI
After an approval, the Cabine API sends the decision to Lerian SPI. It signs in as an Access Manager application. Grantbr-spi-operations:update on Lerian SPI to this application. See Manual review approvals.
Retention
Production environment rules
In a production environment, startup stops unless these variables hold a value:PLUGIN_AUTH_ADDRESSPLUGIN_ACCESS_MANAGER_URL,PLUGIN_ACCESS_MANAGER_CLIENT_IDandPLUGIN_ACCESS_MANAGER_CLIENT_SECRETDESK_SPI_CALLBACK_URL,DESK_SPI_CALLBACK_CLIENT_IDandDESK_SPI_CALLBACK_CLIENT_SECRETDEPLOYMENT_MODE
Health and readiness
The Cabine API serves/health, /readyz and /version on its HTTP port. /readyz answers 200 when the service is ready and 503 when it is not. If the Cabine API cannot reach the database at startup, startup stops. If another dependency is not ready at startup, the service keeps running and stays not ready.
The readiness result covers these dependencies:
- The database: the Cabine API can reach it.
- The database schema: it is at the current version. Apply the database migrations before you start the service.
- Access Manager: the service is skipped when
PLUGIN_ACCESS_MANAGER_URLis not set. An address that does not answer makes the service not ready. - Lerian SPI: the service is skipped when
DESK_SPI_CALLBACK_URLis not set. A Lerian SPI that does not answer, an old undelivered decision, a refused decision or an exhausted decision appears as a reason. It does not make the service not ready.

