# App Identity for Elixir Changelog ## 1.3.2 / 2023-09-05 - Resolved an issue where padlock values sent using lowercase hex values were not comparing properly. Added tests for the case as well as an additional validation doctest. ## 1.3.1 / 2023-07-20 - Packages released to hex.pm by default include the `priv/` directory, but nothing is done to ensure that those packages include anything other than the literal files. The `priv/` directory contained two symbolic links (`optional.json` and `required.json`) which were symlinks to the project integration suite generators, only used in integration testing. ## 1.3.0 / 2023-07-19 - Rename many spec uses of `String.t()` to `binary()` as we do not necessarily require UTF-8. - Extensive reorganization of the `AppIdentity.Plug` documentation to improve the readability of the configuration. - Refactored configuration into `AppIdentity.Plug.Config` from the plug itself. This was done in part to resolve a Dialyzer issue. - Add `on_resolution` and `on_success` callbacks in `AppIdentity.Plug.Config` to better support various workflows (such as adding proof validation results to `Logger.metadata/1`). - Extended the `AppIdentity.Plug.Config.finder` callback to accept a tuple `{module, function}`. - Improved `AppIdentity.Plug.Config` telemetry context formatting to include the plug `name`. ## 1.2.0 / 2023-07-07 - Add support for header groups in `AppIdentity.Plug` to better handle fallback headers. Kinetic’s original Elixir implementation always verified only the _first_ value from a _list_ of headers, like so: ```elixir with [] <- Conn.get_req_header(conn, "header-1"), [] <- Conn.get_req_header(conn, "header-2"), [] <- Conn.get_req_header(conn, "header-3") do :error else [value | _] -> {:ok, value} end ``` AppIdentity.Plug always processes all values of a header and puts the result in a map with the header name as the key, it meant that each header result would need to be checked individually. Instead, the `header_groups` option collects _related_ headers into a single result key: ```elixir plug AppIdentity.Plug, header_groups: %{ "app" => ["header-1", "header-2", "header-3"] }, ... ``` - Add support for alternate names so that `AppIdentity.Plug` can be specified multiple times in a pipeline and will store its data separately. ## 1.1.0 / 2023-03-28 - Add optional Telemetry support. If `:telemetry` is in your application's dependencies, and Telemetry support is not explicitly disabled, events will be emitted for `AppIdentity.generate_proof/2`, `AppIdentity.verify_proof/3`, and `AppIdentity.Plug`. Disable by adding this line to your application's configuration:' ```elixir config :app_identity, AppIdentity.Telemetry, enabled: false ``` - Fixed various issues on Elixir 1.10. ## 1.0.0 / 2022-09-07 - Initial release.