Skip to content

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