Skip to content

Non-Functional Requirements

How octodns-metaname performs.

Code Quality

NFR-1: Test Coverage

The module SHALL maintain 100% test coverage, enforced in CI.

Rationale: Two upstream dependencies (OctoDNS and Metaname API) require higher reliability standards.

NFR-2: Type Safety

The module SHALL pass mypy strict type checking.

NFR-3: Linting

The module SHALL pass ruff linting with no errors.

NFR-4: Formatting

The module SHALL be formatted with ruff format.

Compatibility

NFR-5: Python Version Support

The module SHALL support Python 3.12 and higher.

NFR-6: OctoDNS Compatibility

The module SHALL be compatible with OctoDNS 1.5.0 and higher.

NFR-7: API Compatibility

The module SHALL be compatible with the current Metaname API (v1.1).

Performance

NFR-8: Zone Synchronization

The module SHALL synchronize zones efficiently, with minimal API calls.

NFR-9: Error Handling

The module SHALL provide clear error messages for API failures, authentication issues, and configuration errors.

Security

NFR-10: Secret Management

The module SHALL NOT log or expose API keys or account references.

NFR-11: Network Security

The module SHALL use HTTPS for all API calls to Metaname.

Documentation

NFR-12: Documentation Site

The module SHALL maintain a documentation site generated with Zensical.

NFR-13: Changelog

The module SHALL maintain a changelog following the changelet pattern.