SCAN Plugin Configuration Reference
This document provides a comprehensive reference for all configuration options available in the SCAN Gradle Plugin.
Configuration Overview
All SCAN configuration is done through the scan
extension block in your build.gradle.kts
:
scan {
// Configuration options go here
}
Basic Configuration
failOnSecrets
- Type:
Boolean
- Default:
true
- Description: Fail the build when secrets are detected
scan {
failOnSecrets = false // Only warn, don't fail build
}
verbose
- Type:
Boolean
- Default:
false
- Description: Enable detailed console output
scan {
verbose = true // Show detailed scanning progress
}
warnOnSecrets
- Type:
Boolean
- Default:
true
- Description: Show warnings even when not failing the build
scan {
warnOnSecrets = false // Suppress warning messages
}
Pattern Configuration
includePatterns
- Type:
Set<String>
- Default: Common source file patterns
- Description: Ant-style patterns for files to include in scanning
scan {
includePatterns = setOf(
"src/**/*.kt",
"config/**/*.yml",
"*.properties"
)
}
excludePatterns
- Type:
Set<String>
- Default: Build directories and generated files
- Description: Ant-style patterns for files to exclude from scanning
scan {
excludePatterns = setOf(
"**/build/**",
"**/test-data/**",
"**/*.generated.*"
)
}
scanTests
- Type:
Boolean
- Default:
true
- Description: Whether to scan test directories
scan {
scanTests = false // Skip test directories entirely
}
Scan Settings
strictMode
- Type:
Boolean
- Default:
false
- Description: Enable all detectors with maximum sensitivity
scan {
strictMode = true // Maximum security, may increase false positives
}
entropyThreshold
- Type:
Double
- Default:
4.5
- Description: Minimum entropy threshold for random string detection (0.0-8.0)
scan {
entropyThreshold = 5.0 // Higher = fewer false positives
}
customPatterns
- Type:
List<String>
- Default:
emptyList()
- Description: Custom regex patterns for organization-specific secrets
scan {
customPatterns = listOf(
"MYCOMPANY_API_[A-Z0-9]{32}",
"INTERNAL_SECRET_.*"
)
}
Output Configuration
generateHtmlReport
- Type:
Boolean
- Default:
false
- Description: Generate an HTML report with detailed findings
scan {
generateHtmlReport = true
}
generateJsonReport
- Type:
Boolean
- Default:
false
- Description: Generate a JSON report for CI/CD integration
scan {
generateJsonReport = true
}
Performance Settings
maxThreads
- Type:
Integer
- Default:
4
- Description: Maximum number of threads for parallel scanning
scan {
maxThreads = 8 // Use more threads for faster scanning
}
File Exclusions
ignoreTestFiles
- Type:
Boolean
- Default:
true
- Description: Skip scanning test files and directories
scan {
ignoreTestFiles = false // Include test files in scanning
}
Environment Variables
SCAN supports various environment variables for configuration:
SCAN_FAIL_ON_SECRETS
- Override failOnSecrets settingSCAN_VERBOSE
- Enable verbose outputSCAN_OUTPUT_DIR
- Set custom output directory
Complete Examples
Development-Friendly Setup
scan {
failOnSecrets = false
warnOnSecrets = true
verbose = true
generateHtmlReport = true
ignoreTestFiles = true
}
High-Security Production Setup
scan {
strictMode = true
failOnSecrets = true
entropyThreshold = 4.0
generateHtmlReport = true
generateJsonReport = true
customPatterns = listOf(
"COMPANY_SECRET_[A-Z0-9]{32}",
"INTERNAL_API_KEY_.*"
)
}
CI/CD Optimized Setup
scan {
val isCI = System.getenv("CI")?.toBoolean() ?: false
failOnSecrets = isCI
warnOnSecrets = true
generateJsonReport = isCI
generateHtmlReport = !isCI
verbose = isCI
}
Related Documentation
- User Guide: Complete walkthrough with examples
- Pattern Reference: Built-in patterns and custom pattern creation
- CI/CD Examples: Integration with popular CI/CD platforms