Files
go-dns/.cursor/rules/project-specification.mdc
T
Konrad NeitzelandCursor eff7637f86 docs: add BIND TSIG guide and align project documentation
Create bind-tsig-configuration.md for allow-update and allow-transfer
setup. Link from README and project spec; extend .gitignore for .env files.
Record implementation decisions for change C-00001-setup-project.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 14:27:03 +02:00

34 lines
1.2 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
- 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)