Module: ActiveJob::Temporal::JobIdValidation
- Defined in:
- lib/activejob/temporal/job_id_validation.rb
Constant Summary collapse
- MAX_JOB_ID_LENGTH =
WorkflowIdBuilder::MAX_WORKFLOW_ID_LENGTH
- CONTROL_CHARACTER_PATTERN =
WorkflowIdBuilder::CONTROL_CHARACTER_PATTERN
- SCHEDULE_WORKFLOW_ID_PREFIX =
"ajschwf:"
Class Method Summary collapse
Class Method Details
.schedule_execution_reference(job_id) ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/activejob/temporal/job_id_validation.rb', line 31 def schedule_execution_reference(job_id) return unless job_id.start_with?(SCHEDULE_WORKFLOW_ID_PREFIX) workflow_id, separator, run_id = job_id.rpartition(":") return if separator.empty? || workflow_id.empty? || run_id.empty? { workflow_id: workflow_id, run_id: run_id } end |
.validate!(job_id) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/activejob/temporal/job_id_validation.rb', line 14 def validate!(job_id) unless job_id.is_a?(String) raise ArgumentError, "job_id must be a String, got #{job_id.class}: #{job_id.inspect}" end raise ArgumentError, "job_id must be valid UTF-8" unless job_id.valid_encoding? raise ArgumentError, "job_id must not be blank" if job_id.strip.empty? if job_id.length > MAX_JOB_ID_LENGTH raise ArgumentError, "job_id maximum length is #{MAX_JOB_ID_LENGTH} characters (got #{job_id.length})" end return unless job_id.match?(CONTROL_CHARACTER_PATTERN) raise ArgumentError, "job_id control characters are not allowed (got #{job_id.inspect})" end |