diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c9051c07..2cc1c8d8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -190,13 +190,14 @@ refactor: extract credential detection into backends registry ## What CI Checks on Your PR -Every PR must pass **8 required checks** before merging: +Every PR must pass **9 required checks** before merging: | Check | What it does | How to run locally | |-------|-------------|-------------------| | **Test (Python 3.11)** | Unit tests on 3.11 | `uv run pytest tests/unit/` | | **Test (Python 3.12)** | Unit tests on 3.12 | (same) | | **Test (Python 3.13)** | Unit tests on 3.13 | (same) | +| **Mock Integration Tests** | Integration tests against mocked backends | `uv run pytest tests/integration/ -m "not live"` | | **Lint** | `ruff check` + `ruff format --check` | `uv run ruff check src/ && uv run ruff format --check src/` | | **Type Check** | `mypy src/dns_aid` | `uv run mypy src/dns_aid` | | **SAST (Bandit)** | Security static analysis | `uv run bandit -r src/dns_aid -c pyproject.toml` | diff --git a/README.md b/README.md index 6306ecef..1fbd9624 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Changes to protocol behavior should be discussed within the IETF. - [API Reference](docs/api-reference.md) — Python SDK, CLI, and MCP server tool reference - [ARD ai-catalog discovery](docs/ard-catalog.md) — interop with [Agentic Resource Discovery](https://agenticresourcediscovery.org/spec/): catalog discovery, the host-anywhere DNS pointer, and card dereferencing - [Architecture](docs/architecture.md) — protocol layers, metadata resolution, integration points -- [Integrations](docs/integrations.md) — backend-specific setup notes +- [Integrations](docs/integrations.md) — using DNS-AID with agent frameworks, workflow platforms and AWS - [Demo Guide](docs/demo-guide.md) — end-to-end walkthrough for talks and presentations - [Roadmap](docs/roadmap.md) — where the project is headed, near/medium/long term - [Privacy Policy](PRIVACY.md) | [Security Policy](SECURITY.md) | [Trademarks](TRADEMARKS.md) diff --git a/docs/architecture.md b/docs/architecture.md index 0e3f0be0..c61a442c 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -102,9 +102,12 @@ The DNS-AID draft defines custom SVCB parameters: | `policy` | `policy_uri` | URI to agent policy document | | `realm` | `realm` | Multi-tenant scope / authorization realm | -**Note:** AWS Route 53 does not currently support custom SVCB parameter names. -These must be encoded using the RFC 9460 generic `keyNNNNN` wire format for -Route 53 compatibility. This is tracked as a known interoperability issue. +**Note:** AWS Route 53 rejects SVCB parameters it does not recognise, including +the RFC 9460 generic `keyNNNNN` form (`InvalidChangeBatch: SVCB does not support +undefined parameters`). On Route 53, dns-aid-core publishes only the standard +SVCB parameters and moves the custom ones into the agent's TXT record as +`dnsaid_keyNNNNN=value` (see `supports_private_svcb_keys` in +`src/dns_aid/backends/base.py`). --- diff --git a/docs/getting-started.md b/docs/getting-started.md index 2e8efc26..5b2f4dc4 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -1722,7 +1722,9 @@ python examples/demo_full.py #### "Zone not found" error - Verify AWS credentials: `aws sts get-caller-identity` - Check zone exists: `dns-aid zones` -- Ensure correct region: `export AWS_DEFAULT_REGION=us-east-1` +- Check you are using the AWS account that owns the zone (for example, set + `AWS_PROFILE`). Route 53 is a global service, so the region does not change + which zones are found. #### DNS records not appearing - Wait for propagation (up to 60 seconds for Route 53) diff --git a/src/dns_aid/backends/base.py b/src/dns_aid/backends/base.py index c8057db7..9744da1e 100644 --- a/src/dns_aid/backends/base.py +++ b/src/dns_aid/backends/base.py @@ -328,8 +328,8 @@ async def publish_agent(self, agent: AgentRecord) -> list[str]: # Optional walkable AliasMode at {name}._agents.{domain} pointing # at the flat primary owner. Per draft-02 §Known Agent, operators # MAY emit this record so DNS-SD-style consumers can enumerate. - # dns-aid-core publishes it by default; callers can suppress it - # by setting publish_walkable_alias=False on the AgentRecord. + # It is off by default; callers opt in by setting + # publish_walkable_alias=True on the AgentRecord (CLI: --walkable). if agent.publish_walkable_alias: try: # AliasMode MUST point at the flat primary owner