{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-6251c480a8fa74f9", "name": "Possibly dead Python function: require_api_key", "shortDescription": {"text": "Possibly dead Python function: require_api_key"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f48398f495204256", "name": "Possibly dead Python function: rate_limit", "shortDescription": {"text": "Possibly dead Python function: rate_limit"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-12f526c80d01be05", "name": "Possibly dead Python function: mosaic_cog_windows", "shortDescription": {"text": "Possibly dead Python function: mosaic_cog_windows"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28242a9d1eca4450", "name": "Possibly dead Python function: write_geotiff", "shortDescription": {"text": "Possibly dead Python function: write_geotiff"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-555b3a159fa14523", "name": "Possibly dead Python function: describe_geotiff", "shortDescription": {"text": "Possibly dead Python function: describe_geotiff"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c78c2df73a70570", "name": "Possibly dead Python function: check_health", "shortDescription": {"text": "Possibly dead Python function: check_health"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d685964b44955915", "name": "Possibly dead Python function: wrapper", "shortDescription": {"text": "Possibly dead Python function: wrapper"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7797fb9f055cbe8e", "name": "Possibly dead Python function: iter_providers", "shortDescription": {"text": "Possibly dead Python function: iter_providers"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a5b81678527ba02", "name": "Possibly dead Python function: tdx_vpus_for_bbox", "shortDescription": {"text": "Possibly dead Python function: tdx_vpus_for_bbox"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-de3c1f217d72a063", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27e3c1385cae4918", "name": "Insecure pattern 'tls_verify_false' in src/cas/connectors/national_wcs.py:311", "shortDescription": {"text": "Insecure pattern 'tls_verify_false' in src/cas/connectors/national_wcs.py:311"}, "fullDescription": {"text": "Found a known-risky pattern (tls_verify_false). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5ace395848a5a56a", "name": "Insecure pattern 'tls_verify_false' in src/cas/monitor/reachability.py:210", "shortDescription": {"text": "Insecure pattern 'tls_verify_false' in src/cas/monitor/reachability.py:210"}, "fullDescription": {"text": "Found a known-risky pattern (tls_verify_false). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0763d85002569570", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/deploy-pages@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-14ce8614dd03f409", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d99cb4a60e08457", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b722939ba526a22", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1cc5815a36123ff6", "name": "Very large file: src/cas/connectors/national_europe.py (2882 lines)", "shortDescription": {"text": "Very large file: src/cas/connectors/national_europe.py (2882 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a9cf1858b993b000", "name": "Legacy-named symbol `WHYMAP_WOKAM_v1` in tests/test_mirror_registry.py:68", "shortDescription": {"text": "Legacy-named symbol `WHYMAP_WOKAM_v1` in tests/test_mirror_registry.py:68"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c42920dcd59cf29", "name": "Legacy-named symbol `glhymps_v2` in tests/test_mirror_glhymps_extract.py:57", "shortDescription": {"text": "Legacy-named symbol `glhymps_v2` in tests/test_mirror_glhymps_extract.py:57"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ad75a17112c6438", "name": "Commented-code block (5 lines) in tests/mirror_utils.py:22", "shortDescription": {"text": "Commented-code block (5 lines) in tests/mirror_utils.py:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83d47d60de99f3a5", "name": "Legacy-named symbol `catchments_v1` in tests/test_mirror_geofabrics.py:164", "shortDescription": {"text": "Legacy-named symbol `catchments_v1` in tests/test_mirror_geofabrics.py:164"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5d69bfb31bf9954e", "name": "Legacy-named symbol `model_copy` in tests/test_mirror_import.py:310", "shortDescription": {"text": "Legacy-named symbol `model_copy` in tests/test_mirror_import.py:310"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76ff28995154f1c6", "name": "Commented-code block (5 lines) in tests/connectors/test_mapbiomas_regional.py:75", "shortDescription": {"text": "Commented-code block (5 lines) in tests/connectors/test_mapbiomas_regional.py:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6cc6cd0d3d2f118c", "name": "Commented-code block (11 lines) in src/cas/integrations/symfluence.py:796", "shortDescription": {"text": "Commented-code block (11 lines) in src/cas/integrations/symfluence.py:796"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c70d647166571e6c", "name": "Commented-code block (8 lines) in src/cas/connectors/national_asia_oceania.py:58", "shortDescription": {"text": "Commented-code block (8 lines) in src/cas/connectors/national_asia_oceania.py:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45d9cc651d30c1c1", "name": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/glacier_cover.py:36", "shortDescription": {"text": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/glacier_cover.py:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e7a91de67f0ff61", "name": "Commented-code block (7 lines) in src/cas/connectors/isric_soilgrids.py:60", "shortDescription": {"text": "Commented-code block (7 lines) in src/cas/connectors/isric_soilgrids.py:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-540ad1ffab7a4f1d", "name": "Legacy-named symbol `0cm_2010_v1` in src/cas/connectors/global_ecosystems.py:36", "shortDescription": {"text": "Legacy-named symbol `0cm_2010_v1` in src/cas/connectors/global_ecosystems.py:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ec3657ea9974f3a9", "name": "Commented-code block (5 lines) in src/cas/connectors/national_wcs.py:241", "shortDescription": {"text": "Commented-code block (5 lines) in src/cas/connectors/national_wcs.py:241"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a60ead5c616de60b", "name": "Legacy-named symbol `2019_v1` in src/cas/connectors/global_surface_water.py:36", "shortDescription": {"text": "Legacy-named symbol `2019_v1` in src/cas/connectors/global_surface_water.py:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f213c8db3c9df67a", "name": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/global_soil_erosion.py:44", "shortDescription": {"text": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/global_soil_erosion.py:44"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac6a6d2bd5f4a233", "name": "Legacy-named symbol `0cm_2018_v1` in src/cas/connectors/global_imperviousness.py:36", "shortDescription": {"text": "Legacy-named symbol `0cm_2018_v1` in src/cas/connectors/global_imperviousness.py:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a1031e646c96c95", "name": "Commented-code block (5 lines) in src/cas/connectors/ghsl_urban.py:46", "shortDescription": {"text": "Commented-code block (5 lines) in src/cas/connectors/ghsl_urban.py:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88b8a693780d5f73", "name": "Legacy-named symbol `0cm_2019_v1` in src/cas/connectors/global_hydro_soil.py:52", "shortDescription": {"text": "Legacy-named symbol `0cm_2019_v1` in src/cas/connectors/global_hydro_soil.py:52"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f31e986098220324", "name": "Commented-code block (6 lines) in src/cas/connectors/wfs_vector.py:293", "shortDescription": {"text": "Commented-code block (6 lines) in src/cas/connectors/wfs_vector.py:293"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-321fe609a81fa82e", "name": "Commented-code block (6 lines) in src/cas/connectors/national_americas.py:242", "shortDescription": {"text": "Commented-code block (6 lines) in src/cas/connectors/national_americas.py:242"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7268814950a3512", "name": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/glim.py:39", "shortDescription": {"text": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/glim.py:39"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-300ac38ce814133d", "name": "Commented-code block (5 lines) in src/cas/connectors/arcgis_feature.py:307", "shortDescription": {"text": "Commented-code block (5 lines) in src/cas/connectors/arcgis_feature.py:307"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9bca2041cb27e5b0", "name": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/terrain_derivatives.py:36", "shortDescription": {"text": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/terrain_derivatives.py:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-10c938f3fddfcab9", "name": "Commented-code block (16 lines) in src/cas/connectors/national_europe.py:1623", "shortDescription": {"text": "Commented-code block (16 lines) in src/cas/connectors/national_europe.py:1623"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c77f87af4cb38b17", "name": "Legacy-named symbol `0cm_2015_v1` in src/cas/connectors/global_crops_irrigation.py:36", "shortDescription": {"text": "Legacy-named symbol `0cm_2015_v1` in src/cas/connectors/global_crops_irrigation.py:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab954ca5b7857753", "name": "Commented-code block (6 lines) in src/cas/connectors/mapbiomas_regional.py:63", "shortDescription": {"text": "Commented-code block (6 lines) in src/cas/connectors/mapbiomas_regional.py:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b92a03ec7dab7db3", "name": "Legacy-named symbol `2022_v1` in src/cas/connectors/global_vegetation.py:36", "shortDescription": {"text": "Legacy-named symbol `2022_v1` in src/cas/connectors/global_vegetation.py:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6eb4433c1c98c127", "name": "Legacy-named symbol `IslandsDEM_v1` in src/cas/connectors/islands_dem.py:47", "shortDescription": {"text": "Legacy-named symbol `IslandsDEM_v1` in src/cas/connectors/islands_dem.py:47"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fa3c6477d03d1a8e", "name": "Legacy-named symbol `WHYMAP_WOKAM_v1` in src/cas/mirror/datasets.py:243", "shortDescription": {"text": "Legacy-named symbol `WHYMAP_WOKAM_v1` in src/cas/mirror/datasets.py:243"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8c8af4f5a97247d4", "name": "Commented-code block (5 lines) in src/cas/mirror/datasets.py:350", "shortDescription": {"text": "Commented-code block (5 lines) in src/cas/mirror/datasets.py:350"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b93c3d307cc6e680", "name": "Commented-code block (6 lines) in src/cas/mirror/units.py:60", "shortDescription": {"text": "Commented-code block (6 lines) in src/cas/mirror/units.py:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86b83c8d1ab85297", "name": "Legacy-named symbol `glhymps_v2` in src/cas/mirror/store.py:11", "shortDescription": {"text": "Legacy-named symbol `glhymps_v2` in src/cas/mirror/store.py:11"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-95a42d33f0edca84", "name": "Commented-code block (5 lines) in src/cas/mirror/fetch.py:147", "shortDescription": {"text": "Commented-code block (5 lines) in src/cas/mirror/fetch.py:147"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1ec85ef74f1e249", "name": "Commented-code block (5 lines) in src/cas/monitor/health.py:89", "shortDescription": {"text": "Commented-code block (5 lines) in src/cas/monitor/health.py:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b441d1676489070f", "name": "Commented-code block (5 lines) in src/cas/monitor/geometry_check.py:23", "shortDescription": {"text": "Commented-code block (5 lines) in src/cas/monitor/geometry_check.py:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/cas/api_sync.py:extract_raster_sync, src/cas/extract/engine.py:extract_raster\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-88194a5835f13944", "name": "Near-duplicate function bodies in 77 places", "shortDescription": {"text": "Near-duplicate function bodies in 77 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/cas/connectors/ssurgo_hsg.py:extract, src/cas/connectors/worldpop.py:extract, src/cas/connectors/isdasoil.py:extract, src/cas/connectors/canopy_height.py:extract\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/cas/connectors/biodiversity.py:extract, src/cas/connectors/usgs_gap.py:extract, src/cas/connectors/fia_forest.py:extract\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/cas/client/__init__.py:providers, src/cas/client/__init__.py:provider, src/cas/client/__init__.py:providers, src/cas/client/__init__.py:provider\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-720b20d4c08e095a", "name": "FastAPI POST `batch_extract_attributes` without auth dependency \u2014 src/cas/api/app.py:119", "shortDescription": {"text": "FastAPI POST `batch_extract_attributes` without auth dependency \u2014 src/cas/api/app.py:119"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/25250"}, "properties": {"repository": "DarriEy/CAS", "repoUrl": "https://github.com/DarriEy/CAS", "branch": "main"}, "results": [{"ruleId": "scanner-6251c480a8fa74f9", "level": "note", "message": {"text": "Possibly dead Python function: require_api_key"}, "properties": {"repobilityId": "44e8e9840fc57179", "scanner": "scanner-primary", "fingerprint": "6251c480a8fa74f9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/api/security.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f48398f495204256", "level": "note", "message": {"text": "Possibly dead Python function: rate_limit"}, "properties": {"repobilityId": "ca81e3996cd68a6a", "scanner": "scanner-primary", "fingerprint": "f48398f495204256", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/api/security.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-12f526c80d01be05", "level": "note", "message": {"text": "Possibly dead Python function: mosaic_cog_windows"}, "properties": {"repobilityId": "213fe1c827341016", "scanner": "scanner-primary", "fingerprint": "12f526c80d01be05", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/extract/raster.py:57"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-28242a9d1eca4450", "level": "note", "message": {"text": "Possibly dead Python function: write_geotiff"}, "properties": {"repobilityId": "517a1ca89e394801", "scanner": "scanner-primary", "fingerprint": "28242a9d1eca4450", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/extract/raster.py:126"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-555b3a159fa14523", "level": "note", "message": {"text": "Possibly dead Python function: describe_geotiff"}, "properties": {"repobilityId": "db2b99b7b3b8179d", "scanner": "scanner-primary", "fingerprint": "555b3a159fa14523", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/extract/raster.py:153"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c78c2df73a70570", "level": "note", "message": {"text": "Possibly dead Python function: check_health"}, "properties": {"repobilityId": "c90f963d99aa5a4c", "scanner": "scanner-primary", "fingerprint": "2c78c2df73a70570", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/connectors/base.py:114"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d685964b44955915", "level": "note", "message": {"text": "Possibly dead Python function: wrapper"}, "properties": {"repobilityId": "1dc9acbcc8ce537d", "scanner": "scanner-primary", "fingerprint": "d685964b44955915", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/core/registry.py:18"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7797fb9f055cbe8e", "level": "note", "message": {"text": "Possibly dead Python function: iter_providers"}, "properties": {"repobilityId": "de9f2d4e10db4a7c", "scanner": "scanner-primary", "fingerprint": "7797fb9f055cbe8e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/client/__init__.py:264"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a5b81678527ba02", "level": "note", "message": {"text": "Possibly dead Python function: tdx_vpus_for_bbox"}, "properties": {"repobilityId": "c9fae2a4a53d69ba", "scanner": "scanner-primary", "fingerprint": "0a5b81678527ba02", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/mirror/units.py:233"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de3c1f217d72a063", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "properties": {"repobilityId": "f10fb53cfa0d01dc", "scanner": "scanner-primary", "fingerprint": "de3c1f217d72a063", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-de3c1f217d72a063", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "properties": {"repobilityId": "06e5b744fc07f59b", "scanner": "scanner-primary", "fingerprint": "de3c1f217d72a063", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-27e3c1385cae4918", "level": "error", "message": {"text": "Insecure pattern 'tls_verify_false' in src/cas/connectors/national_wcs.py:311"}, "properties": {"repobilityId": "fa02a2b396c056d5", "scanner": "scanner-primary", "fingerprint": "27e3c1385cae4918", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "tls_verify_false"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/connectors/national_wcs.py"}, "region": {"startLine": 311}}}]}, {"ruleId": "scanner-5ace395848a5a56a", "level": "error", "message": {"text": "Insecure pattern 'tls_verify_false' in src/cas/monitor/reachability.py:210"}, "properties": {"repobilityId": "f6e947feaa7b3a35", "scanner": "scanner-primary", "fingerprint": "5ace395848a5a56a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "tls_verify_false"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/monitor/reachability.py"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-0763d85002569570", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4289fb2fbaf82766", "scanner": "scanner-primary", "fingerprint": "0763d85002569570", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docs.yml"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-14ce8614dd03f409", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "81c5c697653f94e8", "scanner": "scanner-primary", "fingerprint": "14ce8614dd03f409", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docs.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3d99cb4a60e08457", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e1be6a831a9683ec", "scanner": "scanner-primary", "fingerprint": "3d99cb4a60e08457", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/provider-health.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-3d99cb4a60e08457", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e1be6a831a9683ec", "scanner": "scanner-primary", "fingerprint": "3d99cb4a60e08457", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/provider-health.yml"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-3d99cb4a60e08457", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "201af5c385b22f58", "scanner": "scanner-primary", "fingerprint": "3d99cb4a60e08457", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/provider-health.yml"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-3d99cb4a60e08457", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7f42846ea7025fb9", "scanner": "scanner-primary", "fingerprint": "3d99cb4a60e08457", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/provider-health.yml"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-7b722939ba526a22", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "de20f2d8bf6d64e2", "scanner": "scanner-primary", "fingerprint": "7b722939ba526a22", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/provider-health.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-1cc5815a36123ff6", "level": "note", "message": {"text": "Very large file: src/cas/connectors/national_europe.py (2882 lines)"}, "properties": {"repobilityId": "a0f5130ec54b0e74", "scanner": "scanner-primary", "fingerprint": "1cc5815a36123ff6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "534e5d8dacaac3d5", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-a9cf1858b993b000", "level": "note", "message": {"text": "Legacy-named symbol `WHYMAP_WOKAM_v1` in tests/test_mirror_registry.py:68"}, "properties": {"repobilityId": "f941acc355d52202", "scanner": "scanner-primary", "fingerprint": "a9cf1858b993b000", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1c42920dcd59cf29", "level": "note", "message": {"text": "Legacy-named symbol `glhymps_v2` in tests/test_mirror_glhymps_extract.py:57"}, "properties": {"repobilityId": "36926770c92c4283", "scanner": "scanner-primary", "fingerprint": "1c42920dcd59cf29", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3ad75a17112c6438", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/mirror_utils.py:22"}, "properties": {"repobilityId": "082aa78a776c48f5", "scanner": "scanner-primary", "fingerprint": "3ad75a17112c6438", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83d47d60de99f3a5", "level": "note", "message": {"text": "Legacy-named symbol `catchments_v1` in tests/test_mirror_geofabrics.py:164"}, "properties": {"repobilityId": "7fb9c138661ebb32", "scanner": "scanner-primary", "fingerprint": "83d47d60de99f3a5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5d69bfb31bf9954e", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in tests/test_mirror_import.py:310"}, "properties": {"repobilityId": "3ff4382433e7795b", "scanner": "scanner-primary", "fingerprint": "5d69bfb31bf9954e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-76ff28995154f1c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/connectors/test_mapbiomas_regional.py:75"}, "properties": {"repobilityId": "23d39d87e3d25688", "scanner": "scanner-primary", "fingerprint": "76ff28995154f1c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6cc6cd0d3d2f118c", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/cas/integrations/symfluence.py:796"}, "properties": {"repobilityId": "bb37f97c5beb7da8", "scanner": "scanner-primary", "fingerprint": "6cc6cd0d3d2f118c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c70d647166571e6c", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/cas/connectors/national_asia_oceania.py:58"}, "properties": {"repobilityId": "405de188e8b47c34", "scanner": "scanner-primary", "fingerprint": "c70d647166571e6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45d9cc651d30c1c1", "level": "note", "message": {"text": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/glacier_cover.py:36"}, "properties": {"repobilityId": "e0cf33a3529e1c1f", "scanner": "scanner-primary", "fingerprint": "45d9cc651d30c1c1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1e7a91de67f0ff61", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/cas/connectors/isric_soilgrids.py:60"}, "properties": {"repobilityId": "b09848fb7ccce902", "scanner": "scanner-primary", "fingerprint": "1e7a91de67f0ff61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-540ad1ffab7a4f1d", "level": "note", "message": {"text": "Legacy-named symbol `0cm_2010_v1` in src/cas/connectors/global_ecosystems.py:36"}, "properties": {"repobilityId": "99ab9b655a6cc16a", "scanner": "scanner-primary", "fingerprint": "540ad1ffab7a4f1d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ec3657ea9974f3a9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/cas/connectors/national_wcs.py:241"}, "properties": {"repobilityId": "aed140336efb8284", "scanner": "scanner-primary", "fingerprint": "ec3657ea9974f3a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a60ead5c616de60b", "level": "note", "message": {"text": "Legacy-named symbol `2019_v1` in src/cas/connectors/global_surface_water.py:36"}, "properties": {"repobilityId": "eb498d803f79d03d", "scanner": "scanner-primary", "fingerprint": "a60ead5c616de60b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f213c8db3c9df67a", "level": "note", "message": {"text": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/global_soil_erosion.py:44"}, "properties": {"repobilityId": "e0125f40cbc24cbb", "scanner": "scanner-primary", "fingerprint": "f213c8db3c9df67a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ac6a6d2bd5f4a233", "level": "note", "message": {"text": "Legacy-named symbol `0cm_2018_v1` in src/cas/connectors/global_imperviousness.py:36"}, "properties": {"repobilityId": "0954daabaf83a210", "scanner": "scanner-primary", "fingerprint": "ac6a6d2bd5f4a233", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0a1031e646c96c95", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/cas/connectors/ghsl_urban.py:46"}, "properties": {"repobilityId": "096b25838abb3656", "scanner": "scanner-primary", "fingerprint": "0a1031e646c96c95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88b8a693780d5f73", "level": "note", "message": {"text": "Legacy-named symbol `0cm_2019_v1` in src/cas/connectors/global_hydro_soil.py:52"}, "properties": {"repobilityId": "bcf50f135705abc6", "scanner": "scanner-primary", "fingerprint": "88b8a693780d5f73", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f31e986098220324", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/cas/connectors/wfs_vector.py:293"}, "properties": {"repobilityId": "0aba4b02d1462279", "scanner": "scanner-primary", "fingerprint": "f31e986098220324", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-321fe609a81fa82e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/cas/connectors/national_americas.py:242"}, "properties": {"repobilityId": "cb7ec1b01b039416", "scanner": "scanner-primary", "fingerprint": "321fe609a81fa82e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7268814950a3512", "level": "note", "message": {"text": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/glim.py:39"}, "properties": {"repobilityId": "5719e00e162eb3e4", "scanner": "scanner-primary", "fingerprint": "c7268814950a3512", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-300ac38ce814133d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/cas/connectors/arcgis_feature.py:307"}, "properties": {"repobilityId": "96bd1635ea3369ea", "scanner": "scanner-primary", "fingerprint": "300ac38ce814133d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bca2041cb27e5b0", "level": "note", "message": {"text": "Legacy-named symbol `0cm_2017_v1` in src/cas/connectors/terrain_derivatives.py:36"}, "properties": {"repobilityId": "5d5a65fd49a9d7ed", "scanner": "scanner-primary", "fingerprint": "9bca2041cb27e5b0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-10c938f3fddfcab9", "level": "none", "message": {"text": "Commented-code block (16 lines) in src/cas/connectors/national_europe.py:1623"}, "properties": {"repobilityId": "d8d705b32bbc5414", "scanner": "scanner-primary", "fingerprint": "10c938f3fddfcab9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c77f87af4cb38b17", "level": "note", "message": {"text": "Legacy-named symbol `0cm_2015_v1` in src/cas/connectors/global_crops_irrigation.py:36"}, "properties": {"repobilityId": "e76398db8c1e5abf", "scanner": "scanner-primary", "fingerprint": "c77f87af4cb38b17", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ab954ca5b7857753", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/cas/connectors/mapbiomas_regional.py:63"}, "properties": {"repobilityId": "72422310fd6269be", "scanner": "scanner-primary", "fingerprint": "ab954ca5b7857753", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b92a03ec7dab7db3", "level": "note", "message": {"text": "Legacy-named symbol `2022_v1` in src/cas/connectors/global_vegetation.py:36"}, "properties": {"repobilityId": "68b1c1a85c8daca3", "scanner": "scanner-primary", "fingerprint": "b92a03ec7dab7db3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6eb4433c1c98c127", "level": "note", "message": {"text": "Legacy-named symbol `IslandsDEM_v1` in src/cas/connectors/islands_dem.py:47"}, "properties": {"repobilityId": "edca2547d89c1be1", "scanner": "scanner-primary", "fingerprint": "6eb4433c1c98c127", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fa3c6477d03d1a8e", "level": "note", "message": {"text": "Legacy-named symbol `WHYMAP_WOKAM_v1` in src/cas/mirror/datasets.py:243"}, "properties": {"repobilityId": "4b03e0bbea1bde14", "scanner": "scanner-primary", "fingerprint": "fa3c6477d03d1a8e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8c8af4f5a97247d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/cas/mirror/datasets.py:350"}, "properties": {"repobilityId": "1e94ed784b79cdf4", "scanner": "scanner-primary", "fingerprint": "8c8af4f5a97247d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b93c3d307cc6e680", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/cas/mirror/units.py:60"}, "properties": {"repobilityId": "502e4e2b5f0a756b", "scanner": "scanner-primary", "fingerprint": "b93c3d307cc6e680", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86b83c8d1ab85297", "level": "note", "message": {"text": "Legacy-named symbol `glhymps_v2` in src/cas/mirror/store.py:11"}, "properties": {"repobilityId": "d1e921841cc65a16", "scanner": "scanner-primary", "fingerprint": "86b83c8d1ab85297", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-95a42d33f0edca84", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/cas/mirror/fetch.py:147"}, "properties": {"repobilityId": "41aed28c93c2f8a9", "scanner": "scanner-primary", "fingerprint": "95a42d33f0edca84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1ec85ef74f1e249", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/cas/monitor/health.py:89"}, "properties": {"repobilityId": "0a275038b27bf77c", "scanner": "scanner-primary", "fingerprint": "b1ec85ef74f1e249", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b441d1676489070f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/cas/monitor/geometry_check.py:23"}, "properties": {"repobilityId": "38d94946326c2e1a", "scanner": "scanner-primary", "fingerprint": "b441d1676489070f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "fc5e05e3c0de7159", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "eda45e7e06d471ba", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "6f667f0e10e32206", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-88194a5835f13944", "level": "note", "message": {"text": "Near-duplicate function bodies in 77 places"}, "properties": {"repobilityId": "a7fe6592adea7229", "scanner": "scanner-primary", "fingerprint": "88194a5835f13944", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "9eda5b1be236e6ad", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "cbf0a40c15a2d755", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "63505040f2b30194", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "00478d9348907ff2", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "fdc4850afb88d49c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3fe2c4a72094804e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "bd106bc17582fa22", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "14dcd7a3c2ecfd1c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "020543e58393480a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3d0684c13df8396f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "598c0e3b47803aca", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "cfbfc89d4f64f0c9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-720b20d4c08e095a", "level": "error", "message": {"text": "FastAPI POST `batch_extract_attributes` without auth dependency \u2014 src/cas/api/app.py:119"}, "properties": {"repobilityId": "b067163b6f2af399", "scanner": "scanner-primary", "fingerprint": "720b20d4c08e095a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cas/api/app.py"}, "region": {"startLine": 119}}}]}]}]}