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
Metadata
Release files for celine-sdk 2.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| celine_sdk-2.2.0.tar.gz | 423.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| celine_sdk-2.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / celine_sdk-2.2.0.tar.gz
| Download URL | celine_sdk-2.2.0.tar.gz |
|---|---|
| Size | 423.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bbbfb381bd7b33b416f93a62e6c86fef7f342069e7f2f3085a06148e56f15420
|
|
BLAKE2b-256 checksum How to use checksums |
2b5bbf9d737b66fa52406d583ea6af8d0bb838019b66656535aab2546c325111
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / celine_sdk-2.2.0-py3-none-any.whl
| Download URL | celine_sdk-2.2.0-py3-none-any.whl |
|---|---|
| Size | 858.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
36fb2624d2313cb6057da485e4b955303ef40d7652f06adcfe18cc1a560074fd
|
|
BLAKE2b-256 checksum How to use checksums |
3fb5d81886308895968c21fdbddc164ca27f36757582b6aea12f0dda57912c6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency log