{"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-681a191b280ab432", "name": "Possibly dead Python function: status_icon", "shortDescription": {"text": "Possibly dead Python function: status_icon"}, "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-690b3a80bf6d624d", "name": "Possibly dead Python function: fetch_region_coverage", "shortDescription": {"text": "Possibly dead Python function: fetch_region_coverage"}, "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-872b4ec68d3f6cb2", "name": "Possibly dead Python function: fetch_region_reasonableness", "shortDescription": {"text": "Possibly dead Python function: fetch_region_reasonableness"}, "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-b9622885db2faea1", "name": "Possibly dead Python function: run_wepppyo3", "shortDescription": {"text": "Possibly dead Python function: run_wepppyo3"}, "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-30ab672c797ceac8", "name": "Possibly dead Python function: run_oxidized", "shortDescription": {"text": "Possibly dead Python function: run_oxidized"}, "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-c8aee49007e0182b", "name": "Possibly dead Python function: run_single_hillslope_audit", "shortDescription": {"text": "Possibly dead Python function: run_single_hillslope_audit"}, "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-d8b179e9e3d46a46", "name": "Possibly dead Python function: compress_fn", "shortDescription": {"text": "Possibly dead Python function: compress_fn"}, "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-2528d67bfa2cc6a2", "name": "Possibly dead Python function: run_batch_watershed_rq", "shortDescription": {"text": "Possibly dead Python function: run_batch_watershed_rq"}, "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-d4167d5280c0d47d", "name": "Possibly dead Python function: progress_callback", "shortDescription": {"text": "Possibly dead Python function: progress_callback"}, "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-f05a59b2b0ff336f", "name": "Possibly dead Python function: start_worker", "shortDescription": {"text": "Possibly dead Python function: start_worker"}, "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-eea2239674ba0fde", "name": "Possibly dead Python function: stream_aria2", "shortDescription": {"text": "Possibly dead Python function: stream_aria2"}, "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-58f511227bbd53d4", "name": "Possibly dead Python function: run_interchange_migration", "shortDescription": {"text": "Possibly dead Python function: run_interchange_migration"}, "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-0648bee85c795b42", "name": "Possibly dead Python function: from_b64url", "shortDescription": {"text": "Possibly dead Python function: from_b64url"}, "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-f1eb3358c2bc9551", "name": "Possibly dead Python function: b64url_compact", "shortDescription": {"text": "Possibly dead Python function: b64url_compact"}, "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-559cc0d41053cf73", "name": "Possibly dead Python function: from_b64url_compact", "shortDescription": {"text": "Possibly dead Python function: from_b64url_compact"}, "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-3259648f8dbb47e1", "name": "Possibly dead Python function: process_raster", "shortDescription": {"text": "Possibly dead Python function: process_raster"}, "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-a67d5ceb0899a687", "name": "Possibly dead Python function: cleanup_files", "shortDescription": {"text": "Possibly dead Python function: cleanup_files"}, "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-e9321eb05f6e54b5", "name": "Possibly dead Python function: delete_files", "shortDescription": {"text": "Possibly dead Python function: delete_files"}, "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-60b3b872b84c0421", "name": "Possibly dead Python function: daily_worker", "shortDescription": {"text": "Possibly dead Python function: daily_worker"}, "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-c983b3e01ae67aa2", "name": "Possibly dead Python function: delete_files", "shortDescription": {"text": "Possibly dead Python function: delete_files"}, "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-2ab0cb3d4b27b5c8", "name": "Possibly dead Python function: run_request", "shortDescription": {"text": "Possibly dead Python function: run_request"}, "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-a5fe0cc9d50a53c0", "name": "Stray `console.log` in TS/JS \u2014 tests/weppcloud/controllers_js/status_stream_test.js:243", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/weppcloud/controllers_js/status_stream_test.js:243"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3edf1f09817904e8", "name": "Stray `console.log` in TS/JS \u2014 tests/weppcloud/controllers_js/unitizer_client_test.js:181", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/weppcloud/controllers_js/unitizer_client_test.js:181"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a89751ad1f0b2f45", "name": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/plotty.js:675", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/plotty.js:675"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-167b0733f9a9498a", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/preflight.js:182", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/preflight.js:182"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-571726b387dfd355", "name": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/d3.js:6692", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/d3.js:6692"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec77ae6b2cf95ec9", "name": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/leaflet-1.71.js:1323", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/leaflet-1.71.js:1323"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-355ce9e800525ce4", "name": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/leaflet-geotiff.js:71", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/leaflet-geotiff.js:71"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a795f287cb8b036f", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/leaflet-geotiff.js:212", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/leaflet-geotiff.js:212"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5cf04233825bd889", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/copytext.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/copytext.js:8"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad8e699adbe6b36f", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/polylabel.js:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/polylabel.js:53"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-44aa4d62949f49a2", "name": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/geotiff.js:8", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/geotiff.js:8"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18c106ae5ba2e4db", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/controllers_js/wepp.js:572", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/controllers_js/wepp.js:572"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c40b2efb32ba08fb", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/controllers_js/unitizer_client.js:357", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/controllers_js/unitizer_client.js:357"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f2faa8d81ec0267a", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/theme-metrics.helpers.js:471", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/theme-metrics.helpers.js:471"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0b7e431c79764945", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/theme-metrics.spec.js:215", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/theme-metrics.spec.js:215"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8a0bc0fcbb533499", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/check-layer-identity.spec.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/check-layer-identity.spec.js:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-520600195ece3297", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/landuse-soils-verification.spec.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/landuse-soils-verification.spec.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fa200f0c94b828f5", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/test-live-slope.spec.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/test-live-slope.spec.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c243fe004c8c0ef6", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/visual-verification.spec.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/visual-verification.spec.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e962d3d1ed9ab9ec", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/verify-fix.spec.js:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/verify-fix.spec.js:31"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91aceef438056fa5", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/diagnose-rendering.spec.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/diagnose-rendering.spec.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-228506fe5a27e65f", "name": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/a11y/axe-runs0.spec.js:598", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/a11y/axe-runs0.spec.js:598"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5e45d6fd9f0d00e3", "name": "TODO/FIXME marker in shipping code \u2014 weppcloud-ui-lab/AFFILIATIONS_EXAMPLE.tsx:21", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 weppcloud-ui-lab/AFFILIATIONS_EXAMPLE.tsx:21"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8cb103854eb37e75", "name": "Stray `console.log` in TS/JS \u2014 services/cap/server.js:175", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/cap/server.js:175"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c6152a0386c02a74", "name": "Privileged port 20 in use", "shortDescription": {"text": "Privileged port 20 in use"}, "fullDescription": {"text": "Port 20 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2606d1546b99a87f", "name": "Privileged port 10 in use", "shortDescription": {"text": "Privileged port 10 in use"}, "fullDescription": {"text": "Port 10 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bde03e3d5f86dd72", "name": "Privileged port 35 in use", "shortDescription": {"text": "Privileged port 35 in use"}, "fullDescription": {"text": "Port 35 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf413366fdf52fe9", "name": "Privileged port 15 in use", "shortDescription": {"text": "Privileged port 15 in use"}, "fullDescription": {"text": "Port 15 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-277c75946c3eda2b", "name": "Privileged port 55 in use", "shortDescription": {"text": "Privileged port 55 in use"}, "fullDescription": {"text": "Port 55 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a39bfb32dff52196", "name": "Privileged port 30 in use", "shortDescription": {"text": "Privileged port 30 in use"}, "fullDescription": {"text": "Port 30 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1de4b9fec52d1fc3", "name": "Privileged port 40 in use", "shortDescription": {"text": "Privileged port 40 in use"}, "fullDescription": {"text": "Port 40 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-09fd31d1f4862fc5", "name": "Privileged port 50 in use", "shortDescription": {"text": "Privileged port 50 in use"}, "fullDescription": {"text": "Port 50 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b39aaac63f2ae10c", "name": "Privileged port 45 in use", "shortDescription": {"text": "Privileged port 45 in use"}, "fullDescription": {"text": "Port 45 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c15a21530bd7b343", "name": "Privileged port 17 in use", "shortDescription": {"text": "Privileged port 17 in use"}, "fullDescription": {"text": "Port 17 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28b46c86f5a3f7e8", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "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-cc1993b223cce259", "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-adf6c0c7e3923ba7", "name": "Dockerfile pipes a remote installer into a shell", "shortDescription": {"text": "Dockerfile pipes a remote installer into a shell"}, "fullDescription": {"text": "Executing downloaded code during image build gives the remote endpoint build-time code execution. Prefer pinned packages or verify downloaded installers by checksum/signature."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5ca8db9432c2858c", "name": "Dockerfile runs as root: weppcloudR/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: weppcloudR/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0dc740e2aae2742e", "name": "Dockerfile runs as root: services/preflight2/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: services/preflight2/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b3425b27cf8c70a7", "name": "Docker base image is tag-pinned but not digest-pinned: golang:1.25-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: golang:1.25-alpine"}, "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-04a23bf09d52c5a4", "name": "Docker base image is tag-pinned but not digest-pinned: gcr.io/distroless/static:nonroot", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: gcr.io/distroless/static:nonroot"}, "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-49435c338a4e005c", "name": "Dockerfile runs as root: services/status2/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: services/status2/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b69c3a9fa031f368", "name": "Docker base image is tag-pinned but not digest-pinned: golang:1.25-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: golang:1.25-alpine"}, "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-d0e4b5d9c1075f71", "name": "Docker base image is tag-pinned but not digest-pinned: gcr.io/distroless/static:nonroot", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: gcr.io/distroless/static:nonroot"}, "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-345ef3aa5603f8f3", "name": "Dockerfile runs as root: services/cap/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: services/cap/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42bbf7698fc98f99", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "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-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac69da311bf79735", "name": "Possible secret in docker/docker-compose.dev.yml", "shortDescription": {"text": "Possible secret in docker/docker-compose.dev.yml"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-7e0f5c80737bd77e", "name": "Possible secret in docker/redis-entrypoint.sh", "shortDescription": {"text": "Possible secret in docker/redis-entrypoint.sh"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-1fb1e25f46b6520f", "name": "Possible secret in docker/docker-compose.dev.hpc.yml", "shortDescription": {"text": "Possible secret in docker/docker-compose.dev.hpc.yml"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-3b0f0fd9dc351391", "name": "Possible secret in docker/docker-compose.prod.yml", "shortDescription": {"text": "Possible secret in docker/docker-compose.prod.yml"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-34ec85d1b11803ab", "name": "Insecure pattern 'subprocess_shell_true' in wepppy/rq/wepp_rq.py:360", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in wepppy/rq/wepp_rq.py:360"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e45184b81e9a13b", "name": "Insecure pattern 'debug_true' in wepppy/webservices/rq_dashboard.py:29", "shortDescription": {"text": "Insecure pattern 'debug_true' in wepppy/webservices/rq_dashboard.py:29"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a54e35c2cea611a6", "name": "Insecure pattern 'subprocess_shell_true' in wepppy/au/soils/asris_soil_grids/scripts/make_gdalinfo_jsons.py:27", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in wepppy/au/soils/asris_soil_grids/scripts/make_gdalinfo_jsons.py:27"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c41c3942fdd914e", "name": "Insecure pattern 'subprocess_shell_true' in wepppy/au/landuse_201011/__init__.py:30", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in wepppy/au/landuse_201011/__init__.py:30"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a42b9fdf541cbe3", "name": "Insecure pattern 'debug_true' in wepppy/climates/daymet/daymet_singlelocation_client.py:246", "shortDescription": {"text": "Insecure pattern 'debug_true' in wepppy/climates/daymet/daymet_singlelocation_client.py:246"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3064d1a849789bf1", "name": "Insecure pattern 'cors_wildcard' in wepppy/query_engine/app/server.py:964", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in wepppy/query_engine/app/server.py:964"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-787262dd8ef60c15", "name": "Insecure pattern 'subprocess_shell_true' in wepppy/all_your_base/geo/geo.py:145", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in wepppy/all_your_base/geo/geo.py:145"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4329a5fcccfe1343", "name": "Insecure pattern 'eval_used' in wepppy/topo/watershed_collection/watershed_collection.py:754", "shortDescription": {"text": "Insecure pattern 'eval_used' in wepppy/topo/watershed_collection/watershed_collection.py:754"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d2add95709cf3dc9", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/gl-dashboard.js:14", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/gl-dashboard.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff2c59b30fee3061", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/fork_console.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/fork_console.js:38"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c1109885ffa8fcfa", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/parquet_schema_preview.js:15", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/parquet_schema_preview.js:15"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e079d41692e2ed7e", "name": "Insecure pattern 'new_function_used' in wepppy/weppcloud/static/js/underscore.js:1454", "shortDescription": {"text": "Insecure pattern 'new_function_used' in wepppy/weppcloud/static/js/underscore.js:1454"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a45f36d54f324ba8", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/archive_console.js:39", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/archive_console.js:39"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f104e1c74858408a", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/status_stream.js:288", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/status_stream.js:288"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-963e803e452b2b43", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/parquet_filter_builder.js:389", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/parquet_filter_builder.js:389"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fab9f7ceaf4b28d1", "name": "Insecure pattern 'new_function_used' in wepppy/weppcloud/static/js/d3.js:8124", "shortDescription": {"text": "Insecure pattern 'new_function_used' in wepppy/weppcloud/static/js/d3.js:8124"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-044404f94e328da5", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/d3.js:2303", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/d3.js:2303"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7de8a8154802f30d", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/leaflet-1.71.js:1958", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/leaflet-1.71.js:1958"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-506e4a8df5169abb", "name": "Insecure pattern 'new_function_used' in wepppy/weppcloud/static/js/glify-browser.js:2", "shortDescription": {"text": "Insecure pattern 'new_function_used' in wepppy/weppcloud/static/js/glify-browser.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ddd64c791c4d243d", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/hydrology-su", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/hydrology-summary.test.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7df4db9788be584a", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/event-table.", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/event-table.test.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e723f1c9881d9232", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/hyetograph-c", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/hyetograph-chart.test.js:41"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-274c37040467c6d7", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/frequency-ta", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/frequency-table.test.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cba389b0cd4f61b0", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/charts/hyetograph.js:8", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/charts/hyetograph.js:84"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-59925b264704f3c2", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/ui/hydrology-summary.j", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/ui/hydrology-summary.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c1b030d78a5118ca", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/ui/event-table.js:7", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/ui/event-table.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9667d5db878d6cff", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/ui/frequency-table.js:", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/ui/frequency-table.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a0014fc91cf19ea", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/gl-dashboard/layers/renderer.js:519", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/gl-dashboard/layers/renderer.js:519"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-525d9ffe35eb79be", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/gl-dashboard/graphs/controller.js:597", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/gl-dashboard/graphs/controller.js:597"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d643a7ae117206a7", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/pivottable/pivot.js:1015", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/pivottable/pivot.js:1015"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1221df3c0965cc05", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/routes/command_bar/static/command-bar.js:397", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/routes/command_bar/static/command-bar.js:397"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ed441ca7087cada", "name": "Insecure pattern 'domparser_html_parse' in wepppy/weppcloud/routes/command_bar/static/command-bar.js:352", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in wepppy/weppcloud/routes/command_bar/static/command-bar.js:352"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-03435f5ed151cbd8", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/routes/diff/static/diff_viewer.js:339", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/routes/diff/static/diff_viewer.js:339"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-faebd20f6914affa", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/team.js:68", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/team.js:68"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dcba37be8a1ad920", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/team.js:75", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/team.js:75"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-368f4ebc984a5739", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/baer.js:134", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/baer.js:134"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42e3ee4c29d801bf", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/baer.js:141", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/baer.js:141"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c347779457177a31", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/run_sync_dashboard.js:59", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/run_sync_dashboard.js:59"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01853f318bd57b1f", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl_layer_control.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl_layer_control.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e8fe260f18cb8d16", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/ash.js:86", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/ash.js:86"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9a96beb9ec7fab62", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/ash.js:93", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/ash.js:93"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-09f810f67b52c250", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl_shared.js:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl_shared.js:115"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1a1170005c087a3", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/map_gl_shared.js:123", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/map_gl_shared.js:123"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-37da7ee191cb6fd8", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rangeland_cover.js:81", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rangeland_cover.js:81"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee440bac3b413d37", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rangeland_cover.js:88", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rangeland_cover.js:88"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-646db00b82113bfe", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/roads.js:145", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/roads.js:145"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b36275391165b59", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/roads.js:152", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/roads.js:152"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-814b54696c0a8f59", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/observed.js:100", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/observed.js:100"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1eb03d7957fd3c0", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/observed.js:107", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/observed.js:107"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a1dcaf728e4812a", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/utils.js:235", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/utils.js:235"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f159d58eabdad55", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/openet_ts.js:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/openet_ts.js:101"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15d4bff5fc1bfaf2", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/openet_ts.js:108", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/openet_ts.js:108"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1bff9090dfc849fd", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/wepp.js:70", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/wepp.js:70"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2764639caa4991bd", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/wepp.js:77", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/wepp.js:77"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f77421058a7de3a3", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/climate.js:97", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/climate.js:97"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-378fa0267f5bc15f", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/climate.js:104", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/climate.js:104"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e46729c617eb7b0e", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/dss_export.js:108", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/dss_export.js:108"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-472a57e1908c9370", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/dss_export.js:115", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/dss_export.js:115"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22d0c90a126eb484", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/landuse.js:70", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/landuse.js:70"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ebc3b90d5db18abe", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/landuse.js:77", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/landuse.js:77"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-acb066d1c2d40dfa", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/channel_gl.js:154", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/channel_gl.js:154"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5cb706244e0f0597", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/channel_gl.js:161", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/channel_gl.js:161"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1a1307c1b34cbcc", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rhem.js:80", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rhem.js:80"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fc9794bd72776a72", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rhem.js:87", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rhem.js:87"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b24691eb836354e", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/geneva_summary_report.js:645", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/geneva_summary_report.js:645"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-109b6d394d6eb053", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/bootstrap_control.js:357", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/bootstrap_control.js:357"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fdb88c1432858821", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/control_base.js:594", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/control_base.js:594"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-801af14d30b01b6a", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/control_base.js:610", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/control_base.js:610"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14edb874f466745c", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/features_export.js:169", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/features_export.js:169"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb876670e4a046c9", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/features_export.js:176", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/features_export.js:176"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc249afa15b587cd", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/subcatchment_delineation.js:71", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/subcatchment_delineation.js:71"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-afff614a1c944688", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/subcatchment_delineation.js:78", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/subcatchment_delineation.js:78"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4dc8c355d9072d59", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/status_stream.js:282", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/status_stream.js:282"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a12a93eff778e977", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/channel_delineation.js:70", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/channel_delineation.js:70"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-203ca08f94e66149", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/channel_delineation.js:77", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/channel_delineation.js:77"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc0eb81704a2ba44", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl.js:1467", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl.js:1467"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-825a22ba02c155c2", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/project.js:979", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/project.js:979"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e17b4a180df20ce", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/geneva.js:127", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/geneva.js:127"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46a2afbbba6e58d0", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/geneva.js:134", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/geneva.js:134"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1bc2ad14ce645138", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl_feature_ui.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl_feature_ui.js:48"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-212ce41e9a603d97", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/batch_runner.js:135", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/batch_runner.js:135"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f0b8632d14361d79", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rap_ts.js:102", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rap_ts.js:102"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de8786d338be12d0", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rap_ts.js:109", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rap_ts.js:109"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c62b1325ce4fc2f2", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/omni.js:221", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/omni.js:221"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b049b9a2438c299e", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/omni.js:228", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/omni.js:228"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6a79679867cb5b2", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/dom.js:182", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/dom.js:182"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f93266e7dccc8699", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/disturbed.js:116", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/disturbed.js:116"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a82b0c83b00816f", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/disturbed.js:123", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/disturbed.js:123"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b017d35e8dd3ed3", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/subcatchments_gl.js:133", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/subcatchments_gl.js:133"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-75733e796c082379", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/subcatchments_gl.js:140", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/subcatchments_gl.js:140"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a8717aff6f2509f", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/soil.js:66", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/soil.js:66"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14a498ea27c65345", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/soil.js:73", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/soil.js:73"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5ff161bbdcdd32c", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/selection_utils.js:45", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/selection_utils.js:45"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5835f5e9bed7d4a4", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/selection_utils.js:52", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/selection_utils.js:52"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f7c44a3ff4192fa", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rusle.js:114", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rusle.js:114"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d97ad928da5ab5b", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rusle.js:121", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rusle.js:121"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d40f38cf4028018", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/debris_flow.js:77", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/debris_flow.js:77"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fedaa704f5b5c69c", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/debris_flow.js:84", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/debris_flow.js:84"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da8300dbb9552fef", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/treatments.js:91", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/treatments.js:91"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1fc7dc9cc362c6a6", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/treatments.js:98", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/treatments.js:98"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80edb9678eae33a9", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/unitizer_client.js:552", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/unitizer_client.js:552"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28969e8b7af37ce7", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/path_ce.js:106", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/path_ce.js:106"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fed83acd6833e7af", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/path_ce.js:113", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/path_ce.js:113"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5422e495ffbd9b20", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/outlet_gl.js:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/outlet_gl.js:115"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-84a8789d690a79b2", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/outlet_gl.js:122", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/outlet_gl.js:122"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-700c9f29c3b07554", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/map_gl.test.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/map_gl.test.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0078dba1361479a5", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/copytext.test.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/copytext.test.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c2bee9cd6505e5e8", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/baer.test.js:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/baer.test.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c72f68e74d096c4", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/dss_export.test.js:74", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/dss_export.test.js:74"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-71c48b6115a32406", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/omni.test.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/omni.test.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0c8136f9c5c52b7f", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/outlet_gl.test.js:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/outlet_gl.test.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6df4ec7d85f8f795", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/path_ce.test.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/path_ce.test.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6bc67d96535d7050", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/openet_ts.test.js:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/openet_ts.test.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-24eb298912043939", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/batch_runner.test.js:44", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/batch_runner.test.js:44"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3bd8bb45cca1f99b", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/climate.test.js:15", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/climate.test.js:15"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-75ef59fdaa2aa60b", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/team.test.js:20", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/team.test.js:20"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe08d08ddf759566", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/debris_flow.test.js:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/debris_flow.test.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c673aee6d5cbac6b", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/roads.test.js:77", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/roads.test.js:77"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a362a11da5989178", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/console_smoke.test.js:53", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/console_smoke.test.js:53"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3fc0a651c387328e", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse_map_inline.test.js:6", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse_map_inline.test.js:62"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-020ec75f43dea03d", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/http.test.js:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/http.test.js:40"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd73c9bd773bc1a2", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/events.test.js:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/events.test.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2eef8f42115500ef", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/control_base.test.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/control_base.test.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-551e0d75c9bb324a", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/wepp.test.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/wepp.test.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-babe2e7acb2d33bc", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/sorttable.test.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/sorttable.test.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f5d83746828f4bbc", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/geneva_summary_report.test.j", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/geneva_summary_report.test.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa1d43365aa210a7", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/__tests__/geneva_summary_report.test.js:375", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/__tests__/geneva_summary_report.test.js:375"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-95316ee39f5d40c8", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/treatments.test.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/treatments.test.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-627af9234f587501", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/disturbed.test.js:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/disturbed.test.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d3d0a29e6fb4310e", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/forms.test.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/forms.test.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19faf5a6de3940f5", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse_user_defined_catalog", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse_user_defined_catalog_inline.test.js:66"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a99e88945b097978", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rangeland_cover.test.js:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rangeland_cover.test.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-97db7c3cbe8cdb80", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/subcatchment_delineation.tes", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/subcatchment_delineation.test.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5f5743169f9da705", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rusle.test.js:15", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rusle.test.js:15"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b73244f61b45f2b", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/channel_delineation.test.js:", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/channel_delineation.test.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8dda068d8d1b52d5", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/features_export.test.js:354", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/features_export.test.js:354"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61ce6811016853de", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/bootstrap_control.test.js:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/bootstrap_control.test.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ad2bd07b3866479c", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rap_ts.test.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rap_ts.test.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-468c7e03d5176257", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/project.test.js:21", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/project.test.js:21"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fd7a33eb8076dcdb", "name": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/__tests__/project.test.js:287", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/__tests__/project.test.js:287"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-83caa7a1c414a95f", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rangeland_cover_modify_gl.te", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rangeland_cover_modify_gl.test.js:31"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-25deab1708c234db", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse.test.js:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse.test.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b3ec96a9201cc8b", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:30", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:30"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-03458a8b06cb9883", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/session_heartbeat.test.js:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/session_heartbeat.test.js:23"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2bc672960655b194", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/observed.test.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/observed.test.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17bf7656af9e7273", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/ash.test.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/ash.test.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-06f50de073b492bd", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/soil.test.js:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/soil.test.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4ecfb82b3d8a4470", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/geneva.test.js:57", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/geneva.test.js:57"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3ee429754a4b298", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/omni_contrasts_gl.test.js:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/omni_contrasts_gl.test.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9042c65c4b25b74", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse_modify_gl.test.js:32", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse_modify_gl.test.js:32"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fcf7e5a4b6ed3dd6", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/subcatchments_gl.test.js:24", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/subcatchments_gl.test.js:24"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3be092bb35fbd789", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/controllers_gl_stale_check.t", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/controllers_gl_stale_check.test.js:22"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-095def6d8c1a4010", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/channel_gl.test.js:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/channel_gl.test.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-88d3a91bc0cd6981", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/roads_gl.test.js:39", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/roads_gl.test.js:39"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e5bb8c8507ff1b6d", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/dom.test.js:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/dom.test.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-37d9da501164310a", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rhem.test.js:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rhem.test.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28a264e0c35a6d9e", "name": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static-src/js/archive_console.js:39", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static-src/js/archive_console.js:39"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ebe0fee8cd0b2a1", "name": "Insecure pattern 'weak_hash' in wepppy/nodb/mods/omni/README.md:376", "shortDescription": {"text": "Insecure pattern 'weak_hash' in wepppy/nodb/mods/omni/README.md:376"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f9c854bc3ad532c", "name": "Insecure pattern 'cors_wildcard' in services/cap/server.js:73", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in services/cap/server.js:73"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b5c8ffa73a646a4", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-137ad4821db170af", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-f3a2acb221676973", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-7928a42fe84f4bed", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-c482e17c09ccb4fd", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-5fb373b803db7fc2", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-26d2f1d8522afce9", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-5f88740ecb0f9e78", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-a896ee1de2281c8d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-af301e09e6ee181a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-ca6dfa753f42e1b4", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-16c8d6d9a569c6fa", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-46cb674739fd0dd0", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-dff334521172a515", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-8a17a1629209f463", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-385a779dee8fcc07", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-875e013d231fede3", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-aae9c1a32f79f72e", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-81191566bbacd92d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-c064bb63f82c6662", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-72f0ba38fbf45f09", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-2f08008e75771078", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-eea8b6babb581b80", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-4c560ad7a286ff5d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-753df015bcc77acb", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-1f5934e083783a39", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-269bd1b8c25a4598", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-dc04d1854e338254", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-bd463885424d781d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-b11a3d95981d71f2", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-df6d504ece7868c8", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-dbb9c5944b9e75e8", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-defbe38c2a3dbb80", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-bfc5770d5127e7a9", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-d61a845d09d01c18", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-cb66ec02463f106e", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-3ad6644ad17bc94f", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-d6c8e93d2952f284", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-f729abeca0d949a7", "name": "Very large file: tests/rq/test_project_rq_mutation_guards.py (1875 lines)", "shortDescription": {"text": "Very large file: tests/rq/test_project_rq_mutation_guards.py (1875 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-ea1ff63cefbf57da", "name": "Very large file: tests/microservices/test_browse_auth_routes.py (2177 lines)", "shortDescription": {"text": "Very large file: tests/microservices/test_browse_auth_routes.py (2177 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-f5bc71c77f1707cb", "name": "Very large file: tests/microservices/test_files_routes.py (1990 lines)", "shortDescription": {"text": "Very large file: tests/microservices/test_files_routes.py (1990 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-92b1d4d805e42cf2", "name": "Very large file: tests/microservices/test_rq_engine_wepp_routes.py (1537 lines)", "shortDescription": {"text": "Very large file: tests/microservices/test_rq_engine_wepp_routes.py (1537 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-bd9112618602b16f", "name": "Very large file: tests/microservices/test_rq_engine_landuse_routes.py (2106 lines)", "shortDescription": {"text": "Very large file: tests/microservices/test_rq_engine_landuse_routes.py (2106 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-1f5e070b9800a324", "name": "Very large file: tests/nodb/mods/test_roads_controller.py (3674 lines)", "shortDescription": {"text": "Very large file: tests/nodb/mods/test_roads_controller.py (3674 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-097733b38cef4366", "name": "Very large file: tests/nodb/mods/test_features_export_service.py (3392 lines)", "shortDescription": {"text": "Very large file: tests/nodb/mods/test_features_export_service.py (3392 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-7513bd771bccae6c", "name": "Very large file: tests/nodb/mods/test_omni.py (3412 lines)", "shortDescription": {"text": "Very large file: tests/nodb/mods/test_omni.py (3412 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-9be77f00b99b630b", "name": "Very large file: docs/work-packages/20260329_features_export_live_run_matrix/artifacts/run_live_matrix.py (2130 lines)", "shortDescription": {"text": "Very large file: docs/work-packages/20260329_features_export_live_run_matrix/artifacts/run_live_matrix.py (2130 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-1826026419d5d7e8", "name": "Very large file: wepppy/rq/project_rq.py (1919 lines)", "shortDescription": {"text": "Very large file: wepppy/rq/project_rq.py (1919 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-c0108673dab927cf", "name": "Very large file: wepppy/rq/culvert_rq.py (1730 lines)", "shortDescription": {"text": "Very large file: wepppy/rq/culvert_rq.py (1730 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-16718cf040dd22ee", "name": "Very large file: wepppy/microservices/browse/browse.py (1597 lines)", "shortDescription": {"text": "Very large file: wepppy/microservices/browse/browse.py (1597 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-e59f610b45619cce", "name": "Very large file: wepppy/microservices/rq_engine/landuse_routes.py (1593 lines)", "shortDescription": {"text": "Very large file: wepppy/microservices/rq_engine/landuse_routes.py (1593 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-07be396598bea801", "name": "Very large file: wepppy/microservices/rq_engine/orchestration_read_routes.py (1412 lines)", "shortDescription": {"text": "Very large file: wepppy/microservices/rq_engine/orchestration_read_routes.py (1412 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-6e3366de5778967c", "name": "Very large file: wepppy/microservices/rq_engine/schema_defaults_routes.py (4458 lines)", "shortDescription": {"text": "Very large file: wepppy/microservices/rq_engine/schema_defaults_routes.py (4458 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-fb69b4a7e586c6ac", "name": "Very large file: wepppy/soils/ssurgo/ssurgo.py (2332 lines)", "shortDescription": {"text": "Very large file: wepppy/soils/ssurgo/ssurgo.py (2332 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-6c903919cff74562", "name": "Very large file: wepppy/climates/cligen/cligen.py (2838 lines)", "shortDescription": {"text": "Very large file: wepppy/climates/cligen/cligen.py (2838 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-eb27eb08266d8d11", "name": "Very large file: wepppy/wepp/management/managements.py (3027 lines)", "shortDescription": {"text": "Very large file: wepppy/wepp/management/managements.py (3027 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-c8c98e49e0ddc0e1", "name": "Very large file: wepppy/wepp/reports/return_periods.py (1252 lines)", "shortDescription": {"text": "Very large file: wepppy/wepp/reports/return_periods.py (1252 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-beaec78e0de3bf10", "name": "Very large file: wepppy/wepp/fuzzing/single_ofe_stratified_campaign.py (2319 lines)", "shortDescription": {"text": "Very large file: wepppy/wepp/fuzzing/single_ofe_stratified_campaign.py (2319 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-d0e7e6dd45818662", "name": "Very large file: wepppy/all_your_base/geo/shapefile.py (1321 lines)", "shortDescription": {"text": "Very large file: wepppy/all_your_base/geo/shapefile.py (1321 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-46a55f59ead4dfaa", "name": "Very large file: wepppy/topo/wbt/wbt_topaz_emulator.py (1755 lines)", "shortDescription": {"text": "Very large file: wepppy/topo/wbt/wbt_topaz_emulator.py (1755 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-46578ef1f97e1cb3", "name": "Very large file: wepppy/topo/wbt/terrain_processor.py (1829 lines)", "shortDescription": {"text": "Very large file: wepppy/topo/wbt/terrain_processor.py (1829 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-ca4bf745308bf7be", "name": "Very large file: wepppy/weppcloud/static/js/underscore.js (1547 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/static/js/underscore.js (1547 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-c5278e5455002d85", "name": "Very large file: wepppy/weppcloud/static/js/d3fc.js (9746 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/static/js/d3fc.js (9746 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-8bd286c543eb64a3", "name": "Very large file: wepppy/weppcloud/static/js/d3.js (20624 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/static/js/d3.js (20624 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-bb1f5547cfd07499", "name": "Very large file: wepppy/weppcloud/static/js/leaflet-1.71.js (14061 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/static/js/leaflet-1.71.js (14061 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-d797d38fc89293f6", "name": "Very large file: wepppy/weppcloud/static/js/geotiff.js (1873 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/static/js/geotiff.js (1873 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-9e1b9b98616479c9", "name": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/layers/detector.js (1675 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/layers/detector.js (1675 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-57951744a8f1a5d2", "name": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/layers/renderer.js (1683 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/layers/renderer.js (1683 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-449341b0df8d7b7a", "name": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/graphs/graph-loaders.js (1409 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/graphs/graph-loaders.js (1409 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-94ac5e0864e59503", "name": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/map/layers.js (1658 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/map/layers.js (1658 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-d1357d09a53d40dc", "name": "Very large file: wepppy/weppcloud/static/pivottable/pivot.js (1838 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/static/pivottable/pivot.js (1838 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-d4bfeb4db61295bc", "name": "Very large file: wepppy/weppcloud/routes/run_0/run_0_bp.py (2262 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/routes/run_0/run_0_bp.py (2262 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-55c29a5e2e50475d", "name": "Very large file: wepppy/weppcloud/routes/command_bar/static/command-bar.js (2789 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/routes/command_bar/static/command-bar.js (2789 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-8cc50ba0f0b9e13f", "name": "Very large file: wepppy/weppcloud/routes/nodb_api/wepp_bp.py (1592 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/routes/nodb_api/wepp_bp.py (1592 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-43f9ae525626adb7", "name": "Very large file: wepppy/weppcloud/controllers_js/roads.js (1367 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/roads.js (1367 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-6ead8e08db47de40", "name": "Very large file: wepppy/weppcloud/controllers_js/wepp.js (1596 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/wepp.js (1596 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-567f94c6aeb89eb6", "name": "Very large file: wepppy/weppcloud/controllers_js/climate.js (1498 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/climate.js (1498 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-13d269fda920355f", "name": "Very large file: wepppy/weppcloud/controllers_js/channel_gl.js (1945 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/channel_gl.js (1945 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-85d812ba744c1040", "name": "Very large file: wepppy/weppcloud/controllers_js/geneva_summary_report.js (1921 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/geneva_summary_report.js (1921 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-0a0563dbbc0f23b5", "name": "Very large file: wepppy/weppcloud/controllers_js/control_base.js (1874 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/control_base.js (1874 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-0487fc9918a04d09", "name": "Very large file: wepppy/weppcloud/controllers_js/features_export.js (2944 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/features_export.js (2944 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-8d34be0da0a50fe6", "name": "Very large file: wepppy/weppcloud/controllers_js/subcatchment_delineation.js (1800 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/subcatchment_delineation.js (1800 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-c0c9e38ecd52c018", "name": "Very large file: wepppy/weppcloud/controllers_js/channel_delineation.js (1376 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/channel_delineation.js (1376 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-44717fb293a1c8eb", "name": "Very large file: wepppy/weppcloud/controllers_js/map_gl.js (2577 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/map_gl.js (2577 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-e58ebc5adba33cb5", "name": "Very large file: wepppy/weppcloud/controllers_js/project.js (2182 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/project.js (2182 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-d79886d85358bd36", "name": "Very large file: wepppy/weppcloud/controllers_js/batch_runner.js (2123 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/batch_runner.js (2123 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-ba77545f792db27c", "name": "Very large file: wepppy/weppcloud/controllers_js/omni.js (3081 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/omni.js (3081 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-d75d5803baa65948", "name": "Very large file: wepppy/weppcloud/controllers_js/disturbed.js (1382 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/disturbed.js (1382 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-da12f860cddb9056", "name": "Very large file: wepppy/weppcloud/controllers_js/subcatchments_gl.js (1718 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/subcatchments_gl.js (1718 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-66b6bb0b1dc45f2b", "name": "Very large file: wepppy/weppcloud/controllers_js/__tests__/features_export.test.js (1108 lines)", "shortDescription": {"text": "Very large file: wepppy/weppcloud/controllers_js/__tests__/features_export.test.js (1108 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-feebb61698dbc9d9", "name": "Very large file: wepppy/nodb/base.py (2824 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/base.py (2824 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-d2c17430a0ef1798", "name": "Very large file: wepppy/nodb/mods/roads/roads.py (6237 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/mods/roads/roads.py (6237 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-a638659d4368c25d", "name": "Very large file: wepppy/nodb/mods/features_export/planner.py (1595 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/mods/features_export/planner.py (1595 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-94b25ef264a977d3", "name": "Very large file: wepppy/nodb/mods/features_export/service.py (3485 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/mods/features_export/service.py (3485 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-42b338b2e1a77189", "name": "Very large file: wepppy/nodb/mods/omni/omni_contrast_build_service.py (1454 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/mods/omni/omni_contrast_build_service.py (1454 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-ce0c0b8524c1577b", "name": "Very large file: wepppy/nodb/mods/omni/omni.py (1313 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/mods/omni/omni.py (1313 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-401b8af5c106aebf", "name": "Very large file: wepppy/nodb/mods/disturbed/disturbed.py (2298 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/mods/disturbed/disturbed.py (2298 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-e0df336be82f72fb", "name": "Very large file: wepppy/nodb/core/soils.py (1790 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/core/soils.py (1790 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-f6809d59970f5e54", "name": "Very large file: wepppy/nodb/core/watershed_mixins.py (1415 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/core/watershed_mixins.py (1415 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-9671587ccd863780", "name": "Very large file: wepppy/nodb/core/climate.py (1735 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/core/climate.py (1735 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-14e3dc9082c79961", "name": "Very large file: wepppy/nodb/core/landuse.py (2353 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/core/landuse.py (2353 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-5bc2337ef3a087b9", "name": "Very large file: wepppy/nodb/core/wepp.py (2983 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/core/wepp.py (2983 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-495168832bf71743", "name": "Very large file: wepppy/nodb/core/watershed.py (1428 lines)", "shortDescription": {"text": "Very large file: wepppy/nodb/core/watershed.py (1428 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-54c88d09cd8a85f4", "name": "Very large file: wepp_runner/wepp_runner.py (1761 lines)", "shortDescription": {"text": "Very large file: wepp_runner/wepp_runner.py (1761 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-fab4d094ea9865d9", "name": "Very large file: weppcloud-ui-lab/src/App.tsx (1383 lines)", "shortDescription": {"text": "Very large file: weppcloud-ui-lab/src/App.tsx (1383 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-d7b29405238e77a9", "name": "Very large file: tools/hillslope_daily_closure_audit.py (1316 lines)", "shortDescription": {"text": "Very large file: tools/hillslope_daily_closure_audit.py (1316 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-da9eea79fe0bcb5b", "name": "Very large file: tools/refine_mofe_taxonomy.py (1234 lines)", "shortDescription": {"text": "Very large file: tools/refine_mofe_taxonomy.py (1234 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-09bad5ab1f174fc5", "name": "34 TODO/FIXME markers", "shortDescription": {"text": "34 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 1053 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 82 placeholder/mock markers across 34 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ea131984e48e612", "name": "Agent authority lacks a verifier contract: docs/ui-docs/vpats/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: docs/ui-docs/vpats/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-337e7cb7b1034c3b", "name": "Agent authority lacks a verifier contract: wepppy/webservices/dtale/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: wepppy/webservices/dtale/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c16c1206fc34a08", "name": "Agent authority lacks a verifier contract: wepppy/weppcloud/feature_registry/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: wepppy/weppcloud/feature_registry/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-089b8a65db1d9d16", "name": "Agent authority lacks a verifier contract: .codex/skills/README.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/skills/README.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90556feefcad0530", "name": "Network/subprocess call without timeout or try/except \u2014 buff_landuse_validation.py:24", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 buff_landuse_validation.py:24"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86c4eabb82bd67db", "name": "Legacy-named symbol `_PrepStubWithLegacy` in tests/rq/test_geneva_rq.py:227", "shortDescription": {"text": "Legacy-named symbol `_PrepStubWithLegacy` in tests/rq/test_geneva_rq.py:227"}, "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-01f0ae6de34c2c64", "name": "Legacy-named symbol `vendored_copy` in tests/rq/test_project_rq_delete_run.py:334", "shortDescription": {"text": "Legacy-named symbol `vendored_copy` in tests/rq/test_project_rq_delete_run.py:334"}, "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-838cc33407eb10f3", "name": "Legacy-named symbol `features_export_legacy` in tests/microservices/test_rq_engine_errors_progress_outputs_routes.py:441", "shortDescription": {"text": "Legacy-named symbol `features_export_legacy` in tests/microservices/test_rq_engine_errors_progress_outputs_routes.py:441"}, "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-6ed5a1b6f9980be9", "name": "Legacy-named symbol `_noop_deprecated` in tests/climates/daymet/test_daymet_singlelocation_client.py:83", "shortDescription": {"text": "Legacy-named symbol `_noop_deprecated` in tests/climates/daymet/test_daymet_singlelocation_client.py:83"}, "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-4545de70d3e72232", "name": "Legacy-named symbol `base_copy` in tests/culverts/test_culverts_runner.py:264", "shortDescription": {"text": "Legacy-named symbol `base_copy` in tests/culverts/test_culverts_runner.py:264"}, "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-8108a55f09e0d429", "name": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_channel_watbal.py:17", "shortDescription": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_channel_watbal.py:17"}, "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-4be21639a48e43ab", "name": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_hillslope_watbal.py:20", "shortDescription": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_hillslope_watbal.py:20"}, "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-5c8af7faf8352781", "name": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_frq_flood.py:18", "shortDescription": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_frq_flood.py:18"}, "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-21d07f0801dc78cd", "name": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_total_watbal.py:17", "shortDescription": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_total_watbal.py:17"}, "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-af9aa0a7c329b9da", "name": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_return_periods_dataset.py:26", "shortDescription": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_return_periods_dataset.py:26"}, "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-b8681aaa67d5a04c", "name": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_loss_reports.py:16", "shortDescription": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_loss_reports.py:16"}, "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-9dc10c719f8a9a61", "name": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_average_annuals_by_landuse.py:16", "shortDescription": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_average_annuals_by_landuse.py:16"}, "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-7f53e0ea1dff1b22", "name": "Legacy-named symbol `_prepare_run_copy` in tests/query_engine/test_benchmarks.py:30", "shortDescription": {"text": "Legacy-named symbol `_prepare_run_copy` in tests/query_engine/test_benchmarks.py:30"}, "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-279b071f4b5d0d66", "name": "Legacy-named symbol `test_wmesque_retrieve_rejects_extent_crs_for_v1` in tests/services/test_wmesque_retrieve.py:88", "shortDescription": {"text": "Legacy-named symbol `test_wmesque_retrieve_rejects_extent_crs_for_v1` in tests/services/test_wmesque_retrieve.py:88"}, "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-f1f301a339c7ffb1", "name": "Legacy-named symbol `test_run_migration_write_updates_files_and_backup` in tests/tools/test_migrate_nodb_map_object_path", "shortDescription": {"text": "Legacy-named symbol `test_run_migration_write_updates_files_and_backup` in tests/tools/test_migrate_nodb_map_object_paths.py:49"}, "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-cf6d52c646499c00", "name": "Legacy-named symbol `osm_roads_v1` in tests/topo/test_osm_roads_cache.py:54", "shortDescription": {"text": "Legacy-named symbol `osm_roads_v1` in tests/topo/test_osm_roads_cache.py:54"}, "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-232dc6d3a11a75dd", "name": "Legacy-named symbol `osm_roads_v1` in tests/topo/test_osm_roads_contracts.py:35", "shortDescription": {"text": "Legacy-named symbol `osm_roads_v1` in tests/topo/test_osm_roads_contracts.py:35"}, "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-eadd8a511fe27c7d", "name": "Legacy-named symbol `netful_geojson_v2` in tests/topo/test_terrain_processor_runtime.py:437", "shortDescription": {"text": "Legacy-named symbol `netful_geojson_v2` in tests/topo/test_terrain_processor_runtime.py:437"}, "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-ff0b9c347464c6a8", "name": "Legacy-named symbol `n_legacy` in tests/topo/test_watershed_abstraction_slope_file.py:303", "shortDescription": {"text": "Legacy-named symbol `n_legacy` in tests/topo/test_watershed_abstraction_slope_file.py:303"}, "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-e44fbda823b5a5be", "name": "Legacy-named symbol `osm_roads_v1` in tests/topo/test_osm_roads_postgres_integration.py:132", "shortDescription": {"text": "Legacy-named symbol `osm_roads_v1` in tests/topo/test_osm_roads_postgres_integration.py:132"}, "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-cee0aa71505c85a7", "name": "Legacy-named symbol `test_set_mod_disable_moves_nodb_to_backup` in tests/weppcloud/routes/test_project_bp.py:593", "shortDescription": {"text": "Legacy-named symbol `test_set_mod_disable_moves_nodb_to_backup` in tests/weppcloud/routes/test_project_bp.py:593"}, "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-b200a58497285f0b", "name": "Legacy-named symbol `_build_mofe_map_labels_python_legacy` in tests/nodb/test_watershed_mofe_map.py:44", "shortDescription": {"text": "Legacy-named symbol `_build_mofe_map_labels_python_legacy` in tests/nodb/test_watershed_mofe_map.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-455421c2421b6adf", "name": "Legacy-named symbol `replacement_copy` in tests/nodb/mods/test_roads_controller.py:3188", "shortDescription": {"text": "Legacy-named symbol `replacement_copy` in tests/nodb/mods/test_roads_controller.py:3188"}, "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-716ba78666bd9509", "name": "Legacy-named symbol `test_run_rusle_c_factor_scenario_sbs_writes_disturbed_class_alignment_and_lookup_copy` in tests/nod", "shortDescription": {"text": "Legacy-named symbol `test_run_rusle_c_factor_scenario_sbs_writes_disturbed_class_alignment_and_lookup_copy` in tests/nodb/mods/test_rusle_c_integration.py:351"}, "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-123d1c48afb04ec0", "name": "Legacy-named symbol `run_old` in tests/nodb/mods/test_swat_interchange.py:221", "shortDescription": {"text": "Legacy-named symbol `run_old` in tests/nodb/mods/test_swat_interchange.py:221"}, "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-30427b535cccb6de", "name": "Legacy-named symbol `lookup_copy` in tests/nodb/mods/test_rusle_controller.py:310", "shortDescription": {"text": "Legacy-named symbol `lookup_copy` in tests/nodb/mods/test_rusle_controller.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-00517165ab1e0599", "name": "Legacy-named symbol `synthetic_small_watershed_v1` in tests/nodb/mods/geneva/test_geneva_collaborators.py:29", "shortDescription": {"text": "Legacy-named symbol `synthetic_small_watershed_v1` in tests/nodb/mods/geneva/test_geneva_collaborators.py:29"}, "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-5fce278476ac20e1", "name": "Legacy-named symbol `synthetic_small_watershed_v1` in tests/nodb/mods/geneva/test_geneva_wp09_end_to_end.py:20", "shortDescription": {"text": "Legacy-named symbol `synthetic_small_watershed_v1` in tests/nodb/mods/geneva/test_geneva_wp09_end_to_end.py:20"}, "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-e0493b339c8bc466", "name": "Legacy-named symbol `synthetic_small_watershed_v1` in tests/nodb/mods/geneva/test_geneva_facade.py:18", "shortDescription": {"text": "Legacy-named symbol `synthetic_small_watershed_v1` in tests/nodb/mods/geneva/test_geneva_facade.py:18"}, "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-5a12939890126635", "name": "Legacy-named symbol `test_export_input_legacy` in tests/nodb/mods/baer/test_sbs_map_extended.py:709", "shortDescription": {"text": "Legacy-named symbol `test_export_input_legacy` in tests/nodb/mods/baer/test_sbs_map_extended.py:709"}, "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-b4864dfab72cf013", "name": "Commented-code block (8 lines) in tests/nodb/mods/baer/test_sbs_map_extended.py:475", "shortDescription": {"text": "Commented-code block (8 lines) in tests/nodb/mods/baer/test_sbs_map_extended.py:475"}, "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-d59ad59c5a51cfba", "name": "Legacy-named symbol `a_lt_legacy` in docs/work-packages/20260522_ssurgo_corestrictions_kslast_viability/artifacts/run_co", "shortDescription": {"text": "Legacy-named symbol `a_lt_legacy` in docs/work-packages/20260522_ssurgo_corestrictions_kslast_viability/artifacts/run_corestrictions_kslast_viability.py:805"}, "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-039f1e7cb89c62b9", "name": "Network/subprocess call without timeout or try/except \u2014 docs/work-packages/20260522_ssurgo_corestrictions_kslast_viabili", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 docs/work-packages/20260522_ssurgo_corestrictions_kslast_viability/artifacts/run_corestrictions_kslast_viability.py:624"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e054a5ffd5af093f", "name": "Stub function `info` (body is just `pass`/`return`) \u2014 docs/work-packages/20260424_landuse_disturbed_mofe_pipeline_optimi", "shortDescription": {"text": "Stub function `info` (body is just `pass`/`return`) \u2014 docs/work-packages/20260424_landuse_disturbed_mofe_pipeline_optimization/notes/run_landuse_disturbed_pipeline_lane_benchmark.py:63"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-329a0c44e6c00e09", "name": "Network/subprocess call without timeout or try/except \u2014 docs/work-packages/20260303_raster_tools_crosswalk_benchmarks/no", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 docs/work-packages/20260303_raster_tools_crosswalk_benchmarks/notes/benchmark_harness_bw01_bw02.py:74"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-efe7ce22e004d589", "name": "Network/subprocess call without timeout or try/except \u2014 docs/mini-work-packages/20260502_rq_replay_mofe_260501_validatio", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 docs/mini-work-packages/20260502_rq_replay_mofe_260501_validation/run_rq_replay_mofe_validation.py:402"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c52e9bd87280b0d", "name": "Legacy-named symbol `skip_wepp_copy` in wepppy/rq/project_rq_fork.py:29", "shortDescription": {"text": "Legacy-named symbol `skip_wepp_copy` in wepppy/rq/project_rq_fork.py:29"}, "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-21ff102c3f928d81", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/rq/run_sync_rq.py:258", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/rq/run_sync_rq.py:258"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fd163912d0bd15cf", "name": "Commented-code block (12 lines) in wepppy/eu/soils/esdac/esdac.py:127", "shortDescription": {"text": "Commented-code block (12 lines) in wepppy/eu/soils/esdac/esdac.py:127"}, "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-56236f14190f2239", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/webservices/wmesque2.py:149", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/webservices/wmesque2.py:149"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b3ce49265703989", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/webservices/wmesque.py:73", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/webservices/wmesque.py:73"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4cb482471bec498", "name": "Commented-code block (12 lines) in wepppy/au/soils/soil_build.py:25", "shortDescription": {"text": "Commented-code block (12 lines) in wepppy/au/soils/soil_build.py:25"}, "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-fe3596a974266eae", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/au/soils/asris_2001/asris_client.py:86", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/au/soils/asris_2001/asris_client.py:86"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-18223ac786281dd0", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/au/climates/agdc/scripts/acquisition.py:48", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/au/climates/agdc/scripts/acquisition.py:48"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a1b8fa8efe3ca34", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/microservices/shape_converter/ui/app.js:117", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/microservices/shape_converter/ui/app.js:117"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d0c2c919b19c039", "name": "Commented-code block (6 lines) in wepppy/soils/ssurgo/ssurgo.py:1512", "shortDescription": {"text": "Commented-code block (6 lines) in wepppy/soils/ssurgo/ssurgo.py:1512"}, "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-24f12fb3f48d04a2", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/soils/ssurgo/ssurgo.py:404", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/soils/ssurgo/ssurgo.py:404"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3c58e4959587d34b", "name": "Commented-code block (5 lines) in wepppy/climates/downscaled_nmme_client.py:225", "shortDescription": {"text": "Commented-code block (5 lines) in wepppy/climates/downscaled_nmme_client.py:225"}, "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-f593b42cb6fce186", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/climates/metquery_client.py:308", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/climates/metquery_client.py:308"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f438562f2f557073", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/climates/prism/daily_client.py:41", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/climates/prism/daily_client.py:41"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-692efc1180117d85", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/climates/snotel/__init__.py:8", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/climates/snotel/__init__.py:8"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90d31bf4c6fe04f4", "name": "Commented-code block (20 lines) in wepppy/climates/cligen/_scripts/stations_sqlitedb_builder.py:334", "shortDescription": {"text": "Commented-code block (20 lines) in wepppy/climates/cligen/_scripts/stations_sqlitedb_builder.py:334"}, "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-2306398fea790750", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/profile_recorder/playback.py:169", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/profile_recorder/playback.py:169"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-55bc7c94cc4f7b02", "name": "Commented-code block (12 lines) in wepppy/locales/earth/soils/isric/__init__.py:352", "shortDescription": {"text": "Commented-code block (12 lines) in wepppy/locales/earth/soils/isric/__init__.py:352"}, "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-a0a5953354c5cd7e", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/locales/earth/copernicus-dem-30m/scripts/build_vrt_from_s", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/locales/earth/copernicus-dem-30m/scripts/build_vrt_from_stac.py:154"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9eac9c4b05f2d9ab", "name": "Commented-code block (6 lines) in wepppy/wepp/management/managements.py:717", "shortDescription": {"text": "Commented-code block (6 lines) in wepppy/wepp/management/managements.py:717"}, "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-1fe443e5f8bea1ad", "name": "Legacy-named symbol `op_copy` in wepppy/wepp/management/utils/rotation_stack.py:326", "shortDescription": {"text": "Legacy-named symbol `op_copy` in wepppy/wepp/management/utils/rotation_stack.py:326"}, "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-56af787575058ac6", "name": "Commented-code block (7 lines) in wepppy/wepp/interchange/watershed_chan_peak_interchange.py:330", "shortDescription": {"text": "Commented-code block (7 lines) in wepppy/wepp/interchange/watershed_chan_peak_interchange.py:330"}, "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-8fab09e15d89efa2", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/tools/migrations/migrate_run_paths.py:131", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/tools/migrations/migrate_run_paths.py:131"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8d6d92a8634f330", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/tools/migrations/unroll_root_resources_batch.py:329", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/tools/migrations/unroll_root_resources_batch.py:329"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19c8f7f577d1452c", "name": "Commented-code block (6 lines) in wepppy/all_your_base/geo/ogrmerge.py:20", "shortDescription": {"text": "Commented-code block (6 lines) in wepppy/all_your_base/geo/ogrmerge.py:20"}, "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-682368bfd5ff91d6", "name": "Commented-code block (8 lines) in wepppy/topo/topaz/topaz.py:558", "shortDescription": {"text": "Commented-code block (8 lines) in wepppy/topo/topaz/topaz.py:558"}, "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-7af948e36f48fcdf", "name": "Legacy-named symbol `osm_roads_v1` in wepppy/topo/osm_roads/cache.py:23", "shortDescription": {"text": "Legacy-named symbol `osm_roads_v1` in wepppy/topo/osm_roads/cache.py:23"}, "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-88bc922b73d86aaa", "name": "Stub function `ensure_schema` (body is just `pass`/`return`) \u2014 wepppy/topo/osm_roads/cache.py:136", "shortDescription": {"text": "Stub function `ensure_schema` (body is just `pass`/`return`) \u2014 wepppy/topo/osm_roads/cache.py:136"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e3c006a6f3e8a50d", "name": "Legacy-named symbol `segmented_multiple_ofe_legacy` in wepppy/topo/watershed_abstraction/slope_file.py:153", "shortDescription": {"text": "Legacy-named symbol `segmented_multiple_ofe_legacy` in wepppy/topo/watershed_abstraction/slope_file.py:153"}, "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-bad03363a6be23b0", "name": "Legacy-named symbol `has_legacy` in wepppy/topo/peridot/peridot_runner.py:628", "shortDescription": {"text": "Legacy-named symbol `has_legacy` in wepppy/topo/peridot/peridot_runner.py:628"}, "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-4de1eb88b9e4c752", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/topo/wbt/wbt_topaz_emulator.py:1342", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/topo/wbt/wbt_topaz_emulator.py:1342"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9039bcffde8163da", "name": "Legacy-named symbol `relief_v2` in wepppy/topo/wbt/terrain_processor.py:624", "shortDescription": {"text": "Legacy-named symbol `relief_v2` in wepppy/topo/wbt/terrain_processor.py:624"}, "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-98537d9a64164172", "name": "Commented-code block (8 lines) in wepppy/weppcloud/app.py:83", "shortDescription": {"text": "Commented-code block (8 lines) in wepppy/weppcloud/app.py:83"}, "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-8cb22ebc9f314866", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/fork_console.js:285", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/fork_console.js:285"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-577e8351c46a5050", "name": "Commented-code block (5 lines) in wepppy/weppcloud/static/js/underscore.js:776", "shortDescription": {"text": "Commented-code block (5 lines) in wepppy/weppcloud/static/js/underscore.js:776"}, "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-0c32b34514d9104b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/archive_console.js:245", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/archive_console.js:245"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2e398d39cbafbef7", "name": "Legacy-named symbol `xScaleOld` in wepppy/weppcloud/static/js/d3fc.js:8018", "shortDescription": {"text": "Legacy-named symbol `xScaleOld` in wepppy/weppcloud/static/js/d3fc.js:8018"}, "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-bd5caaea321c1a8a", "name": "Commented-code block (9 lines) in wepppy/weppcloud/static/js/d3fc.js:2764", "shortDescription": {"text": "Commented-code block (9 lines) in wepppy/weppcloud/static/js/d3fc.js:2764"}, "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-63407beea510c276", "name": "Legacy-named symbol `leaf_copy` in wepppy/weppcloud/static/js/d3.js:8803", "shortDescription": {"text": "Legacy-named symbol `leaf_copy` in wepppy/weppcloud/static/js/d3.js:8803"}, "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-9ddbcbc6a57bad1b", "name": "Commented-code block (5 lines) in wepppy/weppcloud/static/js/d3.js:25", "shortDescription": {"text": "Commented-code block (5 lines) in wepppy/weppcloud/static/js/d3.js:25"}, "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-999d0006120f45d9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/d3.js:8329", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/d3.js:8329"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-48218a3d0a59e272", "name": "Commented-code block (7 lines) in wepppy/weppcloud/static/js/leaflet-1.71.js:74", "shortDescription": {"text": "Commented-code block (7 lines) in wepppy/weppcloud/static/js/leaflet-1.71.js:74"}, "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-5512ec044a921e14", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/report_csv.js:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/report_csv.js:30"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-54b35b7a0c2422b0", "name": "Commented-code block (19 lines) in wepppy/weppcloud/static/js/geotiff.js:31", "shortDescription": {"text": "Commented-code block (19 lines) in wepppy/weppcloud/static/js/geotiff.js:31"}, "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-5b0adb9c16cfbf45", "name": "Legacy-named symbol `fromLegacy` in wepppy/weppcloud/static/js/gl-dashboard/__tests__/batch-keys.test.js:44", "shortDescription": {"text": "Legacy-named symbol `fromLegacy` in wepppy/weppcloud/static/js/gl-dashboard/__tests__/batch-keys.test.js: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-0ee9d75adc1c151e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/gl-dashboard/layers/detector.js:229", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/gl-dashboard/layers/detector.js:229"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-292d54ed6d963e0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/gl-dashboard/map/basemap-controller.js:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/gl-dashboard/map/basemap-controller.js:28"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-56e1651cd52cb84c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/gl-dashboard/map/raster-utils.js:76", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/gl-dashboard/map/raster-utils.js:76"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb7850a3534e0fb6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/diagnostics/auth_checks.js:94", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/diagnostics/auth_checks.js:94"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-004aa972bec9700d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/ui-lab/assets/main-nK6957WS.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/ui-lab/assets/main-nK6957WS.js:1"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae4099809e8d5ba6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/ui-lab/assets/light-D8C95Rgl.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/ui-lab/assets/light-D8C95Rgl.js:1"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-87d294ee4c6a3b81", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/weppcloud/bootstrap/pre_receive.py:21", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/weppcloud/bootstrap/pre_receive.py:21"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-324542797573f4c7", "name": "Legacy-named symbol `extra_copy` in wepppy/weppcloud/routes/_security/logging.py:311", "shortDescription": {"text": "Legacy-named symbol `extra_copy` in wepppy/weppcloud/routes/_security/logging.py:311"}, "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-57f94b72e6de3c49", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/routes/command_bar/static/command-bar.js:1984", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/routes/command_bar/static/command-bar.js:1984"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5930ceceaee9be8b", "name": "Legacy-named symbol `_restore_mod_backup` in wepppy/weppcloud/routes/nodb_api/project_bp.py:116", "shortDescription": {"text": "Legacy-named symbol `_restore_mod_backup` in wepppy/weppcloud/routes/nodb_api/project_bp.py:116"}, "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-ea6fec795c6712e2", "name": "Legacy-named symbol `view_src_markdown_legacy` in wepppy/weppcloud/routes/usersum/usersum.py:693", "shortDescription": {"text": "Legacy-named symbol `view_src_markdown_legacy` in wepppy/weppcloud/routes/usersum/usersum.py:693"}, "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-e77e629dc0d928ee", "name": "Legacy-named symbol `theme_lab_muted_copy` in wepppy/weppcloud/routes/ui_showcase/ui_showcase_bp.py:286", "shortDescription": {"text": "Legacy-named symbol `theme_lab_muted_copy` in wepppy/weppcloud/routes/ui_showcase/ui_showcase_bp.py:286"}, "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-b08e02ce93d8686e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/http.js:729", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/http.js:729"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-81c1514d7d4c642f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/geneva_summary_report.js:535", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/geneva_summary_report.js:535"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eedd285660242b46", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/map_gl.js:1033", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/map_gl.js:1033"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-794049d483baa170", "name": "Legacy-named symbol `hintLegacy` in wepppy/weppcloud/controllers_js/geneva.js:29", "shortDescription": {"text": "Legacy-named symbol `hintLegacy` in wepppy/weppcloud/controllers_js/geneva.js:29"}, "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-ce5037272e74e326", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:72", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:72"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-18e4a90818e0e5be", "name": "Commented-code block (5 lines) in wepppy/weppcloud/static-src/tests/smoke/mods-menu.spec.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in wepppy/weppcloud/static-src/tests/smoke/mods-menu.spec.js:4"}, "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-42a397233debea98", "name": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static-src/js/archive_console.js:245", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static-src/js/archive_console.js:245"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a9bbe4507da8263e", "name": "Commented-code block (5 lines) in wepppy/nodb/mods/debris_flow/debris_flow.py:303", "shortDescription": {"text": "Commented-code block (5 lines) in wepppy/nodb/mods/debris_flow/debris_flow.py:303"}, "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-548a8de4711372dd", "name": "Legacy-named symbol `_safe_link_or_copy` in wepppy/nodb/mods/roads/roads.py:1682", "shortDescription": {"text": "Legacy-named symbol `_safe_link_or_copy` in wepppy/nodb/mods/roads/roads.py:1682"}, "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-939127cf3b890ee3", "name": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/emapr/emapr_ts.py:96", "shortDescription": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/emapr/emapr_ts.py:96"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3f51253eaac0a51f", "name": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/openet/openet_ts.py:552", "shortDescription": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/openet/openet_ts.py:552"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a614e492583a90e2", "name": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rap/rap.py:192", "shortDescription": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rap/rap.py:192"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-027871d38603c6c2", "name": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rap/rap_ts.py:271", "shortDescription": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rap/rap_ts.py:271"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dfac1f5aa73eb1a4", "name": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/revegetation/revegetation.py:141", "shortDescription": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/revegetation/revegetation.py:141"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65abede9de146997", "name": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rangeland_cover/rangeland_cover.py:130", "shortDescription": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rangeland_cover/rangeland_cover.py:130"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e024f04b967ebec8", "name": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/shrubland/shrubland.py:215", "shortDescription": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/shrubland/shrubland.py:215"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7d92847110d2e55f", "name": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/treecanopy/treecanopy.py:123", "shortDescription": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/treecanopy/treecanopy.py:123"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f6ac7dedcd25a6ee", "name": "Legacy-named symbol `legacy_v0_to_v1` in wepppy/nodb/mods/geneva/collaborators/cn_table_service.py:294", "shortDescription": {"text": "Legacy-named symbol `legacy_v0_to_v1` in wepppy/nodb/mods/geneva/collaborators/cn_table_service.py:294"}, "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-7b2f34f400e2a80a", "name": "Legacy-named symbol `geneva_cn_table_csv_v1` in wepppy/nodb/mods/geneva/collaborators/hru_preparation_service.py:32", "shortDescription": {"text": "Legacy-named symbol `geneva_cn_table_csv_v1` in wepppy/nodb/mods/geneva/collaborators/hru_preparation_service.py:32"}, "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-48e379baf6398d6b", "name": "Commented-code block (28 lines) in wepppy/nodb/mods/ag_fields/ag_fields.py:824", "shortDescription": {"text": "Commented-code block (28 lines) in wepppy/nodb/mods/ag_fields/ag_fields.py:824"}, "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-b95440412c37c507", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/mods/salvage_logging/burn_roads.py:13", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/mods/salvage_logging/burn_roads.py:13"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-66864b95541a91a3", "name": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rred/rred.py:190", "shortDescription": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rred/rred.py:190"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a4096f649defc399", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/mods/rred/rred_api.py:35", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/mods/rred/rred_api.py:35"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d416b448b6d0ae18", "name": "Stub function `ct` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/baer/baer.py:524", "shortDescription": {"text": "Stub function `ct` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/baer/baer.py:524"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-01fc76cce4f91469", "name": "Commented-code block (9 lines) in wepppy/nodb/mods/omni/omni.py:1302", "shortDescription": {"text": "Commented-code block (9 lines) in wepppy/nodb/mods/omni/omni.py:1302"}, "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-c5e83b70e02263fe", "name": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rusle/rusle.py:302", "shortDescription": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rusle/rusle.py:302"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5ac6f5162a84522f", "name": "Legacy-named symbol `lookup_copy` in wepppy/nodb/mods/rusle/c_integration.py:90", "shortDescription": {"text": "Legacy-named symbol `lookup_copy` in wepppy/nodb/mods/rusle/c_integration.py:90"}, "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-20c42581dfd25a21", "name": "Legacy-named symbol `modeled_texture_proxy_v1` in wepppy/nodb/mods/rusle/k_integration.py:941", "shortDescription": {"text": "Legacy-named symbol `modeled_texture_proxy_v1` in wepppy/nodb/mods/rusle/k_integration.py:941"}, "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-9bb2c86cd0440cf3", "name": "Legacy-named symbol `_build_mofe_map_labels_python_legacy` in wepppy/nodb/core/watershed_mixins.py:172", "shortDescription": {"text": "Legacy-named symbol `_build_mofe_map_labels_python_legacy` in wepppy/nodb/core/watershed_mixins.py:172"}, "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-686ff5bba3f341bf", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/core/ron.py:322", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/core/ron.py:322"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-424902ef0a5daad3", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/core/climate_build_helpers.py:288", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/core/climate_build_helpers.py:288"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5ed3dbb2e3d656b2", "name": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/core/wepp_bootstrap_service.py:38", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/core/wepp_bootstrap_service.py:38"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c8bb4a2b13e73ef", "name": "Network/subprocess call without timeout or try/except \u2014 wepp_runner/wepp_runner.py:354", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 wepp_runner/wepp_runner.py:354"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fdc6d713d24ba690", "name": "Stub function `stop` (body is just `pass`/`return`) \u2014 wepp_runner/wepp_runner.py:797", "shortDescription": {"text": "Stub function `stop` (body is just `pass`/`return`) \u2014 wepp_runner/wepp_runner.py:797"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8eb7ed69c93ef7d6", "name": "Network/subprocess call without timeout or try/except \u2014 services/cao/ci-samurai/run_fixer_loop.py:186", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 services/cao/ci-samurai/run_fixer_loop.py:186"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61fe2659c7d9f584", "name": "Network/subprocess call without timeout or try/except \u2014 services/cao/src/cli_agent_orchestrator/cli/commands/install.py:", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 services/cao/src/cli_agent_orchestrator/cli/commands/install.py:22"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15f031a8b4db10b6", "name": "Network/subprocess call without timeout or try/except \u2014 services/cao/src/cli_agent_orchestrator/cli/commands/launch.py:3", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 services/cao/src/cli_agent_orchestrator/cli/commands/launch.py:35"}, "fullDescription": {"text": "`requests.post(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-16c3d2fed5e3b79c", "name": "Network/subprocess call without timeout or try/except \u2014 services/cao/src/cli_agent_orchestrator/mcp_server/server.py:53", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 services/cao/src/cli_agent_orchestrator/mcp_server/server.py:53"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3e78ed78e9de4686", "name": "Network/subprocess call without timeout or try/except \u2014 tools/run_pytest_sharded.py:340", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/run_pytest_sharded.py:340"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-04f9029bb5a8d31d", "name": "Legacy-named symbol `tax_v2` in tools/split_d2b_taxonomy.py:186", "shortDescription": {"text": "Legacy-named symbol `tax_v2` in tools/split_d2b_taxonomy.py:186"}, "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-b403c72ee777c70b", "name": "Network/subprocess call without timeout or try/except \u2014 tools/code_quality_observability.py:92", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/code_quality_observability.py:92"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4a113e1e8d6fbe3a", "name": "Network/subprocess call without timeout or try/except \u2014 tools/check_broad_exceptions.py:181", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/check_broad_exceptions.py:181"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5d025763e0d43f1", "name": "Network/subprocess call without timeout or try/except \u2014 tools/update_stub_requirements.py:111", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/update_stub_requirements.py:111"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5000527e3772d49", "name": "Network/subprocess call without timeout or try/except \u2014 tools/run_profile_coverage_batch.py:42", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/run_profile_coverage_batch.py:42"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a110f91b47bcde86", "name": "Legacy-named symbol `build_campaign_matrix_v2` in tools/refine_mofe_taxonomy.py:736", "shortDescription": {"text": "Legacy-named symbol `build_campaign_matrix_v2` in tools/refine_mofe_taxonomy.py:736"}, "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-1eca89b3d8aaaf99", "name": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/docker.py:28", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/docker.py:28"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-150f61197c78b362", "name": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/maintenance.py:48", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/maintenance.py:48"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c782832278fbfeac", "name": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/python_tasks.py:120", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/python_tasks.py:120"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8bbc505d54a2e022", "name": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/npm.py:65", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/npm.py:65"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-918e46c673e09057", "name": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/auth.py:53", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/auth.py:53"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d88355e588c82c0", "name": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/doc.py:23", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/doc.py:23"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1dddf9764a7ce6d7", "name": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/playwright.py:506", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/playwright.py:506"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8a001347562e9b8", "name": "Legacy-named symbol `temporary_run_copy` in tools/perf/benchmark_nodb_setters.py:59", "shortDescription": {"text": "Legacy-named symbol `temporary_run_copy` in tools/perf/benchmark_nodb_setters.py:59"}, "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-8aa804baa6614f99", "name": "Legacy-named symbol `state_copy` in tools/perf/redis_nodb_cache_stress/run_harness.py:302", "shortDescription": {"text": "Legacy-named symbol `state_copy` in tools/perf/redis_nodb_cache_stress/run_harness.py:302"}, "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-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:\ndocs/work-packages/20260522_ssurgo_corestrictions_kslast_viability/artifacts/run_corestrictions_kslast_viability.py:fetch_region_coverage, docs/work-packages/20260522_ssurgo_corestrictions_kslast_viability/artifacts/run_corestrictions_kslast_viability.py:fetch_region_reasonableness\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:\ndocs/work-packages/20260423_landuse_multi_ofe_build_optimization/notes/run_landuse_multi_ofe_build_benchmark.py:main, docs/work-packages/20260423_mofe_landuse_pair_counts_wepppyo3/notes/run_pair_count_benchmark.py:main, docs/work-packages/20260423_mofe_man_synthesis_process_pool/notes/run_mofe_man_benchmark.py:main\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-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nwepppy/rq/wepp_rq_pipeline.py:enqueue_wepp_pipeline, wepppy/rq/wepp_rq_pipeline.py:enqueue_wepp_prep_only_pipeline, wepppy/rq/wepp_rq_pipeline.py:enqueue_wepp_noprep_pipeline, wepppy/rq/wepp_rq_pipeline.py:enqueue_watershed_pipeline\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-46969939caf8120b", "name": "Near-duplicate function bodies in 9 places", "shortDescription": {"text": "Near-duplicate function bodies in 9 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nwepppy/microservices/rq_engine/landuse_routes.py:set_landuse_mode, wepppy/microservices/rq_engine/landuse_routes.py:set_landuse_db, wepppy/microservices/rq_engine/landuse_routes.py:modify_landuse_coverage, wepppy/microservices/rq_engine/landuse_routes.py:modify_landuse_mapping\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-f4389f8dd8c722c8", "name": "Flask mutation route `query_ecoregion` without `@login_required` \u2014 wepppy/webservices/ecoregion_us.py:33", "shortDescription": {"text": "Flask mutation route `query_ecoregion` without `@login_required` \u2014 wepppy/webservices/ecoregion_us.py:33"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b3573d4ef3778f8", "name": "Flask mutation route `query_elevation` without `@login_required` \u2014 wepppy/webservices/elevationquery.py:32", "shortDescription": {"text": "Flask mutation route `query_elevation` without `@login_required` \u2014 wepppy/webservices/elevationquery.py:32"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7516322d463bfb9d", "name": "Flask mutation route `query_daily_singlepoint` without `@login_required` \u2014 wepppy/webservices/metquery.py:242", "shortDescription": {"text": "Flask mutation route `query_daily_singlepoint` without `@login_required` \u2014 wepppy/webservices/metquery.py:242"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04c97f9ae8c500fe", "name": "Flask mutation route `query_daily_singlepoint` without `@login_required` \u2014 wepppy/webservices/metquery.py:243", "shortDescription": {"text": "Flask mutation route `query_daily_singlepoint` without `@login_required` \u2014 wepppy/webservices/metquery.py:243"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a73ef02ced2df00c", "name": "Flask mutation route `query_daily` without `@login_required` \u2014 wepppy/webservices/metquery.py:322", "shortDescription": {"text": "Flask mutation route `query_daily` without `@login_required` \u2014 wepppy/webservices/metquery.py:322"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ded214f95146e42", "name": "Flask mutation route `query_daily` without `@login_required` \u2014 wepppy/webservices/metquery.py:323", "shortDescription": {"text": "Flask mutation route `query_daily` without `@login_required` \u2014 wepppy/webservices/metquery.py:323"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e50a54da7076c4de", "name": "Flask mutation route `query_monthly` without `@login_required` \u2014 wepppy/webservices/metquery.py:426", "shortDescription": {"text": "Flask mutation route `query_monthly` without `@login_required` \u2014 wepppy/webservices/metquery.py:426"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f640f5056e26b151", "name": "Flask mutation route `query_monthly` without `@login_required` \u2014 wepppy/webservices/metquery.py:427", "shortDescription": {"text": "Flask mutation route `query_monthly` without `@login_required` \u2014 wepppy/webservices/metquery.py:427"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be5bbcae0ad503eb", "name": "FastAPI POST `load_into_dtale` without auth dependency \u2014 wepppy/webservices/dtale/dtale.py:768", "shortDescription": {"text": "FastAPI POST `load_into_dtale` without auth dependency \u2014 wepppy/webservices/dtale/dtale.py:768"}, "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}}, {"id": "scanner-df7ce46aabef4cef", "name": "Flask mutation route `index` without `@login_required` \u2014 wepppy/webservices/geeapi/__init__.py:36", "shortDescription": {"text": "Flask mutation route `index` without `@login_required` \u2014 wepppy/webservices/geeapi/__init__.py:36"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89448d4fc893baaa", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/project_routes.py:248", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/project_routes.py:248"}, "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}}, {"id": "scanner-adfe525c0580deb6", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:400", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:400"}, "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}}, {"id": "scanner-69b40a19b19e1e52", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:581", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:581"}, "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}}, {"id": "scanner-c8cbd4d59351df10", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:641", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:641"}, "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}}, {"id": "scanner-4ed11234d1be0bfe", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:689", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:689"}, "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}}, {"id": "scanner-f5307e198d1b079a", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:781", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:781"}, "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}}, {"id": "scanner-1d2c14a650effde9", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:891", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:891"}, "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}}, {"id": "scanner-0ad40c8821903ccc", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1052", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1052"}, "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}}, {"id": "scanner-fef04befdc25a05c", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1131", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1131"}, "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}}, {"id": "scanner-ad52a25000126443", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1271", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1271"}, "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}}, {"id": "scanner-9f9058166d0d2d93", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1484", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1484"}, "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}}, {"id": "scanner-619bce8e93ab260b", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1539", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1539"}, "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}}, {"id": "scanner-d687f2849dcbadb1", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/job_routes.py:357", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/job_routes.py:357"}, "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}}, {"id": "scanner-41fd065e0d0fa067", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/job_routes.py:421", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/job_routes.py:421"}, "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}}, {"id": "scanner-fd5f839282681dd5", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/ash_routes.py:117", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/ash_routes.py:117"}, "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}}, {"id": "scanner-e182fbdc06006a1d", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:544", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:544"}, "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}}, {"id": "scanner-b901cff2004deb81", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:614", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:614"}, "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}}, {"id": "scanner-c35e08b598d82c88", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:746", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:746"}, "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}}, {"id": "scanner-3612d39c9b368d8d", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:837", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:837"}, "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}}, {"id": "scanner-28f99c9259644a00", "name": "FastAPI POST `run_batch` without auth dependency \u2014 wepppy/microservices/rq_engine/batch_routes.py:42", "shortDescription": {"text": "FastAPI POST `run_batch` without auth dependency \u2014 wepppy/microservices/rq_engine/batch_routes.py:42"}, "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}}, {"id": "scanner-418c3bf3185c0001", "name": "FastAPI POST `delete_batch` without auth dependency \u2014 wepppy/microservices/rq_engine/batch_routes.py:80", "shortDescription": {"text": "FastAPI POST `delete_batch` without auth dependency \u2014 wepppy/microservices/rq_engine/batch_routes.py:80"}, "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}}, {"id": "scanner-4d233de916779650", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_climate_routes.py:77", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_climate_routes.py:77"}, "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}}, {"id": "scanner-5d39644e3632264f", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/rhem_routes.py:29", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/rhem_routes.py:29"}, "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}}, {"id": "scanner-98bdd04e822d922b", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/debris_flow_routes.py:66", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/debris_flow_routes.py:66"}, "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}}, {"id": "scanner-5e45990ccbe67b63", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_disturbed_routes.py:53", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_disturbed_routes.py:53"}, "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}}, {"id": "scanner-d83c43bef71c09a6", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_disturbed_routes.py:132", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_disturbed_routes.py:132"}, "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}}, {"id": "scanner-72916540b7778a8d", "name": "FastAPI POST `build_landuse_and_soils` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_soils_routes.py:", "shortDescription": {"text": "FastAPI POST `build_landuse_and_soils` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_soils_routes.py:46"}, "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}}, {"id": "scanner-f82b52954c6ca5ea", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/rusle_routes.py:30", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/rusle_routes.py:30"}, "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}}, {"id": "scanner-39c96afd06b332f9", "name": "FastAPI POST `run_sync` without auth dependency \u2014 wepppy/microservices/rq_engine/run_sync_routes.py:166", "shortDescription": {"text": "FastAPI POST `run_sync` without auth dependency \u2014 wepppy/microservices/rq_engine/run_sync_routes.py:166"}, "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}}, {"id": "scanner-19c00bee0616e077", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/export_routes.py:559", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/export_routes.py:559"}, "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}}, {"id": "scanner-f41c7558003b24f2", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/export_routes.py:632", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/export_routes.py:632"}, "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}}, {"id": "scanner-296821fb22297d73", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/session_routes.py:826", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/session_routes.py:826"}, "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}}, {"id": "scanner-389ab4c9f42df065", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/soils_routes.py:65", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/soils_routes.py:65"}, "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}}, {"id": "scanner-30c22c712de2b7fc", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/polaris_routes.py:30", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/polaris_routes.py:30"}, "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}}, {"id": "scanner-2cc21721d2927560", "name": "FastAPI POST `upload_huc_fire_sbs` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_huc_fire_routes.py:80", "shortDescription": {"text": "FastAPI POST `upload_huc_fire_sbs` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_huc_fire_routes.py:80"}, "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}}, {"id": "scanner-1862f874597ce43c", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/openet_ts_routes.py:30", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/openet_ts_routes.py:30"}, "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}}, {"id": "scanner-7863a7d323bde095", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/wepp_routes.py:184", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/wepp_routes.py:184"}, "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}}, {"id": "scanner-9c967a0880771124", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/wepp_routes.py:227", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/wepp_routes.py:227"}, "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}}, {"id": "scanner-d4af79a5ceaa197e", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/wepp_routes.py:272", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/wepp_routes.py:272"}, "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}}, {"id": "scanner-a476806dc2cf9384", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:213", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:213"}, "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}}, {"id": "scanner-bd3dc8f3190b1a0f", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:441", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:441"}, "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}}, {"id": "scanner-73594f5c3a08d6be", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:512", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:512"}, "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}}, {"id": "scanner-da0a868e2e973bb3", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:591", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:591"}, "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}}, {"id": "scanner-5a207ed48bb9f8b2", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/dss_export_routes.py:53", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/dss_export_routes.py:53"}, "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}}, {"id": "scanner-48a9cc262419276a", "name": "FastAPI POST `migrate_run` without auth dependency \u2014 wepppy/microservices/rq_engine/migration_routes.py:80", "shortDescription": {"text": "FastAPI POST `migrate_run` without auth dependency \u2014 wepppy/microservices/rq_engine/migration_routes.py:80"}, "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}}, {"id": "scanner-d672553c7b5b4c2f", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/culvert_routes.py:75", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/culvert_routes.py:75"}, "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}}, {"id": "scanner-4e7bbcdce5083935", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/culvert_routes.py:225", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/culvert_routes.py:225"}, "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}}, {"id": "scanner-c021f205adb81474", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/culvert_routes.py:317", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/culvert_routes.py:317"}, "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}}, {"id": "scanner-dce5036d459ccb38", "name": "FastAPI POST `upload_geojson` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_batch_runner_routes.py:136", "shortDescription": {"text": "FastAPI POST `upload_geojson` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_batch_runner_routes.py:136"}, "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}}, {"id": "scanner-f7c7d7d8f983aea4", "name": "FastAPI POST `upload_sbs_map` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_batch_runner_routes.py:272", "shortDescription": {"text": "FastAPI POST `upload_sbs_map` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_batch_runner_routes.py:272"}, "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}}, {"id": "scanner-8789bfe5a27b81d7", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:399", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:399"}, "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}}, {"id": "scanner-8b4e73e6dc04bf57", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:456", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:456"}, "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}}, {"id": "scanner-3877d7ef912cb740", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:516", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:516"}, "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}}, {"id": "scanner-b82e8c3467266ad2", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:572", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:572"}, "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}}, {"id": "scanner-fa531e607cf934f3", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/treatments_routes.py:78", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/treatments_routes.py:78"}, "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}}, {"id": "scanner-76b24f96a89b02e9", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:883", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:883"}, "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}}, {"id": "scanner-c1fed13d8fa45693", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:922", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:922"}, "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}}, {"id": "scanner-5ca5cf218c8408cb", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:963", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:963"}, "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}}, {"id": "scanner-25ed46417e703f21", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:1000", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:1000"}, "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}}, {"id": "scanner-6792791081430761", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/climate_routes.py:378", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/climate_routes.py:378"}, "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}}, {"id": "scanner-42bc06a671ceae1f", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/swat_routes.py:50", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/swat_routes.py:50"}, "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}}, {"id": "scanner-0044b2f55a994acc", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/swat_routes.py:96", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/swat_routes.py:96"}, "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}}, {"id": "scanner-e2a910ce0ffdca0e", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/swat_routes.py:164", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/swat_routes.py:164"}, "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}}, {"id": "scanner-d313863c616b2ed8", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:211", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:211"}, "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}}, {"id": "scanner-9184c6b7dfcd3706", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:252", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:252"}, "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}}, {"id": "scanner-34cc7ff524c6b98a", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:364", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:364"}, "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}}, {"id": "scanner-9b521dacede4ed72", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:406", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:406"}, "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}}, {"id": "scanner-4ef6bdaae4167653", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:491", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:491"}, "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}}, {"id": "scanner-4438c32712b347e9", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:571", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:571"}, "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}}, {"id": "scanner-0c461c2d27d92459", "name": "FastAPI POST `hello_world` without auth dependency \u2014 wepppy/microservices/rq_engine/debug_routes.py:41", "shortDescription": {"text": "FastAPI POST `hello_world` without auth dependency \u2014 wepppy/microservices/rq_engine/debug_routes.py:41"}, "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}}, {"id": "scanner-93c608b9a4f3a67b", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/rap_ts_routes.py:76", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/rap_ts_routes.py:76"}, "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}}, {"id": "scanner-55f9ab193a709dd3", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/roads_routes.py:60", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/roads_routes.py:60"}, "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}}, {"id": "scanner-31436063a9214f37", "name": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/roads_routes.py:97", "shortDescription": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/roads_routes.py:97"}, "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}}, {"id": "scanner-e003d5929a5e401d", "name": "FastAPI POST `run_profile` without auth dependency \u2014 services/profile_playback/app.py:797", "shortDescription": {"text": "FastAPI POST `run_profile` without auth dependency \u2014 services/profile_playback/app.py:797"}, "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}}, {"id": "scanner-b7b419e1b453f8c8", "name": "FastAPI POST `fork_profile_route` without auth dependency \u2014 services/profile_playback/app.py:925", "shortDescription": {"text": "FastAPI POST `fork_profile_route` without auth dependency \u2014 services/profile_playback/app.py:925"}, "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}}, {"id": "scanner-d05238bc98d1cafd", "name": "FastAPI POST `archive_profile_route` without auth dependency \u2014 services/profile_playback/app.py:933", "shortDescription": {"text": "FastAPI POST `archive_profile_route` without auth dependency \u2014 services/profile_playback/app.py:933"}, "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}}, {"id": "scanner-99c6519a0d105782", "name": "FastAPI POST `create_session` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:106", "shortDescription": {"text": "FastAPI POST `create_session` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:106"}, "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}}, {"id": "scanner-542027838a268110", "name": "FastAPI DELETE `delete_session` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:146", "shortDescription": {"text": "FastAPI DELETE `delete_session` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:146"}, "fullDescription": {"text": "`@router.delete` 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}}, {"id": "scanner-899c268cde4dd6ec", "name": "FastAPI POST `create_terminal_in_session` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:", "shortDescription": {"text": "FastAPI POST `create_terminal_in_session` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:157"}, "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}}, {"id": "scanner-64dce4c55a0c0a07", "name": "FastAPI POST `send_terminal_input` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:199", "shortDescription": {"text": "FastAPI POST `send_terminal_input` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:199"}, "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}}, {"id": "scanner-f8b8e8de7d239501", "name": "FastAPI POST `exit_terminal` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:221", "shortDescription": {"text": "FastAPI POST `exit_terminal` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:221"}, "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}}, {"id": "scanner-2e7197c1e788687f", "name": "FastAPI DELETE `delete_terminal` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:235", "shortDescription": {"text": "FastAPI DELETE `delete_terminal` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:235"}, "fullDescription": {"text": "`@router.delete` 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}}, {"id": "scanner-8e8f8d6ece6b4fd8", "name": "FastAPI POST `create_inbox_message_endpoint` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.", "shortDescription": {"text": "FastAPI POST `create_inbox_message_endpoint` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:252"}, "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}}, {"id": "scanner-513763ee2c62f7b6", "name": "Dangling fetch: GET /api/ping (wepppy/weppcloud/controllers_js/__tests__/http.test.js:75)", "shortDescription": {"text": "Dangling fetch: GET /api/ping (wepppy/weppcloud/controllers_js/__tests__/http.test.js:75)"}, "fullDescription": {"text": "`wepppy/weppcloud/controllers_js/__tests__/http.test.js:75` calls `GET /api/ping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ping`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bdbd8d64491929dd", "name": "Dangling fetch: GET /rq-engine/api/jobstatus/job-1 (wepppy/weppcloud/controllers_js/__tests__/http.test.js:98)", "shortDescription": {"text": "Dangling fetch: GET /rq-engine/api/jobstatus/job-1 (wepppy/weppcloud/controllers_js/__tests__/http.test.js:98)"}, "fullDescription": {"text": "`wepppy/weppcloud/controllers_js/__tests__/http.test.js:98` calls `GET /rq-engine/api/jobstatus/job-1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/rq-engine/api/jobstatus/job-1`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-def9bb8faf2e46c9", "name": "Dangling fetch: GET /resources/nhd (wepppy/weppcloud/controllers_js/__tests__/http.test.js:159)", "shortDescription": {"text": "Dangling fetch: GET /resources/nhd (wepppy/weppcloud/controllers_js/__tests__/http.test.js:159)"}, "fullDescription": {"text": "`wepppy/weppcloud/controllers_js/__tests__/http.test.js:159` calls `GET /resources/nhd` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/resources/nhd`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d5b05899ccfb6d1", "name": "Dangling fetch: POST /api/fail (wepppy/weppcloud/controllers_js/__tests__/http.test.js:175)", "shortDescription": {"text": "Dangling fetch: POST /api/fail (wepppy/weppcloud/controllers_js/__tests__/http.test.js:175)"}, "fullDescription": {"text": "`wepppy/weppcloud/controllers_js/__tests__/http.test.js:175` calls `POST /api/fail` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/fail`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4b6579b654b60ff", "name": "Dangling fetch: POST /api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:72)", "shortDescription": {"text": "Dangling fetch: POST /api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:72)"}, "fullDescription": {"text": "`wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:72` calls `POST /api/mutate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mutate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82d98a2fec626cac", "name": "Dangling fetch: POST /api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:92)", "shortDescription": {"text": "Dangling fetch: POST /api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:92)"}, "fullDescription": {"text": "`wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:92` calls `POST /api/mutate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mutate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e25b9721efbc3ad6", "name": "Dangling fetch: POST https://external.example/api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.", "shortDescription": {"text": "Dangling fetch: POST https://external.example/api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:98)"}, "fullDescription": {"text": "`wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:98` calls `POST https://external.example/api/mutate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/external.example/api/mutate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4689287b99e0996d", "name": "Dangling fetch: POST /api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:119)", "shortDescription": {"text": "Dangling fetch: POST /api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:119)"}, "fullDescription": {"text": "`wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:119` calls `POST /api/mutate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mutate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a6d91f2236825bf", "name": "Unused endpoint: ANY /", "shortDescription": {"text": "Unused endpoint: ANY /"}, "fullDescription": {"text": "`wepppy/webservices/ecoregion_us.py` declares `ANY /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34a0d470c601d97f", "name": "Unused endpoint: GET /catalog", "shortDescription": {"text": "Unused endpoint: GET /catalog"}, "fullDescription": {"text": "`wepppy/webservices/wmesque2.py` declares `GET /catalog` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-11ca7a940ab350e5", "name": "Unused endpoint: GET /retrieve/{dataset:path}", "shortDescription": {"text": "Unused endpoint: GET /retrieve/{dataset:path}"}, "fullDescription": {"text": "`wepppy/webservices/wmesque2.py` declares `GET /retrieve/{dataset:path}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3c4e09cb0443591d", "name": "Unused endpoint: ANY /catalog", "shortDescription": {"text": "Unused endpoint: ANY /catalog"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /catalog` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-632f62e9e351bfbf", "name": "Unused endpoint: ANY /<dataset>/<year>", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6429638cfd58511d", "name": "Unused endpoint: ANY /<dataset>/<year>/", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce759ace9042f18b", "name": "Unused endpoint: ANY /<dataset>/<year>/<layer>", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/<layer>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ff3e65e7b49a5539", "name": "Unused endpoint: ANY /<dataset>/<year>/<layer>/", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/<layer>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-250a2d689b551ce8", "name": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/<layer>/<foo>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34458b2b35615699", "name": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/<layer>/<foo>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e668dbf5dc1de130", "name": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/<layer>/<foo>/<bar>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-766bd726f8cad1ce", "name": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/<layer>/<foo>/<bar>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-265e57f2739bc4aa", "name": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-78b1965c2ca9d8f7", "name": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91c8db977653a280", "name": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/<bar2>", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/<bar2>"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/<bar2>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-75d87250d66370d6", "name": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/<bar2>/", "shortDescription": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/<bar2>/"}, "fullDescription": {"text": "`wepppy/webservices/wmesque.py` declares `ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/<bar2>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-88c7238f0d6aceaa", "name": "Unused endpoint: ANY /daily/catalog", "shortDescription": {"text": "Unused endpoint: ANY /daily/catalog"}, "fullDescription": {"text": "`wepppy/webservices/metquery.py` declares `ANY /daily/catalog` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e594bbb5f4bd559e", "name": "Unused endpoint: ANY /daily/catalog/", "shortDescription": {"text": "Unused endpoint: ANY /daily/catalog/"}, "fullDescription": {"text": "`wepppy/webservices/metquery.py` declares `ANY /daily/catalog/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd82699fa9b49be4", "name": "Unused endpoint: ANY /daily_singlepoint", "shortDescription": {"text": "Unused endpoint: ANY /daily_singlepoint"}, "fullDescription": {"text": "`wepppy/webservices/metquery.py` declares `ANY /daily_singlepoint` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eae053802bb1bb27", "name": "Unused endpoint: ANY /daily_singlepoint/", "shortDescription": {"text": "Unused endpoint: ANY /daily_singlepoint/"}, "fullDescription": {"text": "`wepppy/webservices/metquery.py` declares `ANY /daily_singlepoint/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9270252f0f12c18b", "name": "Unused endpoint: ANY /daily", "shortDescription": {"text": "Unused endpoint: ANY /daily"}, "fullDescription": {"text": "`wepppy/webservices/metquery.py` declares `ANY /daily` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aec18d97d16dfcce", "name": "Unused endpoint: ANY /daily/", "shortDescription": {"text": "Unused endpoint: ANY /daily/"}, "fullDescription": {"text": "`wepppy/webservices/metquery.py` declares `ANY /daily/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4cacd86bd27d577", "name": "Unused endpoint: ANY /monthly/catalog", "shortDescription": {"text": "Unused endpoint: ANY /monthly/catalog"}, "fullDescription": {"text": "`wepppy/webservices/metquery.py` declares `ANY /monthly/catalog` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-633714100fa0a747", "name": "Unused endpoint: ANY /monthly/catalog/", "shortDescription": {"text": "Unused endpoint: ANY /monthly/catalog/"}, "fullDescription": {"text": "`wepppy/webservices/metquery.py` declares `ANY /monthly/catalog/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-64496b0fb2297169", "name": "Unused endpoint: ANY /monthly", "shortDescription": {"text": "Unused endpoint: ANY /monthly"}, "fullDescription": {"text": "`wepppy/webservices/metquery.py` declares `ANY /monthly` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-511884b415640213", "name": "Unused endpoint: ANY /monthly/", "shortDescription": {"text": "Unused endpoint: ANY /monthly/"}, "fullDescription": {"text": "`wepppy/webservices/metquery.py` declares `ANY /monthly/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e78af2aa2e2c3588", "name": "Unused endpoint: POST /internal/load", "shortDescription": {"text": "Unused endpoint: POST /internal/load"}, "fullDescription": {"text": "`wepppy/webservices/dtale/dtale.py` declares `POST /internal/load` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-41bb07873f2dfee8", "name": "Unused endpoint: POST /create/", "shortDescription": {"text": "Unused endpoint: POST /create/"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/project_routes.py` declares `POST /create/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a2fba5e152ee83d", "name": "Unused endpoint: POST /runs/{runid}/{config}/build-landuse", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/build-landuse"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/build-landuse` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e51db1b66e52705a", "name": "Unused endpoint: POST /runs/{runid}/{config}/set-landuse-mode", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/set-landuse-mode"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/set-landuse-mode` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8cdea044fbd446eb", "name": "Unused endpoint: POST /runs/{runid}/{config}/set-landuse-db", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/set-landuse-db"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/set-landuse-db` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e0f845c21392fe1f", "name": "Unused endpoint: POST /runs/{runid}/{config}/modify-landuse-coverage", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/modify-landuse-coverage"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/modify-landuse-coverage` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c22275302d32ee21", "name": "Unused endpoint: GET /runs/{runid}/{config}/controllers/landuse/state", "shortDescription": {"text": "Unused endpoint: GET /runs/{runid}/{config}/controllers/landuse/state"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `GET /runs/{runid}/{config}/controllers/landuse/state` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b667608867f1540b", "name": "Unused endpoint: POST /runs/{runid}/{config}/modify-landuse-mapping", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/modify-landuse-mapping"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/modify-landuse-mapping` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a7110e5a86105af2", "name": "Unused endpoint: GET /runs/{runid}/{config}/landuse-user-defined/catalog", "shortDescription": {"text": "Unused endpoint: GET /runs/{runid}/{config}/landuse-user-defined/catalog"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `GET /runs/{runid}/{config}/landuse-user-defined/catalog` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e3c264587af45390", "name": "Unused endpoint: POST /runs/{runid}/{config}/landuse-user-defined/upload", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/landuse-user-defined/upload"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/landuse-user-defined/upload` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a34a360ee7d1d563", "name": "Unused endpoint: POST /runs/{runid}/{config}/landuse-user-defined/delete", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/landuse-user-defined/delete"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/landuse-user-defined/delete` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f3801a528859869", "name": "Unused endpoint: POST /runs/{runid}/{config}/landuse-user-defined/update-description", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/landuse-user-defined/update-description"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/landuse-user-defined/update-description` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-abc79b5e9eb78050", "name": "Unused endpoint: GET /runs/{runid}/{config}/landuse-map/snapshot", "shortDescription": {"text": "Unused endpoint: GET /runs/{runid}/{config}/landuse-map/snapshot"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `GET /runs/{runid}/{config}/landuse-map/snapshot` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bed407f7e1deb70a", "name": "Unused endpoint: POST /runs/{runid}/{config}/landuse-map/save", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/landuse-map/save"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/landuse-map/save` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8a5d3bf13dd9cfe8", "name": "Unused endpoint: POST /runs/{runid}/{config}/landuse-map/clear-override", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/landuse-map/clear-override"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/landuse-map/clear-override` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b69078418d8a5aa4", "name": "Unused endpoint: POST /runs/{runid}/{config}/modify-landuse", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/modify-landuse"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/landuse_routes.py` declares `POST /runs/{runid}/{config}/modify-landuse` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0bd0fad793b15bb6", "name": "Unused endpoint: GET /jobstatus/{job_id}", "shortDescription": {"text": "Unused endpoint: GET /jobstatus/{job_id}"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/job_routes.py` declares `GET /jobstatus/{job_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c42d1053c57614af", "name": "Unused endpoint: GET /jobinfo/{job_id}", "shortDescription": {"text": "Unused endpoint: GET /jobinfo/{job_id}"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/job_routes.py` declares `GET /jobinfo/{job_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c07458632bad6a30", "name": "Unused endpoint: POST /jobinfo", "shortDescription": {"text": "Unused endpoint: POST /jobinfo"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/job_routes.py` declares `POST /jobinfo` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5fea715380297dd", "name": "Unused endpoint: POST /canceljob/{job_id}", "shortDescription": {"text": "Unused endpoint: POST /canceljob/{job_id}"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/job_routes.py` declares `POST /canceljob/{job_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4338fe485674fc73", "name": "Unused endpoint: POST /runs/{runid}/{config}/run-ash", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/run-ash"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/ash_routes.py` declares `POST /runs/{runid}/{config}/run-ash` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-85e8414f21968886", "name": "Unused endpoint: POST /runs/{runid}/{config}/tasks/upload-dem/", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/tasks/upload-dem/"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/watershed_routes.py` declares `POST /runs/{runid}/{config}/tasks/upload-dem/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6306f624e03c926", "name": "Unused endpoint: POST /runs/{runid}/{config}/fetch-dem-and-build-channels", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/fetch-dem-and-build-channels"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/watershed_routes.py` declares `POST /runs/{runid}/{config}/fetch-dem-and-build-channels` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9cb95f5c6b23b413", "name": "Unused endpoint: POST /runs/{runid}/{config}/set-outlet", "shortDescription": {"text": "Unused endpoint: POST /runs/{runid}/{config}/set-outlet"}, "fullDescription": {"text": "`wepppy/microservices/rq_engine/watershed_routes.py` declares `POST /runs/{runid}/{config}/set-outlet` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18471"}, "properties": {"repository": "rogerlew/wepppy", "repoUrl": "https://github.com/rogerlew/wepppy", "branch": "main"}, "results": [{"ruleId": "scanner-681a191b280ab432", "level": "note", "message": {"text": "Possibly dead Python function: status_icon"}, "properties": {"repobilityId": "addbc01c7f120fc3", "scanner": "scanner-primary", "fingerprint": "681a191b280ab432", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/culvert-at-risk-integration/generate_project_synopsis.py:471"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-690b3a80bf6d624d", "level": "note", "message": {"text": "Possibly dead Python function: fetch_region_coverage"}, "properties": {"repobilityId": "e5b046b78c74cf28", "scanner": "scanner-primary", "fingerprint": "690b3a80bf6d624d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/work-packages/20260522_ssurgo_corestrictions_kslast_viability/artifacts/run_corestrictions_kslast_viability.py:245"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-872b4ec68d3f6cb2", "level": "note", "message": {"text": "Possibly dead Python function: fetch_region_reasonableness"}, "properties": {"repobilityId": "b3259e0e620073aa", "scanner": "scanner-primary", "fingerprint": "872b4ec68d3f6cb2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/work-packages/20260522_ssurgo_corestrictions_kslast_viability/artifacts/run_corestrictions_kslast_viability.py:303"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b9622885db2faea1", "level": "note", "message": {"text": "Possibly dead Python function: run_wepppyo3"}, "properties": {"repobilityId": "e552ca63e3f34c6b", "scanner": "scanner-primary", "fingerprint": "b9622885db2faea1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/work-packages/20260303_raster_tools_crosswalk_benchmarks/notes/zonal_benchmark_wepppyo3_oxidized_rasterstats.py:166"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-30ab672c797ceac8", "level": "note", "message": {"text": "Possibly dead Python function: run_oxidized"}, "properties": {"repobilityId": "f3207d3a1072ceb7", "scanner": "scanner-primary", "fingerprint": "30ab672c797ceac8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/work-packages/20260303_raster_tools_crosswalk_benchmarks/notes/zonal_benchmark_wepppyo3_oxidized_rasterstats.py:175"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c8aee49007e0182b", "level": "note", "message": {"text": "Possibly dead Python function: run_single_hillslope_audit"}, "properties": {"repobilityId": "5474909800a85917", "scanner": "scanner-primary", "fingerprint": "c8aee49007e0182b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/mini-work-packages/20260502_rq_replay_mofe_260501_validation/run_rq_replay_mofe_validation.py:422"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8b179e9e3d46a46", "level": "note", "message": {"text": "Possibly dead Python function: compress_fn"}, "properties": {"repobilityId": "5f081a5788837381", "scanner": "scanner-primary", "fingerprint": "d8b179e9e3d46a46", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/rq/wepp_rq.py:350"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2528d67bfa2cc6a2", "level": "note", "message": {"text": "Possibly dead Python function: run_batch_watershed_rq"}, "properties": {"repobilityId": "4910124777daa798", "scanner": "scanner-primary", "fingerprint": "2528d67bfa2cc6a2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/rq/batch_rq.py:375"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d4167d5280c0d47d", "level": "note", "message": {"text": "Possibly dead Python function: progress_callback"}, "properties": {"repobilityId": "c0bdca229f9eae30", "scanner": "scanner-primary", "fingerprint": "d4167d5280c0d47d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/rq/migrations_rq.py:122"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f05a59b2b0ff336f", "level": "note", "message": {"text": "Possibly dead Python function: start_worker"}, "properties": {"repobilityId": "ae4e6c5f2c1c8a95", "scanner": "scanner-primary", "fingerprint": "f05a59b2b0ff336f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/rq/rq_worker.py:250"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eea2239674ba0fde", "level": "note", "message": {"text": "Possibly dead Python function: stream_aria2"}, "properties": {"repobilityId": "39f38fb8b2dd07a7", "scanner": "scanner-primary", "fingerprint": "eea2239674ba0fde", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/rq/run_sync_rq.py:459"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58f511227bbd53d4", "level": "note", "message": {"text": "Possibly dead Python function: run_interchange_migration"}, "properties": {"repobilityId": "bf472029e4269d4b", "scanner": "scanner-primary", "fingerprint": "58f511227bbd53d4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/rq/interchange_rq.py:64"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0648bee85c795b42", "level": "note", "message": {"text": "Possibly dead Python function: from_b64url"}, "properties": {"repobilityId": "d814d5478e4ed4e2", "scanner": "scanner-primary", "fingerprint": "0648bee85c795b42", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/wmesque2.py:97"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f1eb3358c2bc9551", "level": "note", "message": {"text": "Possibly dead Python function: b64url_compact"}, "properties": {"repobilityId": "c65c53d1450d4aa8", "scanner": "scanner-primary", "fingerprint": "f1eb3358c2bc9551", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/wmesque2.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-559cc0d41053cf73", "level": "note", "message": {"text": "Possibly dead Python function: from_b64url_compact"}, "properties": {"repobilityId": "fa32530b8d000d9d", "scanner": "scanner-primary", "fingerprint": "559cc0d41053cf73", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/wmesque2.py:109"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3259648f8dbb47e1", "level": "note", "message": {"text": "Possibly dead Python function: process_raster"}, "properties": {"repobilityId": "4ac5bf42135d9c96", "scanner": "scanner-primary", "fingerprint": "3259648f8dbb47e1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/wmesque2.py:185"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a67d5ceb0899a687", "level": "note", "message": {"text": "Possibly dead Python function: cleanup_files"}, "properties": {"repobilityId": "22f6d1ef9d0d58de", "scanner": "scanner-primary", "fingerprint": "a67d5ceb0899a687", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/wmesque2.py:341"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e9321eb05f6e54b5", "level": "note", "message": {"text": "Possibly dead Python function: delete_files"}, "properties": {"repobilityId": "cbe786a49299d739", "scanner": "scanner-primary", "fingerprint": "e9321eb05f6e54b5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/wmesque.py:458"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-60b3b872b84c0421", "level": "note", "message": {"text": "Possibly dead Python function: daily_worker"}, "properties": {"repobilityId": "060708add7748050", "scanner": "scanner-primary", "fingerprint": "60b3b872b84c0421", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/metquery.py:295"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c983b3e01ae67aa2", "level": "note", "message": {"text": "Possibly dead Python function: delete_files"}, "properties": {"repobilityId": "cbe786a49299d739", "scanner": "scanner-primary", "fingerprint": "c983b3e01ae67aa2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/metquery.py:391"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ab0cb3d4b27b5c8", "level": "note", "message": {"text": "Possibly dead Python function: run_request"}, "properties": {"repobilityId": "a3d08dd44c58b25e", "scanner": "scanner-primary", "fingerprint": "2ab0cb3d4b27b5c8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/benchmarks/benchmark_wmesque.py:27"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a5fe0cc9d50a53c0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/weppcloud/controllers_js/status_stream_test.js:243"}, "properties": {"repobilityId": "5572c71db11d64fe", "scanner": "scanner-primary", "fingerprint": "a5fe0cc9d50a53c0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3edf1f09817904e8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/weppcloud/controllers_js/unitizer_client_test.js:181"}, "properties": {"repobilityId": "5b599a1d0c3e5bbe", "scanner": "scanner-primary", "fingerprint": "3edf1f09817904e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a89751ad1f0b2f45", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/plotty.js:675"}, "properties": {"repobilityId": "5a46fd85f5f0ce88", "scanner": "scanner-primary", "fingerprint": "a89751ad1f0b2f45", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-167b0733f9a9498a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/preflight.js:182"}, "properties": {"repobilityId": "333ad9e3cd237f84", "scanner": "scanner-primary", "fingerprint": "167b0733f9a9498a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-571726b387dfd355", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/d3.js:6692"}, "properties": {"repobilityId": "a9fe2bfb7bad9441", "scanner": "scanner-primary", "fingerprint": "571726b387dfd355", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ec77ae6b2cf95ec9", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/leaflet-1.71.js:1323"}, "properties": {"repobilityId": "f36bc89a52b95e00", "scanner": "scanner-primary", "fingerprint": "ec77ae6b2cf95ec9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-355ce9e800525ce4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/leaflet-geotiff.js:71"}, "properties": {"repobilityId": "987c537171413079", "scanner": "scanner-primary", "fingerprint": "355ce9e800525ce4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a795f287cb8b036f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/leaflet-geotiff.js:212"}, "properties": {"repobilityId": "311a613df28f3139", "scanner": "scanner-primary", "fingerprint": "a795f287cb8b036f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5cf04233825bd889", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/copytext.js:8"}, "properties": {"repobilityId": "c046309438706b0e", "scanner": "scanner-primary", "fingerprint": "5cf04233825bd889", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ad8e699adbe6b36f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static/js/polylabel.js:53"}, "properties": {"repobilityId": "f1375b896b5beb8e", "scanner": "scanner-primary", "fingerprint": "ad8e699adbe6b36f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-44aa4d62949f49a2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 wepppy/weppcloud/static/js/geotiff.js:8"}, "properties": {"repobilityId": "1f4cea39ba540fa9", "scanner": "scanner-primary", "fingerprint": "44aa4d62949f49a2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-18c106ae5ba2e4db", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/controllers_js/wepp.js:572"}, "properties": {"repobilityId": "2af8942daaa70baa", "scanner": "scanner-primary", "fingerprint": "18c106ae5ba2e4db", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c40b2efb32ba08fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/controllers_js/unitizer_client.js:357"}, "properties": {"repobilityId": "9e2accf62166f719", "scanner": "scanner-primary", "fingerprint": "c40b2efb32ba08fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f2faa8d81ec0267a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/theme-metrics.helpers.js:471"}, "properties": {"repobilityId": "ed71cc6eee769e98", "scanner": "scanner-primary", "fingerprint": "f2faa8d81ec0267a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b7e431c79764945", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/theme-metrics.spec.js:215"}, "properties": {"repobilityId": "7ebf9787241a3532", "scanner": "scanner-primary", "fingerprint": "0b7e431c79764945", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a0bc0fcbb533499", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/check-layer-identity.spec.js:28"}, "properties": {"repobilityId": "fa60a8b473643c62", "scanner": "scanner-primary", "fingerprint": "8a0bc0fcbb533499", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-520600195ece3297", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/landuse-soils-verification.spec.js:20"}, "properties": {"repobilityId": "b93b832424b35294", "scanner": "scanner-primary", "fingerprint": "520600195ece3297", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fa200f0c94b828f5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/test-live-slope.spec.js:17"}, "properties": {"repobilityId": "857b85a6451ec5a9", "scanner": "scanner-primary", "fingerprint": "fa200f0c94b828f5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c243fe004c8c0ef6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/visual-verification.spec.js:29"}, "properties": {"repobilityId": "3b1866e72edb89cf", "scanner": "scanner-primary", "fingerprint": "c243fe004c8c0ef6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e962d3d1ed9ab9ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/verify-fix.spec.js:31"}, "properties": {"repobilityId": "f2ff4ebca5c12947", "scanner": "scanner-primary", "fingerprint": "e962d3d1ed9ab9ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-91aceef438056fa5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/diagnostics/diagnose-rendering.spec.js:29"}, "properties": {"repobilityId": "346146b1257d5a9c", "scanner": "scanner-primary", "fingerprint": "91aceef438056fa5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-228506fe5a27e65f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 wepppy/weppcloud/static-src/tests/smoke/a11y/axe-runs0.spec.js:598"}, "properties": {"repobilityId": "38ce0255064bd4fa", "scanner": "scanner-primary", "fingerprint": "228506fe5a27e65f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e45d6fd9f0d00e3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 weppcloud-ui-lab/AFFILIATIONS_EXAMPLE.tsx:21"}, "properties": {"repobilityId": "adbca9fb34773d96", "scanner": "scanner-primary", "fingerprint": "5e45d6fd9f0d00e3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8cb103854eb37e75", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/cap/server.js:175"}, "properties": {"repobilityId": "b410df3c4422f744", "scanner": "scanner-primary", "fingerprint": "8cb103854eb37e75", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c6152a0386c02a74", "level": "warning", "message": {"text": "Privileged port 20 in use"}, "properties": {"repobilityId": "a59f3e53d617e0f8", "scanner": "scanner-primary", "fingerprint": "c6152a0386c02a74", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/forest_workflows/theme-metrics-nightly.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2606d1546b99a87f", "level": "warning", "message": {"text": "Privileged port 10 in use"}, "properties": {"repobilityId": "735372d6b5594915", "scanner": "scanner-primary", "fingerprint": "2606d1546b99a87f", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/forest_workflows/theme-metrics-nightly.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bde03e3d5f86dd72", "level": "warning", "message": {"text": "Privileged port 35 in use"}, "properties": {"repobilityId": "e997ec9811d79c6d", "scanner": "scanner-primary", "fingerprint": "bde03e3d5f86dd72", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/forest_workflows/preflight-tests-nightly.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bf413366fdf52fe9", "level": "warning", "message": {"text": "Privileged port 15 in use"}, "properties": {"repobilityId": "3340f9a170f285cd", "scanner": "scanner-primary", "fingerprint": "bf413366fdf52fe9", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/forest_workflows/playback-profiles.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-277c75946c3eda2b", "level": "warning", "message": {"text": "Privileged port 55 in use"}, "properties": {"repobilityId": "51a768b3e1831ac0", "scanner": "scanner-primary", "fingerprint": "277c75946c3eda2b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/forest_workflows/playback-profiles.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a39bfb32dff52196", "level": "warning", "message": {"text": "Privileged port 30 in use"}, "properties": {"repobilityId": "54f172e7d16fc662", "scanner": "scanner-primary", "fingerprint": "a39bfb32dff52196", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/forest_workflows/playback-profiles.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1de4b9fec52d1fc3", "level": "warning", "message": {"text": "Privileged port 40 in use"}, "properties": {"repobilityId": "28c59d470d4929c6", "scanner": "scanner-primary", "fingerprint": "1de4b9fec52d1fc3", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/forest_workflows/playback-profiles.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-09fd31d1f4862fc5", "level": "warning", "message": {"text": "Privileged port 50 in use"}, "properties": {"repobilityId": "da61f654c07ea7a9", "scanner": "scanner-primary", "fingerprint": "09fd31d1f4862fc5", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/forest_workflows/playback-profiles.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b39aaac63f2ae10c", "level": "warning", "message": {"text": "Privileged port 45 in use"}, "properties": {"repobilityId": "73cf64d92574d41c", "scanner": "scanner-primary", "fingerprint": "b39aaac63f2ae10c", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/forest_workflows/playback-profiles.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c15a21530bd7b343", "level": "warning", "message": {"text": "Privileged port 17 in use"}, "properties": {"repobilityId": "0bf38fb8f89ec589", "scanner": "scanner-primary", "fingerprint": "c15a21530bd7b343", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/forest_workflows/playback-profiles.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-28b46c86f5a3f7e8", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "cc554d71b0ac803a", "scanner": "scanner-primary", "fingerprint": "28b46c86f5a3f7e8", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-cc1993b223cce259", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "properties": {"repobilityId": "d185f851917c1257", "scanner": "scanner-primary", "fingerprint": "cc1993b223cce259", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/Dockerfile"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-adf6c0c7e3923ba7", "level": "error", "message": {"text": "Dockerfile pipes a remote installer into a shell"}, "properties": {"repobilityId": "2eb7d331c06b486b", "scanner": "scanner-primary", "fingerprint": "adf6c0c7e3923ba7", "layer": "hardware", "severity": "high", "confidence": 1.0, "tags": ["supply-chain", "docker", "remote-installer"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/Dockerfile"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-5ca8db9432c2858c", "level": "warning", "message": {"text": "Dockerfile runs as root: weppcloudR/Dockerfile"}, "properties": {"repobilityId": "8272339a475f4df3", "scanner": "scanner-primary", "fingerprint": "5ca8db9432c2858c", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-0dc740e2aae2742e", "level": "warning", "message": {"text": "Dockerfile runs as root: services/preflight2/Dockerfile"}, "properties": {"repobilityId": "ea7fe2ecd6f5b766", "scanner": "scanner-primary", "fingerprint": "0dc740e2aae2742e", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-b3425b27cf8c70a7", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: golang:1.25-alpine"}, "properties": {"repobilityId": "971c4d3b89cf9168", "scanner": "scanner-primary", "fingerprint": "b3425b27cf8c70a7", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/preflight2/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-04a23bf09d52c5a4", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: gcr.io/distroless/static:nonroot"}, "properties": {"repobilityId": "40f267211d25b614", "scanner": "scanner-primary", "fingerprint": "04a23bf09d52c5a4", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/preflight2/Dockerfile"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-49435c338a4e005c", "level": "warning", "message": {"text": "Dockerfile runs as root: services/status2/Dockerfile"}, "properties": {"repobilityId": "3f18bfa7c1fe7e0e", "scanner": "scanner-primary", "fingerprint": "49435c338a4e005c", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-b69c3a9fa031f368", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: golang:1.25-alpine"}, "properties": {"repobilityId": "7ff63b5e8e2926a3", "scanner": "scanner-primary", "fingerprint": "b69c3a9fa031f368", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/status2/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-d0e4b5d9c1075f71", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: gcr.io/distroless/static:nonroot"}, "properties": {"repobilityId": "d94e6e96eb4ea2c1", "scanner": "scanner-primary", "fingerprint": "d0e4b5d9c1075f71", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/status2/Dockerfile"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-345ef3aa5603f8f3", "level": "warning", "message": {"text": "Dockerfile runs as root: services/cap/Dockerfile"}, "properties": {"repobilityId": "5fe433603433aa6f", "scanner": "scanner-primary", "fingerprint": "345ef3aa5603f8f3", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-42bbf7698fc98f99", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "37b19123dd1cfe1e", "scanner": "scanner-primary", "fingerprint": "42bbf7698fc98f99", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/cap/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-ac69da311bf79735", "level": "error", "message": {"text": "Possible secret in docker/docker-compose.dev.yml"}, "properties": {"repobilityId": "eba6cccbb1ea6d84", "scanner": "scanner-primary", "fingerprint": "ac69da311bf79735", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/docker-compose.dev.yml"}, "region": {"startLine": 722}}}]}, {"ruleId": "scanner-ac69da311bf79735", "level": "error", "message": {"text": "Possible secret in docker/docker-compose.dev.yml"}, "properties": {"repobilityId": "eba6cccbb1ea6d84", "scanner": "scanner-primary", "fingerprint": "ac69da311bf79735", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/docker-compose.dev.yml"}, "region": {"startLine": 823}}}]}, {"ruleId": "scanner-7e0f5c80737bd77e", "level": "error", "message": {"text": "Possible secret in docker/redis-entrypoint.sh"}, "properties": {"repobilityId": "90584ba28de5c7d2", "scanner": "scanner-primary", "fingerprint": "7e0f5c80737bd77e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/redis-entrypoint.sh"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-1fb1e25f46b6520f", "level": "error", "message": {"text": "Possible secret in docker/docker-compose.dev.hpc.yml"}, "properties": {"repobilityId": "3788ecb5134fee4b", "scanner": "scanner-primary", "fingerprint": "1fb1e25f46b6520f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/docker-compose.dev.hpc.yml"}, "region": {"startLine": 674}}}]}, {"ruleId": "scanner-1fb1e25f46b6520f", "level": "error", "message": {"text": "Possible secret in docker/docker-compose.dev.hpc.yml"}, "properties": {"repobilityId": "3788ecb5134fee4b", "scanner": "scanner-primary", "fingerprint": "1fb1e25f46b6520f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/docker-compose.dev.hpc.yml"}, "region": {"startLine": 775}}}]}, {"ruleId": "scanner-3b0f0fd9dc351391", "level": "error", "message": {"text": "Possible secret in docker/docker-compose.prod.yml"}, "properties": {"repobilityId": "d43f9971b14a4366", "scanner": "scanner-primary", "fingerprint": "3b0f0fd9dc351391", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/docker-compose.prod.yml"}, "region": {"startLine": 795}}}]}, {"ruleId": "scanner-34ec85d1b11803ab", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in wepppy/rq/wepp_rq.py:360"}, "properties": {"repobilityId": "c64d25d42e6ebc18", "scanner": "scanner-primary", "fingerprint": "34ec85d1b11803ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/rq/wepp_rq.py"}, "region": {"startLine": 360}}}]}, {"ruleId": "scanner-8e45184b81e9a13b", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in wepppy/webservices/rq_dashboard.py:29"}, "properties": {"repobilityId": "738d51743b24d28e", "scanner": "scanner-primary", "fingerprint": "8e45184b81e9a13b", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/rq_dashboard.py"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-a54e35c2cea611a6", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in wepppy/au/soils/asris_soil_grids/scripts/make_gdalinfo_jsons.py:27"}, "properties": {"repobilityId": "a38c459f738572f8", "scanner": "scanner-primary", "fingerprint": "a54e35c2cea611a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/au/soils/asris_soil_grids/scripts/make_gdalinfo_jsons.py"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-6c41c3942fdd914e", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in wepppy/au/landuse_201011/__init__.py:30"}, "properties": {"repobilityId": "a05bd2febfae884e", "scanner": "scanner-primary", "fingerprint": "6c41c3942fdd914e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/au/landuse_201011/__init__.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-2a42b9fdf541cbe3", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in wepppy/climates/daymet/daymet_singlelocation_client.py:246"}, "properties": {"repobilityId": "a4f3b56247455e4e", "scanner": "scanner-primary", "fingerprint": "2a42b9fdf541cbe3", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/climates/daymet/daymet_singlelocation_client.py"}, "region": {"startLine": 246}}}]}, {"ruleId": "scanner-3064d1a849789bf1", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in wepppy/query_engine/app/server.py:964"}, "properties": {"repobilityId": "4ca43307db5c0514", "scanner": "scanner-primary", "fingerprint": "3064d1a849789bf1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/query_engine/app/server.py"}, "region": {"startLine": 964}}}]}, {"ruleId": "scanner-787262dd8ef60c15", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in wepppy/all_your_base/geo/geo.py:145"}, "properties": {"repobilityId": "ea7dfff802f9d9a5", "scanner": "scanner-primary", "fingerprint": "787262dd8ef60c15", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/all_your_base/geo/geo.py"}, "region": {"startLine": 145}}}]}, {"ruleId": "scanner-4329a5fcccfe1343", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in wepppy/topo/watershed_collection/watershed_collection.py:754"}, "properties": {"repobilityId": "93eb59abdaf19429", "scanner": "scanner-primary", "fingerprint": "4329a5fcccfe1343", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/topo/watershed_collection/watershed_collection.py"}, "region": {"startLine": 754}}}]}, {"ruleId": "scanner-d2add95709cf3dc9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/gl-dashboard.js:14"}, "properties": {"repobilityId": "c2c154701e310b4c", "scanner": "scanner-primary", "fingerprint": "d2add95709cf3dc9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/gl-dashboard.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-ff2c59b30fee3061", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/fork_console.js:38"}, "properties": {"repobilityId": "c39a7fb01aeff780", "scanner": "scanner-primary", "fingerprint": "ff2c59b30fee3061", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/fork_console.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-c1109885ffa8fcfa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/parquet_schema_preview.js:15"}, "properties": {"repobilityId": "8ed639f9fe4db990", "scanner": "scanner-primary", "fingerprint": "c1109885ffa8fcfa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/parquet_schema_preview.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-e079d41692e2ed7e", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in wepppy/weppcloud/static/js/underscore.js:1454"}, "properties": {"repobilityId": "78b8ba70a82150a8", "scanner": "scanner-primary", "fingerprint": "e079d41692e2ed7e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/underscore.js"}, "region": {"startLine": 1454}}}]}, {"ruleId": "scanner-a45f36d54f324ba8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/archive_console.js:39"}, "properties": {"repobilityId": "0ef4037fd23ebb02", "scanner": "scanner-primary", "fingerprint": "a45f36d54f324ba8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/archive_console.js"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-f104e1c74858408a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/status_stream.js:288"}, "properties": {"repobilityId": "297f7ac057874545", "scanner": "scanner-primary", "fingerprint": "f104e1c74858408a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/status_stream.js"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-963e803e452b2b43", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/parquet_filter_builder.js:389"}, "properties": {"repobilityId": "1958f2081168efa2", "scanner": "scanner-primary", "fingerprint": "963e803e452b2b43", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/parquet_filter_builder.js"}, "region": {"startLine": 389}}}]}, {"ruleId": "scanner-fab9f7ceaf4b28d1", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in wepppy/weppcloud/static/js/d3.js:8124"}, "properties": {"repobilityId": "04fcffc27561807a", "scanner": "scanner-primary", "fingerprint": "fab9f7ceaf4b28d1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/d3.js"}, "region": {"startLine": 8124}}}]}, {"ruleId": "scanner-044404f94e328da5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/d3.js:2303"}, "properties": {"repobilityId": "4470585cb1af76b1", "scanner": "scanner-primary", "fingerprint": "044404f94e328da5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/d3.js"}, "region": {"startLine": 2303}}}]}, {"ruleId": "scanner-7de8a8154802f30d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/leaflet-1.71.js:1958"}, "properties": {"repobilityId": "cd4a75f09442b8ff", "scanner": "scanner-primary", "fingerprint": "7de8a8154802f30d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/leaflet-1.71.js"}, "region": {"startLine": 1958}}}]}, {"ruleId": "scanner-506e4a8df5169abb", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in wepppy/weppcloud/static/js/glify-browser.js:2"}, "properties": {"repobilityId": "4d3de75b76d98f2a", "scanner": "scanner-primary", "fingerprint": "506e4a8df5169abb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/glify-browser.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-ddd64c791c4d243d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/hydrology-summary.test.js:5"}, "properties": {"repobilityId": "5a13b13248524fa5", "scanner": "scanner-primary", "fingerprint": "ddd64c791c4d243d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/hydrology-summary.test.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-7df4db9788be584a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/event-table.test.js:5"}, "properties": {"repobilityId": "557605b7324dc232", "scanner": "scanner-primary", "fingerprint": "7df4db9788be584a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/event-table.test.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-e723f1c9881d9232", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/hyetograph-chart.test.js:41"}, "properties": {"repobilityId": "e9a965458dd302cc", "scanner": "scanner-primary", "fingerprint": "e723f1c9881d9232", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/hyetograph-chart.test.js"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-274c37040467c6d7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/frequency-table.test.js:5"}, "properties": {"repobilityId": "ea854b07a7e9a9fe", "scanner": "scanner-primary", "fingerprint": "274c37040467c6d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/storm-event-analyzer/__tests__/frequency-table.test.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-cba389b0cd4f61b0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/charts/hyetograph.js:84"}, "properties": {"repobilityId": "2e1a191d59abd30c", "scanner": "scanner-primary", "fingerprint": "cba389b0cd4f61b0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/storm-event-analyzer/charts/hyetograph.js"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-59925b264704f3c2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/ui/hydrology-summary.js:7"}, "properties": {"repobilityId": "b8c608be9322690c", "scanner": "scanner-primary", "fingerprint": "59925b264704f3c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/storm-event-analyzer/ui/hydrology-summary.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-c1b030d78a5118ca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/ui/event-table.js:7"}, "properties": {"repobilityId": "36839e285f5634c5", "scanner": "scanner-primary", "fingerprint": "c1b030d78a5118ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/storm-event-analyzer/ui/event-table.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-9667d5db878d6cff", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/storm-event-analyzer/ui/frequency-table.js:9"}, "properties": {"repobilityId": "37199b152e2575f1", "scanner": "scanner-primary", "fingerprint": "9667d5db878d6cff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/storm-event-analyzer/ui/frequency-table.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-6a0014fc91cf19ea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/gl-dashboard/layers/renderer.js:519"}, "properties": {"repobilityId": "83b891a561d58ba8", "scanner": "scanner-primary", "fingerprint": "6a0014fc91cf19ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/gl-dashboard/layers/renderer.js"}, "region": {"startLine": 519}}}]}, {"ruleId": "scanner-525d9ffe35eb79be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/js/gl-dashboard/graphs/controller.js:597"}, "properties": {"repobilityId": "53dc7f1c7f3f09f3", "scanner": "scanner-primary", "fingerprint": "525d9ffe35eb79be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/js/gl-dashboard/graphs/controller.js"}, "region": {"startLine": 597}}}]}, {"ruleId": "scanner-d643a7ae117206a7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static/pivottable/pivot.js:1015"}, "properties": {"repobilityId": "ce11e335f318f56e", "scanner": "scanner-primary", "fingerprint": "d643a7ae117206a7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static/pivottable/pivot.js"}, "region": {"startLine": 1015}}}]}, {"ruleId": "scanner-1221df3c0965cc05", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/routes/command_bar/static/command-bar.js:397"}, "properties": {"repobilityId": "34fc41207d025e91", "scanner": "scanner-primary", "fingerprint": "1221df3c0965cc05", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/routes/command_bar/static/command-bar.js"}, "region": {"startLine": 397}}}]}, {"ruleId": "scanner-6ed441ca7087cada", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in wepppy/weppcloud/routes/command_bar/static/command-bar.js:352"}, "properties": {"repobilityId": "07ea3010d929aa97", "scanner": "scanner-primary", "fingerprint": "6ed441ca7087cada", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/routes/command_bar/static/command-bar.js"}, "region": {"startLine": 352}}}]}, {"ruleId": "scanner-03435f5ed151cbd8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/routes/diff/static/diff_viewer.js:339"}, "properties": {"repobilityId": "cad3769bcb149620", "scanner": "scanner-primary", "fingerprint": "03435f5ed151cbd8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/routes/diff/static/diff_viewer.js"}, "region": {"startLine": 339}}}]}, {"ruleId": "scanner-faebd20f6914affa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/team.js:68"}, "properties": {"repobilityId": "d04214b6f23e8eaf", "scanner": "scanner-primary", "fingerprint": "faebd20f6914affa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/team.js"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-dcba37be8a1ad920", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/team.js:75"}, "properties": {"repobilityId": "a7de1eab4a0ac195", "scanner": "scanner-primary", "fingerprint": "dcba37be8a1ad920", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/team.js"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-368f4ebc984a5739", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/baer.js:134"}, "properties": {"repobilityId": "813c22e7b51c234e", "scanner": "scanner-primary", "fingerprint": "368f4ebc984a5739", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/baer.js"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-42e3ee4c29d801bf", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/baer.js:141"}, "properties": {"repobilityId": "51e033134747d817", "scanner": "scanner-primary", "fingerprint": "42e3ee4c29d801bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/baer.js"}, "region": {"startLine": 141}}}]}, {"ruleId": "scanner-c347779457177a31", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/run_sync_dashboard.js:59"}, "properties": {"repobilityId": "8d9f4088231aa550", "scanner": "scanner-primary", "fingerprint": "c347779457177a31", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/run_sync_dashboard.js"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-01853f318bd57b1f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl_layer_control.js:34"}, "properties": {"repobilityId": "e4a408cb267e4c97", "scanner": "scanner-primary", "fingerprint": "01853f318bd57b1f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/map_gl_layer_control.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-e8fe260f18cb8d16", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/ash.js:86"}, "properties": {"repobilityId": "f1341bef82bfc756", "scanner": "scanner-primary", "fingerprint": "e8fe260f18cb8d16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/ash.js"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-9a96beb9ec7fab62", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/ash.js:93"}, "properties": {"repobilityId": "e9568129b3e92544", "scanner": "scanner-primary", "fingerprint": "9a96beb9ec7fab62", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/ash.js"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-09f810f67b52c250", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl_shared.js:115"}, "properties": {"repobilityId": "439b2461df4a8b6f", "scanner": "scanner-primary", "fingerprint": "09f810f67b52c250", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/map_gl_shared.js"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-b1a1170005c087a3", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/map_gl_shared.js:123"}, "properties": {"repobilityId": "e3f7ba706a05b7bd", "scanner": "scanner-primary", "fingerprint": "b1a1170005c087a3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/map_gl_shared.js"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-37da7ee191cb6fd8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rangeland_cover.js:81"}, "properties": {"repobilityId": "6c0242010ea45229", "scanner": "scanner-primary", "fingerprint": "37da7ee191cb6fd8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/rangeland_cover.js"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-ee440bac3b413d37", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rangeland_cover.js:88"}, "properties": {"repobilityId": "1c8826d02f587517", "scanner": "scanner-primary", "fingerprint": "ee440bac3b413d37", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/rangeland_cover.js"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-646db00b82113bfe", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/roads.js:145"}, "properties": {"repobilityId": "66ad2bfd0f0feae4", "scanner": "scanner-primary", "fingerprint": "646db00b82113bfe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/roads.js"}, "region": {"startLine": 145}}}]}, {"ruleId": "scanner-9b36275391165b59", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/roads.js:152"}, "properties": {"repobilityId": "08c6e484b8268106", "scanner": "scanner-primary", "fingerprint": "9b36275391165b59", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/roads.js"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-814b54696c0a8f59", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/observed.js:100"}, "properties": {"repobilityId": "c734b23d92a7f540", "scanner": "scanner-primary", "fingerprint": "814b54696c0a8f59", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/observed.js"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-f1eb03d7957fd3c0", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/observed.js:107"}, "properties": {"repobilityId": "bac49993345a5a63", "scanner": "scanner-primary", "fingerprint": "f1eb03d7957fd3c0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/observed.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-6a1dcaf728e4812a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/utils.js:235"}, "properties": {"repobilityId": "c7bc93a1a563b825", "scanner": "scanner-primary", "fingerprint": "6a1dcaf728e4812a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/utils.js"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-0f159d58eabdad55", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/openet_ts.js:101"}, "properties": {"repobilityId": "4a2ed326d69a505a", "scanner": "scanner-primary", "fingerprint": "0f159d58eabdad55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/openet_ts.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-15d4bff5fc1bfaf2", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/openet_ts.js:108"}, "properties": {"repobilityId": "6c0b63b733a25d3b", "scanner": "scanner-primary", "fingerprint": "15d4bff5fc1bfaf2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/openet_ts.js"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-1bff9090dfc849fd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/wepp.js:70"}, "properties": {"repobilityId": "bf2f62fdfc577dc4", "scanner": "scanner-primary", "fingerprint": "1bff9090dfc849fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/wepp.js"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-2764639caa4991bd", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/wepp.js:77"}, "properties": {"repobilityId": "9ec8f73d8530e95b", "scanner": "scanner-primary", "fingerprint": "2764639caa4991bd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/wepp.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-f77421058a7de3a3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/climate.js:97"}, "properties": {"repobilityId": "ac72216f4209f1e7", "scanner": "scanner-primary", "fingerprint": "f77421058a7de3a3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/climate.js"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-378fa0267f5bc15f", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/climate.js:104"}, "properties": {"repobilityId": "695236b299211210", "scanner": "scanner-primary", "fingerprint": "378fa0267f5bc15f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/climate.js"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-e46729c617eb7b0e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/dss_export.js:108"}, "properties": {"repobilityId": "5175d8ce8724ef62", "scanner": "scanner-primary", "fingerprint": "e46729c617eb7b0e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/dss_export.js"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-472a57e1908c9370", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/dss_export.js:115"}, "properties": {"repobilityId": "70b23f5252344aa7", "scanner": "scanner-primary", "fingerprint": "472a57e1908c9370", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/dss_export.js"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-22d0c90a126eb484", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/landuse.js:70"}, "properties": {"repobilityId": "172745f418318bf5", "scanner": "scanner-primary", "fingerprint": "22d0c90a126eb484", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/landuse.js"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-ebc3b90d5db18abe", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/landuse.js:77"}, "properties": {"repobilityId": "4f22e2f023869bc7", "scanner": "scanner-primary", "fingerprint": "ebc3b90d5db18abe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/landuse.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-acb066d1c2d40dfa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/channel_gl.js:154"}, "properties": {"repobilityId": "3ef21de238b2c185", "scanner": "scanner-primary", "fingerprint": "acb066d1c2d40dfa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/channel_gl.js"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-5cb706244e0f0597", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/channel_gl.js:161"}, "properties": {"repobilityId": "6dc92c7f5f074590", "scanner": "scanner-primary", "fingerprint": "5cb706244e0f0597", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/channel_gl.js"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-f1a1307c1b34cbcc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rhem.js:80"}, "properties": {"repobilityId": "f36ca9ab80586259", "scanner": "scanner-primary", "fingerprint": "f1a1307c1b34cbcc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/rhem.js"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-fc9794bd72776a72", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rhem.js:87"}, "properties": {"repobilityId": "361a62c714ac9e71", "scanner": "scanner-primary", "fingerprint": "fc9794bd72776a72", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/rhem.js"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-0b24691eb836354e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/geneva_summary_report.js:645"}, "properties": {"repobilityId": "e0c508da989a116b", "scanner": "scanner-primary", "fingerprint": "0b24691eb836354e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/geneva_summary_report.js"}, "region": {"startLine": 645}}}]}, {"ruleId": "scanner-109b6d394d6eb053", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/bootstrap_control.js:357"}, "properties": {"repobilityId": "49dbb3e7a34146ae", "scanner": "scanner-primary", "fingerprint": "109b6d394d6eb053", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/bootstrap_control.js"}, "region": {"startLine": 357}}}]}, {"ruleId": "scanner-fdb88c1432858821", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/control_base.js:594"}, "properties": {"repobilityId": "f337ad406cf4710c", "scanner": "scanner-primary", "fingerprint": "fdb88c1432858821", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/control_base.js"}, "region": {"startLine": 594}}}]}, {"ruleId": "scanner-801af14d30b01b6a", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/control_base.js:610"}, "properties": {"repobilityId": "6b5b7903f520b902", "scanner": "scanner-primary", "fingerprint": "801af14d30b01b6a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/control_base.js"}, "region": {"startLine": 610}}}]}, {"ruleId": "scanner-14edb874f466745c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/features_export.js:169"}, "properties": {"repobilityId": "ad6ddac5dc93f7b1", "scanner": "scanner-primary", "fingerprint": "14edb874f466745c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/features_export.js"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-cb876670e4a046c9", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/features_export.js:176"}, "properties": {"repobilityId": "f89952c6b36ed04c", "scanner": "scanner-primary", "fingerprint": "cb876670e4a046c9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/features_export.js"}, "region": {"startLine": 176}}}]}, {"ruleId": "scanner-bc249afa15b587cd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/subcatchment_delineation.js:71"}, "properties": {"repobilityId": "a797e11e1224a87c", "scanner": "scanner-primary", "fingerprint": "bc249afa15b587cd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/subcatchment_delineation.js"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-afff614a1c944688", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/subcatchment_delineation.js:78"}, "properties": {"repobilityId": "b8be9e477e990b9c", "scanner": "scanner-primary", "fingerprint": "afff614a1c944688", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/subcatchment_delineation.js"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-4dc8c355d9072d59", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/status_stream.js:282"}, "properties": {"repobilityId": "62d77bd590ebbe98", "scanner": "scanner-primary", "fingerprint": "4dc8c355d9072d59", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/status_stream.js"}, "region": {"startLine": 282}}}]}, {"ruleId": "scanner-a12a93eff778e977", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/channel_delineation.js:70"}, "properties": {"repobilityId": "e1ac7ea4ff0835c0", "scanner": "scanner-primary", "fingerprint": "a12a93eff778e977", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/channel_delineation.js"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-203ca08f94e66149", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/channel_delineation.js:77"}, "properties": {"repobilityId": "bd20b2bcb052e5ee", "scanner": "scanner-primary", "fingerprint": "203ca08f94e66149", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/channel_delineation.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-dc0eb81704a2ba44", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl.js:1467"}, "properties": {"repobilityId": "b1a829e791e518dd", "scanner": "scanner-primary", "fingerprint": "dc0eb81704a2ba44", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/map_gl.js"}, "region": {"startLine": 1467}}}]}, {"ruleId": "scanner-825a22ba02c155c2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/project.js:979"}, "properties": {"repobilityId": "de45487439beeeee", "scanner": "scanner-primary", "fingerprint": "825a22ba02c155c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/project.js"}, "region": {"startLine": 979}}}]}, {"ruleId": "scanner-5e17b4a180df20ce", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/geneva.js:127"}, "properties": {"repobilityId": "2b8a93431b7a1153", "scanner": "scanner-primary", "fingerprint": "5e17b4a180df20ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/geneva.js"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-46a2afbbba6e58d0", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/geneva.js:134"}, "properties": {"repobilityId": "55791766bc308e72", "scanner": "scanner-primary", "fingerprint": "46a2afbbba6e58d0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/geneva.js"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-1bc2ad14ce645138", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/map_gl_feature_ui.js:48"}, "properties": {"repobilityId": "ae7d070f25c34dff", "scanner": "scanner-primary", "fingerprint": "1bc2ad14ce645138", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/map_gl_feature_ui.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-212ce41e9a603d97", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/batch_runner.js:135"}, "properties": {"repobilityId": "2a03d535b3b5a4ad", "scanner": "scanner-primary", "fingerprint": "212ce41e9a603d97", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/batch_runner.js"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-f0b8632d14361d79", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rap_ts.js:102"}, "properties": {"repobilityId": "bc6c3c9176319ea5", "scanner": "scanner-primary", "fingerprint": "f0b8632d14361d79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/rap_ts.js"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-de8786d338be12d0", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rap_ts.js:109"}, "properties": {"repobilityId": "062bcb8453bd4140", "scanner": "scanner-primary", "fingerprint": "de8786d338be12d0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/rap_ts.js"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-c62b1325ce4fc2f2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/omni.js:221"}, "properties": {"repobilityId": "aa43898cbdf0ffc8", "scanner": "scanner-primary", "fingerprint": "c62b1325ce4fc2f2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/omni.js"}, "region": {"startLine": 221}}}]}, {"ruleId": "scanner-b049b9a2438c299e", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/omni.js:228"}, "properties": {"repobilityId": "92ac8e881854c3e5", "scanner": "scanner-primary", "fingerprint": "b049b9a2438c299e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/omni.js"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-a6a79679867cb5b2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/dom.js:182"}, "properties": {"repobilityId": "cdffa0e1a867608a", "scanner": "scanner-primary", "fingerprint": "a6a79679867cb5b2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/dom.js"}, "region": {"startLine": 182}}}]}, {"ruleId": "scanner-f93266e7dccc8699", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/disturbed.js:116"}, "properties": {"repobilityId": "503995a6f2b68456", "scanner": "scanner-primary", "fingerprint": "f93266e7dccc8699", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/disturbed.js"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-1a82b0c83b00816f", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/disturbed.js:123"}, "properties": {"repobilityId": "00b23cfb8a008049", "scanner": "scanner-primary", "fingerprint": "1a82b0c83b00816f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/disturbed.js"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-7b017d35e8dd3ed3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/subcatchments_gl.js:133"}, "properties": {"repobilityId": "3a740b0d8b80ff27", "scanner": "scanner-primary", "fingerprint": "7b017d35e8dd3ed3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/subcatchments_gl.js"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-75733e796c082379", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/subcatchments_gl.js:140"}, "properties": {"repobilityId": "207b2d7b5317c8ee", "scanner": "scanner-primary", "fingerprint": "75733e796c082379", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/subcatchments_gl.js"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-2a8717aff6f2509f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/soil.js:66"}, "properties": {"repobilityId": "feda63ccab5e5b96", "scanner": "scanner-primary", "fingerprint": "2a8717aff6f2509f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/soil.js"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-14a498ea27c65345", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/soil.js:73"}, "properties": {"repobilityId": "ad3f7ac31a00cd10", "scanner": "scanner-primary", "fingerprint": "14a498ea27c65345", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/soil.js"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-c5ff161bbdcdd32c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/selection_utils.js:45"}, "properties": {"repobilityId": "415f514a1ca1836a", "scanner": "scanner-primary", "fingerprint": "c5ff161bbdcdd32c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/selection_utils.js"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-5835f5e9bed7d4a4", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/selection_utils.js:52"}, "properties": {"repobilityId": "4ac6863df47e59fe", "scanner": "scanner-primary", "fingerprint": "5835f5e9bed7d4a4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/selection_utils.js"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-3f7c44a3ff4192fa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/rusle.js:114"}, "properties": {"repobilityId": "439891c68f70121c", "scanner": "scanner-primary", "fingerprint": "3f7c44a3ff4192fa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/rusle.js"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-1d97ad928da5ab5b", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/rusle.js:121"}, "properties": {"repobilityId": "7b32deaac38e0412", "scanner": "scanner-primary", "fingerprint": "1d97ad928da5ab5b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/rusle.js"}, "region": {"startLine": 121}}}]}, {"ruleId": "scanner-5d40f38cf4028018", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/debris_flow.js:77"}, "properties": {"repobilityId": "7e70c15aa2f016bd", "scanner": "scanner-primary", "fingerprint": "5d40f38cf4028018", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/debris_flow.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-fedaa704f5b5c69c", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/debris_flow.js:84"}, "properties": {"repobilityId": "6083d5add65447f4", "scanner": "scanner-primary", "fingerprint": "fedaa704f5b5c69c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/debris_flow.js"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-da8300dbb9552fef", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/treatments.js:91"}, "properties": {"repobilityId": "d7891211ff78e266", "scanner": "scanner-primary", "fingerprint": "da8300dbb9552fef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/treatments.js"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-1fc7dc9cc362c6a6", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/treatments.js:98"}, "properties": {"repobilityId": "6c635b540c64c890", "scanner": "scanner-primary", "fingerprint": "1fc7dc9cc362c6a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/treatments.js"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-80edb9678eae33a9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/unitizer_client.js:552"}, "properties": {"repobilityId": "80f56c183ba54b56", "scanner": "scanner-primary", "fingerprint": "80edb9678eae33a9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/unitizer_client.js"}, "region": {"startLine": 552}}}]}, {"ruleId": "scanner-28969e8b7af37ce7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/path_ce.js:106"}, "properties": {"repobilityId": "2f8e16a4c06d0ade", "scanner": "scanner-primary", "fingerprint": "28969e8b7af37ce7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/path_ce.js"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-fed83acd6833e7af", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/path_ce.js:113"}, "properties": {"repobilityId": "68e8d61f411c57bd", "scanner": "scanner-primary", "fingerprint": "fed83acd6833e7af", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/path_ce.js"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-5422e495ffbd9b20", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/outlet_gl.js:115"}, "properties": {"repobilityId": "a6a40e690799e818", "scanner": "scanner-primary", "fingerprint": "5422e495ffbd9b20", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/outlet_gl.js"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-84a8789d690a79b2", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/outlet_gl.js:122"}, "properties": {"repobilityId": "547fec6495ffa934", "scanner": "scanner-primary", "fingerprint": "84a8789d690a79b2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/outlet_gl.js"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-700c9f29c3b07554", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/map_gl.test.js:18"}, "properties": {"repobilityId": "911823a63ce38fa0", "scanner": "scanner-primary", "fingerprint": "700c9f29c3b07554", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/map_gl.test.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-0078dba1361479a5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/copytext.test.js:34"}, "properties": {"repobilityId": "200e1c7d7fca572b", "scanner": "scanner-primary", "fingerprint": "0078dba1361479a5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/copytext.test.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-c2bee9cd6505e5e8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/baer.test.js:17"}, "properties": {"repobilityId": "ae0ade93c2417cfe", "scanner": "scanner-primary", "fingerprint": "c2bee9cd6505e5e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/baer.test.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-7c72f68e74d096c4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/dss_export.test.js:74"}, "properties": {"repobilityId": "cd7d1d1d1057a235", "scanner": "scanner-primary", "fingerprint": "7c72f68e74d096c4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/dss_export.test.js"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-71c48b6115a32406", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/omni.test.js:18"}, "properties": {"repobilityId": "77fdabd892d31972", "scanner": "scanner-primary", "fingerprint": "71c48b6115a32406", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/omni.test.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-0c8136f9c5c52b7f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/outlet_gl.test.js:16"}, "properties": {"repobilityId": "da9ca2ea2f28ef7b", "scanner": "scanner-primary", "fingerprint": "0c8136f9c5c52b7f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/outlet_gl.test.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-6df4ec7d85f8f795", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/path_ce.test.js:13"}, "properties": {"repobilityId": "0615b0c94a8c31a6", "scanner": "scanner-primary", "fingerprint": "6df4ec7d85f8f795", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/path_ce.test.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-6bc67d96535d7050", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/openet_ts.test.js:17"}, "properties": {"repobilityId": "ba57e346182079ee", "scanner": "scanner-primary", "fingerprint": "6bc67d96535d7050", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/openet_ts.test.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-24eb298912043939", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/batch_runner.test.js:44"}, "properties": {"repobilityId": "8756cda5c6949d00", "scanner": "scanner-primary", "fingerprint": "24eb298912043939", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/batch_runner.test.js"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-3bd8bb45cca1f99b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/climate.test.js:15"}, "properties": {"repobilityId": "eb4ea0e24ef4fba3", "scanner": "scanner-primary", "fingerprint": "3bd8bb45cca1f99b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/climate.test.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-75ef59fdaa2aa60b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/team.test.js:20"}, "properties": {"repobilityId": "10f8a194ca9d950c", "scanner": "scanner-primary", "fingerprint": "75ef59fdaa2aa60b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/team.test.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-fe08d08ddf759566", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/debris_flow.test.js:16"}, "properties": {"repobilityId": "c6538e4b1b64f9d6", "scanner": "scanner-primary", "fingerprint": "fe08d08ddf759566", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/debris_flow.test.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-c673aee6d5cbac6b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/roads.test.js:77"}, "properties": {"repobilityId": "7d86da2bed4bcf0e", "scanner": "scanner-primary", "fingerprint": "c673aee6d5cbac6b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/roads.test.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-a362a11da5989178", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/console_smoke.test.js:53"}, "properties": {"repobilityId": "9b7cafeceab891cd", "scanner": "scanner-primary", "fingerprint": "a362a11da5989178", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/console_smoke.test.js"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-3fc0a651c387328e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse_map_inline.test.js:62"}, "properties": {"repobilityId": "f2606dae0faf40fd", "scanner": "scanner-primary", "fingerprint": "3fc0a651c387328e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/landuse_map_inline.test.js"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-020ec75f43dea03d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/http.test.js:40"}, "properties": {"repobilityId": "e80de945eaded114", "scanner": "scanner-primary", "fingerprint": "020ec75f43dea03d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/http.test.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-bd73c9bd773bc1a2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/events.test.js:19"}, "properties": {"repobilityId": "a1f18615a1feafbb", "scanner": "scanner-primary", "fingerprint": "bd73c9bd773bc1a2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/events.test.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-2eef8f42115500ef", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/control_base.test.js:13"}, "properties": {"repobilityId": "6674988c7327da91", "scanner": "scanner-primary", "fingerprint": "2eef8f42115500ef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/control_base.test.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-551e0d75c9bb324a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/wepp.test.js:18"}, "properties": {"repobilityId": "2fbdf6fea616bb21", "scanner": "scanner-primary", "fingerprint": "551e0d75c9bb324a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/wepp.test.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-babe2e7acb2d33bc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/sorttable.test.js:36"}, "properties": {"repobilityId": "bd2cfe712880eb3a", "scanner": "scanner-primary", "fingerprint": "babe2e7acb2d33bc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/sorttable.test.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-f5d83746828f4bbc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/geneva_summary_report.test.js:16"}, "properties": {"repobilityId": "8e8b796fb9d9cdb4", "scanner": "scanner-primary", "fingerprint": "f5d83746828f4bbc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/geneva_summary_report.test.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-fa1d43365aa210a7", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/__tests__/geneva_summary_report.test.js:375"}, "properties": {"repobilityId": "03cc0a8d7868693c", "scanner": "scanner-primary", "fingerprint": "fa1d43365aa210a7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/geneva_summary_report.test.js"}, "region": {"startLine": 375}}}]}, {"ruleId": "scanner-95316ee39f5d40c8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/treatments.test.js:34"}, "properties": {"repobilityId": "985ad861b95868f5", "scanner": "scanner-primary", "fingerprint": "95316ee39f5d40c8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/treatments.test.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-627af9234f587501", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/disturbed.test.js:16"}, "properties": {"repobilityId": "b620ab35fab58edf", "scanner": "scanner-primary", "fingerprint": "627af9234f587501", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/disturbed.test.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-d3d0a29e6fb4310e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/forms.test.js:18"}, "properties": {"repobilityId": "9b88f587cba19e97", "scanner": "scanner-primary", "fingerprint": "d3d0a29e6fb4310e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/forms.test.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-19faf5a6de3940f5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse_user_defined_catalog_inline.test.js:66"}, "properties": {"repobilityId": "9b37a4669234ff33", "scanner": "scanner-primary", "fingerprint": "19faf5a6de3940f5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/landuse_user_defined_catalog_inline.test.js"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-a99e88945b097978", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rangeland_cover.test.js:10"}, "properties": {"repobilityId": "7bfa72ea1dd2917e", "scanner": "scanner-primary", "fingerprint": "a99e88945b097978", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/rangeland_cover.test.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-97db7c3cbe8cdb80", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/subcatchment_delineation.test.js:18"}, "properties": {"repobilityId": "6d5e3f1c886bfac6", "scanner": "scanner-primary", "fingerprint": "97db7c3cbe8cdb80", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/subcatchment_delineation.test.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-5f5743169f9da705", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rusle.test.js:15"}, "properties": {"repobilityId": "a31d369596dd1227", "scanner": "scanner-primary", "fingerprint": "5f5743169f9da705", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/rusle.test.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-5b73244f61b45f2b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/channel_delineation.test.js:19"}, "properties": {"repobilityId": "6e74f8aa08d448ca", "scanner": "scanner-primary", "fingerprint": "5b73244f61b45f2b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/channel_delineation.test.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-8dda068d8d1b52d5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/features_export.test.js:354"}, "properties": {"repobilityId": "fa27fd2dda4e434d", "scanner": "scanner-primary", "fingerprint": "8dda068d8d1b52d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/features_export.test.js"}, "region": {"startLine": 354}}}]}, {"ruleId": "scanner-61ce6811016853de", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/bootstrap_control.test.js:16"}, "properties": {"repobilityId": "b7081aa1f9eb7216", "scanner": "scanner-primary", "fingerprint": "61ce6811016853de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/bootstrap_control.test.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-ad2bd07b3866479c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rap_ts.test.js:18"}, "properties": {"repobilityId": "ae7d5c8914349d3e", "scanner": "scanner-primary", "fingerprint": "ad2bd07b3866479c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/rap_ts.test.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-468c7e03d5176257", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/project.test.js:21"}, "properties": {"repobilityId": "1254af95fd6c8623", "scanner": "scanner-primary", "fingerprint": "468c7e03d5176257", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/project.test.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-fd7a33eb8076dcdb", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in wepppy/weppcloud/controllers_js/__tests__/project.test.js:287"}, "properties": {"repobilityId": "62df3b6367b4873f", "scanner": "scanner-primary", "fingerprint": "fd7a33eb8076dcdb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/project.test.js"}, "region": {"startLine": 287}}}]}, {"ruleId": "scanner-83caa7a1c414a95f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rangeland_cover_modify_gl.test.js:31"}, "properties": {"repobilityId": "16a20de909c7a676", "scanner": "scanner-primary", "fingerprint": "83caa7a1c414a95f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/rangeland_cover_modify_gl.test.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-25deab1708c234db", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse.test.js:19"}, "properties": {"repobilityId": "08b3aba049a6af33", "scanner": "scanner-primary", "fingerprint": "25deab1708c234db", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/landuse.test.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-0b3ec96a9201cc8b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:30"}, "properties": {"repobilityId": "ed8f8425fd96d093", "scanner": "scanner-primary", "fingerprint": "0b3ec96a9201cc8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-03458a8b06cb9883", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/session_heartbeat.test.js:23"}, "properties": {"repobilityId": "8107859d8876e049", "scanner": "scanner-primary", "fingerprint": "03458a8b06cb9883", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/session_heartbeat.test.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-2bc672960655b194", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/observed.test.js:18"}, "properties": {"repobilityId": "8e2728e5d584f234", "scanner": "scanner-primary", "fingerprint": "2bc672960655b194", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/observed.test.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-17bf7656af9e7273", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/ash.test.js:18"}, "properties": {"repobilityId": "c9ab21f4d1952e2c", "scanner": "scanner-primary", "fingerprint": "17bf7656af9e7273", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/ash.test.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-06f50de073b492bd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/soil.test.js:19"}, "properties": {"repobilityId": "7eb95a735de2fa78", "scanner": "scanner-primary", "fingerprint": "06f50de073b492bd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/soil.test.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-4ecfb82b3d8a4470", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/geneva.test.js:57"}, "properties": {"repobilityId": "af10368f09f3b8c5", "scanner": "scanner-primary", "fingerprint": "4ecfb82b3d8a4470", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/geneva.test.js"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-c3ee429754a4b298", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/omni_contrasts_gl.test.js:16"}, "properties": {"repobilityId": "f1fc16b5384ff7f4", "scanner": "scanner-primary", "fingerprint": "c3ee429754a4b298", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/omni_contrasts_gl.test.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-c9042c65c4b25b74", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/landuse_modify_gl.test.js:32"}, "properties": {"repobilityId": "a592633142404805", "scanner": "scanner-primary", "fingerprint": "c9042c65c4b25b74", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/landuse_modify_gl.test.js"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-fcf7e5a4b6ed3dd6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/subcatchments_gl.test.js:24"}, "properties": {"repobilityId": "559c9f393f167c8c", "scanner": "scanner-primary", "fingerprint": "fcf7e5a4b6ed3dd6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/subcatchments_gl.test.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-3be092bb35fbd789", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/controllers_gl_stale_check.test.js:22"}, "properties": {"repobilityId": "c91af42b942453c8", "scanner": "scanner-primary", "fingerprint": "3be092bb35fbd789", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/controllers_gl_stale_check.test.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-095def6d8c1a4010", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/channel_gl.test.js:19"}, "properties": {"repobilityId": "5367098123d9b382", "scanner": "scanner-primary", "fingerprint": "095def6d8c1a4010", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/channel_gl.test.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-88d3a91bc0cd6981", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/roads_gl.test.js:39"}, "properties": {"repobilityId": "fa8dd4941a7c4db9", "scanner": "scanner-primary", "fingerprint": "88d3a91bc0cd6981", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/roads_gl.test.js"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-e5bb8c8507ff1b6d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/dom.test.js:17"}, "properties": {"repobilityId": "df5b7fed8e9bfa45", "scanner": "scanner-primary", "fingerprint": "e5bb8c8507ff1b6d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/dom.test.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-37d9da501164310a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/controllers_js/__tests__/rhem.test.js:17"}, "properties": {"repobilityId": "d65028c749b6d9a8", "scanner": "scanner-primary", "fingerprint": "37d9da501164310a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/controllers_js/__tests__/rhem.test.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-28a264e0c35a6d9e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in wepppy/weppcloud/static-src/js/archive_console.js:39"}, "properties": {"repobilityId": "7036e410cb01bd17", "scanner": "scanner-primary", "fingerprint": "28a264e0c35a6d9e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/static-src/js/archive_console.js"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-3ebe0fee8cd0b2a1", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in wepppy/nodb/mods/omni/README.md:376"}, "properties": {"repobilityId": "d85b126f732be695", "scanner": "scanner-primary", "fingerprint": "3ebe0fee8cd0b2a1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/nodb/mods/omni/README.md"}, "region": {"startLine": 376}}}]}, {"ruleId": "scanner-1f9c854bc3ad532c", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in services/cap/server.js:73"}, "properties": {"repobilityId": "3ef49f9c8626f895", "scanner": "scanner-primary", "fingerprint": "1f9c854bc3ad532c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/cap/server.js"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-1b5c8ffa73a646a4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "190074d99fa5283a", "scanner": "scanner-primary", "fingerprint": "1b5c8ffa73a646a4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/accessibility-manual.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-1b5c8ffa73a646a4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "aaad7de92f84b1e5", "scanner": "scanner-primary", "fingerprint": "1b5c8ffa73a646a4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/accessibility-manual.yml"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-1b5c8ffa73a646a4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "aaad7de92f84b1e5", "scanner": "scanner-primary", "fingerprint": "1b5c8ffa73a646a4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/accessibility-manual.yml"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-137ad4821db170af", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "20cc0d8ff0ac948c", "scanner": "scanner-primary", "fingerprint": "137ad4821db170af", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/status2-smoke-nightly.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-137ad4821db170af", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4d7c38ddba64ccb7", "scanner": "scanner-primary", "fingerprint": "137ad4821db170af", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/status2-smoke-nightly.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-f3a2acb221676973", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0772ba217b910f51", "scanner": "scanner-primary", "fingerprint": "f3a2acb221676973", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-fork-rattlesnake-undisturbify.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-f3a2acb221676973", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "23ae40100a443b96", "scanner": "scanner-primary", "fingerprint": "f3a2acb221676973", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-fork-rattlesnake-undisturbify.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-7928a42fe84f4bed", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "14b9de7b8b218560", "scanner": "scanner-primary", "fingerprint": "7928a42fe84f4bed", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/theme-metrics-nightly.yml"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-7928a42fe84f4bed", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8f1087505358ecbc", "scanner": "scanner-primary", "fingerprint": "7928a42fe84f4bed", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/theme-metrics-nightly.yml"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-c482e17c09ccb4fd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1fddfba75ec56c7d", "scanner": "scanner-primary", "fingerprint": "c482e17c09ccb4fd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-double-ash-load.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-c482e17c09ccb4fd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a6608153791b7935", "scanner": "scanner-primary", "fingerprint": "c482e17c09ccb4fd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-double-ash-load.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-5fb373b803db7fc2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7815fc19c2bae167", "scanner": "scanner-primary", "fingerprint": "5fb373b803db7fc2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/npm-coverage-nightly.yml"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-5fb373b803db7fc2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e6fef733789853fc", "scanner": "scanner-primary", "fingerprint": "5fb373b803db7fc2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/npm-coverage-nightly.yml"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-26d2f1d8522afce9", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "30a6e36e237e7c01", "scanner": "scanner-primary", "fingerprint": "26d2f1d8522afce9", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-us-small.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-26d2f1d8522afce9", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3e0542d321c213f7", "scanner": "scanner-primary", "fingerprint": "26d2f1d8522afce9", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-us-small.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-5f88740ecb0f9e78", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8e01c60302acf338", "scanner": "scanner-primary", "fingerprint": "5f88740ecb0f9e78", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci-samurai-nightly-ssh.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-5f88740ecb0f9e78", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8e01c60302acf338", "scanner": "scanner-primary", "fingerprint": "5f88740ecb0f9e78", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci-samurai-nightly-ssh.yml"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-5f88740ecb0f9e78", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9ce1f9b72d376066", "scanner": "scanner-primary", "fingerprint": "5f88740ecb0f9e78", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci-samurai-nightly-ssh.yml"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-5f88740ecb0f9e78", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9ce1f9b72d376066", "scanner": "scanner-primary", "fingerprint": "5f88740ecb0f9e78", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci-samurai-nightly-ssh.yml"}, "region": {"startLine": 176}}}]}, {"ruleId": "scanner-5f88740ecb0f9e78", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9ce1f9b72d376066", "scanner": "scanner-primary", "fingerprint": "5f88740ecb0f9e78", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci-samurai-nightly-ssh.yml"}, "region": {"startLine": 183}}}]}, {"ruleId": "scanner-5f88740ecb0f9e78", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9ce1f9b72d376066", "scanner": "scanner-primary", "fingerprint": "5f88740ecb0f9e78", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci-samurai-nightly-ssh.yml"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-5f88740ecb0f9e78", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9ce1f9b72d376066", "scanner": "scanner-primary", "fingerprint": "5f88740ecb0f9e78", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci-samurai-nightly-ssh.yml"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-a896ee1de2281c8d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e8595cc29e8d727a", "scanner": "scanner-primary", "fingerprint": "a896ee1de2281c8d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-europe-disturbed.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-a896ee1de2281c8d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b279dc0bb1d4098e", "scanner": "scanner-primary", "fingerprint": "a896ee1de2281c8d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-europe-disturbed.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-af301e09e6ee181a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e13c9a96456b066b", "scanner": "scanner-primary", "fingerprint": "af301e09e6ee181a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-10m-mofe.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-af301e09e6ee181a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "41ac5b1af57d073d", "scanner": "scanner-primary", "fingerprint": "af301e09e6ee181a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-10m-mofe.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-ca6dfa753f42e1b4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ddab855f28eeede6", "scanner": "scanner-primary", "fingerprint": "ca6dfa753f42e1b4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-australia-disturbed.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-ca6dfa753f42e1b4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6e63d3b9d60d3e21", "scanner": "scanner-primary", "fingerprint": "ca6dfa753f42e1b4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-australia-disturbed.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-16c8d6d9a569c6fa", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ffbf0cd96a13a7c4", "scanner": "scanner-primary", "fingerprint": "16c8d6d9a569c6fa", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docs-quality.yml"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-16c8d6d9a569c6fa", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f5c9bb287843eafe", "scanner": "scanner-primary", "fingerprint": "16c8d6d9a569c6fa", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docs-quality.yml"}, "region": {"startLine": 196}}}]}, {"ruleId": "scanner-16c8d6d9a569c6fa", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7a21422408c59157", "scanner": "scanner-primary", "fingerprint": "16c8d6d9a569c6fa", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docs-quality.yml"}, "region": {"startLine": 201}}}]}, {"ruleId": "scanner-46cb674739fd0dd0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "fe0fe54896c038c1", "scanner": "scanner-primary", "fingerprint": "46cb674739fd0dd0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-rattlesnake-remove-rap-daymet-multi-interp-omni.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-46cb674739fd0dd0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "75ba821f5e1f01b0", "scanner": "scanner-primary", "fingerprint": "46cb674739fd0dd0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-rattlesnake-remove-rap-daymet-multi-interp-omni.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-dff334521172a515", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a6dc6afb97cabc9f", "scanner": "scanner-primary", "fingerprint": "dff334521172a515", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-rattlesnake-gridmet-interp-watar10mm-dss_export.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-dff334521172a515", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7c2e63974a2a7da6", "scanner": "scanner-primary", "fingerprint": "dff334521172a515", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-rattlesnake-gridmet-interp-watar10mm-dss_export.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-8a17a1629209f463", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "955105c91aeed016", "scanner": "scanner-primary", "fingerprint": "8a17a1629209f463", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-sbs-wbt-mofe.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-8a17a1629209f463", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d1bfff6433cd683e", "scanner": "scanner-primary", "fingerprint": "8a17a1629209f463", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-sbs-wbt-mofe.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-385a779dee8fcc07", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b4ee287e0a5fd06a", "scanner": "scanner-primary", "fingerprint": "385a779dee8fcc07", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/preflight-tests-nightly.yml"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-385a779dee8fcc07", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "72f1f72608058803", "scanner": "scanner-primary", "fingerprint": "385a779dee8fcc07", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/preflight-tests-nightly.yml"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-875e013d231fede3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "646634d302a88c3f", "scanner": "scanner-primary", "fingerprint": "875e013d231fede3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-wepp-reveg.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-875e013d231fede3", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6813bc81f19fb97a", "scanner": "scanner-primary", "fingerprint": "875e013d231fede3", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-wepp-reveg.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-aae9c1a32f79f72e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9f610f1101080fdc", "scanner": "scanner-primary", "fingerprint": "aae9c1a32f79f72e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-earth-small.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-aae9c1a32f79f72e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d29e867af4a60f09", "scanner": "scanner-primary", "fingerprint": "aae9c1a32f79f72e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-earth-small.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-81191566bbacd92d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f493c99bddc81d3e", "scanner": "scanner-primary", "fingerprint": "81191566bbacd92d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-single-storm.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-81191566bbacd92d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8e8f4ad62a94cd2c", "scanner": "scanner-primary", "fingerprint": "81191566bbacd92d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-single-storm.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-c064bb63f82c6662", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7a4bf469f146a329", "scanner": "scanner-primary", "fingerprint": "c064bb63f82c6662", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-archive-us-small.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-c064bb63f82c6662", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a9601dde795d10bf", "scanner": "scanner-primary", "fingerprint": "c064bb63f82c6662", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-archive-us-small.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-72f0ba38fbf45f09", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "841651c795f29630", "scanner": "scanner-primary", "fingerprint": "72f0ba38fbf45f09", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pytest-coverage-nightly.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-72f0ba38fbf45f09", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c0751d3db1495bec", "scanner": "scanner-primary", "fingerprint": "72f0ba38fbf45f09", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pytest-coverage-nightly.yml"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-2f08008e75771078", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0a0f1bb51a26b3e6", "scanner": "scanner-primary", "fingerprint": "2f08008e75771078", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-nexrad-prism-debrisflow.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-2f08008e75771078", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "af3ff031bb859a49", "scanner": "scanner-primary", "fingerprint": "2f08008e75771078", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-nexrad-prism-debrisflow.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-eea8b6babb581b80", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4743d58406cba46c", "scanner": "scanner-primary", "fingerprint": "eea8b6babb581b80", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/npm-tests.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-4c560ad7a286ff5d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5f105d50572edbae", "scanner": "scanner-primary", "fingerprint": "4c560ad7a286ff5d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-seattle-simfire.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-4c560ad7a286ff5d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2649fbde25e409b9", "scanner": "scanner-primary", "fingerprint": "4c560ad7a286ff5d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-seattle-simfire.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-753df015bcc77acb", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a68d0732e91607f6", "scanner": "scanner-primary", "fingerprint": "753df015bcc77acb", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/status-tests-nightly.yml"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-753df015bcc77acb", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8c52f059fb143e0c", "scanner": "scanner-primary", "fingerprint": "753df015bcc77acb", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/status-tests-nightly.yml"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-1f5934e083783a39", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f6771914d2cf5129", "scanner": "scanner-primary", "fingerprint": "1f5934e083783a39", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-controllers-nightly.yml"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-1f5934e083783a39", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "126c0fe748eac1ab", "scanner": "scanner-primary", "fingerprint": "1f5934e083783a39", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-controllers-nightly.yml"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-269bd1b8c25a4598", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "05a8e472e60e124d", "scanner": "scanner-primary", "fingerprint": "269bd1b8c25a4598", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-legacy-palouse.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-269bd1b8c25a4598", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "16037120ddbdd0ba", "scanner": "scanner-primary", "fingerprint": "269bd1b8c25a4598", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-legacy-palouse.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-dc04d1854e338254", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3b657c2414720c09", "scanner": "scanner-primary", "fingerprint": "dc04d1854e338254", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-rhem.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-dc04d1854e338254", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "06e7b5625a0671c0", "scanner": "scanner-primary", "fingerprint": "dc04d1854e338254", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-rhem.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-bd463885424d781d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f58179a5a8500aa4", "scanner": "scanner-primary", "fingerprint": "bd463885424d781d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-sbs-noct.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-bd463885424d781d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "eefd0fe9bd659611", "scanner": "scanner-primary", "fingerprint": "bd463885424d781d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-sbs-noct.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-b11a3d95981d71f2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3bed535d0e888cbf", "scanner": "scanner-primary", "fingerprint": "b11a3d95981d71f2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/code-quality-observability.yml"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-b11a3d95981d71f2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6721e873ee7badf9", "scanner": "scanner-primary", "fingerprint": "b11a3d95981d71f2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/code-quality-observability.yml"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-b11a3d95981d71f2", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0df6f775d5355907", "scanner": "scanner-primary", "fingerprint": "b11a3d95981d71f2", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/code-quality-observability.yml"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-df6d504ece7868c8", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "da489caa55c1213b", "scanner": "scanner-primary", "fingerprint": "df6d504ece7868c8", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rq-engine-contract-guards.yml"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-dbb9c5944b9e75e8", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "86ceec26432851ed", "scanner": "scanner-primary", "fingerprint": "dbb9c5944b9e75e8", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-fork-us-small.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-dbb9c5944b9e75e8", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "701c24a151e54098", "scanner": "scanner-primary", "fingerprint": "dbb9c5944b9e75e8", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-fork-us-small.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-defbe38c2a3dbb80", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a8034f00ecdc94e9", "scanner": "scanner-primary", "fingerprint": "defbe38c2a3dbb80", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/stubtest.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-bfc5770d5127e7a9", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f48b4b8fc319a599", "scanner": "scanner-primary", "fingerprint": "bfc5770d5127e7a9", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/cloc-telemetry.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-bfc5770d5127e7a9", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "990519b67e292741", "scanner": "scanner-primary", "fingerprint": "bfc5770d5127e7a9", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/cloc-telemetry.yml"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-d61a845d09d01c18", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c1804486f235ba3e", "scanner": "scanner-primary", "fingerprint": "d61a845d09d01c18", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-portland-disturbed.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-d61a845d09d01c18", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d53bfcefb6af25fe", "scanner": "scanner-primary", "fingerprint": "d61a845d09d01c18", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-portland-disturbed.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-cb66ec02463f106e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4a7dd9954b56de17", "scanner": "scanner-primary", "fingerprint": "cb66ec02463f106e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/broad-exception-guards.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-cb66ec02463f106e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ddf08e49ad37b7cd", "scanner": "scanner-primary", "fingerprint": "cb66ec02463f106e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/broad-exception-guards.yml"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-3ad6644ad17bc94f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "52c2dd80805adb9a", "scanner": "scanner-primary", "fingerprint": "3ad6644ad17bc94f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-rattlesnake.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-3ad6644ad17bc94f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4bf98b80b88ad6cc", "scanner": "scanner-primary", "fingerprint": "3ad6644ad17bc94f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/profile-run-rattlesnake.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-d6c8e93d2952f284", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2ac6ea6bf3550c78", "scanner": "scanner-primary", "fingerprint": "d6c8e93d2952f284", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pytest-shape-converter-gates.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-f729abeca0d949a7", "level": "note", "message": {"text": "Very large file: tests/rq/test_project_rq_mutation_guards.py (1875 lines)"}, "properties": {"repobilityId": "1d11e4d5db32fcf6", "scanner": "scanner-primary", "fingerprint": "f729abeca0d949a7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea1ff63cefbf57da", "level": "note", "message": {"text": "Very large file: tests/microservices/test_browse_auth_routes.py (2177 lines)"}, "properties": {"repobilityId": "a762509882ac8f26", "scanner": "scanner-primary", "fingerprint": "ea1ff63cefbf57da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f5bc71c77f1707cb", "level": "note", "message": {"text": "Very large file: tests/microservices/test_files_routes.py (1990 lines)"}, "properties": {"repobilityId": "43d508b59448664c", "scanner": "scanner-primary", "fingerprint": "f5bc71c77f1707cb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-92b1d4d805e42cf2", "level": "note", "message": {"text": "Very large file: tests/microservices/test_rq_engine_wepp_routes.py (1537 lines)"}, "properties": {"repobilityId": "3030ec0901ae56ad", "scanner": "scanner-primary", "fingerprint": "92b1d4d805e42cf2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bd9112618602b16f", "level": "note", "message": {"text": "Very large file: tests/microservices/test_rq_engine_landuse_routes.py (2106 lines)"}, "properties": {"repobilityId": "5d0bb54e5becbfdb", "scanner": "scanner-primary", "fingerprint": "bd9112618602b16f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1f5e070b9800a324", "level": "note", "message": {"text": "Very large file: tests/nodb/mods/test_roads_controller.py (3674 lines)"}, "properties": {"repobilityId": "89fb28e12cc8efb9", "scanner": "scanner-primary", "fingerprint": "1f5e070b9800a324", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-097733b38cef4366", "level": "note", "message": {"text": "Very large file: tests/nodb/mods/test_features_export_service.py (3392 lines)"}, "properties": {"repobilityId": "abfd7ad353049ec6", "scanner": "scanner-primary", "fingerprint": "097733b38cef4366", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7513bd771bccae6c", "level": "note", "message": {"text": "Very large file: tests/nodb/mods/test_omni.py (3412 lines)"}, "properties": {"repobilityId": "08bd2346fe59c39e", "scanner": "scanner-primary", "fingerprint": "7513bd771bccae6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9be77f00b99b630b", "level": "note", "message": {"text": "Very large file: docs/work-packages/20260329_features_export_live_run_matrix/artifacts/run_live_matrix.py (2130 lines)"}, "properties": {"repobilityId": "99abdf4903e7629d", "scanner": "scanner-primary", "fingerprint": "9be77f00b99b630b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1826026419d5d7e8", "level": "note", "message": {"text": "Very large file: wepppy/rq/project_rq.py (1919 lines)"}, "properties": {"repobilityId": "1715432e837269dd", "scanner": "scanner-primary", "fingerprint": "1826026419d5d7e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c0108673dab927cf", "level": "note", "message": {"text": "Very large file: wepppy/rq/culvert_rq.py (1730 lines)"}, "properties": {"repobilityId": "f5482902bd8e85d3", "scanner": "scanner-primary", "fingerprint": "c0108673dab927cf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-16718cf040dd22ee", "level": "note", "message": {"text": "Very large file: wepppy/microservices/browse/browse.py (1597 lines)"}, "properties": {"repobilityId": "12421b9a80476dbe", "scanner": "scanner-primary", "fingerprint": "16718cf040dd22ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e59f610b45619cce", "level": "note", "message": {"text": "Very large file: wepppy/microservices/rq_engine/landuse_routes.py (1593 lines)"}, "properties": {"repobilityId": "d5e29465fade6f3b", "scanner": "scanner-primary", "fingerprint": "e59f610b45619cce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-07be396598bea801", "level": "note", "message": {"text": "Very large file: wepppy/microservices/rq_engine/orchestration_read_routes.py (1412 lines)"}, "properties": {"repobilityId": "d253a07b27ef6ea4", "scanner": "scanner-primary", "fingerprint": "07be396598bea801", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6e3366de5778967c", "level": "note", "message": {"text": "Very large file: wepppy/microservices/rq_engine/schema_defaults_routes.py (4458 lines)"}, "properties": {"repobilityId": "56cd9d83dcbc92f2", "scanner": "scanner-primary", "fingerprint": "6e3366de5778967c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fb69b4a7e586c6ac", "level": "note", "message": {"text": "Very large file: wepppy/soils/ssurgo/ssurgo.py (2332 lines)"}, "properties": {"repobilityId": "8161bedea8151124", "scanner": "scanner-primary", "fingerprint": "fb69b4a7e586c6ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6c903919cff74562", "level": "note", "message": {"text": "Very large file: wepppy/climates/cligen/cligen.py (2838 lines)"}, "properties": {"repobilityId": "f04efdc72c0ca5b8", "scanner": "scanner-primary", "fingerprint": "6c903919cff74562", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eb27eb08266d8d11", "level": "note", "message": {"text": "Very large file: wepppy/wepp/management/managements.py (3027 lines)"}, "properties": {"repobilityId": "cf6e6bf17e81bf4e", "scanner": "scanner-primary", "fingerprint": "eb27eb08266d8d11", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c8c98e49e0ddc0e1", "level": "note", "message": {"text": "Very large file: wepppy/wepp/reports/return_periods.py (1252 lines)"}, "properties": {"repobilityId": "8b0409a39a62ce58", "scanner": "scanner-primary", "fingerprint": "c8c98e49e0ddc0e1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-beaec78e0de3bf10", "level": "note", "message": {"text": "Very large file: wepppy/wepp/fuzzing/single_ofe_stratified_campaign.py (2319 lines)"}, "properties": {"repobilityId": "465595022bc05536", "scanner": "scanner-primary", "fingerprint": "beaec78e0de3bf10", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d0e7e6dd45818662", "level": "note", "message": {"text": "Very large file: wepppy/all_your_base/geo/shapefile.py (1321 lines)"}, "properties": {"repobilityId": "2606b2e727f2237a", "scanner": "scanner-primary", "fingerprint": "d0e7e6dd45818662", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-46a55f59ead4dfaa", "level": "note", "message": {"text": "Very large file: wepppy/topo/wbt/wbt_topaz_emulator.py (1755 lines)"}, "properties": {"repobilityId": "79574933b4814454", "scanner": "scanner-primary", "fingerprint": "46a55f59ead4dfaa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-46578ef1f97e1cb3", "level": "note", "message": {"text": "Very large file: wepppy/topo/wbt/terrain_processor.py (1829 lines)"}, "properties": {"repobilityId": "10d01f26ccc80692", "scanner": "scanner-primary", "fingerprint": "46578ef1f97e1cb3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ca4bf745308bf7be", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/static/js/underscore.js (1547 lines)"}, "properties": {"repobilityId": "02fc10babdc4b40e", "scanner": "scanner-primary", "fingerprint": "ca4bf745308bf7be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c5278e5455002d85", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/static/js/d3fc.js (9746 lines)"}, "properties": {"repobilityId": "2ae8cb203cf8f799", "scanner": "scanner-primary", "fingerprint": "c5278e5455002d85", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8bd286c543eb64a3", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/static/js/d3.js (20624 lines)"}, "properties": {"repobilityId": "d3cb2e56f3c5f48b", "scanner": "scanner-primary", "fingerprint": "8bd286c543eb64a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bb1f5547cfd07499", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/static/js/leaflet-1.71.js (14061 lines)"}, "properties": {"repobilityId": "9c4422398a9ca2bf", "scanner": "scanner-primary", "fingerprint": "bb1f5547cfd07499", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d797d38fc89293f6", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/static/js/geotiff.js (1873 lines)"}, "properties": {"repobilityId": "e2b5e61c0cd367de", "scanner": "scanner-primary", "fingerprint": "d797d38fc89293f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9e1b9b98616479c9", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/layers/detector.js (1675 lines)"}, "properties": {"repobilityId": "e3381ff6417ae234", "scanner": "scanner-primary", "fingerprint": "9e1b9b98616479c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-57951744a8f1a5d2", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/layers/renderer.js (1683 lines)"}, "properties": {"repobilityId": "bf306196e7dea079", "scanner": "scanner-primary", "fingerprint": "57951744a8f1a5d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-449341b0df8d7b7a", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/graphs/graph-loaders.js (1409 lines)"}, "properties": {"repobilityId": "f5f81061db64bfc2", "scanner": "scanner-primary", "fingerprint": "449341b0df8d7b7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-94ac5e0864e59503", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/static/js/gl-dashboard/map/layers.js (1658 lines)"}, "properties": {"repobilityId": "44fbce93d1b0a00e", "scanner": "scanner-primary", "fingerprint": "94ac5e0864e59503", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d1357d09a53d40dc", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/static/pivottable/pivot.js (1838 lines)"}, "properties": {"repobilityId": "9f33429c373a626f", "scanner": "scanner-primary", "fingerprint": "d1357d09a53d40dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d4bfeb4db61295bc", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/routes/run_0/run_0_bp.py (2262 lines)"}, "properties": {"repobilityId": "063dc9702669b70b", "scanner": "scanner-primary", "fingerprint": "d4bfeb4db61295bc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-55c29a5e2e50475d", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/routes/command_bar/static/command-bar.js (2789 lines)"}, "properties": {"repobilityId": "59588209053fd3ac", "scanner": "scanner-primary", "fingerprint": "55c29a5e2e50475d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8cc50ba0f0b9e13f", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/routes/nodb_api/wepp_bp.py (1592 lines)"}, "properties": {"repobilityId": "05c8cee621c1d5d8", "scanner": "scanner-primary", "fingerprint": "8cc50ba0f0b9e13f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-43f9ae525626adb7", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/roads.js (1367 lines)"}, "properties": {"repobilityId": "a87847ce85f534f1", "scanner": "scanner-primary", "fingerprint": "43f9ae525626adb7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6ead8e08db47de40", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/wepp.js (1596 lines)"}, "properties": {"repobilityId": "13ccfbf7157b974b", "scanner": "scanner-primary", "fingerprint": "6ead8e08db47de40", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-567f94c6aeb89eb6", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/climate.js (1498 lines)"}, "properties": {"repobilityId": "0eee9b9f5c4e42ad", "scanner": "scanner-primary", "fingerprint": "567f94c6aeb89eb6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-13d269fda920355f", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/channel_gl.js (1945 lines)"}, "properties": {"repobilityId": "887cdcc9ec41a217", "scanner": "scanner-primary", "fingerprint": "13d269fda920355f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-85d812ba744c1040", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/geneva_summary_report.js (1921 lines)"}, "properties": {"repobilityId": "40fc5caea0d98f54", "scanner": "scanner-primary", "fingerprint": "85d812ba744c1040", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0a0563dbbc0f23b5", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/control_base.js (1874 lines)"}, "properties": {"repobilityId": "c4a997ef1a949473", "scanner": "scanner-primary", "fingerprint": "0a0563dbbc0f23b5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0487fc9918a04d09", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/features_export.js (2944 lines)"}, "properties": {"repobilityId": "faed63043551554f", "scanner": "scanner-primary", "fingerprint": "0487fc9918a04d09", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8d34be0da0a50fe6", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/subcatchment_delineation.js (1800 lines)"}, "properties": {"repobilityId": "d5c0a9e42dc5ecee", "scanner": "scanner-primary", "fingerprint": "8d34be0da0a50fe6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c0c9e38ecd52c018", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/channel_delineation.js (1376 lines)"}, "properties": {"repobilityId": "eb02434ec48c7729", "scanner": "scanner-primary", "fingerprint": "c0c9e38ecd52c018", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-44717fb293a1c8eb", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/map_gl.js (2577 lines)"}, "properties": {"repobilityId": "4b02998a05574595", "scanner": "scanner-primary", "fingerprint": "44717fb293a1c8eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e58ebc5adba33cb5", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/project.js (2182 lines)"}, "properties": {"repobilityId": "98833546709aeb34", "scanner": "scanner-primary", "fingerprint": "e58ebc5adba33cb5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d79886d85358bd36", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/batch_runner.js (2123 lines)"}, "properties": {"repobilityId": "d8313d3d3a299bfa", "scanner": "scanner-primary", "fingerprint": "d79886d85358bd36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ba77545f792db27c", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/omni.js (3081 lines)"}, "properties": {"repobilityId": "f085a4f52070222c", "scanner": "scanner-primary", "fingerprint": "ba77545f792db27c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d75d5803baa65948", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/disturbed.js (1382 lines)"}, "properties": {"repobilityId": "9c49362e1dbc0c31", "scanner": "scanner-primary", "fingerprint": "d75d5803baa65948", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-da12f860cddb9056", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/subcatchments_gl.js (1718 lines)"}, "properties": {"repobilityId": "f93d7768f3201dca", "scanner": "scanner-primary", "fingerprint": "da12f860cddb9056", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-66b6bb0b1dc45f2b", "level": "note", "message": {"text": "Very large file: wepppy/weppcloud/controllers_js/__tests__/features_export.test.js (1108 lines)"}, "properties": {"repobilityId": "c302ae2a10f36606", "scanner": "scanner-primary", "fingerprint": "66b6bb0b1dc45f2b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-feebb61698dbc9d9", "level": "note", "message": {"text": "Very large file: wepppy/nodb/base.py (2824 lines)"}, "properties": {"repobilityId": "d311459d924f6cfc", "scanner": "scanner-primary", "fingerprint": "feebb61698dbc9d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d2c17430a0ef1798", "level": "note", "message": {"text": "Very large file: wepppy/nodb/mods/roads/roads.py (6237 lines)"}, "properties": {"repobilityId": "9d7661071224d422", "scanner": "scanner-primary", "fingerprint": "d2c17430a0ef1798", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a638659d4368c25d", "level": "note", "message": {"text": "Very large file: wepppy/nodb/mods/features_export/planner.py (1595 lines)"}, "properties": {"repobilityId": "e3ea37851b10008e", "scanner": "scanner-primary", "fingerprint": "a638659d4368c25d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-94b25ef264a977d3", "level": "note", "message": {"text": "Very large file: wepppy/nodb/mods/features_export/service.py (3485 lines)"}, "properties": {"repobilityId": "1b212c5e066848f9", "scanner": "scanner-primary", "fingerprint": "94b25ef264a977d3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-42b338b2e1a77189", "level": "note", "message": {"text": "Very large file: wepppy/nodb/mods/omni/omni_contrast_build_service.py (1454 lines)"}, "properties": {"repobilityId": "2f21da943c22f1c1", "scanner": "scanner-primary", "fingerprint": "42b338b2e1a77189", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ce0c0b8524c1577b", "level": "note", "message": {"text": "Very large file: wepppy/nodb/mods/omni/omni.py (1313 lines)"}, "properties": {"repobilityId": "e7ac2415ffa39c2d", "scanner": "scanner-primary", "fingerprint": "ce0c0b8524c1577b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-401b8af5c106aebf", "level": "note", "message": {"text": "Very large file: wepppy/nodb/mods/disturbed/disturbed.py (2298 lines)"}, "properties": {"repobilityId": "5d2490d0ec4fb659", "scanner": "scanner-primary", "fingerprint": "401b8af5c106aebf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e0df336be82f72fb", "level": "note", "message": {"text": "Very large file: wepppy/nodb/core/soils.py (1790 lines)"}, "properties": {"repobilityId": "45fa8592b06bff32", "scanner": "scanner-primary", "fingerprint": "e0df336be82f72fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f6809d59970f5e54", "level": "note", "message": {"text": "Very large file: wepppy/nodb/core/watershed_mixins.py (1415 lines)"}, "properties": {"repobilityId": "686c20d279436eb6", "scanner": "scanner-primary", "fingerprint": "f6809d59970f5e54", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9671587ccd863780", "level": "note", "message": {"text": "Very large file: wepppy/nodb/core/climate.py (1735 lines)"}, "properties": {"repobilityId": "b64a2f1e0fecdc06", "scanner": "scanner-primary", "fingerprint": "9671587ccd863780", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-14e3dc9082c79961", "level": "note", "message": {"text": "Very large file: wepppy/nodb/core/landuse.py (2353 lines)"}, "properties": {"repobilityId": "e42127885eb1e391", "scanner": "scanner-primary", "fingerprint": "14e3dc9082c79961", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5bc2337ef3a087b9", "level": "note", "message": {"text": "Very large file: wepppy/nodb/core/wepp.py (2983 lines)"}, "properties": {"repobilityId": "8042b3cfabcf5986", "scanner": "scanner-primary", "fingerprint": "5bc2337ef3a087b9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-495168832bf71743", "level": "note", "message": {"text": "Very large file: wepppy/nodb/core/watershed.py (1428 lines)"}, "properties": {"repobilityId": "21796d024e4817a4", "scanner": "scanner-primary", "fingerprint": "495168832bf71743", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-54c88d09cd8a85f4", "level": "note", "message": {"text": "Very large file: wepp_runner/wepp_runner.py (1761 lines)"}, "properties": {"repobilityId": "c522a492ae8c7255", "scanner": "scanner-primary", "fingerprint": "54c88d09cd8a85f4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fab4d094ea9865d9", "level": "note", "message": {"text": "Very large file: weppcloud-ui-lab/src/App.tsx (1383 lines)"}, "properties": {"repobilityId": "d05d5ec2944c9406", "scanner": "scanner-primary", "fingerprint": "fab4d094ea9865d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d7b29405238e77a9", "level": "note", "message": {"text": "Very large file: tools/hillslope_daily_closure_audit.py (1316 lines)"}, "properties": {"repobilityId": "e0265d41680cb7e6", "scanner": "scanner-primary", "fingerprint": "d7b29405238e77a9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-da9eea79fe0bcb5b", "level": "note", "message": {"text": "Very large file: tools/refine_mofe_taxonomy.py (1234 lines)"}, "properties": {"repobilityId": "2dddae844fc09819", "scanner": "scanner-primary", "fingerprint": "da9eea79fe0bcb5b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-09bad5ab1f174fc5", "level": "note", "message": {"text": "34 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "09bad5ab1f174fc5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "501de0946451e62c", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "acb6d511ede155ec", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "2706d0036dbdd911", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "7d416c0d24db4e4f", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "d7d35334e5927061", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-7ea131984e48e612", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: docs/ui-docs/vpats/AGENTS.md"}, "properties": {"repobilityId": "332487b9c452cd3a", "scanner": "scanner-primary", "fingerprint": "7ea131984e48e612", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ui-docs/vpats/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-337e7cb7b1034c3b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: wepppy/webservices/dtale/AGENTS.md"}, "properties": {"repobilityId": "22595d529dd2bc98", "scanner": "scanner-primary", "fingerprint": "337e7cb7b1034c3b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/dtale/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6c16c1206fc34a08", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: wepppy/weppcloud/feature_registry/AGENTS.md"}, "properties": {"repobilityId": "3ba750b138f18ab3", "scanner": "scanner-primary", "fingerprint": "6c16c1206fc34a08", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/weppcloud/feature_registry/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-089b8a65db1d9d16", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/skills/README.md"}, "properties": {"repobilityId": "51075dc38c4993fe", "scanner": "scanner-primary", "fingerprint": "089b8a65db1d9d16", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/skills/README.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-90556feefcad0530", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 buff_landuse_validation.py:24"}, "properties": {"repobilityId": "2fc905102e07f24d", "scanner": "scanner-primary", "fingerprint": "90556feefcad0530", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-86c4eabb82bd67db", "level": "note", "message": {"text": "Legacy-named symbol `_PrepStubWithLegacy` in tests/rq/test_geneva_rq.py:227"}, "properties": {"repobilityId": "e3de5068822073e3", "scanner": "scanner-primary", "fingerprint": "86c4eabb82bd67db", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-01f0ae6de34c2c64", "level": "note", "message": {"text": "Legacy-named symbol `vendored_copy` in tests/rq/test_project_rq_delete_run.py:334"}, "properties": {"repobilityId": "f208ac38d1c6ec25", "scanner": "scanner-primary", "fingerprint": "01f0ae6de34c2c64", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-838cc33407eb10f3", "level": "note", "message": {"text": "Legacy-named symbol `features_export_legacy` in tests/microservices/test_rq_engine_errors_progress_outputs_routes.py:441"}, "properties": {"repobilityId": "eaba80138b9f99ec", "scanner": "scanner-primary", "fingerprint": "838cc33407eb10f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6ed5a1b6f9980be9", "level": "note", "message": {"text": "Legacy-named symbol `_noop_deprecated` in tests/climates/daymet/test_daymet_singlelocation_client.py:83"}, "properties": {"repobilityId": "b13e081dfa6aff45", "scanner": "scanner-primary", "fingerprint": "6ed5a1b6f9980be9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4545de70d3e72232", "level": "note", "message": {"text": "Legacy-named symbol `base_copy` in tests/culverts/test_culverts_runner.py:264"}, "properties": {"repobilityId": "6eebeccba1dac973", "scanner": "scanner-primary", "fingerprint": "4545de70d3e72232", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8108a55f09e0d429", "level": "note", "message": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_channel_watbal.py:17"}, "properties": {"repobilityId": "4cb33452e13a06a7", "scanner": "scanner-primary", "fingerprint": "8108a55f09e0d429", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4be21639a48e43ab", "level": "note", "message": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_hillslope_watbal.py:20"}, "properties": {"repobilityId": "412779330feb529a", "scanner": "scanner-primary", "fingerprint": "4be21639a48e43ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5c8af7faf8352781", "level": "note", "message": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_frq_flood.py:18"}, "properties": {"repobilityId": "3d4a1f9db99e1068", "scanner": "scanner-primary", "fingerprint": "5c8af7faf8352781", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-21d07f0801dc78cd", "level": "note", "message": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_total_watbal.py:17"}, "properties": {"repobilityId": "a467738ab135b18d", "scanner": "scanner-primary", "fingerprint": "21d07f0801dc78cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-af9aa0a7c329b9da", "level": "note", "message": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_return_periods_dataset.py:26"}, "properties": {"repobilityId": "a8ae9ebc8e96a264", "scanner": "scanner-primary", "fingerprint": "af9aa0a7c329b9da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b8681aaa67d5a04c", "level": "note", "message": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_loss_reports.py:16"}, "properties": {"repobilityId": "663dbc5e4fa6ae6f", "scanner": "scanner-primary", "fingerprint": "b8681aaa67d5a04c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9dc10c719f8a9a61", "level": "note", "message": {"text": "Legacy-named symbol `_noop_deprecated` in tests/wepp/reports/test_average_annuals_by_landuse.py:16"}, "properties": {"repobilityId": "739fa5ec1c9d89bc", "scanner": "scanner-primary", "fingerprint": "9dc10c719f8a9a61", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7f53e0ea1dff1b22", "level": "note", "message": {"text": "Legacy-named symbol `_prepare_run_copy` in tests/query_engine/test_benchmarks.py:30"}, "properties": {"repobilityId": "5555098e57263897", "scanner": "scanner-primary", "fingerprint": "7f53e0ea1dff1b22", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-279b071f4b5d0d66", "level": "note", "message": {"text": "Legacy-named symbol `test_wmesque_retrieve_rejects_extent_crs_for_v1` in tests/services/test_wmesque_retrieve.py:88"}, "properties": {"repobilityId": "00d3ba01b26b2ede", "scanner": "scanner-primary", "fingerprint": "279b071f4b5d0d66", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f1f301a339c7ffb1", "level": "note", "message": {"text": "Legacy-named symbol `test_run_migration_write_updates_files_and_backup` in tests/tools/test_migrate_nodb_map_object_paths.py:49"}, "properties": {"repobilityId": "d679b161c2e6d84b", "scanner": "scanner-primary", "fingerprint": "f1f301a339c7ffb1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cf6d52c646499c00", "level": "note", "message": {"text": "Legacy-named symbol `osm_roads_v1` in tests/topo/test_osm_roads_cache.py:54"}, "properties": {"repobilityId": "8e9742c847a4a9b7", "scanner": "scanner-primary", "fingerprint": "cf6d52c646499c00", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-232dc6d3a11a75dd", "level": "note", "message": {"text": "Legacy-named symbol `osm_roads_v1` in tests/topo/test_osm_roads_contracts.py:35"}, "properties": {"repobilityId": "16d2238e5aba2803", "scanner": "scanner-primary", "fingerprint": "232dc6d3a11a75dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eadd8a511fe27c7d", "level": "note", "message": {"text": "Legacy-named symbol `netful_geojson_v2` in tests/topo/test_terrain_processor_runtime.py:437"}, "properties": {"repobilityId": "970407ad0b471de3", "scanner": "scanner-primary", "fingerprint": "eadd8a511fe27c7d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ff0b9c347464c6a8", "level": "note", "message": {"text": "Legacy-named symbol `n_legacy` in tests/topo/test_watershed_abstraction_slope_file.py:303"}, "properties": {"repobilityId": "d4d6217799159148", "scanner": "scanner-primary", "fingerprint": "ff0b9c347464c6a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e44fbda823b5a5be", "level": "note", "message": {"text": "Legacy-named symbol `osm_roads_v1` in tests/topo/test_osm_roads_postgres_integration.py:132"}, "properties": {"repobilityId": "5e47f544928cce59", "scanner": "scanner-primary", "fingerprint": "e44fbda823b5a5be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cee0aa71505c85a7", "level": "note", "message": {"text": "Legacy-named symbol `test_set_mod_disable_moves_nodb_to_backup` in tests/weppcloud/routes/test_project_bp.py:593"}, "properties": {"repobilityId": "7119041abffe33b7", "scanner": "scanner-primary", "fingerprint": "cee0aa71505c85a7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b200a58497285f0b", "level": "note", "message": {"text": "Legacy-named symbol `_build_mofe_map_labels_python_legacy` in tests/nodb/test_watershed_mofe_map.py:44"}, "properties": {"repobilityId": "086aa17c4acd06ed", "scanner": "scanner-primary", "fingerprint": "b200a58497285f0b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-455421c2421b6adf", "level": "note", "message": {"text": "Legacy-named symbol `replacement_copy` in tests/nodb/mods/test_roads_controller.py:3188"}, "properties": {"repobilityId": "c0339edeacfa08e6", "scanner": "scanner-primary", "fingerprint": "455421c2421b6adf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-716ba78666bd9509", "level": "note", "message": {"text": "Legacy-named symbol `test_run_rusle_c_factor_scenario_sbs_writes_disturbed_class_alignment_and_lookup_copy` in tests/nodb/mods/test_rusle_c_integration.py:351"}, "properties": {"repobilityId": "085d9801f470c7f6", "scanner": "scanner-primary", "fingerprint": "716ba78666bd9509", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-123d1c48afb04ec0", "level": "note", "message": {"text": "Legacy-named symbol `run_old` in tests/nodb/mods/test_swat_interchange.py:221"}, "properties": {"repobilityId": "2635564ca25334d5", "scanner": "scanner-primary", "fingerprint": "123d1c48afb04ec0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-30427b535cccb6de", "level": "note", "message": {"text": "Legacy-named symbol `lookup_copy` in tests/nodb/mods/test_rusle_controller.py:310"}, "properties": {"repobilityId": "3de4faa6b2180360", "scanner": "scanner-primary", "fingerprint": "30427b535cccb6de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-00517165ab1e0599", "level": "note", "message": {"text": "Legacy-named symbol `synthetic_small_watershed_v1` in tests/nodb/mods/geneva/test_geneva_collaborators.py:29"}, "properties": {"repobilityId": "5a9ff99ba5d87f00", "scanner": "scanner-primary", "fingerprint": "00517165ab1e0599", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5fce278476ac20e1", "level": "note", "message": {"text": "Legacy-named symbol `synthetic_small_watershed_v1` in tests/nodb/mods/geneva/test_geneva_wp09_end_to_end.py:20"}, "properties": {"repobilityId": "c7987be13f82d2f2", "scanner": "scanner-primary", "fingerprint": "5fce278476ac20e1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e0493b339c8bc466", "level": "note", "message": {"text": "Legacy-named symbol `synthetic_small_watershed_v1` in tests/nodb/mods/geneva/test_geneva_facade.py:18"}, "properties": {"repobilityId": "b6bc5ae5636a22d8", "scanner": "scanner-primary", "fingerprint": "e0493b339c8bc466", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5a12939890126635", "level": "note", "message": {"text": "Legacy-named symbol `test_export_input_legacy` in tests/nodb/mods/baer/test_sbs_map_extended.py:709"}, "properties": {"repobilityId": "2aabdfbde4a124ad", "scanner": "scanner-primary", "fingerprint": "5a12939890126635", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b4864dfab72cf013", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/nodb/mods/baer/test_sbs_map_extended.py:475"}, "properties": {"repobilityId": "aae4fdd6b8784c7e", "scanner": "scanner-primary", "fingerprint": "b4864dfab72cf013", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d59ad59c5a51cfba", "level": "note", "message": {"text": "Legacy-named symbol `a_lt_legacy` in docs/work-packages/20260522_ssurgo_corestrictions_kslast_viability/artifacts/run_corestrictions_kslast_viability.py:805"}, "properties": {"repobilityId": "60ec30094c679dd1", "scanner": "scanner-primary", "fingerprint": "d59ad59c5a51cfba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-039f1e7cb89c62b9", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 docs/work-packages/20260522_ssurgo_corestrictions_kslast_viability/artifacts/run_corestrictions_kslast_viability.py:624"}, "properties": {"repobilityId": "eec7cc7719d61223", "scanner": "scanner-primary", "fingerprint": "039f1e7cb89c62b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e054a5ffd5af093f", "level": "note", "message": {"text": "Stub function `info` (body is just `pass`/`return`) \u2014 docs/work-packages/20260424_landuse_disturbed_mofe_pipeline_optimization/notes/run_landuse_disturbed_pipeline_lane_benchmark.py:63"}, "properties": {"repobilityId": "38f217133cc9cffc", "scanner": "scanner-primary", "fingerprint": "e054a5ffd5af093f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-329a0c44e6c00e09", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 docs/work-packages/20260303_raster_tools_crosswalk_benchmarks/notes/benchmark_harness_bw01_bw02.py:74"}, "properties": {"repobilityId": "290ad5f7b25982d8", "scanner": "scanner-primary", "fingerprint": "329a0c44e6c00e09", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-efe7ce22e004d589", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 docs/mini-work-packages/20260502_rq_replay_mofe_260501_validation/run_rq_replay_mofe_validation.py:402"}, "properties": {"repobilityId": "d0d70918bbb76fd7", "scanner": "scanner-primary", "fingerprint": "efe7ce22e004d589", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4c52e9bd87280b0d", "level": "note", "message": {"text": "Legacy-named symbol `skip_wepp_copy` in wepppy/rq/project_rq_fork.py:29"}, "properties": {"repobilityId": "44e0fe3ff4384833", "scanner": "scanner-primary", "fingerprint": "4c52e9bd87280b0d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-21ff102c3f928d81", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/rq/run_sync_rq.py:258"}, "properties": {"repobilityId": "18f9a770928318d7", "scanner": "scanner-primary", "fingerprint": "21ff102c3f928d81", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fd163912d0bd15cf", "level": "none", "message": {"text": "Commented-code block (12 lines) in wepppy/eu/soils/esdac/esdac.py:127"}, "properties": {"repobilityId": "f6c69f6134f65f02", "scanner": "scanner-primary", "fingerprint": "fd163912d0bd15cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56236f14190f2239", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/webservices/wmesque2.py:149"}, "properties": {"repobilityId": "ec5bdcc704672641", "scanner": "scanner-primary", "fingerprint": "56236f14190f2239", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9b3ce49265703989", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/webservices/wmesque.py:73"}, "properties": {"repobilityId": "d8bf9cb31c708630", "scanner": "scanner-primary", "fingerprint": "9b3ce49265703989", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d4cb482471bec498", "level": "none", "message": {"text": "Commented-code block (12 lines) in wepppy/au/soils/soil_build.py:25"}, "properties": {"repobilityId": "983849b0dca066da", "scanner": "scanner-primary", "fingerprint": "d4cb482471bec498", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe3596a974266eae", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/au/soils/asris_2001/asris_client.py:86"}, "properties": {"repobilityId": "ffa5399571602fdf", "scanner": "scanner-primary", "fingerprint": "fe3596a974266eae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18223ac786281dd0", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/au/climates/agdc/scripts/acquisition.py:48"}, "properties": {"repobilityId": "2717a460bd49df0e", "scanner": "scanner-primary", "fingerprint": "18223ac786281dd0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7a1b8fa8efe3ca34", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/microservices/shape_converter/ui/app.js:117"}, "properties": {"repobilityId": "de04e1c9551b3ac6", "scanner": "scanner-primary", "fingerprint": "7a1b8fa8efe3ca34", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7d0c2c919b19c039", "level": "none", "message": {"text": "Commented-code block (6 lines) in wepppy/soils/ssurgo/ssurgo.py:1512"}, "properties": {"repobilityId": "ff5455094eb7faec", "scanner": "scanner-primary", "fingerprint": "7d0c2c919b19c039", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24f12fb3f48d04a2", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/soils/ssurgo/ssurgo.py:404"}, "properties": {"repobilityId": "a882783172c6824c", "scanner": "scanner-primary", "fingerprint": "24f12fb3f48d04a2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3c58e4959587d34b", "level": "none", "message": {"text": "Commented-code block (5 lines) in wepppy/climates/downscaled_nmme_client.py:225"}, "properties": {"repobilityId": "6ba573f47da0f60a", "scanner": "scanner-primary", "fingerprint": "3c58e4959587d34b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f593b42cb6fce186", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/climates/metquery_client.py:308"}, "properties": {"repobilityId": "29bc19e3b4f17b55", "scanner": "scanner-primary", "fingerprint": "f593b42cb6fce186", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f438562f2f557073", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/climates/prism/daily_client.py:41"}, "properties": {"repobilityId": "6189e15c28d81bc4", "scanner": "scanner-primary", "fingerprint": "f438562f2f557073", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-692efc1180117d85", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/climates/snotel/__init__.py:8"}, "properties": {"repobilityId": "33698cb514bcefeb", "scanner": "scanner-primary", "fingerprint": "692efc1180117d85", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-90d31bf4c6fe04f4", "level": "none", "message": {"text": "Commented-code block (20 lines) in wepppy/climates/cligen/_scripts/stations_sqlitedb_builder.py:334"}, "properties": {"repobilityId": "a2b82e25a2c09011", "scanner": "scanner-primary", "fingerprint": "90d31bf4c6fe04f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2306398fea790750", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/profile_recorder/playback.py:169"}, "properties": {"repobilityId": "cf723f7ae0bf6044", "scanner": "scanner-primary", "fingerprint": "2306398fea790750", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-55bc7c94cc4f7b02", "level": "none", "message": {"text": "Commented-code block (12 lines) in wepppy/locales/earth/soils/isric/__init__.py:352"}, "properties": {"repobilityId": "c036bc71defb1767", "scanner": "scanner-primary", "fingerprint": "55bc7c94cc4f7b02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0a5953354c5cd7e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/locales/earth/copernicus-dem-30m/scripts/build_vrt_from_stac.py:154"}, "properties": {"repobilityId": "0723799b2b13a988", "scanner": "scanner-primary", "fingerprint": "a0a5953354c5cd7e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9eac9c4b05f2d9ab", "level": "none", "message": {"text": "Commented-code block (6 lines) in wepppy/wepp/management/managements.py:717"}, "properties": {"repobilityId": "1b3576a3808ead26", "scanner": "scanner-primary", "fingerprint": "9eac9c4b05f2d9ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fe443e5f8bea1ad", "level": "note", "message": {"text": "Legacy-named symbol `op_copy` in wepppy/wepp/management/utils/rotation_stack.py:326"}, "properties": {"repobilityId": "91af33569e5b509e", "scanner": "scanner-primary", "fingerprint": "1fe443e5f8bea1ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-56af787575058ac6", "level": "none", "message": {"text": "Commented-code block (7 lines) in wepppy/wepp/interchange/watershed_chan_peak_interchange.py:330"}, "properties": {"repobilityId": "fc375b9366669334", "scanner": "scanner-primary", "fingerprint": "56af787575058ac6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fab09e15d89efa2", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/tools/migrations/migrate_run_paths.py:131"}, "properties": {"repobilityId": "2432b67182efbf52", "scanner": "scanner-primary", "fingerprint": "8fab09e15d89efa2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d8d6d92a8634f330", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/tools/migrations/unroll_root_resources_batch.py:329"}, "properties": {"repobilityId": "4197e7c9882669e5", "scanner": "scanner-primary", "fingerprint": "d8d6d92a8634f330", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-19c8f7f577d1452c", "level": "none", "message": {"text": "Commented-code block (6 lines) in wepppy/all_your_base/geo/ogrmerge.py:20"}, "properties": {"repobilityId": "7dd575dc7694092d", "scanner": "scanner-primary", "fingerprint": "19c8f7f577d1452c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-682368bfd5ff91d6", "level": "none", "message": {"text": "Commented-code block (8 lines) in wepppy/topo/topaz/topaz.py:558"}, "properties": {"repobilityId": "a7fb7412e8008c1a", "scanner": "scanner-primary", "fingerprint": "682368bfd5ff91d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7af948e36f48fcdf", "level": "note", "message": {"text": "Legacy-named symbol `osm_roads_v1` in wepppy/topo/osm_roads/cache.py:23"}, "properties": {"repobilityId": "dc0e949a9252d823", "scanner": "scanner-primary", "fingerprint": "7af948e36f48fcdf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-88bc922b73d86aaa", "level": "note", "message": {"text": "Stub function `ensure_schema` (body is just `pass`/`return`) \u2014 wepppy/topo/osm_roads/cache.py:136"}, "properties": {"repobilityId": "ed8c66b87a84e78f", "scanner": "scanner-primary", "fingerprint": "88bc922b73d86aaa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-e3c006a6f3e8a50d", "level": "note", "message": {"text": "Legacy-named symbol `segmented_multiple_ofe_legacy` in wepppy/topo/watershed_abstraction/slope_file.py:153"}, "properties": {"repobilityId": "a3267c96a1582518", "scanner": "scanner-primary", "fingerprint": "e3c006a6f3e8a50d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bad03363a6be23b0", "level": "note", "message": {"text": "Legacy-named symbol `has_legacy` in wepppy/topo/peridot/peridot_runner.py:628"}, "properties": {"repobilityId": "0d513081ddc9113c", "scanner": "scanner-primary", "fingerprint": "bad03363a6be23b0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4de1eb88b9e4c752", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/topo/wbt/wbt_topaz_emulator.py:1342"}, "properties": {"repobilityId": "f1d65e4a90e040a1", "scanner": "scanner-primary", "fingerprint": "4de1eb88b9e4c752", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9039bcffde8163da", "level": "note", "message": {"text": "Legacy-named symbol `relief_v2` in wepppy/topo/wbt/terrain_processor.py:624"}, "properties": {"repobilityId": "ff322d66f271db06", "scanner": "scanner-primary", "fingerprint": "9039bcffde8163da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-98537d9a64164172", "level": "none", "message": {"text": "Commented-code block (8 lines) in wepppy/weppcloud/app.py:83"}, "properties": {"repobilityId": "abace48e06e4443c", "scanner": "scanner-primary", "fingerprint": "98537d9a64164172", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cb22ebc9f314866", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/fork_console.js:285"}, "properties": {"repobilityId": "a017ed0fcfde16bd", "scanner": "scanner-primary", "fingerprint": "8cb22ebc9f314866", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-577e8351c46a5050", "level": "none", "message": {"text": "Commented-code block (5 lines) in wepppy/weppcloud/static/js/underscore.js:776"}, "properties": {"repobilityId": "2db06d569849d1f6", "scanner": "scanner-primary", "fingerprint": "577e8351c46a5050", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c32b34514d9104b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/archive_console.js:245"}, "properties": {"repobilityId": "cf822d8269bc1afc", "scanner": "scanner-primary", "fingerprint": "0c32b34514d9104b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2e398d39cbafbef7", "level": "note", "message": {"text": "Legacy-named symbol `xScaleOld` in wepppy/weppcloud/static/js/d3fc.js:8018"}, "properties": {"repobilityId": "7b4e92335516109d", "scanner": "scanner-primary", "fingerprint": "2e398d39cbafbef7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bd5caaea321c1a8a", "level": "none", "message": {"text": "Commented-code block (9 lines) in wepppy/weppcloud/static/js/d3fc.js:2764"}, "properties": {"repobilityId": "2282ff5048a41e85", "scanner": "scanner-primary", "fingerprint": "bd5caaea321c1a8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63407beea510c276", "level": "note", "message": {"text": "Legacy-named symbol `leaf_copy` in wepppy/weppcloud/static/js/d3.js:8803"}, "properties": {"repobilityId": "5b8780199cdb8494", "scanner": "scanner-primary", "fingerprint": "63407beea510c276", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9ddbcbc6a57bad1b", "level": "none", "message": {"text": "Commented-code block (5 lines) in wepppy/weppcloud/static/js/d3.js:25"}, "properties": {"repobilityId": "19a2266cfe1ea555", "scanner": "scanner-primary", "fingerprint": "9ddbcbc6a57bad1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-999d0006120f45d9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/d3.js:8329"}, "properties": {"repobilityId": "7a473db068321576", "scanner": "scanner-primary", "fingerprint": "999d0006120f45d9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-48218a3d0a59e272", "level": "none", "message": {"text": "Commented-code block (7 lines) in wepppy/weppcloud/static/js/leaflet-1.71.js:74"}, "properties": {"repobilityId": "622d1abbf85474b5", "scanner": "scanner-primary", "fingerprint": "48218a3d0a59e272", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5512ec044a921e14", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/report_csv.js:30"}, "properties": {"repobilityId": "d5f96bca461c1c95", "scanner": "scanner-primary", "fingerprint": "5512ec044a921e14", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-54b35b7a0c2422b0", "level": "none", "message": {"text": "Commented-code block (19 lines) in wepppy/weppcloud/static/js/geotiff.js:31"}, "properties": {"repobilityId": "f8bc5408a1c518a5", "scanner": "scanner-primary", "fingerprint": "54b35b7a0c2422b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b0adb9c16cfbf45", "level": "note", "message": {"text": "Legacy-named symbol `fromLegacy` in wepppy/weppcloud/static/js/gl-dashboard/__tests__/batch-keys.test.js:44"}, "properties": {"repobilityId": "e2114bee907c2474", "scanner": "scanner-primary", "fingerprint": "5b0adb9c16cfbf45", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0ee9d75adc1c151e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/gl-dashboard/layers/detector.js:229"}, "properties": {"repobilityId": "bae62d1f2bc30076", "scanner": "scanner-primary", "fingerprint": "0ee9d75adc1c151e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-292d54ed6d963e0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/gl-dashboard/map/basemap-controller.js:28"}, "properties": {"repobilityId": "93764100a0922893", "scanner": "scanner-primary", "fingerprint": "292d54ed6d963e0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-56e1651cd52cb84c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/gl-dashboard/map/raster-utils.js:76"}, "properties": {"repobilityId": "a87283c71b11369a", "scanner": "scanner-primary", "fingerprint": "56e1651cd52cb84c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cb7850a3534e0fb6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/js/diagnostics/auth_checks.js:94"}, "properties": {"repobilityId": "c6e365cfef93a643", "scanner": "scanner-primary", "fingerprint": "cb7850a3534e0fb6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-004aa972bec9700d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/ui-lab/assets/main-nK6957WS.js:1"}, "properties": {"repobilityId": "7b939f77465bb63f", "scanner": "scanner-primary", "fingerprint": "004aa972bec9700d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ae4099809e8d5ba6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static/ui-lab/assets/light-D8C95Rgl.js:1"}, "properties": {"repobilityId": "9eee9c3e51daedf6", "scanner": "scanner-primary", "fingerprint": "ae4099809e8d5ba6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-87d294ee4c6a3b81", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/weppcloud/bootstrap/pre_receive.py:21"}, "properties": {"repobilityId": "7b19036aa2e2ae14", "scanner": "scanner-primary", "fingerprint": "87d294ee4c6a3b81", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-324542797573f4c7", "level": "note", "message": {"text": "Legacy-named symbol `extra_copy` in wepppy/weppcloud/routes/_security/logging.py:311"}, "properties": {"repobilityId": "492d46338e12cfbf", "scanner": "scanner-primary", "fingerprint": "324542797573f4c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-57f94b72e6de3c49", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/routes/command_bar/static/command-bar.js:1984"}, "properties": {"repobilityId": "28b6deacdd2ada55", "scanner": "scanner-primary", "fingerprint": "57f94b72e6de3c49", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5930ceceaee9be8b", "level": "note", "message": {"text": "Legacy-named symbol `_restore_mod_backup` in wepppy/weppcloud/routes/nodb_api/project_bp.py:116"}, "properties": {"repobilityId": "79ad4db5e1fa4c60", "scanner": "scanner-primary", "fingerprint": "5930ceceaee9be8b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ea6fec795c6712e2", "level": "note", "message": {"text": "Legacy-named symbol `view_src_markdown_legacy` in wepppy/weppcloud/routes/usersum/usersum.py:693"}, "properties": {"repobilityId": "769192b49ab348e1", "scanner": "scanner-primary", "fingerprint": "ea6fec795c6712e2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e77e629dc0d928ee", "level": "note", "message": {"text": "Legacy-named symbol `theme_lab_muted_copy` in wepppy/weppcloud/routes/ui_showcase/ui_showcase_bp.py:286"}, "properties": {"repobilityId": "1a7c7825c1803314", "scanner": "scanner-primary", "fingerprint": "e77e629dc0d928ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b08e02ce93d8686e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/http.js:729"}, "properties": {"repobilityId": "b0448101515f617b", "scanner": "scanner-primary", "fingerprint": "b08e02ce93d8686e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-81c1514d7d4c642f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/geneva_summary_report.js:535"}, "properties": {"repobilityId": "f39e0e24ab95802f", "scanner": "scanner-primary", "fingerprint": "81c1514d7d4c642f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eedd285660242b46", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/map_gl.js:1033"}, "properties": {"repobilityId": "53adf6f3353a0cd1", "scanner": "scanner-primary", "fingerprint": "eedd285660242b46", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-794049d483baa170", "level": "note", "message": {"text": "Legacy-named symbol `hintLegacy` in wepppy/weppcloud/controllers_js/geneva.js:29"}, "properties": {"repobilityId": "9702ad631118d1fc", "scanner": "scanner-primary", "fingerprint": "794049d483baa170", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ce5037272e74e326", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:72"}, "properties": {"repobilityId": "6f9b89e5c9062ff6", "scanner": "scanner-primary", "fingerprint": "ce5037272e74e326", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18e4a90818e0e5be", "level": "none", "message": {"text": "Commented-code block (5 lines) in wepppy/weppcloud/static-src/tests/smoke/mods-menu.spec.js:4"}, "properties": {"repobilityId": "10e0f67a87855897", "scanner": "scanner-primary", "fingerprint": "18e4a90818e0e5be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42a397233debea98", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 wepppy/weppcloud/static-src/js/archive_console.js:245"}, "properties": {"repobilityId": "18fa990245665ecb", "scanner": "scanner-primary", "fingerprint": "42a397233debea98", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a9bbe4507da8263e", "level": "none", "message": {"text": "Commented-code block (5 lines) in wepppy/nodb/mods/debris_flow/debris_flow.py:303"}, "properties": {"repobilityId": "f8013c2046b42b9e", "scanner": "scanner-primary", "fingerprint": "a9bbe4507da8263e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-548a8de4711372dd", "level": "note", "message": {"text": "Legacy-named symbol `_safe_link_or_copy` in wepppy/nodb/mods/roads/roads.py:1682"}, "properties": {"repobilityId": "d60abc42a41d0fda", "scanner": "scanner-primary", "fingerprint": "548a8de4711372dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-939127cf3b890ee3", "level": "note", "message": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/emapr/emapr_ts.py:96"}, "properties": {"repobilityId": "236accaadfabd411", "scanner": "scanner-primary", "fingerprint": "939127cf3b890ee3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-3f51253eaac0a51f", "level": "note", "message": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/openet/openet_ts.py:552"}, "properties": {"repobilityId": "809bac4168b23e56", "scanner": "scanner-primary", "fingerprint": "3f51253eaac0a51f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-a614e492583a90e2", "level": "note", "message": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rap/rap.py:192"}, "properties": {"repobilityId": "d4511496529ad8d6", "scanner": "scanner-primary", "fingerprint": "a614e492583a90e2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-027871d38603c6c2", "level": "note", "message": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rap/rap_ts.py:271"}, "properties": {"repobilityId": "a9d97ed7726425c2", "scanner": "scanner-primary", "fingerprint": "027871d38603c6c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-dfac1f5aa73eb1a4", "level": "note", "message": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/revegetation/revegetation.py:141"}, "properties": {"repobilityId": "de3b9d5ba09dec3f", "scanner": "scanner-primary", "fingerprint": "dfac1f5aa73eb1a4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-65abede9de146997", "level": "note", "message": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rangeland_cover/rangeland_cover.py:130"}, "properties": {"repobilityId": "a8177e1302be6430", "scanner": "scanner-primary", "fingerprint": "65abede9de146997", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-e024f04b967ebec8", "level": "note", "message": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/shrubland/shrubland.py:215"}, "properties": {"repobilityId": "dad21aa0126df12d", "scanner": "scanner-primary", "fingerprint": "e024f04b967ebec8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-7d92847110d2e55f", "level": "note", "message": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/treecanopy/treecanopy.py:123"}, "properties": {"repobilityId": "7b48c2053574ae21", "scanner": "scanner-primary", "fingerprint": "7d92847110d2e55f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-f6ac7dedcd25a6ee", "level": "note", "message": {"text": "Legacy-named symbol `legacy_v0_to_v1` in wepppy/nodb/mods/geneva/collaborators/cn_table_service.py:294"}, "properties": {"repobilityId": "04ce8600cdeb9cde", "scanner": "scanner-primary", "fingerprint": "f6ac7dedcd25a6ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7b2f34f400e2a80a", "level": "note", "message": {"text": "Legacy-named symbol `geneva_cn_table_csv_v1` in wepppy/nodb/mods/geneva/collaborators/hru_preparation_service.py:32"}, "properties": {"repobilityId": "cad037594985d958", "scanner": "scanner-primary", "fingerprint": "7b2f34f400e2a80a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-48e379baf6398d6b", "level": "none", "message": {"text": "Commented-code block (28 lines) in wepppy/nodb/mods/ag_fields/ag_fields.py:824"}, "properties": {"repobilityId": "0c531f8d8f7b519f", "scanner": "scanner-primary", "fingerprint": "48e379baf6398d6b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b95440412c37c507", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/mods/salvage_logging/burn_roads.py:13"}, "properties": {"repobilityId": "93c9171cf08eb349", "scanner": "scanner-primary", "fingerprint": "b95440412c37c507", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-66864b95541a91a3", "level": "note", "message": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rred/rred.py:190"}, "properties": {"repobilityId": "7014d46991c58ba8", "scanner": "scanner-primary", "fingerprint": "66864b95541a91a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-a4096f649defc399", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/mods/rred/rred_api.py:35"}, "properties": {"repobilityId": "0996a028cff6a946", "scanner": "scanner-primary", "fingerprint": "a4096f649defc399", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d416b448b6d0ae18", "level": "note", "message": {"text": "Stub function `ct` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/baer/baer.py:524"}, "properties": {"repobilityId": "8cabed4b7d50a770", "scanner": "scanner-primary", "fingerprint": "d416b448b6d0ae18", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-01fc76cce4f91469", "level": "none", "message": {"text": "Commented-code block (9 lines) in wepppy/nodb/mods/omni/omni.py:1302"}, "properties": {"repobilityId": "5a5ca8972a7f5471", "scanner": "scanner-primary", "fingerprint": "01fc76cce4f91469", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5e83b70e02263fe", "level": "note", "message": {"text": "Stub function `on` (body is just `pass`/`return`) \u2014 wepppy/nodb/mods/rusle/rusle.py:302"}, "properties": {"repobilityId": "a8a5015bf462ba44", "scanner": "scanner-primary", "fingerprint": "c5e83b70e02263fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-5ac6f5162a84522f", "level": "note", "message": {"text": "Legacy-named symbol `lookup_copy` in wepppy/nodb/mods/rusle/c_integration.py:90"}, "properties": {"repobilityId": "d0bb49cc113b91b7", "scanner": "scanner-primary", "fingerprint": "5ac6f5162a84522f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-20c42581dfd25a21", "level": "note", "message": {"text": "Legacy-named symbol `modeled_texture_proxy_v1` in wepppy/nodb/mods/rusle/k_integration.py:941"}, "properties": {"repobilityId": "ed1ad98c332087a1", "scanner": "scanner-primary", "fingerprint": "20c42581dfd25a21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9bb2c86cd0440cf3", "level": "note", "message": {"text": "Legacy-named symbol `_build_mofe_map_labels_python_legacy` in wepppy/nodb/core/watershed_mixins.py:172"}, "properties": {"repobilityId": "67d554599da70d8b", "scanner": "scanner-primary", "fingerprint": "9bb2c86cd0440cf3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-686ff5bba3f341bf", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/core/ron.py:322"}, "properties": {"repobilityId": "8bd42664067932c7", "scanner": "scanner-primary", "fingerprint": "686ff5bba3f341bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-424902ef0a5daad3", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/core/climate_build_helpers.py:288"}, "properties": {"repobilityId": "1cfae466abc4374e", "scanner": "scanner-primary", "fingerprint": "424902ef0a5daad3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5ed3dbb2e3d656b2", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepppy/nodb/core/wepp_bootstrap_service.py:38"}, "properties": {"repobilityId": "42b64d3eb6738771", "scanner": "scanner-primary", "fingerprint": "5ed3dbb2e3d656b2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8c8bb4a2b13e73ef", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 wepp_runner/wepp_runner.py:354"}, "properties": {"repobilityId": "f35686762d5c5fe9", "scanner": "scanner-primary", "fingerprint": "8c8bb4a2b13e73ef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fdc6d713d24ba690", "level": "note", "message": {"text": "Stub function `stop` (body is just `pass`/`return`) \u2014 wepp_runner/wepp_runner.py:797"}, "properties": {"repobilityId": "664be992e1198bc0", "scanner": "scanner-primary", "fingerprint": "fdc6d713d24ba690", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-8eb7ed69c93ef7d6", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 services/cao/ci-samurai/run_fixer_loop.py:186"}, "properties": {"repobilityId": "283186b018606954", "scanner": "scanner-primary", "fingerprint": "8eb7ed69c93ef7d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-61fe2659c7d9f584", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 services/cao/src/cli_agent_orchestrator/cli/commands/install.py:22"}, "properties": {"repobilityId": "7d6e2a9fda728928", "scanner": "scanner-primary", "fingerprint": "61fe2659c7d9f584", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-15f031a8b4db10b6", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 services/cao/src/cli_agent_orchestrator/cli/commands/launch.py:35"}, "properties": {"repobilityId": "6b7026039199ca22", "scanner": "scanner-primary", "fingerprint": "15f031a8b4db10b6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-16c3d2fed5e3b79c", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 services/cao/src/cli_agent_orchestrator/mcp_server/server.py:53"}, "properties": {"repobilityId": "757090e1070e82e0", "scanner": "scanner-primary", "fingerprint": "16c3d2fed5e3b79c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3e78ed78e9de4686", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/run_pytest_sharded.py:340"}, "properties": {"repobilityId": "376844cfd18cd907", "scanner": "scanner-primary", "fingerprint": "3e78ed78e9de4686", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-04f9029bb5a8d31d", "level": "note", "message": {"text": "Legacy-named symbol `tax_v2` in tools/split_d2b_taxonomy.py:186"}, "properties": {"repobilityId": "4a0146d174074ef4", "scanner": "scanner-primary", "fingerprint": "04f9029bb5a8d31d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b403c72ee777c70b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/code_quality_observability.py:92"}, "properties": {"repobilityId": "42b8ec813396425e", "scanner": "scanner-primary", "fingerprint": "b403c72ee777c70b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a113e1e8d6fbe3a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/check_broad_exceptions.py:181"}, "properties": {"repobilityId": "9cd477f736b098a9", "scanner": "scanner-primary", "fingerprint": "4a113e1e8d6fbe3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c5d025763e0d43f1", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/update_stub_requirements.py:111"}, "properties": {"repobilityId": "c37c6555e2ab28ae", "scanner": "scanner-primary", "fingerprint": "c5d025763e0d43f1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c5000527e3772d49", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/run_profile_coverage_batch.py:42"}, "properties": {"repobilityId": "4115422710ff271c", "scanner": "scanner-primary", "fingerprint": "c5000527e3772d49", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a110f91b47bcde86", "level": "note", "message": {"text": "Legacy-named symbol `build_campaign_matrix_v2` in tools/refine_mofe_taxonomy.py:736"}, "properties": {"repobilityId": "fcfb5e4533511bdc", "scanner": "scanner-primary", "fingerprint": "a110f91b47bcde86", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1eca89b3d8aaaf99", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/docker.py:28"}, "properties": {"repobilityId": "171b0ee499004388", "scanner": "scanner-primary", "fingerprint": "1eca89b3d8aaaf99", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-150f61197c78b362", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/maintenance.py:48"}, "properties": {"repobilityId": "40cce1206200b470", "scanner": "scanner-primary", "fingerprint": "150f61197c78b362", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c782832278fbfeac", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/python_tasks.py:120"}, "properties": {"repobilityId": "9046382f4b143829", "scanner": "scanner-primary", "fingerprint": "c782832278fbfeac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8bbc505d54a2e022", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/npm.py:65"}, "properties": {"repobilityId": "540b25187818be77", "scanner": "scanner-primary", "fingerprint": "8bbc505d54a2e022", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-918e46c673e09057", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/auth.py:53"}, "properties": {"repobilityId": "e49ff4c2191a4081", "scanner": "scanner-primary", "fingerprint": "918e46c673e09057", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3d88355e588c82c0", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/doc.py:23"}, "properties": {"repobilityId": "e296d09ec314b687", "scanner": "scanner-primary", "fingerprint": "3d88355e588c82c0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1dddf9764a7ce6d7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 tools/wctl2/commands/playwright.py:506"}, "properties": {"repobilityId": "8ea7526e6d23fdc7", "scanner": "scanner-primary", "fingerprint": "1dddf9764a7ce6d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f8a001347562e9b8", "level": "note", "message": {"text": "Legacy-named symbol `temporary_run_copy` in tools/perf/benchmark_nodb_setters.py:59"}, "properties": {"repobilityId": "1be4aea3f69158e9", "scanner": "scanner-primary", "fingerprint": "f8a001347562e9b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8aa804baa6614f99", "level": "note", "message": {"text": "Legacy-named symbol `state_copy` in tools/perf/redis_nodb_cache_stress/run_harness.py:302"}, "properties": {"repobilityId": "df78e124e2c92d8b", "scanner": "scanner-primary", "fingerprint": "8aa804baa6614f99", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d54224cd871141c4", "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": "5cc086ba8eb01265", "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": "1046a64f0ce5ead7", "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": "a7fd69bd3d0e3e20", "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": "6e2d6b29f62787ee", "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": "10bba5acd2bb5844", "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": "7ab751a17f82b695", "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": "01554bc752b86df1", "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": "076050198382cc92", "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": "2e7206b07424bfa0", "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": "c11fb0ec50bbaa57", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "53e3a3a57e035eb1", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "a9ca701815c0ebab", "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": "dd50704efcc03b27", "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": "0668ee9bd4d730a5", "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": "a876c816cfc768c5", "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": "4d189e7a58fed707", "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": "ad62e54a0efb46f5", "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": "df59daab782b04c0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "a8dc7d06bf49f01a", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-f4389f8dd8c722c8", "level": "error", "message": {"text": "Flask mutation route `query_ecoregion` without `@login_required` \u2014 wepppy/webservices/ecoregion_us.py:33"}, "properties": {"repobilityId": "05e4bb4efe5895d6", "scanner": "scanner-primary", "fingerprint": "f4389f8dd8c722c8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/ecoregion_us.py"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-3b3573d4ef3778f8", "level": "error", "message": {"text": "Flask mutation route `query_elevation` without `@login_required` \u2014 wepppy/webservices/elevationquery.py:32"}, "properties": {"repobilityId": "ff87da051e02faf8", "scanner": "scanner-primary", "fingerprint": "3b3573d4ef3778f8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/elevationquery.py"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-7516322d463bfb9d", "level": "error", "message": {"text": "Flask mutation route `query_daily_singlepoint` without `@login_required` \u2014 wepppy/webservices/metquery.py:242"}, "properties": {"repobilityId": "8e93882527996dd0", "scanner": "scanner-primary", "fingerprint": "7516322d463bfb9d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/metquery.py"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-04c97f9ae8c500fe", "level": "error", "message": {"text": "Flask mutation route `query_daily_singlepoint` without `@login_required` \u2014 wepppy/webservices/metquery.py:243"}, "properties": {"repobilityId": "9e9c5d227e4c0e41", "scanner": "scanner-primary", "fingerprint": "04c97f9ae8c500fe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/metquery.py"}, "region": {"startLine": 243}}}]}, {"ruleId": "scanner-a73ef02ced2df00c", "level": "error", "message": {"text": "Flask mutation route `query_daily` without `@login_required` \u2014 wepppy/webservices/metquery.py:322"}, "properties": {"repobilityId": "04f5587cb37ceccb", "scanner": "scanner-primary", "fingerprint": "a73ef02ced2df00c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/metquery.py"}, "region": {"startLine": 322}}}]}, {"ruleId": "scanner-4ded214f95146e42", "level": "error", "message": {"text": "Flask mutation route `query_daily` without `@login_required` \u2014 wepppy/webservices/metquery.py:323"}, "properties": {"repobilityId": "61dda20ed3d64f97", "scanner": "scanner-primary", "fingerprint": "4ded214f95146e42", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/metquery.py"}, "region": {"startLine": 323}}}]}, {"ruleId": "scanner-e50a54da7076c4de", "level": "error", "message": {"text": "Flask mutation route `query_monthly` without `@login_required` \u2014 wepppy/webservices/metquery.py:426"}, "properties": {"repobilityId": "91d3f5d0553d8d6b", "scanner": "scanner-primary", "fingerprint": "e50a54da7076c4de", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/metquery.py"}, "region": {"startLine": 426}}}]}, {"ruleId": "scanner-f640f5056e26b151", "level": "error", "message": {"text": "Flask mutation route `query_monthly` without `@login_required` \u2014 wepppy/webservices/metquery.py:427"}, "properties": {"repobilityId": "66ad648d5e5c1e8e", "scanner": "scanner-primary", "fingerprint": "f640f5056e26b151", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/metquery.py"}, "region": {"startLine": 427}}}]}, {"ruleId": "scanner-be5bbcae0ad503eb", "level": "error", "message": {"text": "FastAPI POST `load_into_dtale` without auth dependency \u2014 wepppy/webservices/dtale/dtale.py:768"}, "properties": {"repobilityId": "d657af680608b1c2", "scanner": "scanner-primary", "fingerprint": "be5bbcae0ad503eb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/dtale/dtale.py"}, "region": {"startLine": 768}}}]}, {"ruleId": "scanner-df7ce46aabef4cef", "level": "error", "message": {"text": "Flask mutation route `index` without `@login_required` \u2014 wepppy/webservices/geeapi/__init__.py:36"}, "properties": {"repobilityId": "b14e948760e3f7e2", "scanner": "scanner-primary", "fingerprint": "df7ce46aabef4cef", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/webservices/geeapi/__init__.py"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-89448d4fc893baaa", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/project_routes.py:248"}, "properties": {"repobilityId": "2b4ada26c110ade6", "scanner": "scanner-primary", "fingerprint": "89448d4fc893baaa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/project_routes.py"}, "region": {"startLine": 248}}}]}, {"ruleId": "scanner-adfe525c0580deb6", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:400"}, "properties": {"repobilityId": "9594497381d30875", "scanner": "scanner-primary", "fingerprint": "adfe525c0580deb6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 400}}}]}, {"ruleId": "scanner-69b40a19b19e1e52", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:581"}, "properties": {"repobilityId": "124133628dbc77cd", "scanner": "scanner-primary", "fingerprint": "69b40a19b19e1e52", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 581}}}]}, {"ruleId": "scanner-c8cbd4d59351df10", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:641"}, "properties": {"repobilityId": "de41a6e067da5603", "scanner": "scanner-primary", "fingerprint": "c8cbd4d59351df10", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 641}}}]}, {"ruleId": "scanner-4ed11234d1be0bfe", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:689"}, "properties": {"repobilityId": "4052292e69d57ced", "scanner": "scanner-primary", "fingerprint": "4ed11234d1be0bfe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 689}}}]}, {"ruleId": "scanner-f5307e198d1b079a", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:781"}, "properties": {"repobilityId": "b1f6250a6bd16cb9", "scanner": "scanner-primary", "fingerprint": "f5307e198d1b079a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 781}}}]}, {"ruleId": "scanner-1d2c14a650effde9", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:891"}, "properties": {"repobilityId": "0a2993f8d3544207", "scanner": "scanner-primary", "fingerprint": "1d2c14a650effde9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 891}}}]}, {"ruleId": "scanner-0ad40c8821903ccc", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1052"}, "properties": {"repobilityId": "bda84027f12f3e6d", "scanner": "scanner-primary", "fingerprint": "0ad40c8821903ccc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 1052}}}]}, {"ruleId": "scanner-fef04befdc25a05c", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1131"}, "properties": {"repobilityId": "473d192b3c86282c", "scanner": "scanner-primary", "fingerprint": "fef04befdc25a05c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 1131}}}]}, {"ruleId": "scanner-ad52a25000126443", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1271"}, "properties": {"repobilityId": "106c61408037f8be", "scanner": "scanner-primary", "fingerprint": "ad52a25000126443", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 1271}}}]}, {"ruleId": "scanner-9f9058166d0d2d93", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1484"}, "properties": {"repobilityId": "0b1b706f39f6ff11", "scanner": "scanner-primary", "fingerprint": "9f9058166d0d2d93", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 1484}}}]}, {"ruleId": "scanner-619bce8e93ab260b", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_routes.py:1539"}, "properties": {"repobilityId": "d19c0f214bdb70b6", "scanner": "scanner-primary", "fingerprint": "619bce8e93ab260b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_routes.py"}, "region": {"startLine": 1539}}}]}, {"ruleId": "scanner-d687f2849dcbadb1", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/job_routes.py:357"}, "properties": {"repobilityId": "b6d87e9d10196c88", "scanner": "scanner-primary", "fingerprint": "d687f2849dcbadb1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/job_routes.py"}, "region": {"startLine": 357}}}]}, {"ruleId": "scanner-41fd065e0d0fa067", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/job_routes.py:421"}, "properties": {"repobilityId": "01310fe8ed99ab4d", "scanner": "scanner-primary", "fingerprint": "41fd065e0d0fa067", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/job_routes.py"}, "region": {"startLine": 421}}}]}, {"ruleId": "scanner-fd5f839282681dd5", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/ash_routes.py:117"}, "properties": {"repobilityId": "d1f341e7ac70c425", "scanner": "scanner-primary", "fingerprint": "fd5f839282681dd5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/ash_routes.py"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-e182fbdc06006a1d", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:544"}, "properties": {"repobilityId": "0c6651a284cc9e90", "scanner": "scanner-primary", "fingerprint": "e182fbdc06006a1d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/watershed_routes.py"}, "region": {"startLine": 544}}}]}, {"ruleId": "scanner-b901cff2004deb81", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:614"}, "properties": {"repobilityId": "5832c85b462e0817", "scanner": "scanner-primary", "fingerprint": "b901cff2004deb81", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/watershed_routes.py"}, "region": {"startLine": 614}}}]}, {"ruleId": "scanner-c35e08b598d82c88", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:746"}, "properties": {"repobilityId": "535802904465b1ea", "scanner": "scanner-primary", "fingerprint": "c35e08b598d82c88", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/watershed_routes.py"}, "region": {"startLine": 746}}}]}, {"ruleId": "scanner-3612d39c9b368d8d", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/watershed_routes.py:837"}, "properties": {"repobilityId": "842bea91e089ae5a", "scanner": "scanner-primary", "fingerprint": "3612d39c9b368d8d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/watershed_routes.py"}, "region": {"startLine": 837}}}]}, {"ruleId": "scanner-28f99c9259644a00", "level": "error", "message": {"text": "FastAPI POST `run_batch` without auth dependency \u2014 wepppy/microservices/rq_engine/batch_routes.py:42"}, "properties": {"repobilityId": "7cc83de64824c21e", "scanner": "scanner-primary", "fingerprint": "28f99c9259644a00", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/batch_routes.py"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-418c3bf3185c0001", "level": "error", "message": {"text": "FastAPI POST `delete_batch` without auth dependency \u2014 wepppy/microservices/rq_engine/batch_routes.py:80"}, "properties": {"repobilityId": "93f425b043a33b1d", "scanner": "scanner-primary", "fingerprint": "418c3bf3185c0001", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/batch_routes.py"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-4d233de916779650", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_climate_routes.py:77"}, "properties": {"repobilityId": "ef154db1805606ed", "scanner": "scanner-primary", "fingerprint": "4d233de916779650", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/upload_climate_routes.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-5d39644e3632264f", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/rhem_routes.py:29"}, "properties": {"repobilityId": "6e5324f9e64eda1d", "scanner": "scanner-primary", "fingerprint": "5d39644e3632264f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/rhem_routes.py"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-98bdd04e822d922b", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/debris_flow_routes.py:66"}, "properties": {"repobilityId": "e5bdcb9d796e8e02", "scanner": "scanner-primary", "fingerprint": "98bdd04e822d922b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/debris_flow_routes.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-5e45990ccbe67b63", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_disturbed_routes.py:53"}, "properties": {"repobilityId": "e3deabc5def16560", "scanner": "scanner-primary", "fingerprint": "5e45990ccbe67b63", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/upload_disturbed_routes.py"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-d83c43bef71c09a6", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_disturbed_routes.py:132"}, "properties": {"repobilityId": "262bc871f1cab5f6", "scanner": "scanner-primary", "fingerprint": "d83c43bef71c09a6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/upload_disturbed_routes.py"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-72916540b7778a8d", "level": "error", "message": {"text": "FastAPI POST `build_landuse_and_soils` without auth dependency \u2014 wepppy/microservices/rq_engine/landuse_soils_routes.py:46"}, "properties": {"repobilityId": "1debb9f7be066308", "scanner": "scanner-primary", "fingerprint": "72916540b7778a8d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/landuse_soils_routes.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-f82b52954c6ca5ea", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/rusle_routes.py:30"}, "properties": {"repobilityId": "43bc72fe7dfb1c9c", "scanner": "scanner-primary", "fingerprint": "f82b52954c6ca5ea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/rusle_routes.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-39c96afd06b332f9", "level": "error", "message": {"text": "FastAPI POST `run_sync` without auth dependency \u2014 wepppy/microservices/rq_engine/run_sync_routes.py:166"}, "properties": {"repobilityId": "54a4b97355faa41f", "scanner": "scanner-primary", "fingerprint": "39c96afd06b332f9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/run_sync_routes.py"}, "region": {"startLine": 166}}}]}, {"ruleId": "scanner-19c00bee0616e077", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/export_routes.py:559"}, "properties": {"repobilityId": "c26095e0ea29914d", "scanner": "scanner-primary", "fingerprint": "19c00bee0616e077", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/export_routes.py"}, "region": {"startLine": 559}}}]}, {"ruleId": "scanner-f41c7558003b24f2", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/export_routes.py:632"}, "properties": {"repobilityId": "c34a6a952cdb85f3", "scanner": "scanner-primary", "fingerprint": "f41c7558003b24f2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/export_routes.py"}, "region": {"startLine": 632}}}]}, {"ruleId": "scanner-296821fb22297d73", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/session_routes.py:826"}, "properties": {"repobilityId": "a91cbeeb432c2043", "scanner": "scanner-primary", "fingerprint": "296821fb22297d73", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/session_routes.py"}, "region": {"startLine": 826}}}]}, {"ruleId": "scanner-389ab4c9f42df065", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/soils_routes.py:65"}, "properties": {"repobilityId": "e481ff0eed928ab4", "scanner": "scanner-primary", "fingerprint": "389ab4c9f42df065", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/soils_routes.py"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-30c22c712de2b7fc", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/polaris_routes.py:30"}, "properties": {"repobilityId": "301517a2e5cbab2d", "scanner": "scanner-primary", "fingerprint": "30c22c712de2b7fc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/polaris_routes.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-2cc21721d2927560", "level": "error", "message": {"text": "FastAPI POST `upload_huc_fire_sbs` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_huc_fire_routes.py:80"}, "properties": {"repobilityId": "6c44cc3bf90fdcd1", "scanner": "scanner-primary", "fingerprint": "2cc21721d2927560", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/upload_huc_fire_routes.py"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-1862f874597ce43c", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/openet_ts_routes.py:30"}, "properties": {"repobilityId": "fd075e73d27262a4", "scanner": "scanner-primary", "fingerprint": "1862f874597ce43c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/openet_ts_routes.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-7863a7d323bde095", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/wepp_routes.py:184"}, "properties": {"repobilityId": "8df932fb2cb30e2a", "scanner": "scanner-primary", "fingerprint": "7863a7d323bde095", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/wepp_routes.py"}, "region": {"startLine": 184}}}]}, {"ruleId": "scanner-9c967a0880771124", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/wepp_routes.py:227"}, "properties": {"repobilityId": "839506417efb816c", "scanner": "scanner-primary", "fingerprint": "9c967a0880771124", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/wepp_routes.py"}, "region": {"startLine": 227}}}]}, {"ruleId": "scanner-d4af79a5ceaa197e", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/wepp_routes.py:272"}, "properties": {"repobilityId": "b8b1f8f31e1eab2e", "scanner": "scanner-primary", "fingerprint": "d4af79a5ceaa197e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/wepp_routes.py"}, "region": {"startLine": 272}}}]}, {"ruleId": "scanner-a476806dc2cf9384", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:213"}, "properties": {"repobilityId": "0a77f74f609e5123", "scanner": "scanner-primary", "fingerprint": "a476806dc2cf9384", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/fork_archive_routes.py"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-bd3dc8f3190b1a0f", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:441"}, "properties": {"repobilityId": "9cdc918f5b799f56", "scanner": "scanner-primary", "fingerprint": "bd3dc8f3190b1a0f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/fork_archive_routes.py"}, "region": {"startLine": 441}}}]}, {"ruleId": "scanner-73594f5c3a08d6be", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:512"}, "properties": {"repobilityId": "c2c81d3294b44506", "scanner": "scanner-primary", "fingerprint": "73594f5c3a08d6be", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/fork_archive_routes.py"}, "region": {"startLine": 512}}}]}, {"ruleId": "scanner-da0a868e2e973bb3", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/fork_archive_routes.py:591"}, "properties": {"repobilityId": "4e1482bdca0f403c", "scanner": "scanner-primary", "fingerprint": "da0a868e2e973bb3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/fork_archive_routes.py"}, "region": {"startLine": 591}}}]}, {"ruleId": "scanner-5a207ed48bb9f8b2", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/dss_export_routes.py:53"}, "properties": {"repobilityId": "34901b0804ae4d6d", "scanner": "scanner-primary", "fingerprint": "5a207ed48bb9f8b2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/dss_export_routes.py"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-48a9cc262419276a", "level": "error", "message": {"text": "FastAPI POST `migrate_run` without auth dependency \u2014 wepppy/microservices/rq_engine/migration_routes.py:80"}, "properties": {"repobilityId": "ffd488f551886a31", "scanner": "scanner-primary", "fingerprint": "48a9cc262419276a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/migration_routes.py"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-d672553c7b5b4c2f", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/culvert_routes.py:75"}, "properties": {"repobilityId": "5e219a58685f0fac", "scanner": "scanner-primary", "fingerprint": "d672553c7b5b4c2f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/culvert_routes.py"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-4e7bbcdce5083935", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/culvert_routes.py:225"}, "properties": {"repobilityId": "5c0ab00a0f65f2a2", "scanner": "scanner-primary", "fingerprint": "4e7bbcdce5083935", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/culvert_routes.py"}, "region": {"startLine": 225}}}]}, {"ruleId": "scanner-c021f205adb81474", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/culvert_routes.py:317"}, "properties": {"repobilityId": "0d1203d161d2d92b", "scanner": "scanner-primary", "fingerprint": "c021f205adb81474", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/culvert_routes.py"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-dce5036d459ccb38", "level": "error", "message": {"text": "FastAPI POST `upload_geojson` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_batch_runner_routes.py:136"}, "properties": {"repobilityId": "8e8aff4f7ad0f898", "scanner": "scanner-primary", "fingerprint": "dce5036d459ccb38", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/upload_batch_runner_routes.py"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-f7c7d7d8f983aea4", "level": "error", "message": {"text": "FastAPI POST `upload_sbs_map` without auth dependency \u2014 wepppy/microservices/rq_engine/upload_batch_runner_routes.py:272"}, "properties": {"repobilityId": "e4f7b0405f61d749", "scanner": "scanner-primary", "fingerprint": "f7c7d7d8f983aea4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/upload_batch_runner_routes.py"}, "region": {"startLine": 272}}}]}, {"ruleId": "scanner-8789bfe5a27b81d7", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:399"}, "properties": {"repobilityId": "1ab7a9ffbe9a9a54", "scanner": "scanner-primary", "fingerprint": "8789bfe5a27b81d7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/geneva_routes.py"}, "region": {"startLine": 399}}}]}, {"ruleId": "scanner-8b4e73e6dc04bf57", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:456"}, "properties": {"repobilityId": "4e43197b9ab5e8b9", "scanner": "scanner-primary", "fingerprint": "8b4e73e6dc04bf57", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/geneva_routes.py"}, "region": {"startLine": 456}}}]}, {"ruleId": "scanner-3877d7ef912cb740", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:516"}, "properties": {"repobilityId": "047708daccbf5022", "scanner": "scanner-primary", "fingerprint": "3877d7ef912cb740", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/geneva_routes.py"}, "region": {"startLine": 516}}}]}, {"ruleId": "scanner-b82e8c3467266ad2", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/geneva_routes.py:572"}, "properties": {"repobilityId": "c30ffcde8fd9d824", "scanner": "scanner-primary", "fingerprint": "b82e8c3467266ad2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/geneva_routes.py"}, "region": {"startLine": 572}}}]}, {"ruleId": "scanner-fa531e607cf934f3", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/treatments_routes.py:78"}, "properties": {"repobilityId": "eadb9757ca15d729", "scanner": "scanner-primary", "fingerprint": "fa531e607cf934f3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/treatments_routes.py"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-76b24f96a89b02e9", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:883"}, "properties": {"repobilityId": "ab56411f051425d6", "scanner": "scanner-primary", "fingerprint": "76b24f96a89b02e9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/omni_routes.py"}, "region": {"startLine": 883}}}]}, {"ruleId": "scanner-c1fed13d8fa45693", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:922"}, "properties": {"repobilityId": "5f80eb7194051c16", "scanner": "scanner-primary", "fingerprint": "c1fed13d8fa45693", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/omni_routes.py"}, "region": {"startLine": 922}}}]}, {"ruleId": "scanner-5ca5cf218c8408cb", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:963"}, "properties": {"repobilityId": "f0c41757f04fc528", "scanner": "scanner-primary", "fingerprint": "5ca5cf218c8408cb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/omni_routes.py"}, "region": {"startLine": 963}}}]}, {"ruleId": "scanner-25ed46417e703f21", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/omni_routes.py:1000"}, "properties": {"repobilityId": "7490e8512d0391b0", "scanner": "scanner-primary", "fingerprint": "25ed46417e703f21", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/omni_routes.py"}, "region": {"startLine": 1000}}}]}, {"ruleId": "scanner-6792791081430761", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/climate_routes.py:378"}, "properties": {"repobilityId": "96c118b1f1a3ca76", "scanner": "scanner-primary", "fingerprint": "6792791081430761", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/climate_routes.py"}, "region": {"startLine": 378}}}]}, {"ruleId": "scanner-42bc06a671ceae1f", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/swat_routes.py:50"}, "properties": {"repobilityId": "0410334305b220db", "scanner": "scanner-primary", "fingerprint": "42bc06a671ceae1f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/swat_routes.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-0044b2f55a994acc", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/swat_routes.py:96"}, "properties": {"repobilityId": "23838ab90076c541", "scanner": "scanner-primary", "fingerprint": "0044b2f55a994acc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/swat_routes.py"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-e2a910ce0ffdca0e", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/swat_routes.py:164"}, "properties": {"repobilityId": "89697647c0713ebe", "scanner": "scanner-primary", "fingerprint": "e2a910ce0ffdca0e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/swat_routes.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-d313863c616b2ed8", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:211"}, "properties": {"repobilityId": "27a9847ca6f6f485", "scanner": "scanner-primary", "fingerprint": "d313863c616b2ed8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/bootstrap_routes.py"}, "region": {"startLine": 211}}}]}, {"ruleId": "scanner-9184c6b7dfcd3706", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:252"}, "properties": {"repobilityId": "b29fec8f5cc58da3", "scanner": "scanner-primary", "fingerprint": "9184c6b7dfcd3706", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/bootstrap_routes.py"}, "region": {"startLine": 252}}}]}, {"ruleId": "scanner-34cc7ff524c6b98a", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:364"}, "properties": {"repobilityId": "0e2f2b3a308222d8", "scanner": "scanner-primary", "fingerprint": "34cc7ff524c6b98a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/bootstrap_routes.py"}, "region": {"startLine": 364}}}]}, {"ruleId": "scanner-9b521dacede4ed72", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:406"}, "properties": {"repobilityId": "d93d081c252b16fd", "scanner": "scanner-primary", "fingerprint": "9b521dacede4ed72", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/bootstrap_routes.py"}, "region": {"startLine": 406}}}]}, {"ruleId": "scanner-4ef6bdaae4167653", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:491"}, "properties": {"repobilityId": "0f58853bb9733e15", "scanner": "scanner-primary", "fingerprint": "4ef6bdaae4167653", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/bootstrap_routes.py"}, "region": {"startLine": 491}}}]}, {"ruleId": "scanner-4438c32712b347e9", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/bootstrap_routes.py:571"}, "properties": {"repobilityId": "ee32b9a1be56d25a", "scanner": "scanner-primary", "fingerprint": "4438c32712b347e9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/bootstrap_routes.py"}, "region": {"startLine": 571}}}]}, {"ruleId": "scanner-0c461c2d27d92459", "level": "error", "message": {"text": "FastAPI POST `hello_world` without auth dependency \u2014 wepppy/microservices/rq_engine/debug_routes.py:41"}, "properties": {"repobilityId": "854a1a01d8bd1df3", "scanner": "scanner-primary", "fingerprint": "0c461c2d27d92459", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/debug_routes.py"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-93c608b9a4f3a67b", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/rap_ts_routes.py:76"}, "properties": {"repobilityId": "0b264b5b548277f2", "scanner": "scanner-primary", "fingerprint": "93c608b9a4f3a67b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/rap_ts_routes.py"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-55f9ab193a709dd3", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/roads_routes.py:60"}, "properties": {"repobilityId": "7febbc52cfd2d1f1", "scanner": "scanner-primary", "fingerprint": "55f9ab193a709dd3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/roads_routes.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-31436063a9214f37", "level": "error", "message": {"text": "FastAPI POST `<anonymous>` without auth dependency \u2014 wepppy/microservices/rq_engine/roads_routes.py:97"}, "properties": {"repobilityId": "e319046369914fbc", "scanner": "scanner-primary", "fingerprint": "31436063a9214f37", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wepppy/microservices/rq_engine/roads_routes.py"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-e003d5929a5e401d", "level": "error", "message": {"text": "FastAPI POST `run_profile` without auth dependency \u2014 services/profile_playback/app.py:797"}, "properties": {"repobilityId": "d22daa95ad4173f6", "scanner": "scanner-primary", "fingerprint": "e003d5929a5e401d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/profile_playback/app.py"}, "region": {"startLine": 797}}}]}, {"ruleId": "scanner-b7b419e1b453f8c8", "level": "error", "message": {"text": "FastAPI POST `fork_profile_route` without auth dependency \u2014 services/profile_playback/app.py:925"}, "properties": {"repobilityId": "09772b0222c32483", "scanner": "scanner-primary", "fingerprint": "b7b419e1b453f8c8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/profile_playback/app.py"}, "region": {"startLine": 925}}}]}, {"ruleId": "scanner-d05238bc98d1cafd", "level": "error", "message": {"text": "FastAPI POST `archive_profile_route` without auth dependency \u2014 services/profile_playback/app.py:933"}, "properties": {"repobilityId": "2861fcb47b11d00d", "scanner": "scanner-primary", "fingerprint": "d05238bc98d1cafd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/profile_playback/app.py"}, "region": {"startLine": 933}}}]}, {"ruleId": "scanner-99c6519a0d105782", "level": "error", "message": {"text": "FastAPI POST `create_session` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:106"}, "properties": {"repobilityId": "d90d05678bed76d4", "scanner": "scanner-primary", "fingerprint": "99c6519a0d105782", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/cao/src/cli_agent_orchestrator/api/main.py"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-542027838a268110", "level": "error", "message": {"text": "FastAPI DELETE `delete_session` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:146"}, "properties": {"repobilityId": "340fbe9050fd3d26", "scanner": "scanner-primary", "fingerprint": "542027838a268110", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/cao/src/cli_agent_orchestrator/api/main.py"}, "region": {"startLine": 146}}}]}, {"ruleId": "scanner-899c268cde4dd6ec", "level": "error", "message": {"text": "FastAPI POST `create_terminal_in_session` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:157"}, "properties": {"repobilityId": "fcd5befe3e0b2afa", "scanner": "scanner-primary", "fingerprint": "899c268cde4dd6ec", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/cao/src/cli_agent_orchestrator/api/main.py"}, "region": {"startLine": 157}}}]}, {"ruleId": "scanner-64dce4c55a0c0a07", "level": "error", "message": {"text": "FastAPI POST `send_terminal_input` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:199"}, "properties": {"repobilityId": "30a4cac4337cf0d5", "scanner": "scanner-primary", "fingerprint": "64dce4c55a0c0a07", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/cao/src/cli_agent_orchestrator/api/main.py"}, "region": {"startLine": 199}}}]}, {"ruleId": "scanner-f8b8e8de7d239501", "level": "error", "message": {"text": "FastAPI POST `exit_terminal` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:221"}, "properties": {"repobilityId": "c308f76823bb973d", "scanner": "scanner-primary", "fingerprint": "f8b8e8de7d239501", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/cao/src/cli_agent_orchestrator/api/main.py"}, "region": {"startLine": 221}}}]}, {"ruleId": "scanner-2e7197c1e788687f", "level": "error", "message": {"text": "FastAPI DELETE `delete_terminal` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:235"}, "properties": {"repobilityId": "6fd58c1b15d8b279", "scanner": "scanner-primary", "fingerprint": "2e7197c1e788687f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/cao/src/cli_agent_orchestrator/api/main.py"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-8e8f8d6ece6b4fd8", "level": "error", "message": {"text": "FastAPI POST `create_inbox_message_endpoint` without auth dependency \u2014 services/cao/src/cli_agent_orchestrator/api/main.py:252"}, "properties": {"repobilityId": "be9f83aba5ea653c", "scanner": "scanner-primary", "fingerprint": "8e8f8d6ece6b4fd8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/cao/src/cli_agent_orchestrator/api/main.py"}, "region": {"startLine": 252}}}]}, {"ruleId": "scanner-513763ee2c62f7b6", "level": "error", "message": {"text": "Dangling fetch: GET /api/ping (wepppy/weppcloud/controllers_js/__tests__/http.test.js:75)"}, "properties": {"repobilityId": "24558f1de99ff5c8", "scanner": "scanner-primary", "fingerprint": "513763ee2c62f7b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bdbd8d64491929dd", "level": "error", "message": {"text": "Dangling fetch: GET /rq-engine/api/jobstatus/job-1 (wepppy/weppcloud/controllers_js/__tests__/http.test.js:98)"}, "properties": {"repobilityId": "c7c1926d4dbb1b6b", "scanner": "scanner-primary", "fingerprint": "bdbd8d64491929dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-def9bb8faf2e46c9", "level": "error", "message": {"text": "Dangling fetch: GET /resources/nhd (wepppy/weppcloud/controllers_js/__tests__/http.test.js:159)"}, "properties": {"repobilityId": "05f15926a53fa9af", "scanner": "scanner-primary", "fingerprint": "def9bb8faf2e46c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8d5b05899ccfb6d1", "level": "error", "message": {"text": "Dangling fetch: POST /api/fail (wepppy/weppcloud/controllers_js/__tests__/http.test.js:175)"}, "properties": {"repobilityId": "31e6c651053b5e6d", "scanner": "scanner-primary", "fingerprint": "8d5b05899ccfb6d1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c4b6579b654b60ff", "level": "error", "message": {"text": "Dangling fetch: POST /api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:72)"}, "properties": {"repobilityId": "4294f0168f1e5ff8", "scanner": "scanner-primary", "fingerprint": "c4b6579b654b60ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-82d98a2fec626cac", "level": "error", "message": {"text": "Dangling fetch: POST /api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:92)"}, "properties": {"repobilityId": "870c7f33ffa7c33e", "scanner": "scanner-primary", "fingerprint": "82d98a2fec626cac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e25b9721efbc3ad6", "level": "error", "message": {"text": "Dangling fetch: POST https://external.example/api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:98)"}, "properties": {"repobilityId": "2c260923216bbd62", "scanner": "scanner-primary", "fingerprint": "e25b9721efbc3ad6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4689287b99e0996d", "level": "error", "message": {"text": "Dangling fetch: POST /api/mutate (wepppy/weppcloud/controllers_js/__tests__/csrf_bootstrap.test.js:119)"}, "properties": {"repobilityId": "d9ac45312d2cda77", "scanner": "scanner-primary", "fingerprint": "4689287b99e0996d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a6d91f2236825bf", "level": "note", "message": {"text": "Unused endpoint: ANY /"}, "properties": {"repobilityId": "87701ee74863667b", "scanner": "scanner-primary", "fingerprint": "1a6d91f2236825bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-34a0d470c601d97f", "level": "note", "message": {"text": "Unused endpoint: GET /catalog"}, "properties": {"repobilityId": "8697a38bd9966af5", "scanner": "scanner-primary", "fingerprint": "34a0d470c601d97f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-11ca7a940ab350e5", "level": "note", "message": {"text": "Unused endpoint: GET /retrieve/{dataset:path}"}, "properties": {"repobilityId": "0bf955258d800f3e", "scanner": "scanner-primary", "fingerprint": "11ca7a940ab350e5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3c4e09cb0443591d", "level": "note", "message": {"text": "Unused endpoint: ANY /catalog"}, "properties": {"repobilityId": "5dd8265b50e4ae9e", "scanner": "scanner-primary", "fingerprint": "3c4e09cb0443591d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-632f62e9e351bfbf", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>"}, "properties": {"repobilityId": "304015b6a03a7b19", "scanner": "scanner-primary", "fingerprint": "632f62e9e351bfbf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6429638cfd58511d", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/"}, "properties": {"repobilityId": "e9b8fca388297d89", "scanner": "scanner-primary", "fingerprint": "6429638cfd58511d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ce759ace9042f18b", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>"}, "properties": {"repobilityId": "4e61c89f973bdc65", "scanner": "scanner-primary", "fingerprint": "ce759ace9042f18b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ff3e65e7b49a5539", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/"}, "properties": {"repobilityId": "dc6e5a886ce89f0b", "scanner": "scanner-primary", "fingerprint": "ff3e65e7b49a5539", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-250a2d689b551ce8", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>"}, "properties": {"repobilityId": "c2a4fc15fbede758", "scanner": "scanner-primary", "fingerprint": "250a2d689b551ce8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-34458b2b35615699", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/"}, "properties": {"repobilityId": "1350bf02d5c819cd", "scanner": "scanner-primary", "fingerprint": "34458b2b35615699", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e668dbf5dc1de130", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>"}, "properties": {"repobilityId": "d7608a5a851029bb", "scanner": "scanner-primary", "fingerprint": "e668dbf5dc1de130", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-766bd726f8cad1ce", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/"}, "properties": {"repobilityId": "d486f7be7e4fe64d", "scanner": "scanner-primary", "fingerprint": "766bd726f8cad1ce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-265e57f2739bc4aa", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>"}, "properties": {"repobilityId": "615dc09ed33c47b1", "scanner": "scanner-primary", "fingerprint": "265e57f2739bc4aa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-78b1965c2ca9d8f7", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/"}, "properties": {"repobilityId": "892956c0645cc307", "scanner": "scanner-primary", "fingerprint": "78b1965c2ca9d8f7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-91c8db977653a280", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/<bar2>"}, "properties": {"repobilityId": "ecde24deef21d1c9", "scanner": "scanner-primary", "fingerprint": "91c8db977653a280", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-75d87250d66370d6", "level": "note", "message": {"text": "Unused endpoint: ANY /<dataset>/<year>/<layer>/<foo>/<bar>/<foo2>/<bar2>/"}, "properties": {"repobilityId": "6fc91e433eeddd62", "scanner": "scanner-primary", "fingerprint": "75d87250d66370d6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-88c7238f0d6aceaa", "level": "note", "message": {"text": "Unused endpoint: ANY /daily/catalog"}, "properties": {"repobilityId": "26bb5cc076974104", "scanner": "scanner-primary", "fingerprint": "88c7238f0d6aceaa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e594bbb5f4bd559e", "level": "note", "message": {"text": "Unused endpoint: ANY /daily/catalog/"}, "properties": {"repobilityId": "f5820e40c380894b", "scanner": "scanner-primary", "fingerprint": "e594bbb5f4bd559e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd82699fa9b49be4", "level": "note", "message": {"text": "Unused endpoint: ANY /daily_singlepoint"}, "properties": {"repobilityId": "4043cb3508c76755", "scanner": "scanner-primary", "fingerprint": "fd82699fa9b49be4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eae053802bb1bb27", "level": "note", "message": {"text": "Unused endpoint: ANY /daily_singlepoint/"}, "properties": {"repobilityId": "1fa75a19bd5d1153", "scanner": "scanner-primary", "fingerprint": "eae053802bb1bb27", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9270252f0f12c18b", "level": "note", "message": {"text": "Unused endpoint: ANY /daily"}, "properties": {"repobilityId": "5344e047e84f9ed1", "scanner": "scanner-primary", "fingerprint": "9270252f0f12c18b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aec18d97d16dfcce", "level": "note", "message": {"text": "Unused endpoint: ANY /daily/"}, "properties": {"repobilityId": "a9682680d70d3e04", "scanner": "scanner-primary", "fingerprint": "aec18d97d16dfcce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c4cacd86bd27d577", "level": "note", "message": {"text": "Unused endpoint: ANY /monthly/catalog"}, "properties": {"repobilityId": "c2ab0b53f482c211", "scanner": "scanner-primary", "fingerprint": "c4cacd86bd27d577", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-633714100fa0a747", "level": "note", "message": {"text": "Unused endpoint: ANY /monthly/catalog/"}, "properties": {"repobilityId": "d4b25245680f0787", "scanner": "scanner-primary", "fingerprint": "633714100fa0a747", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-64496b0fb2297169", "level": "note", "message": {"text": "Unused endpoint: ANY /monthly"}, "properties": {"repobilityId": "6b540eb397af94de", "scanner": "scanner-primary", "fingerprint": "64496b0fb2297169", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-511884b415640213", "level": "note", "message": {"text": "Unused endpoint: ANY /monthly/"}, "properties": {"repobilityId": "9e62d09846935509", "scanner": "scanner-primary", "fingerprint": "511884b415640213", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e78af2aa2e2c3588", "level": "note", "message": {"text": "Unused endpoint: POST /internal/load"}, "properties": {"repobilityId": "f152c5a66263db07", "scanner": "scanner-primary", "fingerprint": "e78af2aa2e2c3588", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-41bb07873f2dfee8", "level": "note", "message": {"text": "Unused endpoint: POST /create/"}, "properties": {"repobilityId": "2ff550c7e5636e81", "scanner": "scanner-primary", "fingerprint": "41bb07873f2dfee8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5a2fba5e152ee83d", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/build-landuse"}, "properties": {"repobilityId": "2d6637d3aea8eabe", "scanner": "scanner-primary", "fingerprint": "5a2fba5e152ee83d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e51db1b66e52705a", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/set-landuse-mode"}, "properties": {"repobilityId": "23e18b9e7a60ceb1", "scanner": "scanner-primary", "fingerprint": "e51db1b66e52705a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8cdea044fbd446eb", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/set-landuse-db"}, "properties": {"repobilityId": "804408323e18e1d4", "scanner": "scanner-primary", "fingerprint": "8cdea044fbd446eb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e0f845c21392fe1f", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/modify-landuse-coverage"}, "properties": {"repobilityId": "57de1a3afd2f1412", "scanner": "scanner-primary", "fingerprint": "e0f845c21392fe1f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c22275302d32ee21", "level": "note", "message": {"text": "Unused endpoint: GET /runs/{runid}/{config}/controllers/landuse/state"}, "properties": {"repobilityId": "0d5c16dca44b1935", "scanner": "scanner-primary", "fingerprint": "c22275302d32ee21", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b667608867f1540b", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/modify-landuse-mapping"}, "properties": {"repobilityId": "a99a9c8c87117551", "scanner": "scanner-primary", "fingerprint": "b667608867f1540b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a7110e5a86105af2", "level": "note", "message": {"text": "Unused endpoint: GET /runs/{runid}/{config}/landuse-user-defined/catalog"}, "properties": {"repobilityId": "0f1774a145baa44c", "scanner": "scanner-primary", "fingerprint": "a7110e5a86105af2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e3c264587af45390", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/landuse-user-defined/upload"}, "properties": {"repobilityId": "9468fef1d72a1128", "scanner": "scanner-primary", "fingerprint": "e3c264587af45390", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a34a360ee7d1d563", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/landuse-user-defined/delete"}, "properties": {"repobilityId": "6bb06ea519a2e91d", "scanner": "scanner-primary", "fingerprint": "a34a360ee7d1d563", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0f3801a528859869", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/landuse-user-defined/update-description"}, "properties": {"repobilityId": "6fe1aeafeb68bb24", "scanner": "scanner-primary", "fingerprint": "0f3801a528859869", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-abc79b5e9eb78050", "level": "note", "message": {"text": "Unused endpoint: GET /runs/{runid}/{config}/landuse-map/snapshot"}, "properties": {"repobilityId": "b7d8f555dc5482be", "scanner": "scanner-primary", "fingerprint": "abc79b5e9eb78050", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bed407f7e1deb70a", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/landuse-map/save"}, "properties": {"repobilityId": "f32d4c12926ffae3", "scanner": "scanner-primary", "fingerprint": "bed407f7e1deb70a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8a5d3bf13dd9cfe8", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/landuse-map/clear-override"}, "properties": {"repobilityId": "a368d9d6e1b2165f", "scanner": "scanner-primary", "fingerprint": "8a5d3bf13dd9cfe8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b69078418d8a5aa4", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/modify-landuse"}, "properties": {"repobilityId": "7703409a9cb4501a", "scanner": "scanner-primary", "fingerprint": "b69078418d8a5aa4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0bd0fad793b15bb6", "level": "note", "message": {"text": "Unused endpoint: GET /jobstatus/{job_id}"}, "properties": {"repobilityId": "d885a2487f9d4e5f", "scanner": "scanner-primary", "fingerprint": "0bd0fad793b15bb6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c42d1053c57614af", "level": "note", "message": {"text": "Unused endpoint: GET /jobinfo/{job_id}"}, "properties": {"repobilityId": "fed8d75fb97e3892", "scanner": "scanner-primary", "fingerprint": "c42d1053c57614af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c07458632bad6a30", "level": "note", "message": {"text": "Unused endpoint: POST /jobinfo"}, "properties": {"repobilityId": "57f298e3d725bcd9", "scanner": "scanner-primary", "fingerprint": "c07458632bad6a30", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b5fea715380297dd", "level": "note", "message": {"text": "Unused endpoint: POST /canceljob/{job_id}"}, "properties": {"repobilityId": "c38b5dd8050e4d4a", "scanner": "scanner-primary", "fingerprint": "b5fea715380297dd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4338fe485674fc73", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/run-ash"}, "properties": {"repobilityId": "c68346eb35a1d1a6", "scanner": "scanner-primary", "fingerprint": "4338fe485674fc73", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-85e8414f21968886", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/tasks/upload-dem/"}, "properties": {"repobilityId": "632d0b85eec5163e", "scanner": "scanner-primary", "fingerprint": "85e8414f21968886", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a6306f624e03c926", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/fetch-dem-and-build-channels"}, "properties": {"repobilityId": "982ab7da20e88e2c", "scanner": "scanner-primary", "fingerprint": "a6306f624e03c926", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9cb95f5c6b23b413", "level": "note", "message": {"text": "Unused endpoint: POST /runs/{runid}/{config}/set-outlet"}, "properties": {"repobilityId": "b3dac4a12f834322", "scanner": "scanner-primary", "fingerprint": "9cb95f5c6b23b413", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}