zeekayandHanzo Dev f3a8ef976d runs-on names a machine, not a purpose
The purpose-prefixed labels (hanzo-build-*, hanzo-deploy-*, hanzo-docs-build-*)
are retired in favour of the bare <os>-<arch> every runner already advertises.

They were not a capability, only a habit, and the habit cost builds: papers asked
for hanzo-build-linux-amd64, no online runner offered it, and two idle
linux-amd64 runners sat beside the queue while the build simply never ran. The
lux tree lost three days to lux-linux-amd64 the same way.

What a job is FOR is the workflow's name. runs-on is the machine it needs.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 11:36:52 -07:00
2026-08-17 15:14:22 -07:00
2025-09-15 18:18:52 +04:00
2025-04-03 08:54:50 +04:00
2026-03-11 10:31:47 -07:00
2025-03-14 19:50:35 +04:00
2025-04-03 08:55:28 +04:00
2024-08-19 01:01:28 -04:00

Hanzo KMS Python SDK

Official Python SDK for Hanzo KMS -- secrets management, encryption keys, and dynamic secrets.

Installation

pip install hanzo-kms

Quick Start

from hanzo_kms import KMSClient

# Initialize the client
client = KMSClient(host="https://kms.hanzo.ai")

# Authenticate with Universal Auth
client.auth.universal_auth.login(
    client_id="your-client-id",
    client_secret="your-client-secret"
)

# List secrets
secrets = client.secrets.list_secrets(
    project_id="your-project-id",
    environment_slug="production",
    secret_path="/"
)

for secret in secrets.secrets:
    print(f"{secret.secretKey}={secret.secretValue}")

Authentication Methods

  • Universal Auth -- Machine identity client ID/secret
  • Token Auth -- Direct token authentication
  • AWS IAM Auth -- AWS IAM-based authentication
  • OIDC Auth -- OpenID Connect authentication
  • LDAP Auth -- LDAP username/password authentication

Features

  • Secrets -- CRUD operations on secrets with caching support
  • KMS Keys -- Create, manage, encrypt/decrypt with symmetric keys
  • Folders -- Organize secrets into folder hierarchies
  • Dynamic Secrets -- Provision short-lived credentials (databases, cloud providers, etc.)

Caching

The SDK includes built-in secrets caching with configurable TTL:

# Enable caching with 60-second TTL (default)
client = KMSClient(host="https://kms.hanzo.ai", cache_ttl=60)

# Disable caching
client = KMSClient(host="https://kms.hanzo.ai", cache_ttl=None)

Context Manager

with KMSClient(host="https://kms.hanzo.ai", token="your-token") as client:
    secrets = client.secrets.list_secrets(
        project_id="your-project-id",
        environment_slug="dev",
        secret_path="/"
    )
# Resources automatically cleaned up

License

BSD-3-Clause -- Copyright (c) 2025-2026 Hanzo AI, Inc. See LICENSE and NOTICE.

Security

If you discover a security vulnerability, please report it to [email protected]. Do not file public issues for security vulnerabilities.

S
Description
Hanzo KMS Python SDK
Readme
1 MiB
Languages
Python 100%