Skip to main content

Command-line interface for the Enkindler AI operations dashboard.

Project description

enkindler CLI

Command-line interface for the Enkindler AI operations dashboard. Manages AKS deployments, Helm platforms, integrations, and cluster resources from your terminal.

Patterned after az and databricks — designed to be ergonomic for both humans and AI agents.

Install

pip install enkindler

Works on macOS, Linux, and Windows (Python 3.10+).

Quick start

# Sign in: generate a CLI token on the dashboard's /cli-token page, then paste it
enkindler login --token

# Or the browser convenience flow (requires the cluster's Entra loopback redirect URI)
enkindler login

# Verify the session
enkindler whoami

# List your deployments
enkindler deployment list

Namespaces

One workload (app, platform, or CronJob) is allowed per namespace. Workload create commands (deployment create, helm install, cronjob create) require --namespace <full-aks-namespace> — the full name, already workspace-prefixed as <workspace-slug>-<name> (e.g. workspace financefinance-invoices). The backend rejects names outside the active workspace.

Pre-flight a namespace before creating (checks both workload occupancy and the admin-managed restricted-namespaces denylist; exits 1 if taken):

enkindler namespace occupancy                               # occupied namespaces in the workspace
enkindler namespace occupancy --namespace finance-invoices  # single-candidate check

Platform admins manage the denylist with enkindler settings update --set 'RESTRICTED_NAMESPACES=legacy-ns,shared-infra' (system namespaces like default and kube-system are always restricted). A workload's namespace is immutable after creation.

Configuration

Config and the cached JWT live at:

OS Path
macOS ~/Library/Application Support/enkindler/config.toml
Linux ~/.config/enkindler/config.toml
Windows %APPDATA%\enkindler\config.toml

Override the backend URL with --api-url https://... on any command, or set ENKINDLER_API_URL in the environment.

Architecture

  • Backend exposes an OpenAPI spec at /api/openapi.json (the contract).
  • This CLI consumes that spec to drive command behaviour.
  • Auth uses backend-issued tokens: sign in to the web dashboard, generate a CLI token at /cli-token, and paste it at the enkindler login --token prompt. A browser OAuth (PKCE) flow is available via plain enkindler login on clusters whose Azure app registration allows loopback redirects.

Development

python -m venv .venv && source .venv/bin/activate  # or `.venv\Scripts\activate` on Windows
pip install -e '.[dev]'
pytest
ruff check .

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

enkindler-0.10.0.tar.gz (62.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

enkindler-0.10.0-py3-none-any.whl (74.9 kB view details)

Uploaded Python 3

File details

Details for the file enkindler-0.10.0.tar.gz.

File metadata

  • Download URL: enkindler-0.10.0.tar.gz
  • Upload date:
  • Size: 62.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for enkindler-0.10.0.tar.gz
Algorithm Hash digest
SHA256 8e6e1f9f62fd6c63191a625d336471115ff9aaf50f00a565bde0d861a058dc61
MD5 3914350e748cf03ce3fa2d056406cfcd
BLAKE2b-256 8eea5a4830490e0882fd78e13a9132aafbdc2951a79e84515ecd28ce5d3e51fa

See more details on using hashes here.

File details

Details for the file enkindler-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: enkindler-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 74.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for enkindler-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eb7dc632555af2e580f5ea7e63b5f119c31f0a2256053ab11a5e484389e3746e
MD5 873b03815e5445368c99f277fc1b57c8
BLAKE2b-256 1b446e1dcbaae9a0955788fb1eb2d2ef66d0b70570242e4370d1a669db003987

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page