All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.3.0 - 2026-07-27
Added
SafeAtom.Plugfor casting named, top-level request params against per-field atom whitelists.- Rejection handling with default
:drop, built-in:halt, and custom two-arity callbacks receivingSafeAtom.Plug.Rejection. - Optional
{:plug, "~> 1.0"}dependency for applications that use the Plug helper.
0.2.0 - 2026-06-09
Added
SafeAtom.Ecto.Enum— parameterized Ecto type with requiredvalues:for string-backed atom enum fields; cast, load, and dump useSafeAtom.cast/2without unsafe atom creation on external binaries.- Optional
{:ecto, "~> 3.11"}dependency for apps that use the Ecto type.
0.1.0 - 2026-05-19
Added
SafeAtom.cast/2for whitelist-based casting of binaries and atoms without growing the atom table from untrusted input.SafeAtom.cast!/2andSafeAtom.Errorfor raising on failed casts.- Telemetry event
[:safe_atom, :cast, :rejected]whencast/2returns an error.