Metadata-Version: 2.4
Name: seven2one-questra-authentication
Version: 1.0.0
Summary: Authentication Client for Questra to use in all other Questra Client Libraries
Author-email: Jürgen Talasch <juergen.talasch@seven2one.de>
License: Proprietary
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Systems Administration :: Authentication/Directory
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: requests-oauthlib<3.0.0,>=2.0.0
Description-Content-Type: text/markdown

# Questra Authentication

Python OAuth2 Authentication Client für die Questra API mit Unterstützung für Service-Account- und interaktive Benutzer-Authentifizierung.

## Features

- **Service Account & Interaktive Authentifizierung**: Username/Password oder OAuth2 Device Code Flow
- **Automatisches Token-Management**: Automatische Token-Refresh-Mechanismen
- **OIDC Discovery**: Automatische Erkennung von OAuth2 Endpoints
- **Type-Safe**: Vollständig typisierte API mit Dataclasses

## Installation

```bash
pip install seven2one-questra-authentication
```

## Requirements

- Python >= 3.10
- requests-oauthlib >= 2.0.0

## Schnellstart

### Service Account

```python
from seven2one.questra.authentication import QuestraAuthentication

client = QuestraAuthentication(
    url="https://auth.example.com",
    username="ServiceUser",
    password="secret_password"
)

access_token = client.get_access_token()
```

### Interaktiver Benutzer

```python
client = QuestraAuthentication(
    url="https://auth.example.com",
    interactive=True
)

access_token = client.get_access_token()
```

## Erweiterte Verwendung

```python
# Mehrere Discovery-Pfade
client = QuestraAuthentication(
    url="https://auth.example.com",
    username="ServiceUser",
    password="secret",
    oidc_discovery_paths=["/app/o/techstack", "/app/o/questra"]
)

# Benutzerdefinierte Scopes
client = QuestraAuthentication(
    url="https://auth.example.com",
    username="ServiceUser",
    password="secret",
    scope="openid profile email"
)
```

## Weitere Informationen

- **Vollständige Dokumentation:** <https://pydocs.[questra-host.domain]>
- **Support:** <support@seven2one.de>

## License

Proprietary - Seven2one Informationssysteme GmbH
