Expand description
Wire shapes of Core resources (../core/src/models.ts). Enums are string labels on the
wire (../core/src/api/enum_labels.ts); unknown labels must not fail deserialization.
Timestamps are Unix seconds unless a field says otherwise.
Structs§
- Audit
Log - One audit log entry: who did what to which resource, and how it ended
(
AuditLogs). Fields Core does not know, or does not show the caller, areNone. Enum values are kept as strings (forward compatibility); the known ones are listed per field. - Certificate
- A TLS certificate Relay serves for the names in it, picked by SNI (exact name, then a one-label wildcard). Core never returns the private key; the details are read from the stored chain.
- Certificate
Renewal PUT /certificates/:uuidbody: a renewal (new chain and key under the same id).Debugdoes not show the key.- Client
Identity - A client that Relay recognises (by source IP, DoT hostname or DoH path), so that sinkhole lists can be linked to it.
- Client
Identity Patch PATCH /client-identities/:uuidbody;Nonefields stay unchanged.- Created
Sinkhole List - What
SinkholeLists::createreturns: the list and the links made fromNewSinkholeList::link_to. - Discovery
- What
Zones::discoverfound. - Free
Domain List - The platform’s free domains (
GET /free-domains): below each, any user can lease one subdomain as their own zone, withZones::create. - Free
Label Availability - Whether
<label>.<domain>can be leased now (GET /free-domains/:domain/available). - GeoBan
- A geo ban on one record value: Relay does not answer with that value to clients in the area. Applies to A and AAAA values only; Relay ignores bans on other types.
- GeoCatalog
- The regions, sub-regions and countries a geo ban can name (ISO 3166-1 + UN M49), as
Core serves them from Relay’s country table (
GET /api/v1/geo). A geo bancodeis valid only if it is in here at its level. - GeoCountry
- A country or territory.
- GeoRegion
- A UN M49 region.
- GeoSubregion
- A UN M49 sub-region.
- Health
GET /api/health(../core/src/status.ts). Values are kept as strings so a new state never breaks parsing.- Health
Check - A health check on one record value (
record_idis its key: one check per value). Durations are seconds, as on the wire. It runs only while the value’shost_healthisAuto; there is no separate on/off switch. - Health
Check Patch PATCH /health-checks/:record_idbody;Nonefields stay unchanged.config, when given, replaces the whole config and must match the existing type (the type cannot change). Core checks the run-length rule ofNewHealthCheckagainst the patch combined with the stored values.- Http
Check - Settings of an
httpcheck. - Import
Issue - One remark of an
ImportReport. - Import
Records Report - Records of an
ImportReport. - Import
Redirects Report - Redirects of an
ImportReport(dinio-zone documents only). - Import
Report - What an import did, or would do (
Zones::import). - NewCertificate
POST /certificatesbody for a zone certificate.Debugdoes not show the key.- NewClient
Identity POST /client-identitiesbody.- NewHealth
Check POST /health-checksbody. Besides the ranges below, Core requires one run to end before the next is due:timeout × (retries + 1) + retry_interval × retries < interval(withretry_interval5 whenNone), otherwiseErrorCode::Validation.- NewRecord
Value POST /recordsbody.ttlis required when the group does not exist yet (also after its last value was deleted), and must match the group’s TTL otherwise.- NewRedirect
POST /redirectsbody.- NewSinkhole
List POST /sinkhole-listsbody. A list starts without rules; add them withSinkholeRoles::create.- NewSinkhole
Role POST /sinkhole-rolesbody.- Ping
Check - Settings of a
pingcheck. - Record
Set - An RRset (“group”): every value with the same (zone_id, name, type), all with the same
ttl. Core stores no RRset of its own (no uuid, no timestamps); it assembles one forRecords::getandRecords::set_ttl, andops::group_valuesdoes the same for a list of values.nameis the full owner name, lowercase, without trailing dot. - Record
Value - One member of an RRset, with its own uuid.
datais in Core’s canonical text form (e.g. names inside rdata as FQDNs with a trailing dot, TXT quoted). - Record
Value Patch PATCH /records/:uuidbody;Nonefields are left unchanged. TTL, name and type cannot be changed here.- Redirect
- An HTTP(S) redirect that Relay answers for a host name inside one of the caller’s zones.
- Redirect
Certificate - The automatic certificate of a redirect with
tls=Auto. - Redirect
Patch PATCH /redirects/:namebody;Nonefields stay unchanged. The name (and so the zone) cannot change.- Sinkhole
Link - A sinkhole list applied to a client identity. Identified by the pair of ids (there is no link id). Cannot be changed: delete it and create another.
- Sinkhole
List - A list of sinkhole rules (names to block or to allow). It applies to the client
identities linked to it (
SinkholeLink). - Sinkhole
List Patch PATCH /sinkhole-lists/:uuidbody;Nonefields stay unchanged, at least one must be set.- Sinkhole
Role - One rule of a sinkhole list (Core calls rules “roles”).
- Sinkhole
Role Patch PATCH /sinkhole-roles/:uuidbody;Nonefields stay unchanged. The result must still fit together (seeNewSinkholeRole::pattern). The list cannot change.- Stats
Peak - The busiest step of a
StatsSeries. - Stats
Series - One series of a
StatsSeriesResult. - Stats
Series Result - A chart-ready set of series over one time range (zone queries, client events and rcodes).
- Stats
TopItem - One entry of a
StatsTopList. Counts are estimates summed over Relays and windows. - Stats
TopList - A top list (non-existent names of a zone, names blocked for clients).
- TcpCheck
- Settings of a
tcpcheck. - User
- A Dinio user account. A non-Admin can read only their own
(
Users::get). - Zone
- A DNS zone (
example.com). - Zone
DocGeo Ban - A geo ban inside a
ZoneDocRecord. - Zone
DocHealth Check - A health check inside a
ZoneDocRecord:POST /health-checkswithoutrecord_id, same limits. - Zone
DocRecord - One record value of a
ZoneDocument. - Zone
DocRedirect - A redirect inside a
ZoneDocument. - Zone
Document - The dinio-zone document (
format: "dinio-zone",version: 1): Core’s own export format, and whatZones::discoverproposes. - Zone
Member - A user’s access to a zone. The creator of a zone is its only
Owner; the Owner delegatesAdministratoraccess to others. Both manage the zone’s records; only the Owner deletes the zone and manages its members. - Zone
Name Stats - One name of
ZoneNamesStats. - Zone
Names Stats - A zone’s busiest names (
Stats::zone_names). - Zone
NxStats - NXDOMAIN answers under a zone (
Stats::zone_nx).
Enums§
- Acme
Status - State of an automatically issued certificate (
RedirectCertificate.status). - Certificate
Source - Where a certificate comes from (
Certificate.source). - Client
Identity Type - How Relay recognises a client (
ClientIdentity.id_type,../core/src/api/enum_labels.ts). - Health
Check Config - What to check. Serialized as
"type"+"config"(../core/src/api/health_checks.ts). - Host
Health Mode - How Relay decides whether a record value is healthy (
RecordValue.host_health). An unhealthy value is left out of answers. - Record
Manager - Who keeps a record value on the user’s behalf (
RecordValue.managed_by). - Redirect
Tls - Where the HTTPS certificate of a redirect comes from (
Redirect.tls). - Sinkhole
List Type - Kind of sinkhole list (
SinkholeList.type,../core/src/api/enum_labels.ts). - Sinkhole
Role Type - How a rule’s pattern matches a name (
SinkholeRole.sinkhole_type). - Zone
DocHost Health host_healthof aZoneDocRecord. Core exports a mode label; documents exported before 2026-10-28 carry a boolean, which Core still imports.- Zone
File Format - File format of a zone export or import (
?format=).
Constants§
- REDIRECT_
CODES - Status codes Core accepts for a redirect.