Settings
The celine.sdk.settings module provides typed, environment-driven configuration using pydantic-settings.
Settings Classes
OidcSettings
from celine.sdk.settings import OidcSettings
settings = OidcSettings()
| Variable | Type | Description |
|---|---|---|
OIDC_ISSUER |
str |
OIDC issuer base URL (e.g., http://keycloak:8080/realms/celine) |
OIDC_CLIENT_ID |
str |
Client ID for this service |
OIDC_CLIENT_SECRET |
str |
Client secret |
OIDC_SCOPE |
str |
Requested token scopes (space-separated) |
MqttSettings
from celine.sdk.settings import MqttSettings
settings = MqttSettings()
| Variable | Type | Default | Description |
|---|---|---|---|
MQTT_HOST |
str |
localhost |
Broker hostname |
MQTT_PORT |
int |
1883 |
Broker port |
MQTT_TLS |
bool |
false |
Enable TLS |
MQTT_CLIENT_ID |
str |
auto | MQTT client identifier |
PoliciesSettings
from celine.sdk.settings import PoliciesSettings
settings = PoliciesSettings()
| Variable | Type | Description |
|---|---|---|
POLICIES_URL |
str |
Base URL of the celine-policies service |
SdkSettings
Composite settings combining all of the above:
from celine.sdk.settings import SdkSettings
settings = SdkSettings()
# settings.oidc: OidcSettings
# settings.mqtt: MqttSettings
# settings.policies: PoliciesSettings
Environment Variable Naming
All variables follow the SCREAMING_SNAKE_CASE pattern. pydantic-settings loads them from the process environment and optionally from a .env file if present.
# Example .env
OIDC_ISSUER=http://keycloak:8080/realms/celine
OIDC_CLIENT_ID=my-service
OIDC_CLIENT_SECRET=secret
MQTT_HOST=mqtt.celine.local
POLICIES_URL=http://policies:8009