Files
hips/HIPs/hip-0412-gateway-crd.md
zeekayandHanzo Dev 7a9dcac628 What each runtime implements of the Hanzo corpus
An audit read the code and found the proposal that specifies it. Go reaches
all 122 capability proposals and 64 of the 121 other Standards Track ones;
Rust has 35, mostly the operator and the CLI; C++ has three, because the
complete original C++ in the estate is a ZAP handler, a bot nothing specifies,
and authored kernels inside forked CUDA and Metal crates.

    | | shipped | partial | none | not assessed |
    | Go   | 146 | 33 | 1 |  80 |
    | C++  |   1 |  2 | 0 | 257 |
    | Rust |  10 | 25 | 1 | 224 |

The large "not assessed" columns are the point rather than a gap. The model and
training specs are Python, the frontend and design-system proposals are
TypeScript, and recording `none` against those would read as a search that
came up empty when the honest statement is that the runtime was never the
question. Governance, Meta and Process are not graded at all.

Six proposals are Final with nothing found in Go and are left unwritten rather
than demoted: 0065, 0089, 0098, 0103, 0521 and 0902. HIP-0521 answers itself,
its own section reading "Not yet implemented". Three of the others name a
canonical Go file in consensus/protocol/auth that nobody wrote, in a package
where the four neighbouring proposals' files all exist with tests beside them.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-05 19:18:13 -07:00

2.3 KiB

hip, title, author, type, category, status, implementation-rust, implementation-go, created
hip title author type category status implementation-rust implementation-go created
0412 Gateway CRD Hanzo Platform Team Standards Track Operator Final partial partial 2026-05-19

HIP-0412: Gateway CRD

Abstract

The Gateway CRD describes a KrakenD-style API gateway (hanzoai/gateway): a set of declarative routes that compose multiple backend services into a single public API surface (api.hanzo.ai). Each route declares prefix, backend Service, methods, optional rate limits, and an auth policy. Unlike Ingress, which terminates TLS and routes by hostname, Gateway does API composition: header injection (X-User-Id, X-Org-Id from validated JWT), rate limiting, and protocol translation.

Specification

Group + version

hanzo.ai/v1, plural gateways, shortname hgw.

Spec fields

Field Type Description
image ImageSpec hanzoai/gateway
replicas int replica count
routes []GatewayRoute prefix, backend, methods, stripPrefix, rateLimit, authPolicy
rateLimits []RateLimit named rate limit policies
authPolicies []AuthPolicy named auth policies (IAM JWT validation)
ingress IngressSpec optional Ingress (api.hanzo.ai)
resources ResourceRequirements requests/limits

Example CR

apiVersion: hanzo.ai/v1
kind: Gateway
metadata:
  name: gateway
  namespace: hanzo
spec:
  image:
    repository: ghcr.io/hanzoai/gateway
    tag: 2.14.1
  replicas: 2
  routes:
    - prefix: /v1/chat
      backend: http://localhost:80
      methods: [POST]
      authPolicy: iam-jwt
      rateLimit: per-user
    - prefix: /v1/models
      backend: http://localhost:80
      methods: [GET]
  rateLimits:
    - name: per-user
      maxRate: 100
      every: 1m
  authPolicies:
    - name: iam-jwt
      type: jwt
      iamEndpoint: https://hanzo.id
      jwksUrl: https://hanzo.id/.well-known/jwks

Generated K8s resources

  • Deployment (KrakenD gateway)
  • ConfigMap (krakend.json rendered from routes)
  • ClusterIP Service
  • Optional Ingress (api.hanzo.ai)

Operator reconciler

~/work/hanzo/operator/src/controllers/gateway.rs.

  • HIP-0519 (One Identity Boundary) — the edge role this gateway holds: strip, verify, mint.

Status

Implemented in hanzoai/operator v0.3.0+. Backs api.hanzo.ai.