{ "client_requirement": "client_is_administrator+", "items": [ { "type": "header_page_title", "items": [ { "type": "h1", "text": "DNS Server" }, { "type": "p", "text": "Upstream resolvers and forwarding DNS service settings." } ] }, { "type": "card", "label": "Upstream DNS", "client_requirement": "client_is_administrator+", "items": [ { "type": "form", "action": "/action/dnsserver/upstreamdns_save", "method": "post", "items": [ { "type": "editable_list", "label": "DNS Providers", "name": "upstream_servers", "item_placeholder": "e.g. 1.1.1.1", "add_label": "Add Provider", "validate": "VALIDATION_IPV4_FORMAT|VALIDATION_IPV6_FORMAT", "hint": "DNS resolvers queried for external hostnames. Supports IPv4 and IPv6.", "items": "%DNS_UPSTREAM_SERVERS_JSON%" }, { "type": "field", "label": "Strict Order", "name": "strict_order", "input_type": "checkbox", "value": "%DNS_STRICT_ORDER%", "hint": "Query DNS providers in list order rather than in parallel." }, { "type": "button_row", "items": [ { "type": "button_primary", "action": "/action/dnsserver/upstreamdns_save", "method": "post", "text": "Save" }, { "type": "button_cancel", "text": "Cancel" } ] } ] } ] }, { "type": "card", "label": "DNS Forwarding", "client_requirement": "client_is_administrator+", "items": [ { "type": "form", "action": "/action/dnsserver/dnsforwarding_save", "method": "post", "items": [ { "type": "field", "label": "Cache Size", "name": "cache_size", "input_type": "number", "value": "%DNS_CACHE_SIZE%", "min": 0, "hint": "Max DNS responses to cache per instance. Set to 0 to disable caching." }, { "type": "button_row", "items": [ { "type": "button_primary", "action": "/action/dnsserver/dnsforwarding_save", "method": "post", "text": "Save" }, { "type": "button_cancel", "text": "Cancel" } ] } ] } ] } , { "type": "card", "label": "DNS Statistics", "items": [ { "type": "raw_html", "html": "%DNS_PERIOD_SELECTOR%" }, { "type": "grid", "rows": [ { "cells": [ {"type": "grid_label", "text": "Tracking Since"}, {"type": "grid_value", "text": "%DNS_METRICS_SINCE%"} ] }, { "cells": [ {"type": "grid_label", "text": "Last Updated"}, {"type": "grid_value", "text": "%DNS_METRICS_UPDATED%"} ] }, { "cells": [ {"type": "grid_label", "text": "Total Queries"}, {"type": "grid_value", "text": "%DNS_STAT_QUERIES%"} ] }, { "cells": [ {"type": "grid_label", "text": "Cache Hits"}, {"type": "grid_value", "text": "%DNS_STAT_HITS% (%DNS_STAT_HIT_RATE% hit rate)"} ] }, { "cells": [ {"type": "grid_label", "text": "Forwarded to Upstream"}, {"type": "grid_value", "text": "%DNS_STAT_FORWARDED%"} ] }, { "cells": [ {"type": "grid_label", "text": "Authoritative Answers"}, {"type": "grid_value", "text": "%DNS_STAT_AUTH%"} ] }, { "cells": [ {"type": "grid_label", "text": "TCP Peak"}, {"type": "grid_value", "text": "%DNS_STAT_TCP_PEAK%"} ] }, { "cells": [ {"type": "grid_label", "text": "Cache Capacity"}, {"type": "grid_value", "text": "%DNS_CACHE_SIZE% entries"} ] }, { "cells": [ {"type": "grid_label", "text": "Cache Evictions"}, {"type": "grid_value", "text": "%DNS_STAT_CACHE_EVICTIONS%"} ] } ] }, { "type": "raw_html", "html": "%DNS_PROVIDERS_TABLE%" } ] } ] }