import zone export

This block is part of the dns group and was last modified in core v15.0.0.

import zone export v15.0.0

Read a Route53 export and hand back the records, the SOA timers and the delegation, ready to store.

In pins 3 + flow
  • flow
    flow
  • Zone required
    value

    The zone this export belongs to, for example deverence.com.

  • Export required
    object

    The Route53 export: the AWS document, a bare array of record sets, or either as JSON text. Entries may also carry lowercase policy/slot/note to seed a zone group in one call.

  • Allow routing policies
    condition

    Import weighted, latency, geolocation and failover records as one flat answer instead of refusing. Off by default, because a zone file cannot express the policy.

Out pins 8 + flow
  • flow
    flow
  • Success
    condition

    True when the export was imported.

  • Zone
    value

    The zone name, without its trailing dot.

  • Records
    array

    The records, each with owner, type, ttl, values and : for an ALIAS : alias_target.

  • Count
    number

    How many record sets were imported.

  • SOA
    object

    The SOA timers: mname, rname, refresh, retry, expire, minimum. No serial: that is stamped at render time.

  • Nameservers
    array

    The zone's existing apex NS set, fully qualified.

  • Warnings
    array

    Records that survived import but need a decision: ALIAS targets and, when allowed, routing policies.

  • Error
    value

    Why the export was refused.

Parses a Route53 list-resource-record-sets export into the DNS zone store's own record shape. Accepts the AWS document ({"ResourceRecordSets": [...]}), a bare array, or either as JSON text. Owners come back RELATIVE to the origin ('@' for the apex, 'www', '*'), with Route53's octal escapes expanded, which is what lets one record set render under several apexes. The apex SOA and NS are NOT records: they come back on the soa and nameservers pins, because every rendered zone carries its own delegation and a serial stamped at render time. The SOA serial is discarded deliberately. ALIAS records are kept with their target on alias_target and no values; BIND has no ALIAS, so they are resolved at render time. Records carrying a Route53 routing policy (SetIdentifier: weighted, latency, geolocation, failover) make the block REFUSE with success=false, because a zone file would have to flatten them into one arbitrary answer; allow_routing_policies imports them flat and reports each one on the warnings pin. Record order is preserved as the export gave it, which is the order the store keeps and the renderer emits. SEEDING A GROUP: a record set may also carry lowercase policy, slot and note keys, which are passed through to the record. A real AWS export never has them (its keys are TitleCase), but a caller seeding a zone group can, which makes seeding one call instead of an import followed by a PATCH per record. policy is verbatim, rewrite, per-apex or note; anything else is REFUSED rather than ignored, because ignoring it would leave the record rendering verbatim : copied to every apex, the opposite of what was asked. per-apex without a slot is refused too: a slot nobody can fill is a gap, not a decision.

route53 import
import from aws
import zone

A typical wiring for import zone export: a function trigger starts the flow; value feeds the zone pin; new object feeds the export pin; the flow out pin feeds debug.

Studio canvas example for the import zone export block: typical wiring for import zone export.

Used in these guides

These documentation pages use or explain this block:

Version history

Introduced in v15.0.0.


Back to dns Return to the main group to view all sub-groups Back to DNS zones Return to the group to view all blocks within this group