Files
go-dns/.cursor/rules/project-specification.mdc
T

34 lines
1.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: go-dns — Go library for dynamic DNS updates (RFC 2136 / nsupdate-style)
alwaysApply: true
---
# go-dns — Project Rules
Follow `docs/project-specification.md` for design and implementation.
## Stack
- **Language:** Go (see workspace `go.work` for version)
- **Module:** `gitea.neitzel.de/konrad/go-dns`
- **Package:** `godns` (module root)
- **Type:** Importable Go library (not a standalone service)
## Design
- Target **BIND** and RFC 2136–compatible authoritative nameservers
- **Dynamic update** (RFC 2136) and **full zone transfer** (AXFR) over DNS
- **TSIG** authentication with caller-supplied keys (no key generation in library)
- Typed **RR builders** per record type (not generic rdata strings)
- Domain names: **ASCII only** in v1
- UPDATE: **automatic TCP fallback** on UDP truncation
- Integration tests: **BIND testcontainer** (`go test -tags=integration ./...`)
- **`docs/bind-tsig-configuration.md`** — BIND `allow-update` / `allow-transfer` guide (implementation phase)
- Typed **zone data structures** (`Record`, `Zone`, etc.) for transfer/update results
- Project `.cursor` overrides workspace rules for this module
## Tests
- Unit: `go test ./...`
- Integration: `go test -tags=integration ./...` — **BIND testcontainer** (Docker required)