Latest Releases: Python SDK & Ansible Collection Updates
CompletedI'm excited to share some updates to our open source tools. These changes simplify your DNS management and make it easier to integrate our services into your workflow. In this release, you'll find new features, bug fixes, and enhancements in both our Python SDK and Ansible Collection.
Python SDK Updates
v2.2.4 – Housekeeping and Custom Headers
-
Codebase Improvements:
- Updated file structure to align with best practices by removing obsolete files and ensuring consistency (e.g.,
setup.py,pyproject.toml,.gitignore). - Made classes like
RestApiConnectionmore accessible by moving them to the package’s__init__.py.
- Updated file structure to align with best practices by removing obsolete files and ensuring consistency (e.g.,
-
Custom Headers Feature:
- Added constructors to both
RestApiClientandRestApiConnectionthat let you set custom HTTP headers right from initialization. - Introduced a method to modify headers even after instantiating your client. Note that some headers (e.g.,
Content-Type,Authorization, andAccept) remain protected and will raise aValueErrorif manually altered.
- Added constructors to both
-
Documentation:
- Updated the README with clear examples on using these new features.
v2.2.5 – Proxy Support, TLS Options & RD Pools
-
Proxy & TLS Features:
- Integrated proxy support, plus the ability to explicitly disable TLS validation when needed.
- TLS validation warnings are now suppressed by default, simplifying development when working in environments that require proxying.
-
DNS Management:
- Resign Zone Method: Quickly resign DNSSEC-signed zones via a new client method.
- RD Pools: Manage record distribution more effectively with new methods for creating, editing, retrieving, and deleting RD pools. Updated examples in the README now guide you through both A and AAAA pool configurations.
v2.3.0 – Expanded Endpoints and Asynchronous Utilities
-
New Client Endpoints:
-
Health Check & Dangling CNAMEs:
- Easily initiate and retrieve health checks for your zones.
- Perform dangling CNAME checks with dedicated endpoints.
- Note: Dangling CNAME detection is a brand new feature! Read more on Enrique's post here.
-
Advanced Reporting:
- Generate advanced NX Domain reports to track queries for non-existent hosts.
- Create Projected Query Volume and Zone Query Volume reports with customizable sorting and pagination options.
-
Zone Snapshot Management:
- Create, retrieve, and restore zone snapshots with dedicated endpoints.
-
Health Check & Dangling CNAMEs:
-
Utilities for Asynchronous Workflows:
- TaskHandler: Automates polling for endpoints that return a task ID or location.
- ReportHandler: Simplifies report generation by automatically polling until report results are available.
-
Additional Resources:
- Documentation updated and example scripts have been added in the
examples/directory to help you get started quickly.
- Documentation updated and example scripts have been added in the
Ansible Collection Update – v1.0.3
What’s New?
-
Connection Module Overhaul:
- The base connection module now leverages the official
ultra_rest_clientinstead of a custom requests wrapper, ensuring code consistency.
- The base connection module now leverages the official
-
Fixes and Enhancements:
- Resolved an issue with solo record playbook re-runs where missing modifications to `rdata` would previously cause errors.
- Introduced PATCH functionality allowing you to update TTL values without needing to re-specify the entire
rdatapayload.
Looking Ahead
We're already planning more improvements:
- Cross-Client Consistency: Bringing feature parity between our Python and Go clients, along with general enhancements to the Go client.
- Advanced Record Management: Introducing advanced resource record (pool record) management in the Ansible Collection.
- Terraform Provider Enhancements: Support for setting TC pool record notification emails.
Your feedback is essential. If you have ideas for new features or come across any bugs, please open an issue on our GitHub repositories.
Happy coding.