pi-lens
Version:
Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo
1,725 lines • 48.3 kB
JSON
{
"version": 1,
"entries": [
{
"rule_id": "go-command-injection",
"engine": "tree-sitter",
"language": "go",
"family": "security",
"scope": "file",
"canonical_concept": "command-injection-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "go-hardcoded-secrets",
"engine": "tree-sitter",
"language": "go",
"family": "security",
"scope": "file",
"canonical_concept": "hardcoded-secrets",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "go-insecure-random",
"engine": "tree-sitter",
"language": "go",
"family": "security",
"scope": "file",
"canonical_concept": "insecure-randomness",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "go-path-traversal",
"engine": "tree-sitter",
"language": "go",
"family": "security",
"scope": "file",
"canonical_concept": "path-traversal-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "go-sql-injection",
"engine": "tree-sitter",
"language": "go",
"family": "security",
"scope": "file",
"canonical_concept": "sql-injection-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "go-weak-hash",
"engine": "tree-sitter",
"language": "go",
"family": "security",
"scope": "file",
"canonical_concept": "weak-hash-primitive",
"severity_default": "warning",
"confidence": "high",
"status": "experimental"
},
{
"rule_id": "python-command-injection",
"engine": "tree-sitter",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "command-injection-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "python-hardcoded-secrets",
"engine": "tree-sitter",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "hardcoded-secrets",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "eval-exec",
"engine": "tree-sitter",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "dynamic-code-execution",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "python-insecure-deserialization",
"engine": "tree-sitter",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "insecure-deserialization-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "python-insecure-random",
"engine": "tree-sitter",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "insecure-randomness",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "python-path-traversal",
"engine": "tree-sitter",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "path-traversal-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "python-sql-injection",
"engine": "tree-sitter",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "sql-injection-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "python-ssrf",
"engine": "tree-sitter",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "ssrf-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "python-unsafe-regex",
"engine": "tree-sitter",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "unsafe-regex",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "python-weak-hash",
"engine": "tree-sitter",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "weak-hash-primitive",
"severity_default": "warning",
"confidence": "high",
"status": "experimental"
},
{
"rule_id": "ruby-command-injection",
"engine": "tree-sitter",
"language": "ruby",
"family": "security",
"scope": "file",
"canonical_concept": "command-injection-sink",
"severity_default": "warning",
"confidence": "low",
"status": "experimental"
},
{
"rule_id": "ruby-eval",
"engine": "tree-sitter",
"language": "ruby",
"family": "security",
"scope": "file",
"canonical_concept": "dynamic-code-execution",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "ruby-hardcoded-secrets",
"engine": "tree-sitter",
"language": "ruby",
"family": "security",
"scope": "file",
"canonical_concept": "hardcoded-secrets",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "ruby-insecure-deserialization",
"engine": "tree-sitter",
"language": "ruby",
"family": "security",
"scope": "file",
"canonical_concept": "insecure-deserialization-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "ruby-insecure-random",
"engine": "tree-sitter",
"language": "ruby",
"family": "security",
"scope": "file",
"canonical_concept": "insecure-randomness",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "ruby-unsafe-regex",
"engine": "tree-sitter",
"language": "ruby",
"family": "security",
"scope": "file",
"canonical_concept": "unsafe-regex",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "ruby-weak-hash",
"engine": "tree-sitter",
"language": "ruby",
"family": "security",
"scope": "file",
"canonical_concept": "weak-hash-primitive",
"severity_default": "warning",
"confidence": "high",
"status": "experimental"
},
{
"rule_id": "dangerously-set-inner-html",
"engine": "tree-sitter",
"language": "tsx",
"family": "security",
"scope": "file",
"canonical_concept": "dom-xss-dangerous-inner-html",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-eval",
"engine": "tree-sitter",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "dynamic-code-execution",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "hardcoded-secrets",
"engine": "tree-sitter",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "hardcoded-secrets",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "sql-injection",
"engine": "tree-sitter",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "sql-injection-sink",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "ts-command-injection",
"engine": "tree-sitter",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "command-injection-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "ts-insecure-random",
"engine": "tree-sitter",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "insecure-randomness",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "ts-ssrf",
"engine": "tree-sitter",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "ssrf-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "ts-weak-hash",
"engine": "tree-sitter",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "weak-hash-primitive",
"severity_default": "warning",
"confidence": "high",
"status": "experimental"
},
{
"rule_id": "unsafe-regex",
"engine": "tree-sitter",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "unsafe-regex",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "go-goroutine-loop-capture",
"engine": "tree-sitter",
"language": "go",
"family": "concurrency",
"scope": "file",
"canonical_concept": "goroutine-loop-capture",
"severity_default": "warning",
"confidence": "low",
"status": "experimental"
},
{
"rule_id": "go-shared-map-write-goroutine",
"engine": "tree-sitter",
"language": "go",
"family": "concurrency",
"scope": "file",
"canonical_concept": "shared-map-write-in-goroutine",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "python-thread-global-write",
"engine": "tree-sitter",
"language": "python",
"family": "concurrency",
"scope": "file",
"canonical_concept": "threaded-shared-state-write",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "rust-lock-held-across-await",
"engine": "tree-sitter",
"language": "rust",
"family": "concurrency",
"scope": "file",
"canonical_concept": "lock-held-across-await",
"severity_default": "warning",
"confidence": "low",
"status": "experimental"
},
{
"rule_id": "ts-detached-async-call",
"engine": "tree-sitter",
"language": "typescript",
"family": "concurrency",
"scope": "file",
"canonical_concept": "detached-async-call",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "no-sql-in-code",
"engine": "ast-grep",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "sql-in-code-literal",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-sql-in-code-js",
"engine": "ast-grep",
"language": "javascript",
"family": "security",
"scope": "file",
"canonical_concept": "sql-in-code-literal",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-open-redirect",
"engine": "ast-grep",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "open-redirect",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-open-redirect-js",
"engine": "ast-grep",
"language": "javascript",
"family": "security",
"scope": "file",
"canonical_concept": "open-redirect",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-javascript-url",
"engine": "ast-grep",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "javascript-url-scheme",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-javascript-url-js",
"engine": "ast-grep",
"language": "javascript",
"family": "security",
"scope": "file",
"canonical_concept": "javascript-url-scheme",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-insecure-randomness",
"engine": "ast-grep",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "insecure-randomness",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-insecure-randomness-js",
"engine": "ast-grep",
"language": "javascript",
"family": "security",
"scope": "file",
"canonical_concept": "insecure-randomness",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-implied-eval",
"engine": "ast-grep",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "dynamic-code-execution",
"severity_default": "error",
"confidence": "high",
"status": "active",
"allow_overlap": true
},
{
"rule_id": "no-implied-eval-js",
"engine": "ast-grep",
"language": "javascript",
"family": "security",
"scope": "file",
"canonical_concept": "dynamic-code-execution",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-hardcoded-secrets",
"engine": "ast-grep",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "hardcoded-secrets",
"severity_default": "error",
"confidence": "high",
"status": "deprecated",
"allow_overlap": true
},
{
"rule_id": "no-hardcoded-secrets-js",
"engine": "ast-grep",
"language": "javascript",
"family": "security",
"scope": "file",
"canonical_concept": "hardcoded-secrets",
"severity_default": "error",
"confidence": "high",
"status": "deprecated"
},
{
"rule_id": "no-global-eval-js",
"engine": "ast-grep",
"language": "javascript",
"family": "security",
"scope": "file",
"canonical_concept": "dynamic-code-execution",
"severity_default": "error",
"confidence": "high",
"status": "active",
"allow_overlap": true
},
{
"rule_id": "jwt-no-verify",
"engine": "ast-grep",
"language": "typescript",
"family": "security",
"scope": "file",
"canonical_concept": "jwt-signature-bypass",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "jwt-no-verify-js",
"engine": "ast-grep",
"language": "javascript",
"family": "security",
"scope": "file",
"canonical_concept": "jwt-signature-bypass",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "toctou",
"engine": "ast-grep",
"language": "typescript",
"family": "concurrency",
"scope": "file",
"canonical_concept": "toctou-file-race",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "toctou-js",
"engine": "ast-grep",
"language": "javascript",
"family": "concurrency",
"scope": "file",
"canonical_concept": "toctou-file-race",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "missed-concurrency",
"engine": "ast-grep",
"language": "typescript",
"family": "concurrency",
"scope": "function",
"canonical_concept": "sequential-awaits-parallelizable",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "missed-concurrency-js",
"engine": "ast-grep",
"language": "javascript",
"family": "concurrency",
"scope": "function",
"canonical_concept": "sequential-awaits-parallelizable",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-await-in-loop",
"engine": "ast-grep",
"language": "typescript",
"family": "concurrency",
"scope": "function",
"canonical_concept": "await-inside-loop",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-await-in-loop-js",
"engine": "ast-grep",
"language": "javascript",
"family": "concurrency",
"scope": "function",
"canonical_concept": "await-inside-loop",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "unmarshal-tag-is-dash",
"engine": "ast-grep",
"language": "go",
"family": "security",
"scope": "file",
"canonical_concept": "json-tag-dash-comma",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "redundant-unsafe-function",
"engine": "ast-grep",
"language": "rust",
"family": "reliability",
"scope": "function",
"canonical_concept": "redundant-unsafe-fn",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "avoid-duplicate-export",
"engine": "ast-grep",
"language": "rust",
"family": "maintainability",
"scope": "file",
"canonical_concept": "duplicate-pub-use",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "rust-2024-let-chain-candidate",
"engine": "ast-grep",
"language": "rust",
"family": "maintainability",
"scope": "function",
"canonical_concept": "let-chain-collapsible",
"severity_default": "info",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-console-except-error",
"engine": "ast-grep",
"language": "typescript",
"family": "maintainability",
"scope": "file",
"canonical_concept": "console-leftover-debug",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-console-except-error-js",
"engine": "ast-grep",
"language": "javascript",
"family": "maintainability",
"scope": "file",
"canonical_concept": "console-leftover-debug",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "missing-component-decorator",
"engine": "ast-grep",
"language": "typescript",
"family": "reliability",
"scope": "class",
"canonical_concept": "angular-missing-decorator",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "unnecessary-react-hook",
"engine": "ast-grep",
"language": "tsx",
"family": "reliability",
"scope": "function",
"canonical_concept": "react-fake-hook",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "redundant-usestate-type",
"engine": "ast-grep",
"language": "tsx",
"family": "maintainability",
"scope": "function",
"canonical_concept": "redundant-type-annotation",
"severity_default": "info",
"confidence": "high",
"status": "active"
},
{
"rule_id": "find-import-file-without-extension",
"engine": "ast-grep",
"language": "typescript",
"family": "reliability",
"scope": "file",
"canonical_concept": "esm-import-no-extension",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "return-in-init",
"engine": "tree-sitter",
"language": "python",
"family": "reliability",
"scope": "function",
"canonical_concept": "return-in-init",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "yield-return-outside-function",
"engine": "tree-sitter",
"language": "python",
"family": "reliability",
"scope": "file",
"canonical_concept": "invalid-statement-context",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "notimplemented-boolean-context",
"engine": "tree-sitter",
"language": "python",
"family": "reliability",
"scope": "function",
"canonical_concept": "deprecated-boolean-usage",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "exit-signature-check",
"engine": "tree-sitter",
"language": "python",
"family": "reliability",
"scope": "function",
"canonical_concept": "context-manager-signature",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "return-in-generator",
"engine": "tree-sitter",
"language": "python",
"family": "reliability",
"scope": "function",
"canonical_concept": "return-in-generator",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "iter-return-iterator",
"engine": "tree-sitter",
"language": "python",
"family": "reliability",
"scope": "function",
"canonical_concept": "iter-protocol-violation",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "switch-non-case-labels",
"engine": "tree-sitter",
"language": "java",
"family": "reliability",
"scope": "function",
"canonical_concept": "switch-label-violation",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-clone-override",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "class",
"canonical_concept": "clone-override",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "main-should-not-throw",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "function",
"canonical_concept": "main-throws-exception",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-threadgroup",
"engine": "tree-sitter",
"language": "java",
"family": "security",
"scope": "file",
"canonical_concept": "deprecated-api-usage",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "this-in-static-context",
"engine": "tree-sitter",
"language": "php",
"family": "reliability",
"scope": "function",
"canonical_concept": "this-in-static-context",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-exit-die",
"engine": "tree-sitter",
"language": "php",
"family": "reliability",
"scope": "function",
"canonical_concept": "abrupt-termination",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "case-range-multiple-values",
"engine": "tree-sitter",
"language": "c",
"family": "maintainability",
"scope": "function",
"canonical_concept": "case-range-single-value",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "goto-label-order",
"engine": "tree-sitter",
"language": "c",
"family": "maintainability",
"scope": "function",
"canonical_concept": "backward-goto",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "goto-into-block",
"engine": "tree-sitter",
"language": "c",
"family": "maintainability",
"scope": "function",
"canonical_concept": "goto-into-block",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-auto-ptr",
"engine": "tree-sitter",
"language": "cpp",
"family": "reliability",
"scope": "file",
"canonical_concept": "deprecated-auto-ptr",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-memset-sensitive-data",
"engine": "tree-sitter",
"language": "cpp",
"family": "security",
"scope": "function",
"canonical_concept": "insecure-memory-clear",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-scoped-lock-without-args",
"engine": "tree-sitter",
"language": "cpp",
"family": "reliability",
"scope": "function",
"canonical_concept": "scoped-lock-no-mutex",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-confused-move-forward",
"engine": "tree-sitter",
"language": "cpp",
"family": "reliability",
"scope": "function",
"canonical_concept": "move-forward-confusion",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "is-with-this",
"engine": "tree-sitter",
"language": "csharp",
"family": "maintainability",
"scope": "function",
"canonical_concept": "is-operator-with-this",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-operator-eq-reference",
"engine": "tree-sitter",
"language": "csharp",
"family": "maintainability",
"scope": "class",
"canonical_concept": "operator-eq-reference-type",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-dangerous-get-handle",
"engine": "tree-sitter",
"language": "csharp",
"family": "reliability",
"scope": "function",
"canonical_concept": "unsafe-handle-access",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-thread-resume-suspend",
"engine": "tree-sitter",
"language": "csharp",
"family": "reliability",
"scope": "function",
"canonical_concept": "deprecated-thread-api",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "async-await-identifiers",
"engine": "tree-sitter",
"language": "csharp",
"family": "maintainability",
"scope": "file",
"canonical_concept": "keyword-as-identifier",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "in-operator-unsupported",
"engine": "tree-sitter",
"language": "python",
"family": "reliability",
"scope": "function",
"canonical_concept": "in-operator-unsupported",
"severity_default": "warning",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "spring-session-attributes-setcomplete",
"engine": "tree-sitter",
"language": "java",
"family": "reliability",
"scope": "class",
"canonical_concept": "session-attributes-cleanup",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "springboot-default-package",
"engine": "tree-sitter",
"language": "java",
"family": "reliability",
"scope": "file",
"canonical_concept": "default-package-usage",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "prepared-statement-valid-indices",
"engine": "tree-sitter",
"language": "java",
"family": "reliability",
"scope": "function",
"canonical_concept": "jdbc-invalid-index",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "delete-update-where",
"engine": "tree-sitter",
"language": "plsql",
"family": "reliability",
"scope": "function",
"canonical_concept": "sql-missing-where",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "fetch-bulk-collect-limit",
"engine": "tree-sitter",
"language": "plsql",
"family": "reliability",
"scope": "function",
"canonical_concept": "fetch-no-limit",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "prepared-statement-indices",
"engine": "tree-sitter",
"language": "kotlin",
"family": "reliability",
"scope": "function",
"canonical_concept": "jdbc-invalid-index",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "delete-where",
"engine": "tree-sitter",
"language": "abap",
"family": "reliability",
"scope": "function",
"canonical_concept": "sql-missing-where",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "alter-statement",
"engine": "tree-sitter",
"language": "cobol",
"family": "maintainability",
"scope": "file",
"canonical_concept": "alter-statement-usage",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "calc-spacing",
"engine": "tree-sitter",
"language": "css",
"family": "reliability",
"scope": "file",
"canonical_concept": "calc-spacing-error",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "switch-non-case-labels-js",
"engine": "tree-sitter",
"language": "javascript",
"family": "reliability",
"scope": "function",
"canonical_concept": "switch-label-violation",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-exit-methods",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "function",
"canonical_concept": "abrupt-termination",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-threads-in-constructors",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "constructor",
"canonical_concept": "thread-in-constructor",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "switch-fall-through",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "function",
"canonical_concept": "switch-fall-through",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-wait-notify-on-thread",
"engine": "tree-sitter",
"language": "java",
"family": "reliability",
"scope": "function",
"canonical_concept": "wait-on-thread-instance",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-double-checked-locking",
"engine": "tree-sitter",
"language": "java",
"family": "reliability",
"scope": "function",
"canonical_concept": "double-checked-locking",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-future-keywords",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "file",
"canonical_concept": "future-keyword-usage",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-field-shadowing",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "class",
"canonical_concept": "field-shadowing",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "junit-call-super",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "function",
"canonical_concept": "missing-super-call",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "forallsave-exceptions",
"engine": "tree-sitter",
"language": "plsql",
"family": "reliability",
"scope": "function",
"canonical_concept": "forall-no-save-exceptions",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "not-null-initialization",
"engine": "tree-sitter",
"language": "plsql",
"family": "reliability",
"scope": "function",
"canonical_concept": "not-null-uninitialized",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "end-loop-semicolon",
"engine": "tree-sitter",
"language": "plsql",
"family": "reliability",
"scope": "function",
"canonical_concept": "missing-semicolon",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "raise-application-error-codes",
"engine": "tree-sitter",
"language": "plsql",
"family": "reliability",
"scope": "function",
"canonical_concept": "invalid-error-code",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-synchronize",
"engine": "tree-sitter",
"language": "plsql",
"family": "reliability",
"scope": "function",
"canonical_concept": "synchronize-usage",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "send-file-mimetype",
"engine": "tree-sitter",
"language": "python",
"family": "reliability",
"scope": "function",
"canonical_concept": "send-file-missing-mimetype",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "noexcept-functions",
"engine": "tree-sitter",
"language": "cpp",
"family": "reliability",
"scope": "function",
"canonical_concept": "missing-noexcept",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-octal-values",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "file",
"canonical_concept": "octal-literal-usage",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "short-circuit-logic",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "function",
"canonical_concept": "non-short-circuit-operator",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "infinite-loop-java",
"engine": "tree-sitter",
"language": "java",
"family": "reliability",
"scope": "function",
"canonical_concept": "infinite-loop",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "infinite-recursion",
"engine": "tree-sitter",
"language": "java",
"family": "reliability",
"scope": "function",
"canonical_concept": "infinite-recursion",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "name-capitalization-conflict",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "class",
"canonical_concept": "name-capitalization-conflict",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "no-super-torchscript",
"engine": "tree-sitter",
"language": "python",
"family": "reliability",
"scope": "function",
"canonical_concept": "torchscript-super-call",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "unnecessary-bit-ops",
"engine": "tree-sitter",
"language": "cpp",
"family": "maintainability",
"scope": "function",
"canonical_concept": "unnecessary-bit-operation",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "unnecessary-bit-ops-java",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "function",
"canonical_concept": "unnecessary-bit-operation",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "switch-case-termination-js",
"engine": "tree-sitter",
"language": "javascript",
"family": "reliability",
"scope": "function",
"canonical_concept": "switch-case-no-termination",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "nchar-nvarchar2-bytes",
"engine": "tree-sitter",
"language": "plsql",
"family": "reliability",
"scope": "function",
"canonical_concept": "nchar-size-in-bytes",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "tests-include-assertions",
"engine": "tree-sitter",
"language": "java",
"family": "maintainability",
"scope": "function",
"canonical_concept": "test-without-assertion",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "mockito-initialized",
"engine": "tree-sitter",
"language": "java",
"family": "reliability",
"scope": "class",
"canonical_concept": "mockito-not-initialized",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "resources-closed",
"engine": "tree-sitter",
"language": "java",
"family": "reliability",
"scope": "function",
"canonical_concept": "resource-leak",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "lock-table",
"engine": "tree-sitter",
"language": "plsql",
"family": "maintainability",
"scope": "function",
"canonical_concept": "lock-table-usage",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "lock-table-cobol",
"engine": "tree-sitter",
"language": "cobol",
"family": "maintainability",
"scope": "file",
"canonical_concept": "lock-table-usage",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "await-in-loop",
"engine": "tree-sitter",
"language": "typescript",
"family": "performance",
"scope": "function",
"canonical_concept": "await-inside-loop",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "switch-case-termination",
"engine": "tree-sitter",
"language": "typescript",
"family": "reliability",
"scope": "function",
"canonical_concept": "switch-case-no-termination",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "infinite-loop",
"engine": "tree-sitter",
"language": "typescript",
"family": "reliability",
"scope": "function",
"canonical_concept": "infinite-loop",
"severity_default": "error",
"confidence": "medium",
"status": "active"
},
{
"rule_id": "self-assignment",
"engine": "tree-sitter",
"language": "typescript",
"family": "reliability",
"scope": "function",
"canonical_concept": "self-assignment",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "duplicate-function-arg",
"engine": "tree-sitter",
"language": "typescript",
"family": "reliability",
"scope": "function",
"canonical_concept": "duplicate-parameter-name",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "empty-switch-case",
"engine": "tree-sitter",
"language": "typescript",
"family": "reliability",
"scope": "function",
"canonical_concept": "empty-switch-case",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "default-not-last",
"engine": "tree-sitter",
"language": "typescript",
"family": "maintainability",
"scope": "function",
"canonical_concept": "default-clause-not-last",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-compile-call",
"engine": "ast-grep",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "dynamic-code-execution",
"severity_default": "error",
"confidence": "high",
"status": "active",
"allow_overlap": true
},
{
"rule_id": "no-marshal-load",
"engine": "ast-grep",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "insecure-deserialization-sink",
"severity_default": "error",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-requests-verify-false",
"engine": "ast-grep",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "tls-verification-disabled",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "no-python-sql-string-concat",
"engine": "ast-grep",
"language": "python",
"family": "security",
"scope": "file",
"canonical_concept": "sql-string-concat",
"severity_default": "error",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "go-test-functions",
"engine": "ast-grep",
"language": "go",
"family": "testing",
"scope": "file",
"canonical_concept": "go-test-function-declaration",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "go-defer-func-call-antipattern",
"engine": "ast-grep",
"language": "go",
"family": "reliability",
"scope": "file",
"canonical_concept": "go-defer-arg-evaluation",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "ruby-detect-path-traversal",
"engine": "ast-grep",
"language": "ruby",
"family": "security",
"scope": "file",
"canonical_concept": "path-traversal-sink",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "loop-var-capture",
"engine": "ast-grep",
"language": "go",
"family": "concurrency",
"scope": "file",
"canonical_concept": "go-loop-var-capture",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "defer-in-loop",
"engine": "ast-grep",
"language": "go",
"family": "reliability",
"scope": "file",
"canonical_concept": "go-defer-in-loop",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "nil-map-assignment",
"engine": "ast-grep",
"language": "go",
"family": "reliability",
"scope": "file",
"canonical_concept": "go-nil-map-assignment",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "string-concat-in-loop",
"engine": "ast-grep",
"language": "go",
"family": "performance",
"scope": "file",
"canonical_concept": "go-string-concat-in-loop",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "mutex-unlock-mismatch",
"engine": "ast-grep",
"language": "go",
"family": "concurrency",
"scope": "file",
"canonical_concept": "go-mutex-unlock-mismatch",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "unlock-in-loop",
"engine": "ast-grep",
"language": "go",
"family": "concurrency",
"scope": "file",
"canonical_concept": "go-unlock-in-loop",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "waitgroup-done-scope",
"engine": "ast-grep",
"language": "go",
"family": "concurrency",
"scope": "file",
"canonical_concept": "go-waitgroup-done-scope",
"severity_default": "warning",
"confidence": "high",
"status": "active"
},
{
"rule_id": "gorm-find-without-where",
"engine": "ast-grep",
"language": "go",
"family": "reliability",
"scope": "file",
"canonical_concept": "go-gorm-find-without-where",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
},
{
"rule_id": "gorm-n-plus-one",
"engine": "ast-grep",
"language": "go",
"family": "performance",
"scope": "file",
"canonical_concept": "go-gorm-n-plus-one",
"severity_default": "warning",
"confidence": "medium",
"status": "experimental"
}
]
}