Skip to content

Releases: AnalogJ/lexicon

Lexicon v3.17.0

06 Nov 22:34
Compare
Choose a tag to compare

Added

  • New method to determine the actual zone name for a given FQDN. Historically it was an extraction
    of the second-level domain given well-known TLDs (eg., domain.net for www.domain.net) using
    tldextract, and usage of --delegated option to enforce a specific zone name that is useful for
    third-level domains hosted on a specific zone (eg., sub-zone sub.domain.net delegated from zone
    domain.net).
    It is now possible to use the --resolve-zone-name flag on Lexicon client to trigger an actual
    resolution of the zone name from a given FQDN using live DNS servers by leveraging dnspython
    utilities. Most of the time this makes --delegated useless, since Lexicon will be able to guess
    the correct zone name.

Lexicon v3.16.1

18 Oct 20:57
Compare
Choose a tag to compare

Added

  • Add support to Python 3.12.

Modified

  • Support older versions of requests (<2.27.0) in ovh provider.

Lexicon v3.16.0

14 Oct 18:42
Compare
Choose a tag to compare

Removed

  • Drop support for Python 3.7

Lexicon v3.15.1

13 Oct 14:29
Compare
Choose a tag to compare

Modified

  • Protect ovh provider against invalid response bodies
    that are returned sometimes by OVH APIs.

Lexicon v3.15.0

30 Sep 19:10
Compare
Choose a tag to compare

Added

  • Add pyotp Python dependency in Lexicon to help implementing OTP (one-time password)
    on providers whose API supports this kind of authentication.
  • Add OTP support on hover provider, with a new flag named --auth-totp-secret.
  • Add type marker py.typed to inform types checkers about availability of type
    annotations in Lexicon codebase.

Modified

  • Fix and modernize ReadTheDoc documentation build.
  • Better error management and resource cleanup when Client is used as a context manager.

Removed

  • Stop using cryptography in providers where only hashing is needed.

Lexicon v3.14.1

13 Aug 18:55
Compare
Choose a tag to compare

Added

  • Add back declared support to Python 3.7 for few cycles

Lexicon v3.14.0

13 Aug 09:37
Compare
Choose a tag to compare

Added

  • New way to invoke Lexicon as a library: lexicon.client.Client becomes a context manager.
    When invoked with the with keyword, it will provide an operation object that embeds the
    target provider fully authenticated (authenticate method called on the Provider).
    This operation object gives access to four methods: create_record, update_record,
    delete_record and list_records. These methods can be invoked instead of the old
    execute method to execute a specific action on the DNS zone. In this case, type,
    name, content fields do not need to be set in the config anymore, since they are
    passed directly as arguments to the new methods. Upon context manager closing, the cleanup
    method defined in the Provider is ensured to be called. See the README file of the project
    for an example of how to use this new approach.
  • Python warnings are emitted from the code to alert about the deprecations listed below.

Modified

  • Former NAMESERVER_DOMAIN variable and provider_parser function that had to be defined
    in each provider module are respectively migrated to get_nameservers
    and configure_parser static methods in each Provider class. They are defined as abstract
    in the interface and must be implemented in the concrete classes.
  • Former private methods _create_record, _modify_record, _delete_record
    and _list_records are migrated to their public counterpart create_record,
    modify_record, delete_record and list_records in each Provider class. These are
    the new abstract methods for each action that need to be implemented.
  • Method lexicon.client.Client.execute is deprecated and will be removed in Lexicon 4.
  • Package lexicon.providers, containing the actual provider implementations, is migrated to
    lexicon._private.providers. The provider implementations are not supposed to be used
    directly, please use lexicon.client.Client instead with the new methods described above.
    Package lexicon.providers stubs to lexicon._private.providers to ease the migration
    path, but it is deprecated and will be removed in Lexicon 4.
  • Module lexicon.providers.base, that contains the Provider interface to implement, is
    migrated to module lexicon.interfaces. Module lexicon.providers.base stubs
    to lexicon.interfaces to ease the migration path, but it is deprecated and will be removed
    in Lexicon 4.
  • Modules lexicon.cli, lexicon.parser and lexicon.discovery are migrated to the
    private package lexicon._private as they are not part of the public API. Old modules
    stubs to the new modules in the private package lexicon._private to ease the migration path,
    but it is deprecated and will be removed in Lexicon 4.
  • Update documentation, in particular the developer guide, to take into account the new
    architecture of the code to implement a new Provider.
  • Functional codebase in /lexicon folder is moved in /src/lexicon folder to comply with
    modern Python project layouts. Tests are migrated to /tests folder.

Removed

  • Drop support for Python 3.7

Lexicon v3.13.0

07 Aug 21:54
Compare
Choose a tag to compare

Added

  • Add wedos provider (#1675)

Modified

  • Proper handling off authentication errors on easydns provider (#1674)
  • Allow management of pending (non-active) domains in cloudflare provider (#1659)

Lexicon v3.12.0

11 Jun 20:55
Compare
Choose a tag to compare

Added

  • Add duckdns provider (experimental support) (#1533)
  • Add dnsservices provider (#1603)
  • Add flexibleengine provider (#1600)
  • Official support for Python 3.11

Modified

  • Upgrade API version used for azure provider (#1606)
  • Various fixes for documentation (#1488 #1458 #1601 #1605)
  • Fix check for extra dependencies (#1568)

Lexicon v3.11.7

26 Oct 11:04
Compare
Choose a tag to compare

Modified

  • Fix easyname provider (update action) (#1442)