CELINE SDK
Shared SDK for the CELINE platform. Provides OIDC authentication, MQTT broker abstraction, Pydantic settings, and OpenAPI spec management with generated typed clients
Modules
| Module | Description |
|---|---|
celine.sdk.auth |
OIDC token provider, JWKS-based JWT parsing, token refresh |
celine.sdk.broker |
MQTT client with auto-reconnect and JWT authentication |
celine.sdk.settings |
Shared Pydantic settings: OIDC, MQTT, policies |
celine.sdk.openapi.* |
Generated typed clients for CELINE services |
celine.sdk.dt |
Digital Twin domain client helpers |
celine.sdk.nudging |
Nudging service client |
celine.sdk.onboarding |
Onboarding: a member's own data-sharing decisions (OnboardingClient), and, on OnboardingAdminClient, a service sending a registry member an invitation or password reset for a manager, and a platform administrator's (realm role platform-admin) registry sync of a community's areas (registry_sync) |
celine.sdk.policies |
OPA policy evaluation over a service's own *.rego bundle |
celine.sdk.rec_registry |
REC registry client helpers (RecRegistryUserClient, RecRegistryAdminClient): the batch lookups; a member's meter (put_asset, delete_asset) and role and area (patch_member_profile); a community's areas and topology (read_community, put_area, delete_area, rename_area, put_topology_node, delete_topology_node). A refusal raises RecRegistryApiError with the registry's code (sensor_held, unknown_area, not_a_member, …) beside status_code and detail |
celine.sdk.flexibility |
Flexibility service client helpers |
celine.sdk.ai_assistant |
AI assistant client helpers |
celine.sdk.posture |
The deployment posture: only CELINE_ENV=dev relaxes; PostureGuard refuses development settings elsewhere; docs_urls turns the API documentation off outside dev |
celine.sdk.audit |
Access audit on the celine.audit logger: audit_access, audit_denied (Starlette or Flask request), and the per-route FastAPI dependency audit_route |
celine.sdk.clients, celine.sdk.utils and celine.sdk.cli are internal: they support
the modules above and the spec-management CLI, and are not part of the public surface.
Installation
pip install celine-sdk
Client generation needs the code generators from this repository's dev dependency group
(Python ≥ 3.11) — uv sync in a checkout. It is a maintainer task performed here, not
something a consuming service does.
CLI Quick Reference
# Fetch and version OpenAPI specs (writes to ./openapi/)
celine-sdk spec fetch services.yaml
# List discovered spec versions
celine-sdk spec list
# Generate typed Python clients (needs the dev dependency group)
celine-sdk generate services.yaml
# Both steps, in a checkout
task gen
services.yaml Format
services:
digital-twin:
package: dt
openapi: http://dt:8000/openapi.json
policies:
openapi: http://policies:8000/openapi.json
Documentation
| Document | Description |
|---|---|
| Auth | OIDC token provider, JWT parsing, AccessToken model |
| Broker | MQTT client, auto-reconnect, JWT auth, subscription handling |
| Settings | OidcSettings, MqttSettings, PoliciesSettings, env var config |
| Spec Management | services.yaml format, spec fetch, versioning, client generation |
| Specifications | What the SDK must do, as numbered requirements each named by a test |
License
Apache 2.0 — Copyright © 2025 Spindox Labs