This changelog follows the keep a changelog format. This project adheres to Semantic Versioning.

Unreleased

2.0.0 - 2026-09-08

Added

  • Accept a single string or URI struct as :allowed_redirect_uris.
  • Add the SafeRedirect.uri_source/0, SafeRedirect.allowed_redirect_uris/0, and SafeRedirect.opts/0 types.

Changed

  • Raise ArgumentError if invalid options are passed as :allowed_redirect_uris.
  • Raise ArgumentError if an unsupported option key is passed.
  • Raise ArgumentError if an allowed redirect URI has no scheme or host.
  • Raise ArgumentError if an allowed redirect URI has a path, query string, fragment, or userinfo.
  • Raise ArgumentError if the host of an allowed redirect URI has a trailing dot.
  • Raise ArgumentError if an allowed redirect URI cannot be parsed.
  • Always set the response content type to text/html when redirecting a Plug.Conn.

Fixed

1.0.2 - 2026-07-30

Security

  • Do not accept protocol-relative URLs with a path.

1.0.1 - 2025-10-10

Fixed

1.0.0 - 2025-10-10

Initial release