diff options
Diffstat (limited to 'app/validators')
5 files changed, 60 insertions, 169 deletions
diff --git a/app/validators/gitlab/utils/zoom_url_validator.rb b/app/validators/gitlab/utils/zoom_url_validator.rb deleted file mode 100644 index 57e30dcefa6..00000000000 --- a/app/validators/gitlab/utils/zoom_url_validator.rb +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -# Gitlab::Utils::ZoomUrlValidator -# -# Custom validator for zoom urls -# -module Gitlab - module Utils - class ZoomUrlValidator < ActiveModel::EachValidator - ALLOWED_SCHEMES = %w(https).freeze - - def validate_each(record, attribute, value) - links_count = Gitlab::ZoomLinkExtractor.new(value).links.size - valid = Gitlab::UrlSanitizer.valid?(value, allowed_schemes: ALLOWED_SCHEMES) - - return if links_count == 1 && valid - - record.errors.add(:url, 'must contain one valid Zoom URL') - end - end - end -end diff --git a/app/validators/gitlab/zoom_url_validator.rb b/app/validators/gitlab/zoom_url_validator.rb new file mode 100644 index 00000000000..c752cec07c2 --- /dev/null +++ b/app/validators/gitlab/zoom_url_validator.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Gitlab + # Gitlab::Utils::ZoomUrlValidator + # + # Custom validator for zoom urls + # + # @example usage + # validates :url, 'gitlab/zoom_url': true + class ZoomUrlValidator < ActiveModel::EachValidator + ALLOWED_SCHEMES = %w(https).freeze + + def validate_each(record, attribute, value) + links_count = Gitlab::ZoomLinkExtractor.new(value).links.size + valid = Gitlab::UrlSanitizer.valid?(value, allowed_schemes: ALLOWED_SCHEMES) + + return if links_count == 1 && valid + + record.errors.add(:url, 'must contain one valid Zoom URL') + end + end +end diff --git a/app/validators/json_schemas/cluster_agent_authorization_configuration.json b/app/validators/json_schemas/cluster_agent_authorization_configuration.json new file mode 100644 index 00000000000..f3de0b7043b --- /dev/null +++ b/app/validators/json_schemas/cluster_agent_authorization_configuration.json @@ -0,0 +1,6 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Cluster Agent configuration for an authorized project or group", + "type": "object", + "additionalProperties": true +} diff --git a/app/validators/json_schemas/dast_profile_schedule_cadence.json b/app/validators/json_schemas/dast_profile_schedule_cadence.json new file mode 100644 index 00000000000..5583acfa5af --- /dev/null +++ b/app/validators/json_schemas/dast_profile_schedule_cadence.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Dast profile schedule cadence schema", + "type": "object", + "anyOf": [ + { + "properties": { + "unit": { "enum": ["day"] }, + "duration": { "enum": [1] } + } + }, + { + "properties": { + "unit": { "enum": ["week"] }, + "duration": { "enum": [1] } + } + }, + { + "properties": { + "unit": { "enum": ["month"] }, + "duration": { "enum": [1, 3 ,6] } + } + }, + { + "properties": { + "unit": { "enum": ["year"] }, + "duration": { "enum": [1] } + } + } + ] +} diff --git a/app/validators/json_schemas/error_tracking_event_payload.json b/app/validators/json_schemas/error_tracking_event_payload.json index 19abde7de08..52efcf6800c 100644 --- a/app/validators/json_schemas/error_tracking_event_payload.json +++ b/app/validators/json_schemas/error_tracking_event_payload.json @@ -2,161 +2,15 @@ "description": "Error tracking event payload", "type": "object", "required": [], - "modules": { - "type": "object" - }, "properties": { - "event_id": { - "type": "string" - }, - "level": { - "type": "string" - }, - "timestamp": { - "type": "string" - }, - "release": { - "type": "string" - }, "environment": { "type": "string" }, - "server_name": { - "type": "string" - }, - "message": { - "type": "string" - }, - "user": { - "type": "object", - "required": [], - "properties": {} - }, - "tags": { - "type": "object", - "required": [], - "properties": { - "request_id": { - "type": "string" - } - } - }, - "contexts": { - "type": "object", - "required": [], - "properties": { - "os": { - "type": "object", - "required": [], - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - }, - "build": { - "type": "string" - }, - "kernel_version": { - "type": "string" - } - } - }, - "runtime": { - "type": "object", - "required": [], - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - } - }, - "trace": { - "type": "object" - } - } - }, - "fingerprint": { - "type": "array", - "items": { - "type": "string" - } - }, - "breadcrumbs": { - "type": "object", - "required": [], - "properties": { - "values": { - "type": "array", - "items": { - "type": "object", - "required": [], - "properties": { - "category": { - "type": "string" - }, - "data": { - "type": "object" - }, - "message": { - "type": "string" - }, - "timestamp": { - "type": "number" - } - } - } - } - } - }, - "transaction": { - "type": "string" - }, "platform": { "type": "string" }, "sdk": { - "type": "object", - "required": [], - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - } - }, - "request": { - "type": "object", - "required": [], - "properties": { - "url": { - "type": "string" - }, - "method": { - "type": "string" - }, - "headers": { - "type": "object" - }, - "env": { - "type": "object", - "required": [], - "properties": { - "SERVER_NAME": { - "type": "string" - }, - "SERVER_PORT": { - "type": "string" - } - } - } - } + "type": "object" }, "exception": { "type": "object", |