DnsPolicy
Package:
@alchemy-unifi/network@0.1.2-nightly.20261027100339.gc70dd7b.0· Source:DnsPolicy.ts
The gateway’s local DNS: a record (A_RECORD, AAAA_RECORD,
CNAME_RECORD, MX_RECORD, SRV_RECORD, TXT_RECORD), or a
FORWARD_DOMAIN rule that sends a domain’s queries to another DNS server.
DNS policies have no name, so existing ones are adopted with --adopt by
type and domain. A domain may have several records of one type; then the
one whose other props match too is adopted. Changing type updates the
policy in place.
Creating a record
Section titled “Creating a record”An A record
import * as UnifiNetwork from "@alchemy-unifi/network";import * as Alchemy from "alchemy";import * as Effect from "effect/Effect";
export default Alchemy.Stack( "HomeNetwork", { providers: UnifiNetwork.providers(), state: UnifiNetwork.state() }, Effect.gen(function* () { yield* UnifiNetwork.DnsPolicy("home-assistant", { type: "A_RECORD", enabled: true, domain: "ha.home.arpa", ipv4Address: "192.168.2.20", ttlSeconds: 300, }); }),);A CNAME
import * as UnifiNetwork from "@alchemy-unifi/network";import * as Effect from "effect/Effect";
export const files = UnifiNetwork.DnsPolicy("files", { type: "CNAME_RECORD", enabled: true, domain: "files.home.arpa", targetDomain: "nas.home.arpa", ttlSeconds: 300,}).pipe(Effect.asVoid);Forwarding a domain
Section titled “Forwarding a domain”Send a domain’s queries to another server
import * as UnifiNetwork from "@alchemy-unifi/network";import * as Effect from "effect/Effect";
export const lab = UnifiNetwork.DnsPolicy("lab", { type: "FORWARD_DOMAIN", enabled: true, domain: "lab.home.arpa", ipAddress: "192.168.10.53",}).pipe(Effect.asVoid);