Documentation
¶
Index ¶
Constants ¶
const SchemaV1 = "workflow.dns-portfolio.export.v1"
SchemaV1 is the canonical schema identifier for a dns-portfolio export.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Portfolio ¶
type Portfolio struct {
Schema string `json:"schema"`
Sanitized bool `json:"sanitized,omitempty"`
Snapshots []Snapshot `json:"snapshots"`
}
Portfolio is the top-level export envelope for a canonical DNS catalog. Matches the "workflow.dns-portfolio.export.v1" schema used by scenario 88.
type Record ¶
type Record struct {
Type string `json:"type"`
Name string `json:"name"`
Value string `json:"value"`
TTL int `json:"ttl"`
Priority *int `json:"priority,omitempty"`
Port *int `json:"port,omitempty"`
Weight *int `json:"weight,omitempty"`
Flags *int `json:"flags,omitempty"`
Tag string `json:"tag,omitempty"`
Proxied *bool `json:"proxied,omitempty"`
Proxiable *bool `json:"proxiable,omitempty"`
}
Record is the canonical, provider-neutral DNS record type. The Value field uses json:"value" to match scenario-88's fixture shape (fixture records use "value", NOT "data").
knownTypes is advisory only — a portfolio is a SNAPSHOT of whatever the provider returns, so unknown/newer types (PTR, HTTPS, SVCB, TLSA, DNAME, …) MUST be preserved, never rejected. KnownType drives an optional warning only.
type Snapshot ¶
type Snapshot struct {
ID string `json:"id"`
Provider string `json:"provider"`
Domain string `json:"domain"`
Authority map[string]any `json:"authority,omitempty"`
Records []Record `json:"records"`
Extra map[string]any `json:"extra,omitempty"`
}
Snapshot is a flat representation of one DNS zone at a point in time. One snapshot == one zone (matches scenario-88 fixture shape: flat, no zones[]).