Module: Kennel::TagsValidation

Included in:
Models::Dashboard, Models::Monitor, Models::Slo, Models::SyntheticTest
Defined in:
lib/kennel/tags_validation.rb

Instance Method Summary collapse

Instance Method Details

#validate_json(data) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/kennel/tags_validation.rb', line 4

def validate_json(data)
  super

  # ideally we'd avoid duplicated tags, but that happens regularly when importing existing monitors
  data[:tags] = data[:tags].uniq

  # keep tags clean (TODO: reduce this list)
  bad_tags = data[:tags].grep(/[^A-Za-z:_0-9.\/*@!#-]/)
  invalid! :tags_invalid, "Only use A-Za-z:_0-9./*@!#- in tags (bad tags: #{bad_tags.sort.inspect})" if bad_tags.any?
end