Metadata-Version: 2.4
Name: aananta-central-license-client
Version: 1.0.0
Summary: Aananta Central License Management System Client SDK
Author: Aananta Development Team
Author-email: Aananta Development Team <dev@aananta.com>
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.28.0
Requires-Dist: pynacl>=1.5.0
Requires-Dist: cryptography>=44.0.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
Dynamic: author
Dynamic: requires-python

# Aananta Central License Client (`aananta-central-license-client`)

The official Python client SDK for the **Aananta Central License Management System (LMS)**.

---

## 📦 Installation

```bash
pip install aananta-central-license-client
```

Or for local development:
```bash
pip install -e ./sdk/python
```

---

## 🚀 Quick Usage

```python
import os
from license_client import LicenseClient, LicenseStatus

# Initialize using standard environment variables
client = LicenseClient(
    server_url=os.getenv("LICENSE_SERVER_URL", "https://license.company.com"),
    product_code=os.getenv("LICENSE_PRODUCT_CODE", "EASYTRACKER"),
    app_version="2.8.0"
)

# 1. Activate License
info = client.activate("LIC-ET-XXXXXXXX")
print(f"Activated: {info.product_code}, Plan: {info.plan}")

# 2. Check Feature Entitlements
if client.has_feature("backup"):
    print("Backup feature is enabled")

# 3. Numeric Quota Limits
max_users = client.get_limit("users", default=10)
```

---

## 🔒 Security Guarantees
- **Asymmetric Ed25519 Cryptography**: Local offline validation and signature verification.
- **Isolated Installation Key**: Private key stored exclusively in host storage (`installation.key` with `0600` permissions), never in application databases or backups.
- **Offline Grace Period**: Automatic fallback to local cache during LMS outages (default 7 days).
- **Controlled Migration**: Cryptographic transfer tokens for authorized host-to-host migration.
