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)