Goal
Build a Python SDK package (permit-sdk) providing a typed API wrapper for the permit backend, with built-in retries, timeout handling, and error mapping. Customers import permit_sdk and call activate() and get_status() without managing HTTP details.
Requirements
Functional
Technical
Acceptance Criteria
Dependencies
Goal
Build a Python SDK package (
permit-sdk) providing a typed API wrapper for the permit backend, with built-in retries, timeout handling, and error mapping. Customers importpermit_sdkand callactivate()andget_status()without managing HTTP details.Requirements
Functional
PermitClient(api_key, api_url)initialization.client.activate(license_key, device_fingerprint)→ returns session token and policy snapshot.client.get_status(session_token)→ returns status enum (ACTIVE,GRACE,EXPIRED,REVOKED).ActivationError,SessionExpiredError,LicenseRevokedError.Technical
httpx,pydantic.Authorization: ApiKey {api_key}.httpx.AsyncClientfor async variant (activate_async()).sdk/.Acceptance Criteria
activate()returns session token on success.activate()raisesActivationErroron 4xx.await client.activate_async(...).Dependencies