Octodns

Latest version: v1.10.0

Safety actively analyzes 675368 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 10

0.9.20

Noteworthy changes

* Added support for automatic handling of IDNA (utf-8) zones. Everything is
stored IDNA encoded internally. For ASCII zones that's a noop. For zones with
utf-8 chars they will be converted and all internals/providers will see the
encoded version and work with it without any knowledge of it having been
converted. This means that all providers will automatically support IDNA as of
this version. IDNA zones will generally be displayed in the logs in their
decoded form. Both forms should be accepted in command line arguments.
Providers may need to be updated to display the decoded form in their logs,
until then they'd display the IDNA version.
* IDNA value support for Record types that hold FQDNs: ALIAS, CNAME, DNAME, PTR,
MX, NS, and SRV.
* Support for configuring global processors that apply to all zones with
`manager.processors`

Stuff

* Addressed shortcomings with YamlProvider.SUPPORTS in that it didn't include
dynamically registered types, was a static list that could have drifted over
time even ignoring 3rd party types.
* Provider._process_desired_zone needed to call Provider.supports rather than
doing it's own `_type in provider.SUPPORTS`. The default behavior in
Source.supports is ^, but it's possible for providers to override that
behavior and do special checking and `_process_desired_zone` wasn't taking
that into account.
* Now that it's used as it needed to be YamlProvider overrides
Provider.supports and just always says Yes so that any dynamically registered
types will be supported.
* Add TtlRestrictionFilter processor for adding ttl restriction/checking
* NameAllowlistFilter & NameRejectlistFilter implementations to support
filtering on record names to include/exclude records from management.
* All Record values are now first class objects. This shouldn't be an externally
visible change, but will enable future improvements.
* --quiet command line option added to raise log level to WARNING, plan
output now comes from `plan` logger rather than `Manager` so that it can stay
at info
* --logging-config command line option added to allow complete logging config
customization, see
https://docs.python.org/3/library/logging.config.html#logging-config-dictschema
for file format and
https://github.com/octodns/octodns/pull/945#issuecomment-1262839550 for an
example config

0.9.19

* Fixed issue with sub-zone handling introduced in 0.9.18

0.9.18

* Added octodns.idna idna_encode/idna_decode helpers, providers will need to
individually add support via these helpers though :-/
* `black` formatting implemented (including .git-blame-ignore-revs)
* --output-provider support for dump to allow configurable dump
formatting/details
* TLSA record type support
* Subzones support for skipping levels

0.9.17

Noteworthy changes

* The changes in plans are now ordered based on change type prior to
considering the record name and type as was previously done. The chosen
order is: deletes, creates, updates. The reason for that many providers make
changes one at a time. When changing the type of a record, e.g. from A to
CNAME of vice versa this is done by deleting the old and creating the new.
If the CNAME create happens before the A delete it will often violate
rules against having typed records live at the same node as a CNAME. Several
providers have always handled this by sorting the changes themselves. This
just standardizes what they are doing as many other providers appear to need
to do so, but weren't. There was an ordering before, but it was essentially
arbitrarily picked.
* Record.register_type added so that providers can register custom record
types, see [docs/records.md](docs/records.md) for more information
* New `octodns-versions` command which will log out the version of octodns and
any provider/processor/plan_output modules you are using.

Stuff

* Manager includes the octoDNS version in its init log line
* Non-official release installs will now include a bit of the sha to indicate
specifically what revision is being used, e.g. 0.9.17+abcdef12, these roughly
follow PEP440 guidelines

0.9.16

Noteworthy changes

* Foundational support for root NS record management.
* YamlProvider has it enabled and in general everyone should add root NS
records that match what is in their provider(s) as of this release if they
aren't already there.
* Other providers will add root NS support over time following this release
once they have had the chance to investigate the functionality and
implement management if possible with whatever accomidations are required.
* Watch your providers README.md and CHANGELOG.md for support and more
information.
* Root NS record changes will always require `--force` indicating that they
are impactful changes that need a careful :eyes:

Stuff

* _AggregateTarget has more complete handling of SUPPORTS* functionality,
mostly applicable for the compare operation.
* Fix null MX record validation error introduced in 0.9.15, `.` is again
allowed as a valid `exchange` value.

0.9.15

Noteworthy changes

* Providers extracted from octoDNS core into individual repos
https://github.com/octodns/octodns/issues/622 &
https://github.com/octodns/octodns/pull/822 for more information.
* [AzureProvider](https://github.com/octodns/octodns-azure/)
* [AkamaiProvider](https://github.com/octodns/octodns-edgedns/)
* [CloudflareProvider](https://github.com/octodns/octodns-cloudflare/)
* [ConstellixProvider](https://github.com/octodns/octodns-constellix/)
* [DigitalOceanProvider](https://github.com/octodns/octodns-digitalocean/)
* [DnsimpleProvider](https://github.com/octodns/octodns-dnsimple/)
* [DnsMadeEasyProvider](https://github.com/octodns/octodns-dnsmadeeasy/)
* [DynProvider](https://github.com/octodns/octodns-dynprovider/)
* [EasyDnsProvider](https://github.com/octodns/octodns-easydns/)
* [EtcHostsProvider](https://github.com/octodns/octodns-etchosts/)
* [GandiProvider](https://github.com/octodns/octodns-gandi/)
* [GcoreProvider](https://github.com/octodns/octodns-gcore/)
* [GoogleCloudProvider](https://github.com/octodns/octodns-googlecloud/)
* [HetznerProvider](https://github.com/octodns/octodns-hetzner/)
* [MythicBeastsProvider](https://github.com/octodns/octodns-mythicbeasts/)
* [Ns1Provider](https://github.com/octodns/octodns-ns1/)
* [OvhProvider](https://github.com/octodns/octodns-ovh/)
* [PowerDnsProvider](https://github.com/octodns/octodns-powerdns/)
* [RackspaceProvider](https://github.com/octodns/octodns-rackspace/)
* [Route53Provider](https://github.com/octodns/octodns-route53/) also
AwsAcmMangingProcessor
* [SelectelProvider](https://github.com/octodns/octodns-selectel/)
* [TransipProvider](https://github.com/octodns/octodns-transip/)
* [UltraDnsProvider](https://github.com/octodns/octodns-ultradns/)
* As part of the extraction work octoDNS's requirements (setup.py and .txt
files) have been updated and minimized and a helper script,
script/update-requirements has been added to help manage the txt files going
forward.

Prior to extraction

* NS1 provider has received improvements to the dynamic record implementation.
As a result, if octoDNS is downgraded from this version, any dynamic records
created or updated using this version will show an update.
* An edge-case bug related to geo rules involving continents in NS1 provider
has been fixed in this version. However, it will not show/fix the records that
match this edge-case. See https://github.com/octodns/octodns/pull/809 for
more information. If octoDNS is downgraded from this version, any dynamic
records created or updated using this version and matching the said edge-case
will not be read/parsed correctly by the older version and will show a diff.
* Transip was updated to their new client api

Stuff

* Additional FQDN validation to ALIAS/CNAME value, MX exchange, SRV target and
tests of the functionality.
* Improvements around dynamic record value weights allowing finer grained
control

Page 5 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.