Skip to content

Releases: ai-process/ktms-admin

ktms-admin 1.1.2

Choose a tag to compare

@coyl coyl released this 27 Oct 13:20
3219271

Changed

  • Tested against KTMS 1.3.6 and light-tokenmeter 1.1.0 (scripts/e2e.refs); the ktms.v1 copy
    follows KTMS 1.3.6, which adds NodeRegistryService.PullNodeUsage (unused by the console).

ktms-admin 1.1.1

Choose a tag to compare

@coyl coyl released this 26 Oct 18:24
4efb786

Security

  • The image is built on Alpine 3.23 with ca-certificates 20261020 or newer, which no longer
    trusts the eMudhra intermediates whose keys leaked in October 2026, and with Go 1.27.3.

ktms-admin 1.1.0

Choose a tag to compare

@coyl coyl released this 24 Oct 13:55
a6e017e

Works with every KTMS 1.x release (see Compatibility); KTMS_READ_KEY needs KTMS 1.2.

Added

  • KTMS_READ_KEY: an optional Keystone key with the admin:read scope (Keystone 1.2+). Admin API
    reads and every call of a viewer go with it; changes keep KTMS_ADMIN_KEY. The sidebar's
    health shows whether each key is accepted for its job: the admin key may change Keystone, the
    read key may read and nothing more.

Changed

  • Tested against KTMS 1.2.0 and light-tokenmeter 1.1.0 (scripts/e2e.refs); the ktms.v1 copy
    follows KTMS 1.2.0. Every KTMS 1.x release still works.

Image: coyl/ktms-admin:1.1.0 (linux/amd64, linux/arm64), signed with cosign; see SECURITY.md.

ktms-admin 1.0.0

Choose a tag to compare

@coyl coyl released this 23 Oct 18:19
8ef26b2

The first stable release, paired with Keystone. The Model Switchboard. (KTMS) 1.0: ktms-admin
1.x works with every KTMS 1.x release (see Compatibility).

Added

  • TOKENMETER_TOKEN: a light-tokenmeter 1.0 bearer token with the read scope, for its
    authentication. The usage status in the sidebar says "refused" and names the setting when the token
    is missing, rejected or lacks the scope; examples/compose.yaml wires tokens through the whole stack.
  • Password sign-in: ADMIN_USERS or ADMIN_USERS_FILE hold email:hash entries made by the new
    ktms-admin hash-password command (argon2id; bcrypt from htpasswd -nB works too). Failed attempts
    back off per account and per client address.
  • Any OpenID Connect provider by its generic settings (OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_ISSUER,
    OIDC_NAME), several at once through OIDC_PROVIDERS, and GitHub sign-in (GITHUB_CLIENT_ID,
    GITHUB_CLIENT_SECRET, GITHUB_URL for Enterprise Server).
  • Sign-in through an access proxy: an e-mail header from TRUSTED_PROXY_CIDRS (oauth2-proxy, Authelia,
    Authentik, Pomerium, Tailscale) or a verified Cloudflare Access token (CF_ACCESS_TEAM_DOMAIN,
    CF_ACCESS_AUD).
  • Key policies on the Keys page: allowed models and requests and tokens per minute, set when minting
    or later (team leads for their team's keys), and each key's spend against its caps.
  • Prompt-cache prices (cached input, cache write) and the prompt_cache capability in the model
    editor.

Changed

  • Google sign-in is optional: configure any of the methods above, alone or together. Sign-in methods
    are pluggable adapters behind one core that owns sessions, roles and the sign-in page; Google works as
    before, with the same redirect URI.
  • The console and sign-in page use the ai-process.dev palette and logo. The dark theme runs orange to
    yellow on warm near-black, and the light theme has orange accents. Warnings are yellow and errors red,
    so they no longer look like the accent; the third chart and rule colour is blue.
  • The image is published only as coyl/ktms-admin. coyl/llm-proxy-admin stays at 0.4.0: switch
    your deployments to the new name.
  • The binary and Go module are named ktms-admin; the console's internal CSRF header value
    changed with them (the server and its UI ship together).
  • The README names the gateway Keystone. The Model Switchboard. (KTMS).
  • The license is Apache 2.0, with a NOTICE file.

Deprecated

  • GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET: use OIDC_CLIENT_ID and OIDC_CLIENT_SECRET. The old names
    keep working with a startup warning and are removed in 2.0.

Fixed

  • Sign-in error pages are styled again: the CSP blocked their inline styles.
  • A profile picture the CSP blocks no longer shows as a broken image.

v0.4.0: redesigned console

Choose a tag to compare

@coyl coyl released this 22 Oct 16:15
2ffe710

ktms-admin 0.4.0: the redesigned console. Pair it with KTMS 0.14.0.

docker pull coyl/ktms-admin:0.4.0   # also published as coyl/llm-proxy-admin:0.4.0

Upgrading from 0.3.x: rename LLM_PROXY_ADDR, LLM_PROXY_ADMIN_KEY and LLM_PROXY_TLS to KTMS_ADDR, KTMS_ADMIN_KEY and KTMS_TLS (the old names still work and log a warning).

Needs KTMS 0.14.0 or later for the tenant and team pages.

Added

  • Redesigned console (Preact and htm, no build step): visual rules builder, key wizard with
    spend caps, usage with team budgets, light and dark themes.
  • Organizations and teams, a team workspace, and team-scoped access for team leads and members.
  • Spend limits for keys and users.
  • Images are signed with keyless cosign and carry an SBOM and provenance.

Changed

  • Settings use the KTMS names: KTMS_ADDR, KTMS_ADMIN_KEY, KTMS_TLS.
  • The image is published as coyl/ktms-admin, and still as coyl/llm-proxy-admin. Images are
    built only for v* tags; latest follows only the newest stable release.

Deprecated

  • LLM_PROXY_ADDR, LLM_PROXY_ADMIN_KEY, LLM_PROXY_TLS: they keep working with a startup
    warning and are removed in 2.0.

v0.3.0 - KTMS ktms.v1 protocol

Choose a tag to compare

@coyl coyl released this 19 Oct 20:38
919bee8

The console now talks to KTMS over its ktms.v1 protocol (#10).

KTMS 0.13.0 renamed the gRPC services (llmproxy.v1.LLMProxyAdminService → ktms.v1.AdminService, llmproxy.v1.LLMProxyService → ktms.v1.GatewayService). With 0.2.0 every proxy page fails against KTMS 0.13.0 with unknown service.

  • proto/ follows ktms v0.13.0; new fields (rule shadow settings, spend limits, routing details) pass through the console.
  • Needs KTMS 0.13.0 or later.
  • Image: coyl/llm-proxy-admin:0.3.0 (linux/amd64, linux/arm64).

v0.2.0 - Local Nodes & Node Keys Console

Choose a tag to compare

@coyl coyl released this 13 Oct 19:11

Highlights

  • Nodes Tab: Real-time overview of connected inference nodes, model rosters, active slot utilization, VRAM usage, and EMA TPS telemetry.
  • Node Management: Interactive node draining and node key issuance/revocation via web UI.