{"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-f2ed14dcaa7a6f25", "name": "Possibly dead Python function: render", "shortDescription": {"text": "Possibly dead Python function: render"}, "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-a954757c754fd30d", "name": "Possibly dead Python function: clear_context_cache", "shortDescription": {"text": "Possibly dead Python function: clear_context_cache"}, "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-04d6d171b4dd7616", "name": "Possibly dead Python function: key", "shortDescription": {"text": "Possibly dead Python function: key"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-01ab16c6816373b2", "name": "Possibly dead Python function: tag_one", "shortDescription": {"text": "Possibly dead Python function: tag_one"}, "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-5dd79c8673220e0f", "name": "Insecure pattern 'direct_innerhtml_assignment' in index.html:984", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:984"}, "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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-02c5ff95673a93cc", "name": "Very large file: serve.py (1704 lines)", "shortDescription": {"text": "Very large file: serve.py (1704 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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 5 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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 29 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: ci, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-39f5f8146449bff3", "name": "Legacy-named symbol `old_legacy` in serve.py:1694", "shortDescription": {"text": "Legacy-named symbol `old_legacy` in serve.py:1694"}, "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-40b61b551d7153cd", "name": "Commented-code block (7 lines) in tag.py:337", "shortDescription": {"text": "Commented-code block (7 lines) in tag.py:337"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nthumbs.py:cmd_thumbs, dedupe.py:cmd_dedupe\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-73d71bb18e7fa739", "name": "FastAPI POST `api_endpoints_toggle` without auth dependency \u2014 serve.py:230", "shortDescription": {"text": "FastAPI POST `api_endpoints_toggle` without auth dependency \u2014 serve.py:230"}, "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-c0febc32027394bf", "name": "FastAPI POST `api_llm_check` without auth dependency \u2014 serve.py:248", "shortDescription": {"text": "FastAPI POST `api_llm_check` without auth dependency \u2014 serve.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-931e8ff01a28826e", "name": "FastAPI POST `api_players_stop` without auth dependency \u2014 serve.py:580", "shortDescription": {"text": "FastAPI POST `api_players_stop` without auth dependency \u2014 serve.py:580"}, "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-4346f4e64b031d32", "name": "FastAPI POST `api_viewed` without auth dependency \u2014 serve.py:597", "shortDescription": {"text": "FastAPI POST `api_viewed` without auth dependency \u2014 serve.py:597"}, "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-d041603891fc6ded", "name": "FastAPI POST `api_set_settings` without auth dependency \u2014 serve.py:621", "shortDescription": {"text": "FastAPI POST `api_set_settings` without auth dependency \u2014 serve.py:621"}, "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-7349c919f5097090", "name": "FastAPI POST `api_tags_apply` without auth dependency \u2014 serve.py:676", "shortDescription": {"text": "FastAPI POST `api_tags_apply` without auth dependency \u2014 serve.py:676"}, "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-31aec032c324748a", "name": "FastAPI POST `api_normalize` without auth dependency \u2014 serve.py:725", "shortDescription": {"text": "FastAPI POST `api_normalize` without auth dependency \u2014 serve.py:725"}, "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-7bc0d66a8f005303", "name": "FastAPI POST `api_tagger_start` without auth dependency \u2014 serve.py:765", "shortDescription": {"text": "FastAPI POST `api_tagger_start` without auth dependency \u2014 serve.py:765"}, "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-2aab6b7aca30f6a3", "name": "FastAPI POST `api_retag_selected` without auth dependency \u2014 serve.py:796", "shortDescription": {"text": "FastAPI POST `api_retag_selected` without auth dependency \u2014 serve.py:796"}, "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-cfebffc07a116158", "name": "FastAPI POST `api_dedupe_start` without auth dependency \u2014 serve.py:858", "shortDescription": {"text": "FastAPI POST `api_dedupe_start` without auth dependency \u2014 serve.py:858"}, "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-bf337f880eebf1e8", "name": "FastAPI POST `api_rescan` without auth dependency \u2014 serve.py:870", "shortDescription": {"text": "FastAPI POST `api_rescan` without auth dependency \u2014 serve.py:870"}, "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-731cee03e69408ea", "name": "FastAPI POST `api_tagger_stop` without auth dependency \u2014 serve.py:880", "shortDescription": {"text": "FastAPI POST `api_tagger_stop` without auth dependency \u2014 serve.py:880"}, "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-eeb6efca66def6c6", "name": "FastAPI POST `api_db_optimize` without auth dependency \u2014 serve.py:961", "shortDescription": {"text": "FastAPI POST `api_db_optimize` without auth dependency \u2014 serve.py:961"}, "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-cf96ff875755eb1d", "name": "FastAPI POST `api_open` without auth dependency \u2014 serve.py:1335", "shortDescription": {"text": "FastAPI POST `api_open` without auth dependency \u2014 serve.py:1335"}, "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-100f479bb7886a04", "name": "FastAPI POST `api_duplicates_delete` without auth dependency \u2014 serve.py:1500", "shortDescription": {"text": "FastAPI POST `api_duplicates_delete` without auth dependency \u2014 serve.py:1500"}, "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-68a417884e60d289", "name": "FastAPI POST `api_lora_export` without auth dependency \u2014 serve.py:1537", "shortDescription": {"text": "FastAPI POST `api_lora_export` without auth dependency \u2014 serve.py:1537"}, "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-20f6e7a8167b118f", "name": "FastAPI POST `api_play` without auth dependency \u2014 serve.py:1634", "shortDescription": {"text": "FastAPI POST `api_play` without auth dependency \u2014 serve.py:1634"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/24893"}, "properties": {"repository": "chamm-p/mediasearch", "repoUrl": "https://github.com/chamm-p/mediasearch", "branch": "main"}, "results": [{"ruleId": "scanner-f2ed14dcaa7a6f25", "level": "note", "message": {"text": "Possibly dead Python function: render"}, "properties": {"repobilityId": "a287debe7751b057", "scanner": "scanner-primary", "fingerprint": "f2ed14dcaa7a6f25", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a954757c754fd30d", "level": "note", "message": {"text": "Possibly dead Python function: clear_context_cache"}, "properties": {"repobilityId": "da97ff54973543b0", "scanner": "scanner-primary", "fingerprint": "a954757c754fd30d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "common.py:162"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-04d6d171b4dd7616", "level": "note", "message": {"text": "Possibly dead Python function: key"}, "properties": {"repobilityId": "82ad9f64418e6fec", "scanner": "scanner-primary", "fingerprint": "04d6d171b4dd7616", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tag.py:423"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-01ab16c6816373b2", "level": "note", "message": {"text": "Possibly dead Python function: tag_one"}, "properties": {"repobilityId": "9efe3b29d6bb6833", "scanner": "scanner-primary", "fingerprint": "01ab16c6816373b2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tag.py:597"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5dd79c8673220e0f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:984"}, "properties": {"repobilityId": "f91708437a3a5445", "scanner": "scanner-primary", "fingerprint": "5dd79c8673220e0f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "index.html"}, "region": {"startLine": 984}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-02c5ff95673a93cc", "level": "note", "message": {"text": "Very large file: serve.py (1704 lines)"}, "properties": {"repobilityId": "ae7e9810e69df5f2", "scanner": "scanner-primary", "fingerprint": "02c5ff95673a93cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "44f85905ad6809a9", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "3ddcf2d8f4b2025a", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-39f5f8146449bff3", "level": "note", "message": {"text": "Legacy-named symbol `old_legacy` in serve.py:1694"}, "properties": {"repobilityId": "d3dcc5b1ec47ac7b", "scanner": "scanner-primary", "fingerprint": "39f5f8146449bff3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-40b61b551d7153cd", "level": "none", "message": {"text": "Commented-code block (7 lines) in tag.py:337"}, "properties": {"repobilityId": "44cd61cabead2762", "scanner": "scanner-primary", "fingerprint": "40b61b551d7153cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a8524a9f3df91ec5", "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": "650845d8298ab4dd", "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": "b07c240cc8b1234c", "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": "7c30a28f21f295e1", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-73d71bb18e7fa739", "level": "error", "message": {"text": "FastAPI POST `api_endpoints_toggle` without auth dependency \u2014 serve.py:230"}, "properties": {"repobilityId": "13c192b77d504cc4", "scanner": "scanner-primary", "fingerprint": "73d71bb18e7fa739", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 230}}}]}, {"ruleId": "scanner-c0febc32027394bf", "level": "error", "message": {"text": "FastAPI POST `api_llm_check` without auth dependency \u2014 serve.py:248"}, "properties": {"repobilityId": "e818e857814cc10c", "scanner": "scanner-primary", "fingerprint": "c0febc32027394bf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 248}}}]}, {"ruleId": "scanner-931e8ff01a28826e", "level": "error", "message": {"text": "FastAPI POST `api_players_stop` without auth dependency \u2014 serve.py:580"}, "properties": {"repobilityId": "4f03fbc6d23e22eb", "scanner": "scanner-primary", "fingerprint": "931e8ff01a28826e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 580}}}]}, {"ruleId": "scanner-4346f4e64b031d32", "level": "error", "message": {"text": "FastAPI POST `api_viewed` without auth dependency \u2014 serve.py:597"}, "properties": {"repobilityId": "7febb5adf2b7ffc3", "scanner": "scanner-primary", "fingerprint": "4346f4e64b031d32", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 597}}}]}, {"ruleId": "scanner-d041603891fc6ded", "level": "error", "message": {"text": "FastAPI POST `api_set_settings` without auth dependency \u2014 serve.py:621"}, "properties": {"repobilityId": "2f6c54eda7352938", "scanner": "scanner-primary", "fingerprint": "d041603891fc6ded", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 621}}}]}, {"ruleId": "scanner-7349c919f5097090", "level": "error", "message": {"text": "FastAPI POST `api_tags_apply` without auth dependency \u2014 serve.py:676"}, "properties": {"repobilityId": "ae142e51dd37686d", "scanner": "scanner-primary", "fingerprint": "7349c919f5097090", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 676}}}]}, {"ruleId": "scanner-31aec032c324748a", "level": "error", "message": {"text": "FastAPI POST `api_normalize` without auth dependency \u2014 serve.py:725"}, "properties": {"repobilityId": "f35d7bac6c01bb62", "scanner": "scanner-primary", "fingerprint": "31aec032c324748a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 725}}}]}, {"ruleId": "scanner-7bc0d66a8f005303", "level": "error", "message": {"text": "FastAPI POST `api_tagger_start` without auth dependency \u2014 serve.py:765"}, "properties": {"repobilityId": "944af6a4fd4d528a", "scanner": "scanner-primary", "fingerprint": "7bc0d66a8f005303", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 765}}}]}, {"ruleId": "scanner-2aab6b7aca30f6a3", "level": "error", "message": {"text": "FastAPI POST `api_retag_selected` without auth dependency \u2014 serve.py:796"}, "properties": {"repobilityId": "83af259501128e64", "scanner": "scanner-primary", "fingerprint": "2aab6b7aca30f6a3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 796}}}]}, {"ruleId": "scanner-cfebffc07a116158", "level": "error", "message": {"text": "FastAPI POST `api_dedupe_start` without auth dependency \u2014 serve.py:858"}, "properties": {"repobilityId": "5c10718b56ec5dc2", "scanner": "scanner-primary", "fingerprint": "cfebffc07a116158", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 858}}}]}, {"ruleId": "scanner-bf337f880eebf1e8", "level": "error", "message": {"text": "FastAPI POST `api_rescan` without auth dependency \u2014 serve.py:870"}, "properties": {"repobilityId": "14480fcc10e14f64", "scanner": "scanner-primary", "fingerprint": "bf337f880eebf1e8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 870}}}]}, {"ruleId": "scanner-731cee03e69408ea", "level": "error", "message": {"text": "FastAPI POST `api_tagger_stop` without auth dependency \u2014 serve.py:880"}, "properties": {"repobilityId": "833f443d89b12cb5", "scanner": "scanner-primary", "fingerprint": "731cee03e69408ea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 880}}}]}, {"ruleId": "scanner-eeb6efca66def6c6", "level": "error", "message": {"text": "FastAPI POST `api_db_optimize` without auth dependency \u2014 serve.py:961"}, "properties": {"repobilityId": "9657f92a69f05814", "scanner": "scanner-primary", "fingerprint": "eeb6efca66def6c6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 961}}}]}, {"ruleId": "scanner-cf96ff875755eb1d", "level": "error", "message": {"text": "FastAPI POST `api_open` without auth dependency \u2014 serve.py:1335"}, "properties": {"repobilityId": "06b23b88f6fa4884", "scanner": "scanner-primary", "fingerprint": "cf96ff875755eb1d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 1335}}}]}, {"ruleId": "scanner-100f479bb7886a04", "level": "error", "message": {"text": "FastAPI POST `api_duplicates_delete` without auth dependency \u2014 serve.py:1500"}, "properties": {"repobilityId": "218d711485c92edc", "scanner": "scanner-primary", "fingerprint": "100f479bb7886a04", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 1500}}}]}, {"ruleId": "scanner-68a417884e60d289", "level": "error", "message": {"text": "FastAPI POST `api_lora_export` without auth dependency \u2014 serve.py:1537"}, "properties": {"repobilityId": "781b06b0c6dd34c4", "scanner": "scanner-primary", "fingerprint": "68a417884e60d289", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 1537}}}]}, {"ruleId": "scanner-20f6e7a8167b118f", "level": "error", "message": {"text": "FastAPI POST `api_play` without auth dependency \u2014 serve.py:1634"}, "properties": {"repobilityId": "362943f6bb5c68c1", "scanner": "scanner-primary", "fingerprint": "20f6e7a8167b118f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "serve.py"}, "region": {"startLine": 1634}}}]}]}]}