Expand description
The shapes the control plane sends, written by hand (ADR-0003).
Every model here is a struct of optional fields plus a map of everything the description did not mention, so a control plane that grows a field parses today and the new field is readable without a release. Nothing is renamed on the way through: ADR-0004 has Tailscale’s bodies come back in Tailscale’s shape, so the JSON names are Tailscale’s and the Rust names exist only to be spelled in Rust.
Enums are documented strings rather than Rust enums (Q60). None of the
description’s thirty-three enumerations is a closed set; each is a list of
what exists today, so the values live in a &[&str] constant beside the
field — which is what a tool’s parameter description quotes — and the
drift test asserts the constant still says what the document says.
shapes is what makes that test possible: the model! macro writes the
struct and the list of JSON names from one source, so a field cannot be
deleted from a model and left in the table (Q61).
Modules§
- device
- Devices, the routes they advertise, their posture, and shares of them.
- dns
- The tailnet’s DNS: nameservers, search paths, split DNS and MagicDNS.
- key
- Auth keys, API access tokens, OAuth clients and federated identities.
- logging
- Audit logs, network flow logs, and streaming either of them somewhere else.
- policy
- The policy file, and what the control plane says about one.
- service
- Services: a name and a pair of addresses that several devices can host.
- tailnet
- The tailnet itself: its settings, its OAuth apps, and — for an organization that has several — the tailnets in it.
- user
- The people in a tailnet, invitations to join it, and who to email about it.
- webhook
- Webhook endpoints, and the events they subscribe to.
Structs§
- Model
Shape - One model, as the drift test sees it.
Functions§
- known_
values - Every documented string in this crate. The drift test requires this to cover the description’s enumerations exactly — no path missing, no path left over, and every list equal.
- shapes
- Every model in this crate, for the drift test to check the description against.
Type Aliases§
- Known
Values - A documented string’s known values, keyed by where the description puts it.
- Unknown
- Whatever the description did not mention.