Changelog

View Source

v2.1.0

Enhancements

  • Add support for Elixir 1.18.4 and OTP 28
  • Migrate from Tesla.Builder to runtime configuration to fix deprecation warnings
  • Switch from Mint to Finch adapter for better performance and connection pooling
  • Add CI testing matrix to test against multiple Elixir/OTP version combinations:
    • Elixir 1.16.0 with OTP 26.0 (earliest supported)
    • Elixir 1.16.3 with OTP 26.2
    • Elixir 1.17.3 with OTP 27.1
    • Elixir 1.18.1 with OTP 27.2
    • Elixir 1.18.4 with OTP 28.0 (latest)
  • Update dependencies to latest versions:
    • castore 1.0.12 → 1.0.14
    • ex_doc 0.38.0 → 0.38.2
    • plug_cowboy 2.7.3 → 2.7.4
    • tesla 1.14.1 → 1.14.3
    • mix_test_watch 1.2.0 → 1.3.0
    • credo 1.7.11 → 1.7.12
    • mime 2.0.6 → 2.0.7 (transitive)
    • plug 1.17.0 → 1.18.0 (transitive)

Bug Fixes

  • Fix deprecated use Plug.Test warning by using import Plug.Test and import Plug.Conn
  • Fix HTTP method case sensitivity for Finch adapter (:GET:get)
  • Update timeout configuration to use Finch's receive_timeout option

Internal Changes

  • Start Finch supervisor in both test and production environments
  • Add Tesla deprecation warning suppression to config
  • Remove explicit Mint dependency as it's included transitively via Finch
  • Update LiveBook example to use Kino 0.16.0
  • Update LiveBook to use local path for testing unreleased changes
  • Add Quokka formatter plugin for enhanced code formatting
  • Apply consistent code formatting across entire codebase
  • Add .git-blame-ignore-revs to ignore formatting commits in git blame

v2.0.0

Breaking Changes

  • Removed deprecated function DocuSign.Connection.new/0
  • Removed deprecated function DocuSign.Connection.default_account/0
  • Removed deprecated :private_key configuration option (use :private_key_file or :private_key_contents)
  • See MIGRATING.md for migration guidance

Enhancements

  • Improved code organization by removing deprecated code
  • Updated LiveBook example to work with v2.0.0
  • Made LiveBook example more prominently featured in documentation

v1.4.0

Enhancements

  • Migrated from Poison to Jason for all JSON operations
    • Much faster JSON encoding/decoding (Jason is generally 2-3x faster than Poison)
    • Better compatibility with modern Elixir ecosystem
    • Maintains backward compatibility with existing code
  • Updated all model modules to use @derive Jason.Encoder instead of Poison
  • Modified RequestBuilder to use Jason.encode! for request serialization
  • Updated Deserializer to use Jason.decode for response deserialization
  • Updated OAuth2 client implementation to use Jason as serializer
  • Fixed Tesla middleware to use Jason for JSON encoding
  • Ensured Connection module properly handles different response formats
  • Improved LiveBook example for embedded signing with better state management
  • Improved ModelCleaner implementation for nil value removal
  • Updated ModelCleaner tests with more comprehensive coverage
  • Added Credo configuration to exclude auto-generated model files from linting

API Enhancements

  • Added several new model modules from latest DocuSign API:
    • EnvelopeViewDocumentSettings
    • EnvelopeViewEnvelopeCustomFieldSettings
    • EnvelopeViewRecipientSettings
    • EnvelopeViewRequest
    • EnvelopeViewSettings
    • EnvelopeViewTaggerSettings
    • EnvelopeViewTemplateSettings
    • ExternalPrimaryAccountSafelistAuthRequirements
    • Number
    • PaletteItemSettings
    • PaletteSettings
    • TemplateAutoMatch
    • TemplateAutoMatchList
    • TemplateViewRequest
    • Various UserAuthorization-related models

Documentation

  • Updated documentation to reflect the use of Jason for JSON handling
  • Improved embedded signing LiveBook example with better state management

v1.3.1

Bug Fixes

  • Fixed "INVALID_REQUEST_BODY" errors that occurred when using embedded signing functionality
  • Added ModelCleaner module to recursively remove nil values from nested structs before serializing to JSON
  • Updated RequestBuilder to clean request bodies of nil values, fixing the issue transparently
  • Added example livebook showing embedded signing workflow
  • Note: The example Livebook demonstrates using body: parameter for envelope creation as expected by the Elixir client

v1.3.0

Breaking Changes

  • Update minimum Elixir version support to "~> 1.16 or ~> 1.17 or ~> 1.18"
  • Update Poison dependency to "~> 6.0"

Enhancements

  • Fix contract type specs to match actual function implementations across the codebase
  • Add proper moduledocs and cleanup module documentation
  • Add dialyzer configuration to handle auto-generated code

Housekeeping

  • Update dependencies to latest versions
  • Replace empty @moduledoc with @moduledoc false for generated modules
  • Update toolchain versions (Erlang 27.2, Elixir 1.18.1, Node 21.7.3)

v1.2.0

Enhancements

  • Add support for configuring the private key using either :private_key_file or :private_key_contents. - :private_key_file accepts a file path to the private key, exactly like :private_key. - :private_key_contents is the contents of the private key, typically retrieved from a secrets store.

Deprecations

  • Configuring the private key with :private_key was deprecated in favour of either :private_key_file (same semantics) or :private_key_contents.

v1.1.3

Enhancements

  • Add support for configuring underlying Tesla adapter.
  • Add webhook plug to simplify DocuSign Connect integration.

v1.1.2

Breaking changes

  • Increase minimum version of dependencies

v1.1.1

Breaking Changes

  • Change minimum Elixir version to 1.12
  • Increase minimum version of dependencies