Metadata-Version: 2.4
Name: celine-sdk
Version: 1.12.0
Summary: CELINE SDK
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiomqtt>=2.5.0
Requires-Dist: attrs>=25.4.0
Requires-Dist: cachetools>=7.0.0
Requires-Dist: celine-regorus>=0.9.1.post20260227075446
Requires-Dist: cryptography>=46.0.5
Requires-Dist: httpx>=0.28.1
Requires-Dist: pydantic>=2.12.5
Requires-Dist: pydantic-settings>=2.12.0
Requires-Dist: pyjwt>=2.11.0
Requires-Dist: python-dateutil>=2.9.0.post0
Requires-Dist: pyyaml>=6.0.3
Dynamic: license-file

# 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 |

## Installation

```bash
# Core SDK
pip install celine-sdk

# With client generation support
pip install 'celine-sdk[gen]'
```

## CLI Quick Reference

```bash
# 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 (requires [gen] extra)
celine-sdk generate services.yaml
```

## services.yaml Format

```yaml
services:
  digital-twin:
    package: dt
    openapi: http://dt:8000/openapi.json
  policies:
    openapi: http://policies:8000/openapi.json
```

## Documentation

| Document | Description |
|---|---|
| [Auth](https://celine-eu.github.io/projects/celine-sdk/docs/auth) | OIDC token provider, JWT parsing, AccessToken model |
| [Broker](https://celine-eu.github.io/projects/celine-sdk/docs/broker) | MQTT client, auto-reconnect, JWT auth, subscription handling |
| [Settings](https://celine-eu.github.io/projects/celine-sdk/docs/settings) | OidcSettings, MqttSettings, PoliciesSettings, env var config |
| [Spec Management](https://celine-eu.github.io/projects/celine-sdk/docs/spec-management) | services.yaml format, spec fetch, versioning, client generation |

## License

Apache 2.0 — Copyright © 2025 Spindox Labs
