Provider Development
Read the root
AGENTS.md,ddns/provider/AGENTS.md, the nearest similar provider, its tests, and the affected configuration and documentation files.Research the provider's official API documentation. Record the authentication shape, permission scope, endpoints, zone and record lookup behavior, record create/update behavior, supported record types, and TTL/route constraints. Do not use credentials or mutate a live DNS record.
Choose
BaseProviderfor APIs that query zones and records before creating or updating them; chooseSimpleProvideronly for direct update-only APIs. Reuse_http(), masking, response handling, and Python 2.7-compatible standard-library patterns from adjacent providers.Register the canonical provider ID and intentional aliases in
ddns/provider/__init__.py. Updateddns/config/field-model.json, bothprovideranddnsenums inschema/v4.1.json, and every--dnsCLI choice surface.Add deterministic mocked provider tests. Cover the supported request and response paths, matching behavior, and failures without network access or real credentials.
Add equivalent Chinese and English provider documentation under
docs/providers/anddocs/en/providers/. Keep configuration keys, provider IDs, permissions, and examples aligned. Update the provider indexes, locale navigation indocs/.vitepress/config.mts, anddocs/llms.txt.Verify with focused checks:
python -m unittest tests.test_provider_<provider> -v ruff check ddns/provider/<provider>.py tests/test_provider_<provider>.py ruff format --check ddns/provider/<provider>.py tests/test_provider_<provider>.pyThen run
python -m unittest discover tests -v,ruff check ., andruff format --check .. When documentation dependencies are already available, runnpm --prefix docs run build. Report changed files and any validation not run. Do not install dependencies, publish, or change repository settings.