Why Ecto.Changeset.cast/3 Is Your First Line of Defense Against Bad Input
Ecto.Changeset.cast/3 whitelists permitted fields and coerces types, blocking mass-assignment attacks by construction — but it silently drops unknown keys and does no business validation. Here's how to use it well.