headscale/hscontrol
Kristoffer Dalby c9bbb5bdec api/v1: add code-first Huma implementation of the v1 API
Reimplement the v1 API as a code-first Huma service in hscontrol/api/v1,
a thin adapter over the state layer. Huma emits the OpenAPI 3.1 document
(openapi/v1/headscale.yaml) from the Go operation and type definitions;
cmd/gen-openapi writes it and the 3.0.3 downgrade the client is generated
from. Responses reproduce the protojson wire contract (string-encoded
64-bit IDs, all fields emitted, RFC3339/null timestamps); errors map to
the correct HTTP status (404/400/409, 500 for server faults) via mapError.

Serve it on the chi router at /api/v1 behind the existing API-key
middleware, and point /swagger at the emitted spec.
2026-06-19 15:21:00 +02:00
..
api/v1 api/v1: add code-first Huma implementation of the v1 API 2026-06-19 15:21:00 +02:00
assets assets: fix logo alignment and error icon centering 2026-04-13 17:23:47 +01:00
capver all: adopt slices helpers 2026-06-17 16:12:19 +02:00
db db: report a missing pre-auth key on expire and destroy 2026-06-19 15:21:00 +02:00
derp all: adopt strings, errors, and os helpers 2026-06-17 16:12:19 +02:00
dns dns, change, noise, auth, capver: misc consolidation 2026-06-17 16:12:19 +02:00
mapper all: adopt maps and cmp helpers 2026-06-17 16:12:19 +02:00
policy all: adopt strings, errors, and os helpers 2026-06-17 16:12:19 +02:00
servertest servertest: consolidate harness helpers 2026-06-17 16:12:19 +02:00
state util, db: generate key material as hex via tailscale rands 2026-06-17 16:12:19 +02:00
templates templates: consolidate shared page and component helpers 2026-06-17 16:12:19 +02:00
types util, db: generate key material as hex via tailscale rands 2026-06-17 16:12:19 +02:00
util util, db: generate key material as hex via tailscale rands 2026-06-17 16:12:19 +02:00
app.go api/v1: add code-first Huma implementation of the v1 API 2026-06-19 15:21:00 +02:00
app_test.go app: add security headers middleware 2026-04-17 16:31:49 +01:00
auth.go dns, change, noise, auth, capver: misc consolidation 2026-06-17 16:12:19 +02:00
auth_tags_test.go test: assert NodeKey hijack is rejected on re-auth 2026-06-09 15:21:18 +02:00
auth_test.go state: return all nodes for a machine key, reject ambiguous ownership 2026-06-15 20:29:15 +02:00
debug.go all: adopt slices helpers 2026-06-17 16:12:19 +02:00
grpcv1.go all: adopt strings, errors, and os helpers 2026-06-17 16:12:19 +02:00
grpcv1_test.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
handlers.go handlers: set verify Content-Type before writing the body 2026-06-17 16:12:19 +02:00
handlers_test.go handlers: set verify Content-Type before writing the body 2026-06-17 16:12:19 +02:00
metrics.go metrics, policy/v2: drop unused scaffolding + nil-error returns 2026-05-19 09:55:22 +02:00
noise.go dns, change, noise, auth, capver: misc consolidation 2026-06-17 16:12:19 +02:00
noise_test.go noise: re-delegate SSH check when the auth session is missing (#3306) 2026-06-10 11:48:02 +02:00
oidc.go util, db: generate key material as hex via tailscale rands 2026-06-17 16:12:19 +02:00
oidc_confirm_test.go all: annotate gosec false positives with rationale 2026-05-19 09:55:22 +02:00
oidc_cookiename_test.go oidc: avoid slice panic in getCookieName for short values 2026-06-08 10:04:49 +02:00
oidc_template_test.go oidc: render HTML error pages for browser-facing failures 2026-04-13 17:23:47 +01:00
oidc_test.go hscontrol: satisfy golangci-lint on changed lines 2026-06-09 15:21:18 +02:00
platform_config.go hscontrol: consolidate debug-endpoint and template helpers 2026-06-17 16:12:19 +02:00
platform_config_test.go hscontrol: read Apple platform via chi.URLParam, not mux.Vars 2026-06-05 15:00:59 +02:00
poll.go state, poll: refcount poll sessions, mark offline only on last release 2026-06-11 16:28:25 +02:00
poll_test.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
realip.go all: adopt slices helpers 2026-06-17 16:12:19 +02:00
realip_test.go hscontrol: gate proxy header trust on trusted_proxies 2026-05-18 17:17:55 +02:00
tailsql.go policy, mapper, capver, hscontrol: remove dead code 2026-06-17 16:12:19 +02:00
templates_consistency_test.go Update links to Tailscale documentation 2026-04-18 09:33:41 +02:00