@sun-asterisk/sunlint
Version:
☀️ SunLint - Multi-language static analysis tool for code quality and security | Sun* Engineering Standards
121 lines • 2.49 kB
JSON
{
"id": "C073",
"name": "C073_validate_required_config_on_startup",
"category": "configuration",
"description": "C073 - Validate mandatory configuration at startup and fail fast on invalid/missing values.",
"severity": "error",
"enabled": true,
"semantic": {
"enabled": true,
"priority": "high",
"fallback": "heuristic"
},
"patterns": {
"include": [
"**/*.ts",
"**/*.tsx",
"**/*.js",
"**/*.jsx",
"**/*.java",
"**/*.go"
],
"exclude": [
"**/*.test.*",
"**/*.spec.*",
"**/__tests__/**",
"**/fixtures/**",
"**/examples/**"
]
},
"options": {
"configModules": {
"typescript": [
"src/config/**",
"**/config/**",
"**/bootstrap/**",
"**/main.ts"
],
"java": [
"**/config/**",
"**/Configuration/**",
"**/Application.java",
"**/*Application.java"
],
"go": [
"cmd/**",
"**/config/**",
"**/main.go"
]
},
"envAccessors": {
"typescript": [
"process.env.*"
],
"java": [
"System.getenv(*)",
"System.getProperty(*)"
],
"go": [
"os.Getenv(*)"
]
},
"schemaDetectors": {
"typescript": [
"zod",
"joi",
"yup",
"envalid",
"dotenv-safe",
"class-validator"
],
"java": [
"@ConfigurationProperties",
"@Validated",
"jakarta.validation",
"hibernate.validator"
],
"go": [
"github.com/kelseyhightower/envconfig",
"github.com/spf13/viper"
]
},
"failFastSignals": {
"typescript": [
"throw new Error(*)",
"process.exit(1)"
],
"java": [
"throw new RuntimeException(*)",
"SpringApplication.exit(*)",
"System.exit(1)"
],
"go": [
"log.Fatal(*)",
"panic(*)",
"os.Exit(1)"
]
},
"dangerousDefaults": [
"|| ''",
"|| 0",
"|| 'http://localhost'",
"?: ''",
"?: 0"
],
"thresholds": {
"maxEnvReadsOutsideConfig": 3
},
"policy": {
"requireSchemaOrExplicitChecks": true,
"requireFailFast": true,
"forbidEnvReadsOutsideConfig": true,
"flagDangerousDefaults": true,
"requireStartupConnectivityChecks": true
}
},
"languages": [
"typescript",
"javascript",
"dart"
]
}