Skip to content

Input Length Limits

All text fields in Vulcan enforce configurable maximum lengths via Settings.input_limits. Limits are set in config/vulcan.default.yml with environment variable overrides so administrators can tune per deployment.

Configuration

Limits are grouped by category. Each has a VULCAN_LIMIT_* environment variable:

Setting KeyEnv VarDefaultDescription
short_stringVULCAN_LIMIT_SHORT_STRING255IDs, version strings, reference fields
identVULCAN_LIMIT_IDENT2,048Comma-joined CCI list (real max: 310)
titleVULCAN_LIMIT_TITLE500Rule titles (real max: 436)
medium_textVULCAN_LIMIT_MEDIUM_TEXT1,000Status justification, brief text
long_textVULCAN_LIMIT_LONG_TEXT10,000Descriptions, check content, fixtext (real max: 6,330)
inspec_codeVULCAN_LIMIT_INSPEC_CODE50,000InSpec control bodies (user-authored)
component_nameVULCAN_LIMIT_COMPONENT_NAME255Component name
component_prefixVULCAN_LIMIT_COMPONENT_PREFIX10STIG ID prefix (e.g., ABCD-01)
component_titleVULCAN_LIMIT_COMPONENT_TITLE500Component title
component_descriptionVULCAN_LIMIT_COMPONENT_DESCRIPTION5,000Component description
project_nameVULCAN_LIMIT_PROJECT_NAME255Project name
project_descriptionVULCAN_LIMIT_PROJECT_DESCRIPTION5,000Project description
user_nameVULCAN_LIMIT_USER_NAME255User display name
user_emailVULCAN_LIMIT_USER_EMAIL255User email address
review_commentVULCAN_LIMIT_REVIEW_COMMENT10,000Review comments
benchmark_nameVULCAN_LIMIT_BENCHMARK_NAME500SRG/STIG display name
benchmark_titleVULCAN_LIMIT_BENCHMARK_TITLE500SRG/STIG title
benchmark_descriptionVULCAN_LIMIT_BENCHMARK_DESCRIPTION10,000STIG description

Field-to-Setting Mapping

BaseRule (base_rules table)

FieldSettingDefault
rule_id, rule_weight, version, ident_system, fixtext_fixref, fix_id, srg_id, vuln_id, legacy_idsshort_string255
inspec_control_body_lang, inspec_control_file_langshort_string255
identident2,048
titletitle500
status_justificationmedium_text1,000
fixtext, artifact_description, vendor_commentslong_text10,000
inspec_control_body, inspec_control_fileinspec_code50,000
rule_severityN/A — constrained by inclusion validation (low/medium/high)
statusN/A — constrained by inclusion validation

DisaRuleDescription (disa_rule_descriptions table)

FieldSettingDefault
vuln_discussion, false_positives, false_negatives, mitigations, severity_override_guidance, potential_impacts, third_party_tools, mitigation_control, responsibility, ia_controls, poamlong_text10,000

Check (checks table)

FieldSettingDefault
system, content_ref_name, content_ref_hrefshort_string255
contentlong_text10,000

Component (components table)

FieldSettingDefault
namecomponent_name255
prefixcomponent_prefix10
titlecomponent_title500
descriptioncomponent_description5,000
admin_name, admin_emailshort_string255

Project (projects table)

FieldSettingDefault
nameproject_name255
descriptionproject_description5,000
admin_name, admin_emailshort_string255

User (users table)

FieldSettingDefault
nameuser_name255
emailuser_email255

SecurityRequirementsGuide (security_requirements_guides table)

FieldSettingDefault
srg_id, versionshort_string255
titlebenchmark_title500
namebenchmark_name500

Stig (stigs table)

FieldSettingDefault
stig_id, versionshort_string255
titlebenchmark_title500
namebenchmark_name500
descriptionbenchmark_description10,000

Review (reviews table)

FieldSettingDefault
actionshort_string255
commentreview_comment10,000

Real DISA Data Analysis

Defaults based on analysis of 1,785 rules across 8 benchmarks (4 STIGs + 4 SRGs):

FieldActual MaxP99Default LimitHeadroom
check.content6,3301,88810,00037%
vuln_discussion3,8132,12510,00062%
fixtext3,4481,15310,00066%
title43625550013%
ident310702,04885%
version252525590%
rule_id222225591%

Error Behavior

When a length validation fails:

  • Direct model save: ActiveRecord::RecordInvalid with message like "Title is too long (maximum is 500 characters)"
  • STIG/SRG XML import: Error includes rule ID and specific field: "3 rules failed to import: SV-12345: Title is too long (maximum is 500 characters)"
  • Spreadsheet import: Validation errors surface per-rule in the preview modal
  • API responses: 422 with errors.full_messages array

Upload Limits

EndpointMax SizeAllowed Types
STIG upload (XML)50 MB.xml
SRG upload (XML)50 MB.xml
Spreadsheet import50 MB.xlsx, .csv
JSON Archive import100 MB.zip

Part of the MITRE Security Automation Framework (SAF)