Overview
All SDK runtime settings live on ResonTechConfig. Construct one and pass it to ResonTech(config).
Required Fields
| Field | Type | Description |
|---|---|---|
| base_url | str | Base URL of the REST API. Trailing slash is stripped. |
| platform_api_key | str | Platform API key minted at Profile → Developer. Prefix rsk_live_ or rsk_dev_. Env fallback: RESON_API_KEY. |
| s3_access_key_id | str | Access key ID issued when you provisioned the bucket. |
| s3_secret_access_key | str | Secret key shown once at bucket creation. Rotate from Profile → Storage if lost. |
i
platform_api_key is kwarg-only. The client rides it as Authorization: Bearer <key> on every request — don't pass a predict_api_key here by mistake (those go on InferenceClient instead and use X-API-Key). The prefix check will raise ResonAuthError if you cross them.Optional Fields (with Defaults)
| Field | Default | Description |
|---|---|---|
| s3_bucket_alias | "" | Bucket alias. Auto-resolved on login from GET /api/users/storage/bucket if empty. |
| s3_endpoint | "https://s3.reson.tech" | S3-compatible endpoint URL. Override for staging, self-hosted, or local MinIO. |
| s3_region | "garage" | Region label. Garage ignores it but boto3 requires a value. |
| dashboard_url | "https://app.reson.tech" | Web UI base. Used to build job.dashboard_url. Match your deployment. |
Environment-Variable Pattern
platform_api_key falls back to RESON_API_KEY when omitted; the rest of the fields are yours to source however you like:
Self-Hosted / Staging Example
Rotating a Leaked Platform API Key
If you committed the key by accident or suspect compromise:
- Open Profile → Developer in the web UI.
- Click Rotate next to the compromised key — mints a new plaintext (shown once) and revokes the old one.
- Paste the new value into your
ResonTechConfigor updateRESON_API_KEY.
i
Revocation propagates in under ~5 s. Old key hits fail with
401 invalid_api_key. S3 secret rotation is separate — Profile → Storage → Rotate Key.Reading the Bucket Alias Programmatically
If you'd rather resolve the bucket alias yourself instead of letting the SDK do it, the backend exposes it at:
The SDK calls this automatically on the first storage-touching request unless you set s3_bucket_alias up front.