Skip to content

Add a provider

Research first

Document responsible organization, coverage, data kind, properties, spatial support, depths, methods, access path, authentication, quotas, license, citation, reliability, update/version behavior, and known limitations. Distinguish the underlying database from applications or derivative products.

Implement the adapter

  1. Add or update the provider registry record without marking it supported.
  2. Implement ProviderAdapter outside route handlers.
  3. Validate provider-specific inputs and allowlist request fields.
  4. Bound rows, area, time range, payload size, and retries.
  5. Preserve the raw response where terms permit.
  6. Map records to canonical models without erasing original fields.
  7. Add provider warnings, citation, terms, uncertainty, and operational errors.
  8. Add fixtures and tests for success, empty, malformed, timeout, retry, and failure.
  9. Add an opt-in live integration test.
  10. Complete the source page and an ADR for material access/licensing choices.
  11. Mark the provider supported only after tests and deployment verification pass.

Do not

Do not accept arbitrary provider SQL or URLs, put provider code in route handlers, use live services in routine CI, invent conversions, hide modeled status, treat missing as zero, expose credentials, or copy provider records without permission.