Files
zeekayandHanzo Dev bf49810b8f kms.lux.cloud is the brand host; kms.lux.network is retired
The .network host was retired 2026-07-27 and no longer resolves at all (a
request to it now returns nothing, not an error), so every reference to it named
an address that cannot answer. The brand host is .cloud, matching kms.zoo.cloud
and the rest of the white-label convention.

Left alone deliberately, because rewriting them would invert what they say:
the LLM.md line that RECORDS the retirement, the e2e spec that ASSERTS
kms.lux.network must not resolve, and the recorded applies + cluster backups,
which are faithful accounts of what was applied and are not config.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-05 08:12:54 -07:00

47 lines
1.3 KiB
Python

"""Hanzo KMS - Secret Management SDK for Python
A pure Python SDK for the canonical luxfi/kms surface (kms.hanzo.ai,
kms.lux.cloud). A secret is identified by (org, path, name, env).
Usage:
from hanzo_kms import KMSClient, ClientSettings
client = KMSClient(ClientSettings(
org="lux",
client_id="your-client-id",
client_secret="your-client-secret",
))
# List the secret names at a path
names = client.list_secrets("providers/lux", env="prod")
# Read one value
mnemonic = client.get_secret("providers/lux", "deploy-mnemonic", env="prod")
# Create or replace (one upsert — KMS holds one value per path/name/env)
client.put_secret("providers/lux", "deploy-mnemonic", mnemonic, env="prod")
# Load a whole path into os.environ
client.inject_env("providers/lux", env="prod")
With HANZO_KMS_ORG / HANZO_KMS_CLIENT_ID / HANZO_KMS_CLIENT_SECRET set,
`KMSClient()` configures itself.
"""
__version__ = "1.1.1"
from .async_client import AsyncKMSClient
from .client import KMSClient
from .models import ClientSettings, TokenResponse, settings_from_env
from .routes import DEFAULT_ENV, VersionUnsupportedError
__all__ = [
"KMSClient",
"AsyncKMSClient",
"ClientSettings",
"settings_from_env",
"TokenResponse",
"DEFAULT_ENV",
"VersionUnsupportedError",
]