From d738032f8a8a2f8ca43cf03737472c913038bda2 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Thu, 5 Mar 2026 20:42:44 +0000 Subject: [PATCH] Add string length validations to user-input schemas --- .../online_store_templates/online_store_template.ex | 1 + lib/music_library/record_sets/record_set.ex | 2 ++ lib/music_library/scrobble_rules/scrobble_rule.ex | 2 ++ lib/music_library/secrets/secret.ex | 1 + 4 files changed, 6 insertions(+) diff --git a/lib/music_library/online_store_templates/online_store_template.ex b/lib/music_library/online_store_templates/online_store_template.ex index 45864fe6..86dc7574 100644 --- a/lib/music_library/online_store_templates/online_store_template.ex +++ b/lib/music_library/online_store_templates/online_store_template.ex @@ -21,6 +21,7 @@ defmodule MusicLibrary.OnlineStoreTemplates.OnlineStoreTemplate do |> validate_required([:name, :url_template]) |> validate_length(:name, min: 1, max: 100) |> validate_length(:url_template, min: 1, max: 500) + |> validate_length(:description, max: 1000) |> validate_url_template() end diff --git a/lib/music_library/record_sets/record_set.ex b/lib/music_library/record_sets/record_set.ex index 1be7d9f9..0f162628 100644 --- a/lib/music_library/record_sets/record_set.ex +++ b/lib/music_library/record_sets/record_set.ex @@ -20,6 +20,8 @@ defmodule MusicLibrary.RecordSets.RecordSet do record_set |> cast(attrs, [:name, :description]) |> validate_required([:name]) + |> validate_length(:name, min: 1, max: 100) + |> validate_length(:description, max: 10_000) end def count_by_status(record_set) do diff --git a/lib/music_library/scrobble_rules/scrobble_rule.ex b/lib/music_library/scrobble_rules/scrobble_rule.ex index 565e440d..2530ca56 100644 --- a/lib/music_library/scrobble_rules/scrobble_rule.ex +++ b/lib/music_library/scrobble_rules/scrobble_rule.ex @@ -29,6 +29,8 @@ defmodule MusicLibrary.ScrobbleRules.ScrobbleRule do scrobble_rule |> cast(attrs, [:type, :match_value, :target_musicbrainz_id, :enabled, :description]) |> validate_required([:type, :match_value, :target_musicbrainz_id]) + |> validate_length(:match_value, min: 1, max: 500) + |> validate_length(:description, max: 1000) |> unique_constraint([:type, :match_value], error_key: :match_value) end end diff --git a/lib/music_library/secrets/secret.ex b/lib/music_library/secrets/secret.ex index f2778805..2b6ac921 100644 --- a/lib/music_library/secrets/secret.ex +++ b/lib/music_library/secrets/secret.ex @@ -14,5 +14,6 @@ defmodule MusicLibrary.Secrets.Secret do secret |> cast(attrs, [:name, :value]) |> validate_required([:name, :value]) + |> validate_length(:name, min: 1, max: 100) end end