shrub/sur/dns-bind.hoon

60 lines
1.2 KiB
Plaintext
Raw Normal View History

|%
:: +provider: DNS service provider (gcloud only for now)
::
+$ provider
$% [%fcloud zone=@ta auth=[email=@t key=@t]]
[%gcloud project=@ta zone=@ta auth=(unit [access=@t refresh=@t])]
==
:: +authority: responsibility for a DNS zone
::
+$ authority
$: :: dom: authority over a fully-qualified domain
::
dom=turf
:: pro: DNS service provider
::
pro=provider
==
:: +target: a ship is bound to a ...
::
+$ target
$% :: %direct: an A record
::
[%direct %if p=@if]
:: %indirect: a CNAME record
::
[%indirect p=ship]
==
:: +bound: an established binding, plus history
::
+$ bound
$: :: wen: established
::
wen=@da
:: id: binding UUID (unused by gcloud)
::
id=@ta
:: cur: current target
::
cur=target
:: hit: historical targets
::
hit=(list (pair @da target))
==
:: +nameserver: a b s o l u t e p o w e r
::
+$ nameserver
$: aut=authority
bon=(map ship bound)
dep=(jar ship (pair ship target))
pen=(map ship target)
==
:: +command: top-level app actions
::
+$ command
$% [%authority aut=authority]
[%bind for=ship him=ship tar=target]
[%bond for=ship him=ship dom=turf]
==
--