import { Aside } from ‘@astrojs/starlight/components’;
The management API is served from /api/v1/* on the management listener (default: 127.0.0.1:8080). It is the shared control surface used by the web admin SPA, dnsctl, and operator automation.
The canonical REST contract is docs/openapi.yaml in the repo. TypeScript types for the web admin are generated from it via make api-types.
The following paths are defined in docs/openapi.yaml but may be in varying states of implementation. Check internal/api/ before building automation against them:
/auth/login, /auth/logout, /auth/me, /sessions/*
/users/*, /tokens/*
/dnssec/* (trust anchors, validator status)
/acl (DNS ACL config)
/backup, /restore
/metrics (Prometheus — roadmap item; use /stats in v1)
Strategies and transports are serialized as strings ("parallel", "dot", etc.). The Go enum values are integers internally; the JSON marshaling is frozen in the contracts package.
TLS runtime objects (*tls.Config) are not serialized. API-level TLS knobs use explicit fields: skip_tls_verify, sni_override.
CA bundles and client certs are addressed by ID once the cert manager API lands (roadmap).
Records use zone-file presentation format in both request and response bodies.