All Use Cases

Small Model Metadata over DNS

Expose compact private model metadata through the same hosted-record read path.

The Problem

Workers may need a compact model endpoint or version document using a transport already available in the runtime.

The Solution

Store compact metadata under a private namespace and query it with that namespace's opaque token over DoH or DoT. The operator-managed Hooli model records provide tokenless parsing examples only.

Key Benefits

  • Works with standard DNS libraries
  • Namespace-scoped read credential
  • Transport parity across DNS, DoH, and DoT
  • No SDK dependency required

Security Pattern

auth-rdbqNamespace Query Token

Use encrypted DNS transport and redact the complete authenticated qname from logs.

Try It Live

Live DNS Query
dig TXT
Query breakdown:
operation:getparams:auth-rdbq<52>resource:modelnamespace:your-namespaceversion:v1

Code Examples

Terminal
# Query a private hosted record over DoT.
export RDBQ='rdbq...'
kdig +tls-ca +tls-hostname=dot.resolvedb.io @dot.resolvedb.io \
  TXT "get.auth-${RDBQ}.config.your-namespace.v1.resolvedb.net"
Python
import base64
import json
import os
import dns.message
import dns.query

token = os.environ["RDBQ"]
name = f"get.auth-{token}.config.your-namespace.v1.resolvedb.net"
query = dns.message.make_query(name, "TXT")
response = dns.query.https(query, "https://doh.resolvedb.io/dns-query")
record = next(iter(response.answer[0]))
txt = b"".join(record.strings).decode("utf-8")
metadata_text, payload = txt.split(";d=", 1)
metadata = dict(field.split("=", 1) for field in metadata_text.split(";"))
if metadata.get("e") == "b64":
    payload = base64.b64decode(payload).decode("utf-8")
config = json.loads(payload)
JavaScript
const token = process.env.RDBQ
const name = `get.auth-${token}.config.your-namespace.v1.resolvedb.net`
const url = `https://doh.resolvedb.io/resolve?name=${encodeURIComponent(name)}&type=TXT`
const response = await fetch(url)
const dns = await response.json()
const chunks = dns.Answer[0].data.match(/"(?:\\.|[^"\\])*"/g) ?? []
const txt = chunks.map((chunk) => JSON.parse(chunk)).join('')
const marker = ';d='
const index = txt.indexOf(marker)
const metadata = Object.fromEntries(
  txt.slice(0, index).split(';').map((field) => field.split('=', 2)),
)
let payload = txt.slice(index + marker.length)
if (metadata.e === 'b64') payload = Buffer.from(payload, 'base64').toString('utf8')
const config = JSON.parse(payload)
Go
token := os.Getenv("RDBQ")
name := fmt.Sprintf("get.auth-%s.config.your-namespace.v1.resolvedb.net", token)
endpoint := "https://doh.resolvedb.io/resolve?name=" + url.QueryEscape(name) + "&type=TXT"
response, err := http.Get(endpoint)
if err != nil { log.Fatal(err) }
defer response.Body.Close()
var dnsResponse struct { Answer []struct { Data string } }
if err := json.NewDecoder(response.Body).Decode(&dnsResponse); err != nil { log.Fatal(err) }
rr, err := dns.NewRR("example. 0 IN TXT " + dnsResponse.Answer[0].Data)
if err != nil { log.Fatal(err) }
txt := strings.Join(rr.(*dns.TXT).Txt, "")
parts := strings.SplitN(txt, ";d=", 2)
if len(parts) != 2 { log.Fatal("missing UQRP data") }
metadata := map[string]string{}
for _, field := range strings.Split(parts[0], ";") {
    pair := strings.SplitN(field, "=", 2)
    if len(pair) == 2 { metadata[pair[0]] = pair[1] }
}
payload := []byte(parts[1])
if metadata["e"] == "b64" {
    payload, err = base64.StdEncoding.DecodeString(parts[1])
    if err != nil { log.Fatal(err) }
}
var config map[string]any
if err := json.Unmarshal(payload, &config); err != nil { log.Fatal(err) }

Comparison

FeatureResolveDBAlternative
Client dependencyDNS or HTTP libraryRegistry-specific SDK
Private cache behaviorTTL 0Varies
Payload scopeCompact metadataOften arbitrary documents

Frequently Asked Questions

Does this replace a full artifact registry?

No. ResolveDB serves compact metadata only. Store model artifacts in an artifact store and place only the endpoint, version, digest, or routing metadata in the hosted record.

Can a private record include model-name parameters?

Yes. Put the auth label first, followed by the record parameters and resource: get.auth-rdbq<52>.model-v2.routing.<namespace>.v1.resolvedb.net.

Is the Hooli model record customer data?

No. Hooli is an operator-managed public-read demo namespace and cannot be claimed or modified by customers.

Ready to get started?

Create an account and start storing data in under a minute.