{"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-d53031796af5a517", "name": "Possibly dead Python function: check_precio", "shortDescription": {"text": "Possibly dead Python function: check_precio"}, "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-8e6d6f47c7fb0da2", "name": "Possibly dead Python function: check_consent", "shortDescription": {"text": "Possibly dead Python function: check_consent"}, "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-56c3aee4c031fac7", "name": "Possibly dead Python function: check_agenda", "shortDescription": {"text": "Possibly dead Python function: check_agenda"}, "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-43edd190021a3950", "name": "Possibly dead Python function: check_leak", "shortDescription": {"text": "Possibly dead Python function: check_leak"}, "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-316ea59dc5fecedd", "name": "Possibly dead Python function: check_finanzas", "shortDescription": {"text": "Possibly dead Python function: check_finanzas"}, "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-ed0d8fcafc9327a6", "name": "Possibly dead Python function: fake_buscar_paciente", "shortDescription": {"text": "Possibly dead Python function: fake_buscar_paciente"}, "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-6fdb6e5fea7f167c", "name": "Possibly dead Python function: fake_listar_citas_paciente", "shortDescription": {"text": "Possibly dead Python function: fake_listar_citas_paciente"}, "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-2b9acdd1fff667aa", "name": "Possibly dead Python function: fake_listar_citas_paciente_rut", "shortDescription": {"text": "Possibly dead Python function: fake_listar_citas_paciente_rut"}, "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-239b69c1024b6ad3", "name": "Possibly dead Python function: fake_crear_cita", "shortDescription": {"text": "Possibly dead Python function: fake_crear_cita"}, "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-c193d34429c2cbf0", "name": "Possibly dead Python function: fake_cancelar_cita", "shortDescription": {"text": "Possibly dead Python function: fake_cancelar_cita"}, "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-201ecbd997ec46cb", "name": "Possibly dead Python function: fake_verificar_slot_disponible", "shortDescription": {"text": "Possibly dead Python function: fake_verificar_slot_disponible"}, "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-608751e0030aee7f", "name": "Possibly dead Python function: fake_buscar_slots_dia_por_ids", "shortDescription": {"text": "Possibly dead Python function: fake_buscar_slots_dia_por_ids"}, "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-f0d98b275ec1cc9d", "name": "Possibly dead Python function: fake_consultar_proxima_fecha", "shortDescription": {"text": "Possibly dead Python function: fake_consultar_proxima_fecha"}, "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-d3aa50cd6206025a", "name": "Possibly dead Python function: fake_get_horario", "shortDescription": {"text": "Possibly dead Python function: fake_get_horario"}, "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-54b58a5611b45a05", "name": "Possibly dead Python function: fake_detect_intent", "shortDescription": {"text": "Possibly dead Python function: fake_detect_intent"}, "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-2156cd3450333715", "name": "Possibly dead Python function: fake_respuesta_faq", "shortDescription": {"text": "Possibly dead Python function: fake_respuesta_faq"}, "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-fa751005f5bcc305", "name": "Possibly dead Python function: m1_ecografia", "shortDescription": {"text": "Possibly dead Python function: m1_ecografia"}, "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-5b907c03f111fb10", "name": "Possibly dead Python function: m2_ctwa", "shortDescription": {"text": "Possibly dead Python function: m2_ctwa"}, "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-83c665dd865a2b53", "name": "Possibly dead Python function: m3_precio", "shortDescription": {"text": "Possibly dead Python function: m3_precio"}, "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-b3798af0364895ec", "name": "Possibly dead Python function: m4_abandono", "shortDescription": {"text": "Possibly dead Python function: m4_abandono"}, "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-ac1f3170ff968571", "name": "Possibly dead Python function: m5_takeover", "shortDescription": {"text": "Possibly dead Python function: m5_takeover"}, "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-f14b08a0fc336d3f", "name": "Possibly dead Python function: m6_proactive", "shortDescription": {"text": "Possibly dead Python function: m6_proactive"}, "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-892803213694dca0", "name": "Possibly dead Python function: m7_dental", "shortDescription": {"text": "Possibly dead Python function: m7_dental"}, "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-05439cbf8b91c20c", "name": "Possibly dead Python function: m8_degradado_orl", "shortDescription": {"text": "Possibly dead Python function: m8_degradado_orl"}, "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-d9275e1699ecc4e1", "name": "Possibly dead Python function: m0_general", "shortDescription": {"text": "Possibly dead Python function: m0_general"}, "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-5af0d757e155be9c", "name": "Possibly dead Python function: enviar_magic_link", "shortDescription": {"text": "Possibly dead Python function: enviar_magic_link"}, "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-56313a2fec8c4f7c", "name": "Possibly dead Python function: sync_todos", "shortDescription": {"text": "Possibly dead Python function: sync_todos"}, "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-835922547abbd5fc", "name": "Possibly dead Python function: cobertura_validacion", "shortDescription": {"text": "Possibly dead Python function: cobertura_validacion"}, "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-35afe738ed8f187b", "name": "Possibly dead Python function: process_inbound_dental", "shortDescription": {"text": "Possibly dead Python function: process_inbound_dental"}, "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-4f46f5d871b2aa79", "name": "Possibly dead Python function: send_whatsapp_document", "shortDescription": {"text": "Possibly dead Python function: send_whatsapp_document"}, "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-40559d47705e0664", "name": "`truncate` class without `title=` for hover reveal \u2014 sites/adkun-gpt/js/alma.jsx:125", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 sites/adkun-gpt/js/alma.jsx:125"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c101c5148cd8a75e", "name": "Privileged port 19 in use", "shortDescription": {"text": "Privileged port 19 in use"}, "fullDescription": {"text": "Port 19 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-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: 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-e066691601852931", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-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-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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0185558d86a3751d", "name": "Insecure pattern 'direct_innerhtml_assignment' in sitio-web/v3.html:1263", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in sitio-web/v3.html:1263"}, "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-1abea019d545dae2", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/snapshots/dashboard_marzo_2026.html:1079", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/snapshots/dashboard_marzo_2026.html:1079"}, "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-ebbf0293c90d5b97", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/snapshots/dashboard-flows.html:1077", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/snapshots/dashboard-flows.html:1077"}, "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-8337b2c59aa961ae", "name": "Possible secret in app/admin_routes.py", "shortDescription": {"text": "Possible secret in app/admin_routes.py"}, "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-d31b5e60fcf87c1e", "name": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-05-02/cuando-consultar-medico-general.html:385", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-05-02/cuando-consultar-medico-general.html:385"}, "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-961c3a5191c88944", "name": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-05-02/home.html:1442", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-05-02/home.html:1442"}, "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-a5ab30da3f2df808", "name": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/index.html:1442", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/index.html:1442"}, "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-1e4f9b377dcf7407", "name": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/elementor-26201.html:1426", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/elementor-26201.html:1426"}, "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-244ef955542806b5", "name": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/cuando-consultar-medico-general.html:385", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/cuando-consultar-medico-general.html:385"}, "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-256af27199fae341", "name": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/centro-medico-carampangue-2.html:1345", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/centro-medico-carampangue-2.html:1345"}, "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-35e860f2c743b593", "name": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/centro-medico-principal.html:1442", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/centro-medico-principal.html:1442"}, "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-49cae05110d82d85", "name": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/centro-medico-carampangue.html:1387", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/centro-medico-carampangue.html:1387"}, "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-0f304f14934f6af0", "name": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/raiz-home.html:1442", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/raiz-home.html:1442"}, "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-1a50467f36b413ec", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9778d6ae78ba2392", "name": "Very large file: tests/test_regression_real_cases.py (1434 lines)", "shortDescription": {"text": "Very large file: tests/test_regression_real_cases.py (1434 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-7b4b5963a3ef5e06", "name": "Very large file: tests/harness_stress_200.py (1606 lines)", "shortDescription": {"text": "Very large file: tests/harness_stress_200.py (1606 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-96601758be13d524", "name": "Very large file: tests/harness_50.py (1153 lines)", "shortDescription": {"text": "Very large file: tests/harness_50.py (1153 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-066d734573cc9208", "name": "Very large file: tests/harness_agenda_200.py (1896 lines)", "shortDescription": {"text": "Very large file: tests/harness_agenda_200.py (1896 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-15522409291d9924", "name": "Very large file: scripts/gen_blogs_specialty.py (801 lines)", "shortDescription": {"text": "Very large file: scripts/gen_blogs_specialty.py (801 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-e5cad49f312874e0", "name": "Very large file: scripts/gen_blogs_specialty_v2.py (1016 lines)", "shortDescription": {"text": "Very large file: scripts/gen_blogs_specialty_v2.py (1016 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-3f457009346c70e3", "name": "Very large file: app/pagos_routes.py (2204 lines)", "shortDescription": {"text": "Very large file: app/pagos_routes.py (2204 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-3ee3a67d3194f942", "name": "Very large file: app/fidelizacion.py (1651 lines)", "shortDescription": {"text": "Very large file: app/fidelizacion.py (1651 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-0cd1f753e75be48c", "name": "Very large file: app/claude_helper.py (2632 lines)", "shortDescription": {"text": "Very large file: app/claude_helper.py (2632 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-ec9e43104378ae67", "name": "Very large file: app/winback.py (1335 lines)", "shortDescription": {"text": "Very large file: app/winback.py (1335 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-2de2f26bfb06de93", "name": "Very large file: app/medilink.py (2271 lines)", "shortDescription": {"text": "Very large file: app/medilink.py (2271 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-52caad802c89762b", "name": "Very large file: app/jobs.py (4078 lines)", "shortDescription": {"text": "Very large file: app/jobs.py (4078 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-a03baeaa4fe6c643", "name": "Very large file: app/programas.py (1479 lines)", "shortDescription": {"text": "Very large file: app/programas.py (1479 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-764f7d237a39bcbb", "name": "Very large file: app/session.py (5769 lines)", "shortDescription": {"text": "Very large file: app/session.py (5769 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-1ae447b9bd6724a2", "name": "Very large file: app/main.py (9731 lines)", "shortDescription": {"text": "Very large file: app/main.py (9731 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-b01dd66a8e5cee74", "name": "Very large file: app/admin_routes.py (2983 lines)", "shortDescription": {"text": "Very large file: app/admin_routes.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-c517e8df12553b57", "name": "Very large file: app/flows.py (14938 lines)", "shortDescription": {"text": "Very large file: app/flows.py (14938 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-4a363422cb79aa99", "name": "Very large file: app/autopilot/routes.py (1247 lines)", "shortDescription": {"text": "Very large file: app/autopilot/routes.py (1247 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-e8273fed39b6fe9a", "name": "115 TODO/FIXME markers", "shortDescription": {"text": "115 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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "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 481 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 28 placeholder/mock markers across 10 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-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "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-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "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-c645ff23ba28c153", "name": "Legacy-named symbol `test_get_recepcion_msgs_empty_when_old` in tests/test_recepcion_context.py:97", "shortDescription": {"text": "Legacy-named symbol `test_get_recepcion_msgs_empty_when_old` in tests/test_recepcion_context.py:97"}, "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-465351ab6b6667e0", "name": "Commented-code block (5 lines) in tests/test_horas_vacias.py:116", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_horas_vacias.py:116"}, "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-87060df162066f01", "name": "Legacy-named symbol `consent_marketing_v1` in tests/test_winback_e2e.py:42", "shortDescription": {"text": "Legacy-named symbol `consent_marketing_v1` in tests/test_winback_e2e.py:42"}, "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-3c562a478c4aa7ac", "name": "Legacy-named symbol `crosssell_ortodoncia_post_dental_v1` in tests/test_crosssell_post_dental_template.py:4", "shortDescription": {"text": "Legacy-named symbol `crosssell_ortodoncia_post_dental_v1` in tests/test_crosssell_post_dental_template.py:4"}, "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-84c6e730312e9735", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/alma_kit.js:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/alma_kit.js:19"}, "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-ace8486054bc9566", "name": "Commented-code block (8 lines) in scripts/nightly_order.py:10", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/nightly_order.py:10"}, "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-e3b30217f1368133", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/nightly_order.py:32", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/nightly_order.py:32"}, "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-f8d7b79b33aa2245", "name": "Commented-code block (5 lines) in scripts/backfill_winback_attribution.py:361", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/backfill_winback_attribution.py:361"}, "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-bfdb43bfb0dbf5c0", "name": "Legacy-named symbol `winback_generico_sensible_v1` in scripts/upload_templates_to_meta.py:59", "shortDescription": {"text": "Legacy-named symbol `winback_generico_sensible_v1` in scripts/upload_templates_to_meta.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-e975f6cd3a56ca13", "name": "Commented-code block (5 lines) in scripts/heatmap_comunas.py:338", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/heatmap_comunas.py:338"}, "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-065bf8f24739ffaf", "name": "Commented-code block (5 lines) in scripts/cac_report.py:203", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/cac_report.py:203"}, "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-405c530f62fd9b53", "name": "Legacy-named symbol `consent_marketing_v1` in scripts/migrate_consent_canonical.py:134", "shortDescription": {"text": "Legacy-named symbol `consent_marketing_v1` in scripts/migrate_consent_canonical.py:134"}, "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-346fcbf38c10f162", "name": "Legacy-named symbol `gen_blogs_specialty_v2` in scripts/gen_blogs_specialty_v2.py:7", "shortDescription": {"text": "Legacy-named symbol `gen_blogs_specialty_v2` in scripts/gen_blogs_specialty_v2.py:7"}, "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-13107375d1479339", "name": "Legacy-named symbol `corregir_headers_v2` in scripts/corregir_headers_v2.py:13", "shortDescription": {"text": "Legacy-named symbol `corregir_headers_v2` in scripts/corregir_headers_v2.py:13"}, "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-dcdcced05280faae", "name": "Legacy-named symbol `winback_mg_v1` in scripts/register_winback_templates.py:12", "shortDescription": {"text": "Legacy-named symbol `winback_mg_v1` in scripts/register_winback_templates.py:12"}, "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-422400d066d15f5c", "name": "Legacy-named symbol `winback_mg_v1` in scripts/lanzar_campana_winback.py:9", "shortDescription": {"text": "Legacy-named symbol `winback_mg_v1` in scripts/lanzar_campana_winback.py:9"}, "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-2409f6fe9630a592", "name": "Legacy-named symbol `crear_templates_v2` in scripts/crear_templates_v2.py:12", "shortDescription": {"text": "Legacy-named symbol `crear_templates_v2` in scripts/crear_templates_v2.py:12"}, "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-510d744a2d2e9d50", "name": "Stub function `fake_respuesta_faq` (body is just `pass`/`return`) \u2014 scripts/adversarial_chat.py:152", "shortDescription": {"text": "Stub function `fake_respuesta_faq` (body is just `pass`/`return`) \u2014 scripts/adversarial_chat.py:152"}, "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-7c694be1cd2cce79", "name": "Legacy-named symbol `origen_legacy` in app/pagos_routes.py:1624", "shortDescription": {"text": "Legacy-named symbol `origen_legacy` in app/pagos_routes.py:1624"}, "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-ede260dfccc4a524", "name": "Commented-code block (6 lines) in app/pagos_routes.py:1016", "shortDescription": {"text": "Commented-code block (6 lines) in app/pagos_routes.py:1016"}, "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-660fbbd74d0b684f", "name": "Commented-code block (5 lines) in app/sobrecupo.py:143", "shortDescription": {"text": "Commented-code block (5 lines) in app/sobrecupo.py:143"}, "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-bab82c790f83ad4f", "name": "Commented-code block (6 lines) in app/bi_sync.py:663", "shortDescription": {"text": "Commented-code block (6 lines) in app/bi_sync.py:663"}, "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-ee2c200b5f4e85d8", "name": "Legacy-named symbol `crosssell_ortodoncia_post_dental_v1` in app/fidelizacion.py:1558", "shortDescription": {"text": "Legacy-named symbol `crosssell_ortodoncia_post_dental_v1` in app/fidelizacion.py:1558"}, "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-df62edcc3e998133", "name": "Commented-code block (5 lines) in app/fidelizacion.py:270", "shortDescription": {"text": "Commented-code block (5 lines) in app/fidelizacion.py:270"}, "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-7e589367e8ac6865", "name": "Legacy-named symbol `consent_dental_v1` in app/promo_postconsent.py:25", "shortDescription": {"text": "Legacy-named symbol `consent_dental_v1` in app/promo_postconsent.py:25"}, "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-0354c1555d48b3ef", "name": "Legacy-named symbol `dental_limpieza_junio_v2` in app/envios_routes.py:62", "shortDescription": {"text": "Legacy-named symbol `dental_limpieza_junio_v2` in app/envios_routes.py:62"}, "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-bf38cd6ebd5774d8", "name": "Commented-code block (5 lines) in app/ortodoncia_routes.py:108", "shortDescription": {"text": "Commented-code block (5 lines) in app/ortodoncia_routes.py:108"}, "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-e796cafae780a33c", "name": "Commented-code block (6 lines) in app/agendador_routes.py:126", "shortDescription": {"text": "Commented-code block (6 lines) in app/agendador_routes.py:126"}, "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-2698197250c13872", "name": "Commented-code block (5 lines) in app/agenda_routes.py:17", "shortDescription": {"text": "Commented-code block (5 lines) in app/agenda_routes.py:17"}, "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-9f268bb927b2f446", "name": "Legacy-named symbol `winback_dental_odonto_general_v1` in app/dental_winback.py:65", "shortDescription": {"text": "Legacy-named symbol `winback_dental_odonto_general_v1` in app/dental_winback.py:65"}, "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-d1e71843000eda4f", "name": "Commented-code block (7 lines) in app/dental_winback.py:49", "shortDescription": {"text": "Commented-code block (7 lines) in app/dental_winback.py:49"}, "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-641c392c753c71a7", "name": "Commented-code block (5 lines) in app/messaging.py:229", "shortDescription": {"text": "Commented-code block (5 lines) in app/messaging.py:229"}, "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-d6b32bd6dc70f1fe", "name": "Legacy-named symbol `consent_dental_v1` in app/config.py:205", "shortDescription": {"text": "Legacy-named symbol `consent_dental_v1` in app/config.py:205"}, "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-9b9ef3ef38ea1d43", "name": "Commented-code block (9 lines) in app/config.py:114", "shortDescription": {"text": "Commented-code block (9 lines) in app/config.py:114"}, "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-842f3b35c52f9db8", "name": "Commented-code block (6 lines) in app/meta_capi.py:191", "shortDescription": {"text": "Commented-code block (6 lines) in app/meta_capi.py:191"}, "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-914e3c3bb0f9e209", "name": "Commented-code block (5 lines) in app/resilience.py:140", "shortDescription": {"text": "Commented-code block (5 lines) in app/resilience.py:140"}, "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-87b63d3bf15f381a", "name": "Commented-code block (5 lines) in app/claude_helper.py:35", "shortDescription": {"text": "Commented-code block (5 lines) in app/claude_helper.py:35"}, "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-4aaaad355c6e7887", "name": "Legacy-named symbol `dental_limpieza_junio_v2` in app/dental_promo_report.py:2", "shortDescription": {"text": "Legacy-named symbol `dental_limpieza_junio_v2` in app/dental_promo_report.py:2"}, "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-6457dff5ce9becc0", "name": "Legacy-named symbol `winback_medicina_general_v2` in app/winback.py:195", "shortDescription": {"text": "Legacy-named symbol `winback_medicina_general_v2` in app/winback.py:195"}, "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-068577cbab3320bf", "name": "Commented-code block (8 lines) in app/winback.py:155", "shortDescription": {"text": "Commented-code block (8 lines) in app/winback.py:155"}, "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-25d99848eb7eb99f", "name": "Commented-code block (7 lines) in app/medilink.py:404", "shortDescription": {"text": "Commented-code block (7 lines) in app/medilink.py:404"}, "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-84bf6f1d91488212", "name": "Legacy-named symbol `vuelos_page_v2` in app/vuelos_routes.py:245", "shortDescription": {"text": "Legacy-named symbol `vuelos_page_v2` in app/vuelos_routes.py:245"}, "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-b424a7d027eee410", "name": "Legacy-named symbol `crosssell_ortodoncia_post_dental_v1` in app/jobs.py:1234", "shortDescription": {"text": "Legacy-named symbol `crosssell_ortodoncia_post_dental_v1` in app/jobs.py:1234"}, "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-e9c3e6a4b91d7f88", "name": "Commented-code block (6 lines) in app/jobs.py:85", "shortDescription": {"text": "Commented-code block (6 lines) in app/jobs.py:85"}, "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-1fb725f6a0175713", "name": "Legacy-named symbol `google_places_v1` in app/google_rating.py:76", "shortDescription": {"text": "Legacy-named symbol `google_places_v1` in app/google_rating.py:76"}, "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-7739c08be6a29bea", "name": "Commented-code block (10 lines) in app/programas.py:125", "shortDescription": {"text": "Commented-code block (10 lines) in app/programas.py:125"}, "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-ed61984ad4833f16", "name": "Commented-code block (6 lines) in app/abonos_routes.py:40", "shortDescription": {"text": "Commented-code block (6 lines) in app/abonos_routes.py:40"}, "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-5c859be6bed32a7f", "name": "Legacy-named symbol `consent_marketing_v1` in app/session.py:2893", "shortDescription": {"text": "Legacy-named symbol `consent_marketing_v1` in app/session.py:2893"}, "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-4317b0c8438f9277", "name": "Commented-code block (5 lines) in app/session.py:81", "shortDescription": {"text": "Commented-code block (5 lines) in app/session.py:81"}, "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-6689ea50ec8b59a1", "name": "Legacy-named symbol `consent_dental_v1` in app/alma_control_routes.py:137", "shortDescription": {"text": "Legacy-named symbol `consent_dental_v1` in app/alma_control_routes.py:137"}, "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-0ba54bd34aaed3c7", "name": "Commented-code block (6 lines) in app/ecografias.py:361", "shortDescription": {"text": "Commented-code block (6 lines) in app/ecografias.py:361"}, "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-2ade7e33d71b607c", "name": "Commented-code block (6 lines) in app/reminders.py:135", "shortDescription": {"text": "Commented-code block (6 lines) in app/reminders.py:135"}, "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-99e73101cf2f0cf2", "name": "Legacy-named symbol `fecha_old` in app/prof_notifications.py:321", "shortDescription": {"text": "Legacy-named symbol `fecha_old` in app/prof_notifications.py:321"}, "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-e1a37934dec93206", "name": "Commented-code block (6 lines) in app/triage_ges.py:23", "shortDescription": {"text": "Commented-code block (6 lines) in app/triage_ges.py:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5da4823cfacbebe8", "name": "Commented-code block (5 lines) in app/staff_whitelist.py:19", "shortDescription": {"text": "Commented-code block (5 lines) in app/staff_whitelist.py:19"}, "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-37ab5c8d3de6e682", "name": "Legacy-named symbol `consent_marketing_v2` in app/main.py:215", "shortDescription": {"text": "Legacy-named symbol `consent_marketing_v2` in app/main.py:215"}, "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-e953c1cd0ec5908b", "name": "Commented-code block (5 lines) in app/main.py:134", "shortDescription": {"text": "Commented-code block (5 lines) in app/main.py:134"}, "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-f52c54c3968d55c0", "name": "Legacy-named symbol `admin_v2` in app/admin_routes.py:831", "shortDescription": {"text": "Legacy-named symbol `admin_v2` in app/admin_routes.py:831"}, "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-5aefde67d3c217f9", "name": "Commented-code block (6 lines) in app/admin_routes.py:356", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin_routes.py:356"}, "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-17326520ac290f1f", "name": "Legacy-named symbol `cita_old` in app/flows.py:1695", "shortDescription": {"text": "Legacy-named symbol `cita_old` in app/flows.py:1695"}, "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-8295d2bfb9c6c129", "name": "Commented-code block (6 lines) in app/flows.py:376", "shortDescription": {"text": "Commented-code block (6 lines) in app/flows.py:376"}, "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-df61a43701f9a831", "name": "Legacy-named symbol `dental_limpieza_junio_v2` in app/autopilot/routes.py:1146", "shortDescription": {"text": "Legacy-named symbol `dental_limpieza_junio_v2` in app/autopilot/routes.py:1146"}, "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-9062ff9f2bade8a8", "name": "Legacy-named symbol `prof_mg_abarca_v1` in app/autopilot/plantillas_profesionales.py:32", "shortDescription": {"text": "Legacy-named symbol `prof_mg_abarca_v1` in app/autopilot/plantillas_profesionales.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-6c41dc90bc69feb0", "name": "Commented-code block (5 lines) in app/autopilot/engine.py:44", "shortDescription": {"text": "Commented-code block (5 lines) in app/autopilot/engine.py:44"}, "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-d7021dddfe36c7f9", "name": "Commented-code block (7 lines) in app/autopilot/policy.py:92", "shortDescription": {"text": "Commented-code block (7 lines) in app/autopilot/policy.py:92"}, "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-5a7b74aa3b6e9d0e", "name": "Commented-code block (13 lines) in app/autopilot/seo_audit.py:84", "shortDescription": {"text": "Commented-code block (13 lines) in app/autopilot/seo_audit.py:84"}, "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-d685a0142537ede4", "name": "Commented-code block (5 lines) in app/autopilot/learned_skills.py:130", "shortDescription": {"text": "Commented-code block (5 lines) in app/autopilot/learned_skills.py:130"}, "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-73c0a1569b646433", "name": "Legacy-named symbol `admin_v2` in app/autopilot/email_render.py:29", "shortDescription": {"text": "Legacy-named symbol `admin_v2` in app/autopilot/email_render.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-276cc1f01c3daa9a", "name": "Commented-code block (6 lines) in app/autopilot/winback_report.py:83", "shortDescription": {"text": "Commented-code block (6 lines) in app/autopilot/winback_report.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-455a512a11141c6a", "name": "Commented-code block (5 lines) in app/autopilot/approvals.py:260", "shortDescription": {"text": "Commented-code block (5 lines) in app/autopilot/approvals.py:260"}, "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-9a4671c19d2f418d", "name": "Commented-code block (7 lines) in sites/adkun-gpt/js/tweaks-panel.jsx:15", "shortDescription": {"text": "Commented-code block (7 lines) in sites/adkun-gpt/js/tweaks-panel.jsx:15"}, "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-3b2d9e1213fed50e", "name": "187 env vars used in code but missing from .env.example", "shortDescription": {"text": "187 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ABONO_PSIQUIATRIA_CLP`, `ADKUN_ASSISTANT_ENABLED`, `ADKUN_ASSISTANT_PHONES`, `ADMIN_ALERT_PHONE`, `ADMIN_TOKEN`, `AD_DESIGNS_PATH`, `AGENDADOR_PUBLICO_ENABLED`, `AGENDADOR_WA_CONFIRM` + 179 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "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:\nscripts/gen_blogs_specialty.py:main, scripts/gen_blogs_specialty_v2.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-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:\nscripts/adversarial_chat.py:check, scripts/adversarial_chat.py:check, scripts/adversarial_chat.py:check\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-b873925e6bfa53e8", "name": "Near-duplicate function bodies in 22 places", "shortDescription": {"text": "Near-duplicate function bodies in 22 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\napp/interconsultas_routes.py:crear, app/interconsultas_routes.py:editar, app/checklist_routes.py:marcar, app/checklist_routes.py:crear_item\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-9dad557909b86499", "name": "Near-duplicate function bodies in 10 places", "shortDescription": {"text": "Near-duplicate function bodies in 10 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\napp/habilitacion_routes.py:patch_item, app/habilitacion_routes.py:add_item, app/habilitacion_routes.py:patch_sala, app/mantencion_routes.py:crear\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-689e4d855f16ecb0", "name": "FastAPI POST `post_pago` without auth dependency \u2014 app/pagos_routes.py:829", "shortDescription": {"text": "FastAPI POST `post_pago` without auth dependency \u2014 app/pagos_routes.py:829"}, "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-eee1e24484285f20", "name": "FastAPI PATCH `patch_pago` without auth dependency \u2014 app/pagos_routes.py:1089", "shortDescription": {"text": "FastAPI PATCH `patch_pago` without auth dependency \u2014 app/pagos_routes.py:1089"}, "fullDescription": {"text": "`@router.patch` 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-aaf0e216df842539", "name": "FastAPI POST `cruzar_origen` without auth dependency \u2014 app/pagos_routes.py:1573", "shortDescription": {"text": "FastAPI POST `cruzar_origen` without auth dependency \u2014 app/pagos_routes.py:1573"}, "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-e139ef1f0c0d8b5d", "name": "FastAPI POST `prellenar_pagos` without auth dependency \u2014 app/pagos_routes.py:1662", "shortDescription": {"text": "FastAPI POST `prellenar_pagos` without auth dependency \u2014 app/pagos_routes.py:1662"}, "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-f2bb192cfd602e6f", "name": "FastAPI PATCH `toggle_lock_pago` without auth dependency \u2014 app/pagos_routes.py:2149", "shortDescription": {"text": "FastAPI PATCH `toggle_lock_pago` without auth dependency \u2014 app/pagos_routes.py:2149"}, "fullDescription": {"text": "`@router.patch` 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-bb3976784d37cbb8", "name": "FastAPI DELETE `delete_pago` without auth dependency \u2014 app/pagos_routes.py:2182", "shortDescription": {"text": "FastAPI DELETE `delete_pago` without auth dependency \u2014 app/pagos_routes.py:2182"}, "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-8fda9c47c1695c3a", "name": "FastAPI POST `portal_request_code` without auth dependency \u2014 app/portal_routes.py:296", "shortDescription": {"text": "FastAPI POST `portal_request_code` without auth dependency \u2014 app/portal_routes.py:296"}, "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-9582ac00a089ebd4", "name": "FastAPI POST `portal_verify_code` without auth dependency \u2014 app/portal_routes.py:355", "shortDescription": {"text": "FastAPI POST `portal_verify_code` without auth dependency \u2014 app/portal_routes.py:355"}, "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-46e952f6c808dcda", "name": "FastAPI POST `portal_logout` without auth dependency \u2014 app/portal_routes.py:446", "shortDescription": {"text": "FastAPI POST `portal_logout` without auth dependency \u2014 app/portal_routes.py:446"}, "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-89caa43c318afa16", "name": "FastAPI POST `portal_add_vital` without auth dependency \u2014 app/portal_routes.py:459", "shortDescription": {"text": "FastAPI POST `portal_add_vital` without auth dependency \u2014 app/portal_routes.py:459"}, "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-bc9107a47062c180", "name": "FastAPI POST `portal_update_perfil` without auth dependency \u2014 app/portal_routes.py:546", "shortDescription": {"text": "FastAPI POST `portal_update_perfil` without auth dependency \u2014 app/portal_routes.py:546"}, "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-f44c283de683c038", "name": "FastAPI DELETE `portal_delete_vital` without auth dependency \u2014 app/portal_routes.py:570", "shortDescription": {"text": "FastAPI DELETE `portal_delete_vital` without auth dependency \u2014 app/portal_routes.py:570"}, "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-2424cbb06c2c4d8d", "name": "FastAPI POST `portal_family_switch` without auth dependency \u2014 app/portal_routes.py:696", "shortDescription": {"text": "FastAPI POST `portal_family_switch` without auth dependency \u2014 app/portal_routes.py:696"}, "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-e509e5d945d9ec6e", "name": "FastAPI POST `portal_family_add_minor` without auth dependency \u2014 app/portal_routes.py:729", "shortDescription": {"text": "FastAPI POST `portal_family_add_minor` without auth dependency \u2014 app/portal_routes.py:729"}, "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-6be94c74b3301ff2", "name": "FastAPI POST `portal_family_request_otp` without auth dependency \u2014 app/portal_routes.py:772", "shortDescription": {"text": "FastAPI POST `portal_family_request_otp` without auth dependency \u2014 app/portal_routes.py:772"}, "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-44befc9c1c22d458", "name": "FastAPI POST `portal_family_verify_otp` without auth dependency \u2014 app/portal_routes.py:824", "shortDescription": {"text": "FastAPI POST `portal_family_verify_otp` without auth dependency \u2014 app/portal_routes.py:824"}, "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-aceda3a6a3757f68", "name": "FastAPI DELETE `portal_family_remove` without auth dependency \u2014 app/portal_routes.py:856", "shortDescription": {"text": "FastAPI DELETE `portal_family_remove` without auth dependency \u2014 app/portal_routes.py:856"}, "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-8d07eb362669607b", "name": "FastAPI POST `crear` without auth dependency \u2014 app/inventario_routes.py:337", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/inventario_routes.py:337"}, "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-c88cb104111eb320", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/inventario_routes.py:394", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/inventario_routes.py:394"}, "fullDescription": {"text": "`@router.patch` 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-ab44dfa2efc33392", "name": "FastAPI POST `movimiento` without auth dependency \u2014 app/inventario_routes.py:437", "shortDescription": {"text": "FastAPI POST `movimiento` without auth dependency \u2014 app/inventario_routes.py:437"}, "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-9007321533227728", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/inventario_routes.py:516", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/inventario_routes.py:516"}, "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-0d8eeb21886546c5", "name": "FastAPI POST `seed_endpoint` without auth dependency \u2014 app/inventario_routes.py:538", "shortDescription": {"text": "FastAPI POST `seed_endpoint` without auth dependency \u2014 app/inventario_routes.py:538"}, "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-786a73262cc805b3", "name": "FastAPI PUT `set_plan` without auth dependency \u2014 app/ortodoncia_routes.py:337", "shortDescription": {"text": "FastAPI PUT `set_plan` without auth dependency \u2014 app/ortodoncia_routes.py:337"}, "fullDescription": {"text": "`@router.put` 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-73f97c3502d3f6a4", "name": "FastAPI POST `identificar` without auth dependency \u2014 app/agendador_routes.py:341", "shortDescription": {"text": "FastAPI POST `identificar` without auth dependency \u2014 app/agendador_routes.py:341"}, "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-e12ba47bfe510ea4", "name": "FastAPI POST `reservar` without auth dependency \u2014 app/agendador_routes.py:381", "shortDescription": {"text": "FastAPI POST `reservar` without auth dependency \u2014 app/agendador_routes.py:381"}, "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-311716df81b2c415", "name": "FastAPI POST `mis_horas` without auth dependency \u2014 app/agendador_routes.py:553", "shortDescription": {"text": "FastAPI POST `mis_horas` without auth dependency \u2014 app/agendador_routes.py:553"}, "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-777dad7e7b88794d", "name": "FastAPI POST `cancelar` without auth dependency \u2014 app/agendador_routes.py:594", "shortDescription": {"text": "FastAPI POST `cancelar` without auth dependency \u2014 app/agendador_routes.py:594"}, "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-363e5faf6538b9e9", "name": "FastAPI POST `marcar_llegada` without auth dependency \u2014 app/checkin_routes.py:139", "shortDescription": {"text": "FastAPI POST `marcar_llegada` without auth dependency \u2014 app/checkin_routes.py:139"}, "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-2578baa9e243fe91", "name": "FastAPI POST `marcar_atendido` without auth dependency \u2014 app/checkin_routes.py:209", "shortDescription": {"text": "FastAPI POST `marcar_atendido` without auth dependency \u2014 app/checkin_routes.py:209"}, "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-3753a2c2e59acbcf", "name": "FastAPI POST `post_crear_cita` without auth dependency \u2014 app/agenda_routes.py:216", "shortDescription": {"text": "FastAPI POST `post_crear_cita` without auth dependency \u2014 app/agenda_routes.py:216"}, "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-c6331513a0d24ecc", "name": "FastAPI POST `crear` without auth dependency \u2014 app/interconsultas_routes.py:85", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/interconsultas_routes.py:85"}, "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-1b1c75c38a62bbd9", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/interconsultas_routes.py:117", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/interconsultas_routes.py:117"}, "fullDescription": {"text": "`@router.patch` 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-4691f16381062dd5", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/interconsultas_routes.py:145", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/interconsultas_routes.py:145"}, "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-e10b1252fd7b2115", "name": "FastAPI POST `marcar` without auth dependency \u2014 app/checklist_routes.py:210", "shortDescription": {"text": "FastAPI POST `marcar` without auth dependency \u2014 app/checklist_routes.py:210"}, "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-5a8ecf3048de9548", "name": "FastAPI POST `desmarcar` without auth dependency \u2014 app/checklist_routes.py:238", "shortDescription": {"text": "FastAPI POST `desmarcar` without auth dependency \u2014 app/checklist_routes.py:238"}, "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-cb8d9c22e2d01a74", "name": "FastAPI POST `crear_item` without auth dependency \u2014 app/checklist_routes.py:266", "shortDescription": {"text": "FastAPI POST `crear_item` without auth dependency \u2014 app/checklist_routes.py:266"}, "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-aa17ca7c60e6dae3", "name": "FastAPI PATCH `editar_item` without auth dependency \u2014 app/checklist_routes.py:290", "shortDescription": {"text": "FastAPI PATCH `editar_item` without auth dependency \u2014 app/checklist_routes.py:290"}, "fullDescription": {"text": "`@router.patch` 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-80fb8134736a31a6", "name": "FastAPI DELETE `borrar_item` without auth dependency \u2014 app/checklist_routes.py:320", "shortDescription": {"text": "FastAPI DELETE `borrar_item` without auth dependency \u2014 app/checklist_routes.py:320"}, "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-6cb6ce7804427ad5", "name": "FastAPI POST `mural_post` without auth dependency \u2014 app/checklist_routes.py:390", "shortDescription": {"text": "FastAPI POST `mural_post` without auth dependency \u2014 app/checklist_routes.py:390"}, "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-ffe0543d42a0199d", "name": "FastAPI POST `mural_resolver` without auth dependency \u2014 app/checklist_routes.py:430", "shortDescription": {"text": "FastAPI POST `mural_resolver` without auth dependency \u2014 app/checklist_routes.py:430"}, "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-a79f6cc8ab96ca46", "name": "FastAPI POST `mural_pendiente` without auth dependency \u2014 app/checklist_routes.py:442", "shortDescription": {"text": "FastAPI POST `mural_pendiente` without auth dependency \u2014 app/checklist_routes.py:442"}, "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-0d5312d98fb245c3", "name": "FastAPI DELETE `mural_borrar` without auth dependency \u2014 app/checklist_routes.py:451", "shortDescription": {"text": "FastAPI DELETE `mural_borrar` without auth dependency \u2014 app/checklist_routes.py:451"}, "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-3cf94f969d0ae0de", "name": "FastAPI PUT `set_plan` without auth dependency \u2014 app/kine_routes.py:277", "shortDescription": {"text": "FastAPI PUT `set_plan` without auth dependency \u2014 app/kine_routes.py:277"}, "fullDescription": {"text": "`@router.put` 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-088c6b8c2ce921ea", "name": "FastAPI POST `crear` without auth dependency \u2014 app/finanzas_routes.py:107", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/finanzas_routes.py:107"}, "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-350057d989e78314", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/finanzas_routes.py:134", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/finanzas_routes.py:134"}, "fullDescription": {"text": "`@router.patch` 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-2b33b86d41beb8cb", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/finanzas_routes.py:162", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/finanzas_routes.py:162"}, "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-b048fcaca21a3f03", "name": "FastAPI POST `crear` without auth dependency \u2014 app/tareas_routes.py:78", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/tareas_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-312c0876a4b38a8d", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/tareas_routes.py:101", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/tareas_routes.py:101"}, "fullDescription": {"text": "`@router.patch` 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-52a0790b849ac586", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/tareas_routes.py:132", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/tareas_routes.py:132"}, "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-1a0b803f3c8fceeb", "name": "FastAPI POST `set_fuente` without auth dependency \u2014 app/patient_source_routes.py:98", "shortDescription": {"text": "FastAPI POST `set_fuente` without auth dependency \u2014 app/patient_source_routes.py:98"}, "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-be56e3a89ddcdba0", "name": "FastAPI POST `crear` without auth dependency \u2014 app/esterilizacion_routes.py:89", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/esterilizacion_routes.py:89"}, "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-8e01c25619309056", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/esterilizacion_routes.py:118", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/esterilizacion_routes.py:118"}, "fullDescription": {"text": "`@router.patch` 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-bd3e8eaecbef8bbc", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/esterilizacion_routes.py:146", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/esterilizacion_routes.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-fff4af3521e0895d", "name": "FastAPI PATCH `patch_item` without auth dependency \u2014 app/habilitacion_routes.py:174", "shortDescription": {"text": "FastAPI PATCH `patch_item` without auth dependency \u2014 app/habilitacion_routes.py:174"}, "fullDescription": {"text": "`@router.patch` 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-9c313491f67bb1c6", "name": "FastAPI POST `add_item` without auth dependency \u2014 app/habilitacion_routes.py:198", "shortDescription": {"text": "FastAPI POST `add_item` without auth dependency \u2014 app/habilitacion_routes.py:198"}, "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-5a8a5e438a0e2c0c", "name": "FastAPI DELETE `del_item` without auth dependency \u2014 app/habilitacion_routes.py:219", "shortDescription": {"text": "FastAPI DELETE `del_item` without auth dependency \u2014 app/habilitacion_routes.py:219"}, "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-5696aea42faef440", "name": "FastAPI PATCH `patch_sala` without auth dependency \u2014 app/habilitacion_routes.py:232", "shortDescription": {"text": "FastAPI PATCH `patch_sala` without auth dependency \u2014 app/habilitacion_routes.py:232"}, "fullDescription": {"text": "`@router.patch` 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-40d6dd931718d6f3", "name": "FastAPI POST `panel_cap_refresh` without auth dependency \u2014 app/panel_dia_routes.py:380", "shortDescription": {"text": "FastAPI POST `panel_cap_refresh` without auth dependency \u2014 app/panel_dia_routes.py:380"}, "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-c7e56ad449000882", "name": "FastAPI POST `generar` without auth dependency \u2014 app/liquidaciones_routes.py:90", "shortDescription": {"text": "FastAPI POST `generar` without auth dependency \u2014 app/liquidaciones_routes.py:90"}, "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-8c3c27a0703f388b", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/liquidaciones_routes.py:126", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/liquidaciones_routes.py:126"}, "fullDescription": {"text": "`@router.patch` 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-208b49ad2b0b7156", "name": "FastAPI PUT `set_plan` without auth dependency \u2014 app/programas.py:886", "shortDescription": {"text": "FastAPI PUT `set_plan` without auth dependency \u2014 app/programas.py:886"}, "fullDescription": {"text": "`@router.put` 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-e1652f131f3f7835", "name": "FastAPI POST `crear_segmento` without auth dependency \u2014 app/programas.py:951", "shortDescription": {"text": "FastAPI POST `crear_segmento` without auth dependency \u2014 app/programas.py:951"}, "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-38819a2b3cafcb90", "name": "FastAPI PUT `renombrar_segmento` without auth dependency \u2014 app/programas.py:970", "shortDescription": {"text": "FastAPI PUT `renombrar_segmento` without auth dependency \u2014 app/programas.py:970"}, "fullDescription": {"text": "`@router.put` 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-d5a90990641f563f", "name": "FastAPI DELETE `borrar_segmento` without auth dependency \u2014 app/programas.py:997", "shortDescription": {"text": "FastAPI DELETE `borrar_segmento` without auth dependency \u2014 app/programas.py:997"}, "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-b0ba72b0cb10314e", "name": "FastAPI PUT `set_segmento` without auth dependency \u2014 app/programas.py:1011", "shortDescription": {"text": "FastAPI PUT `set_segmento` without auth dependency \u2014 app/programas.py:1011"}, "fullDescription": {"text": "`@router.put` 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-2083484b08f0a8f1", "name": "FastAPI PUT `set_pendientes` without auth dependency \u2014 app/programas.py:1032", "shortDescription": {"text": "FastAPI PUT `set_pendientes` without auth dependency \u2014 app/programas.py:1032"}, "fullDescription": {"text": "`@router.put` 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-e776e925989b8e6f", "name": "FastAPI POST `agregar_medicion` without auth dependency \u2014 app/programas.py:1063", "shortDescription": {"text": "FastAPI POST `agregar_medicion` without auth dependency \u2014 app/programas.py:1063"}, "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-1fc6d2ba60db490e", "name": "FastAPI DELETE `borrar_medicion` without auth dependency \u2014 app/programas.py:1091", "shortDescription": {"text": "FastAPI DELETE `borrar_medicion` without auth dependency \u2014 app/programas.py:1091"}, "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-1519e962ea341021", "name": "FastAPI POST `crear_objetivo` without auth dependency \u2014 app/programas.py:1113", "shortDescription": {"text": "FastAPI POST `crear_objetivo` without auth dependency \u2014 app/programas.py:1113"}, "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-987a142b4272892f", "name": "FastAPI PUT `renombrar_objetivo` without auth dependency \u2014 app/programas.py:1132", "shortDescription": {"text": "FastAPI PUT `renombrar_objetivo` without auth dependency \u2014 app/programas.py:1132"}, "fullDescription": {"text": "`@router.put` 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-1e5dd5e6dce50253", "name": "FastAPI DELETE `borrar_objetivo` without auth dependency \u2014 app/programas.py:1158", "shortDescription": {"text": "FastAPI DELETE `borrar_objetivo` without auth dependency \u2014 app/programas.py:1158"}, "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-ddafd28824a60bf4", "name": "FastAPI PUT `set_objetivo` without auth dependency \u2014 app/programas.py:1171", "shortDescription": {"text": "FastAPI PUT `set_objetivo` without auth dependency \u2014 app/programas.py:1171"}, "fullDescription": {"text": "`@router.put` 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-15960956646f4c45", "name": "FastAPI POST `crear` without auth dependency \u2014 app/mantencion_routes.py:128", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/mantencion_routes.py:128"}, "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-6f934cdfbbe5d33f", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/mantencion_routes.py:152", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/mantencion_routes.py:152"}, "fullDescription": {"text": "`@router.patch` 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-e933e0bb208d3af3", "name": "FastAPI POST `registrar_mant` without auth dependency \u2014 app/mantencion_routes.py:180", "shortDescription": {"text": "FastAPI POST `registrar_mant` without auth dependency \u2014 app/mantencion_routes.py:180"}, "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-4dc85417b54edd0f", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/mantencion_routes.py:226", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/mantencion_routes.py:226"}, "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-5cb48f79188c07e9", "name": "FastAPI POST `post_abono` without auth dependency \u2014 app/abonos_routes.py:177", "shortDescription": {"text": "FastAPI POST `post_abono` without auth dependency \u2014 app/abonos_routes.py:177"}, "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-956c464ea65e655b", "name": "FastAPI PUT `put_abono` without auth dependency \u2014 app/abonos_routes.py:354", "shortDescription": {"text": "FastAPI PUT `put_abono` without auth dependency \u2014 app/abonos_routes.py:354"}, "fullDescription": {"text": "`@router.put` 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-29d87f2a1303fbf7", "name": "FastAPI POST `aplicar_abono` without auth dependency \u2014 app/abonos_routes.py:447", "shortDescription": {"text": "FastAPI POST `aplicar_abono` without auth dependency \u2014 app/abonos_routes.py:447"}, "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-0248479693bb151f", "name": "FastAPI DELETE `delete_abono` without auth dependency \u2014 app/abonos_routes.py:534", "shortDescription": {"text": "FastAPI DELETE `delete_abono` without auth dependency \u2014 app/abonos_routes.py:534"}, "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-a09d4f8a65b4a177", "name": "FastAPI POST `crear` without auth dependency \u2014 app/proveedores_routes.py:96", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/proveedores_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-891d200f09ed3ff4", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/proveedores_routes.py:121", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/proveedores_routes.py:121"}, "fullDescription": {"text": "`@router.patch` 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-981ba13d3dd822e6", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/proveedores_routes.py:147", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/proveedores_routes.py:147"}, "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-26a254bc91398031", "name": "FastAPI POST `crear_oc` without auth dependency \u2014 app/proveedores_routes.py:174", "shortDescription": {"text": "FastAPI POST `crear_oc` without auth dependency \u2014 app/proveedores_routes.py:174"}, "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-7453d85173656611", "name": "FastAPI PATCH `editar_oc` without auth dependency \u2014 app/proveedores_routes.py:200", "shortDescription": {"text": "FastAPI PATCH `editar_oc` without auth dependency \u2014 app/proveedores_routes.py:200"}, "fullDescription": {"text": "`@router.patch` 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-f3f6a2afda8bf04f", "name": "FastAPI DELETE `eliminar_oc` without auth dependency \u2014 app/proveedores_routes.py:227", "shortDescription": {"text": "FastAPI DELETE `eliminar_oc` without auth dependency \u2014 app/proveedores_routes.py:227"}, "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-b64445b627fb2eaa", "name": "FastAPI POST `control_toggle` without auth dependency \u2014 app/alma_control_routes.py:265", "shortDescription": {"text": "FastAPI POST `control_toggle` without auth dependency \u2014 app/alma_control_routes.py:265"}, "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-62ebc210722954ff", "name": "FastAPI POST `control_reset` without auth dependency \u2014 app/alma_control_routes.py:280", "shortDescription": {"text": "FastAPI POST `control_reset` without auth dependency \u2014 app/alma_control_routes.py:280"}, "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-1c22b5a6add9deb9", "name": "FastAPI POST `control_dryrun` without auth dependency \u2014 app/alma_control_routes.py:286", "shortDescription": {"text": "FastAPI POST `control_dryrun` without auth dependency \u2014 app/alma_control_routes.py:286"}, "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-f15b09f650a6d2af", "name": "FastAPI PUT `reasignar` without auth dependency \u2014 app/pagos_medilink_routes.py:197", "shortDescription": {"text": "FastAPI PUT `reasignar` without auth dependency \u2014 app/pagos_medilink_routes.py:197"}, "fullDescription": {"text": "`@router.put` 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-2ea41af3cca70c50", "name": "FastAPI POST `aplicar_repasada_endpoint` without auth dependency \u2014 app/pagos_medilink_routes.py:308", "shortDescription": {"text": "FastAPI POST `aplicar_repasada_endpoint` without auth dependency \u2014 app/pagos_medilink_routes.py:308"}, "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-ac6dfaff5c2c3e87", "name": "FastAPI POST `api_gasto_add` without auth dependency \u2014 app/ebitda_routes.py:213", "shortDescription": {"text": "FastAPI POST `api_gasto_add` without auth dependency \u2014 app/ebitda_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-7d2efcc14f6ef94c", "name": "FastAPI DELETE `api_gasto_del` without auth dependency \u2014 app/ebitda_routes.py:241", "shortDescription": {"text": "FastAPI DELETE `api_gasto_del` without auth dependency \u2014 app/ebitda_routes.py:241"}, "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-223595f12b40d810", "name": "FastAPI POST `crear` without auth dependency \u2014 app/equipo_routes.py:157", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/equipo_routes.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-de2432e3c24b81c8", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/equipo_routes.py:182", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/equipo_routes.py:182"}, "fullDescription": {"text": "`@router.patch` 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-341dde56f7511b8f", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/equipo_routes.py:210", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/equipo_routes.py:210"}, "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-489095d00e9c15cc", "name": "FastAPI POST `run_conciliacion` without auth dependency \u2014 app/conciliacion_routes.py:544", "shortDescription": {"text": "FastAPI POST `run_conciliacion` without auth dependency \u2014 app/conciliacion_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-eaac79b283e7f5b3", "name": "FastAPI POST `crear` without auth dependency \u2014 app/documentos_routes.py:119", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/documentos_routes.py:119"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a1a8c095c741b7ab", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/documentos_routes.py:142", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/documentos_routes.py:142"}, "fullDescription": {"text": "`@router.patch` 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-e3c10826f214c38b", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/documentos_routes.py:168", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/documentos_routes.py:168"}, "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-7d0532212499f0e2", "name": "FastAPI POST `crear` without auth dependency \u2014 app/examenes_routes.py:73", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/examenes_routes.py:73"}, "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-69367fefa1c79848", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/examenes_routes.py:99", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/examenes_routes.py:99"}, "fullDescription": {"text": "`@router.patch` 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-5abe2ed64e6533f6", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/examenes_routes.py:129", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/examenes_routes.py:129"}, "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-ebe4dd01b2513011", "name": "FastAPI POST `transcribir_foto` without auth dependency \u2014 app/examenes_routes.py:142", "shortDescription": {"text": "FastAPI POST `transcribir_foto` without auth dependency \u2014 app/examenes_routes.py:142"}, "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-11a1da471889e4b0", "name": "FastAPI POST `admin_login` without auth dependency \u2014 app/admin_routes.py:320", "shortDescription": {"text": "FastAPI POST `admin_login` without auth dependency \u2014 app/admin_routes.py:320"}, "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-faeb5a468767410e", "name": "FastAPI POST `admin_logout` without auth dependency \u2014 app/admin_routes.py:346", "shortDescription": {"text": "FastAPI POST `admin_logout` without auth dependency \u2014 app/admin_routes.py:346"}, "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-118dacdeb8a2b232", "name": "FastAPI POST `crear` without auth dependency \u2014 app/calidad_routes.py:77", "shortDescription": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/calidad_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-8d0d51bb6fdce030", "name": "FastAPI PATCH `editar` without auth dependency \u2014 app/calidad_routes.py:105", "shortDescription": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/calidad_routes.py:105"}, "fullDescription": {"text": "`@router.patch` 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-9a92a3ead7574528", "name": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/calidad_routes.py:133", "shortDescription": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/calidad_routes.py:133"}, "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-7dd1f82381615ba4", "name": "FastAPI POST `registrar_deposito` without auth dependency \u2014 app/caja_diaria_routes.py:284", "shortDescription": {"text": "FastAPI POST `registrar_deposito` without auth dependency \u2014 app/caja_diaria_routes.py:284"}, "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-2880018373686d31", "name": "FastAPI POST `upsert_caja_diaria` without auth dependency \u2014 app/caja_diaria_routes.py:332", "shortDescription": {"text": "FastAPI POST `upsert_caja_diaria` without auth dependency \u2014 app/caja_diaria_routes.py:332"}, "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-8bfc6264f077ea90", "name": "FastAPI PATCH `patch_caja_diaria` without auth dependency \u2014 app/caja_diaria_routes.py:377", "shortDescription": {"text": "FastAPI PATCH `patch_caja_diaria` without auth dependency \u2014 app/caja_diaria_routes.py:377"}, "fullDescription": {"text": "`@router.patch` 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-6536c18dfa50780f", "name": "FastAPI DELETE `delete_caja_diaria` without auth dependency \u2014 app/caja_diaria_routes.py:420", "shortDescription": {"text": "FastAPI DELETE `delete_caja_diaria` without auth dependency \u2014 app/caja_diaria_routes.py:420"}, "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-60be60cdfb8d469e", "name": "FastAPI POST `brain_refresh_api` without auth dependency \u2014 app/alma_brain/routes.py:74", "shortDescription": {"text": "FastAPI POST `brain_refresh_api` without auth dependency \u2014 app/alma_brain/routes.py:74"}, "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-398f7bad6b1fc732", "name": "FastAPI POST `brain_chat_api` without auth dependency \u2014 app/alma_brain/routes.py:94", "shortDescription": {"text": "FastAPI POST `brain_chat_api` without auth dependency \u2014 app/alma_brain/routes.py:94"}, "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-2a08e26576f675b1", "name": "FastAPI POST `brain_proposal_approve` without auth dependency \u2014 app/alma_brain/routes.py:120", "shortDescription": {"text": "FastAPI POST `brain_proposal_approve` without auth dependency \u2014 app/alma_brain/routes.py:120"}, "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-fcff2338e6fc3dbe", "name": "FastAPI POST `brain_proposal_reject` without auth dependency \u2014 app/alma_brain/routes.py:132", "shortDescription": {"text": "FastAPI POST `brain_proposal_reject` without auth dependency \u2014 app/alma_brain/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-ebe8e2a755c0fc3d", "name": "FastAPI POST `autopilot_refresh` without auth dependency \u2014 app/autopilot/routes.py:92", "shortDescription": {"text": "FastAPI POST `autopilot_refresh` without auth dependency \u2014 app/autopilot/routes.py:92"}, "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-b954aa716a8ec1a0", "name": "FastAPI POST `autopilot_atribucion_refresh` without auth dependency \u2014 app/autopilot/routes.py:125", "shortDescription": {"text": "FastAPI POST `autopilot_atribucion_refresh` without auth dependency \u2014 app/autopilot/routes.py:125"}, "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-8a7f388df549d81a", "name": "FastAPI POST `autopilot_designs_add` without auth dependency \u2014 app/autopilot/routes.py:157", "shortDescription": {"text": "FastAPI POST `autopilot_designs_add` without auth dependency \u2014 app/autopilot/routes.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-52843760223b9683", "name": "FastAPI DELETE `autopilot_designs_del` without auth dependency \u2014 app/autopilot/routes.py:170", "shortDescription": {"text": "FastAPI DELETE `autopilot_designs_del` without auth dependency \u2014 app/autopilot/routes.py:170"}, "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-c3353fccdc67ac1c", "name": "FastAPI POST `autopilot_designs_status` without auth dependency \u2014 app/autopilot/routes.py:177", "shortDescription": {"text": "FastAPI POST `autopilot_designs_status` without auth dependency \u2014 app/autopilot/routes.py:177"}, "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-ff179b48ac627419", "name": "FastAPI POST `autopilot_designs_generate` without auth dependency \u2014 app/autopilot/routes.py:219", "shortDescription": {"text": "FastAPI POST `autopilot_designs_generate` without auth dependency \u2014 app/autopilot/routes.py:219"}, "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-659685b281ba0238", "name": "FastAPI POST `autopilot_designs_save_edit` without auth dependency \u2014 app/autopilot/routes.py:258", "shortDescription": {"text": "FastAPI POST `autopilot_designs_save_edit` without auth dependency \u2014 app/autopilot/routes.py:258"}, "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-c2b2dce16e5aacb9", "name": "FastAPI POST `autopilot_designs_cutout` without auth dependency \u2014 app/autopilot/routes.py:295", "shortDescription": {"text": "FastAPI POST `autopilot_designs_cutout` without auth dependency \u2014 app/autopilot/routes.py:295"}, "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-f0e9809a19036012", "name": "FastAPI POST `email_segments_save` without auth dependency \u2014 app/autopilot/routes.py:367", "shortDescription": {"text": "FastAPI POST `email_segments_save` without auth dependency \u2014 app/autopilot/routes.py:367"}, "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-2b4b29edeb1db0eb", "name": "FastAPI DELETE `email_segments_del` without auth dependency \u2014 app/autopilot/routes.py:381", "shortDescription": {"text": "FastAPI DELETE `email_segments_del` without auth dependency \u2014 app/autopilot/routes.py:381"}, "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-2f6ab4f3211caa67", "name": "FastAPI POST `email_preview` without auth dependency \u2014 app/autopilot/routes.py:389", "shortDescription": {"text": "FastAPI POST `email_preview` without auth dependency \u2014 app/autopilot/routes.py:389"}, "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-04a5fe9b4bb9f945", "name": "FastAPI POST `email_baja_post` without auth dependency \u2014 app/autopilot/routes.py:462", "shortDescription": {"text": "FastAPI POST `email_baja_post` without auth dependency \u2014 app/autopilot/routes.py:462"}, "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-bf7b0edcde475873", "name": "FastAPI POST `audiences_overview_ep` without auth dependency \u2014 app/autopilot/routes.py:500", "shortDescription": {"text": "FastAPI POST `audiences_overview_ep` without auth dependency \u2014 app/autopilot/routes.py:500"}, "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-97cae46880148693", "name": "FastAPI POST `email_send_ep` without auth dependency \u2014 app/autopilot/routes.py:513", "shortDescription": {"text": "FastAPI POST `email_send_ep` without auth dependency \u2014 app/autopilot/routes.py:513"}, "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-a28958069e92e23e", "name": "FastAPI POST `optimizer_apply` without auth dependency \u2014 app/autopilot/routes.py:553", "shortDescription": {"text": "FastAPI POST `optimizer_apply` without auth dependency \u2014 app/autopilot/routes.py:553"}, "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-e057d39f042f0413", "name": "FastAPI POST `learned_skills_run` without auth dependency \u2014 app/autopilot/routes.py:601", "shortDescription": {"text": "FastAPI POST `learned_skills_run` without auth dependency \u2014 app/autopilot/routes.py:601"}, "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-f99e04acca635764", "name": "FastAPI POST `director_set_budget` without auth dependency \u2014 app/autopilot/routes.py:727", "shortDescription": {"text": "FastAPI POST `director_set_budget` without auth dependency \u2014 app/autopilot/routes.py:727"}, "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-fa3ebf1b902d86ca", "name": "FastAPI POST `publish_enqueue` without auth dependency \u2014 app/autopilot/routes.py:792", "shortDescription": {"text": "FastAPI POST `publish_enqueue` without auth dependency \u2014 app/autopilot/routes.py:792"}, "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-9d5856e34e11168c", "name": "FastAPI POST `publish_approve` without auth dependency \u2014 app/autopilot/routes.py:808", "shortDescription": {"text": "FastAPI POST `publish_approve` without auth dependency \u2014 app/autopilot/routes.py:808"}, "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-560f97b649166641", "name": "FastAPI POST `publish_reschedule` without auth dependency \u2014 app/autopilot/routes.py:824", "shortDescription": {"text": "FastAPI POST `publish_reschedule` without auth dependency \u2014 app/autopilot/routes.py:824"}, "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-ee0ba28e51157b60", "name": "FastAPI POST `publish_now` without auth dependency \u2014 app/autopilot/routes.py:839", "shortDescription": {"text": "FastAPI POST `publish_now` without auth dependency \u2014 app/autopilot/routes.py:839"}, "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-e934e4505826eee9", "name": "FastAPI DELETE `publish_delete` without auth dependency \u2014 app/autopilot/routes.py:849", "shortDescription": {"text": "FastAPI DELETE `publish_delete` without auth dependency \u2014 app/autopilot/routes.py:849"}, "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-dddb82fc6545b933", "name": "FastAPI POST `seo_audit_run` without auth dependency \u2014 app/autopilot/routes.py:900", "shortDescription": {"text": "FastAPI POST `seo_audit_run` without auth dependency \u2014 app/autopilot/routes.py:900"}, "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-e3ef025eade175d2", "name": "FastAPI POST `seo_targets_add` without auth dependency \u2014 app/autopilot/routes.py:926", "shortDescription": {"text": "FastAPI POST `seo_targets_add` without auth dependency \u2014 app/autopilot/routes.py:926"}, "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-4a3b5b9eef6287c5", "name": "FastAPI DELETE `seo_targets_del` without auth dependency \u2014 app/autopilot/routes.py:940", "shortDescription": {"text": "FastAPI DELETE `seo_targets_del` without auth dependency \u2014 app/autopilot/routes.py:940"}, "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-7e930c2059433415", "name": "FastAPI POST `pending_approve` without auth dependency \u2014 app/autopilot/routes.py:989", "shortDescription": {"text": "FastAPI POST `pending_approve` without auth dependency \u2014 app/autopilot/routes.py:989"}, "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-492b6452cbd69f78", "name": "FastAPI POST `pending_reject` without auth dependency \u2014 app/autopilot/routes.py:1001", "shortDescription": {"text": "FastAPI POST `pending_reject` without auth dependency \u2014 app/autopilot/routes.py:1001"}, "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-7842dba25b7a26a2", "name": "FastAPI POST `creatives_refresh` without auth dependency \u2014 app/autopilot/routes.py:1025", "shortDescription": {"text": "FastAPI POST `creatives_refresh` without auth dependency \u2014 app/autopilot/routes.py:1025"}, "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-1086ae53d8b4d490", "name": "FastAPI POST `autopilot_settings_set` without auth dependency \u2014 app/autopilot/routes.py:1068", "shortDescription": {"text": "FastAPI POST `autopilot_settings_set` without auth dependency \u2014 app/autopilot/routes.py:1068"}, "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-8a9f15ff8a22a5e8", "name": "FastAPI POST `autopilot_creatives_autogen` without auth dependency \u2014 app/autopilot/routes.py:1083", "shortDescription": {"text": "FastAPI POST `autopilot_creatives_autogen` without auth dependency \u2014 app/autopilot/routes.py:1083"}, "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-f0effe58d01063bd", "name": "FastAPI POST `autopilot_capacity_set` without auth dependency \u2014 app/autopilot/routes.py:1110", "shortDescription": {"text": "FastAPI POST `autopilot_capacity_set` without auth dependency \u2014 app/autopilot/routes.py:1110"}, "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-88ef6e9fa909d187", "name": "FastAPI POST `agents_dryrun` without auth dependency \u2014 app/alma_agents/routes.py:72", "shortDescription": {"text": "FastAPI POST `agents_dryrun` without auth dependency \u2014 app/alma_agents/routes.py:72"}, "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-696024763b83527c", "name": "FastAPI POST `agents_effectiveness_measure` without auth dependency \u2014 app/alma_agents/routes.py:109", "shortDescription": {"text": "FastAPI POST `agents_effectiveness_measure` without auth dependency \u2014 app/alma_agents/routes.py:109"}, "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-497c84246143e6c4", "name": "FastAPI POST `agents_emit` without auth dependency \u2014 app/alma_agents/routes.py:154", "shortDescription": {"text": "FastAPI POST `agents_emit` without auth dependency \u2014 app/alma_agents/routes.py:154"}, "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-71fa492c91e192af", "name": "FastAPI POST `agents_goals_create` without auth dependency \u2014 app/alma_agents/routes.py:176", "shortDescription": {"text": "FastAPI POST `agents_goals_create` without auth dependency \u2014 app/alma_agents/routes.py:176"}, "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-fbdfc1171b839b3f", "name": "FastAPI POST `agents_control` without auth dependency \u2014 app/alma_agents/routes.py:195", "shortDescription": {"text": "FastAPI POST `agents_control` without auth dependency \u2014 app/alma_agents/routes.py:195"}, "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-9ea4cf7982023b77", "name": "FastAPI POST `agents_control_reset` without auth dependency \u2014 app/alma_agents/routes.py:206", "shortDescription": {"text": "FastAPI POST `agents_control_reset` without auth dependency \u2014 app/alma_agents/routes.py:206"}, "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-bb00425a2fe4626c", "name": "Unused endpoint: GET /arancel", "shortDescription": {"text": "Unused endpoint: GET /arancel"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `GET /arancel` 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-141bf0fc5a429a95", "name": "Unused endpoint: GET /sugerencia", "shortDescription": {"text": "Unused endpoint: GET /sugerencia"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `GET /sugerencia` 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-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `POST /` 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-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `GET /` 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-16c101246c98ddc7", "name": "Unused endpoint: PATCH /{pago_id}", "shortDescription": {"text": "Unused endpoint: PATCH /{pago_id}"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `PATCH /{pago_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-e686634beeea0bb8", "name": "Unused endpoint: GET /export", "shortDescription": {"text": "Unused endpoint: GET /export"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `GET /export` 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-8a5c081ef426ff1d", "name": "Unused endpoint: GET /comision-mes", "shortDescription": {"text": "Unused endpoint: GET /comision-mes"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `GET /comision-mes` 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-73e59bf2bc206c85", "name": "Unused endpoint: POST /cruzar-origen", "shortDescription": {"text": "Unused endpoint: POST /cruzar-origen"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `POST /cruzar-origen` 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-917e8a3d9bdc874d", "name": "Unused endpoint: POST /prellenar", "shortDescription": {"text": "Unused endpoint: POST /prellenar"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `POST /prellenar` 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-7fc789ad2f231330", "name": "Unused endpoint: PATCH /{pago_id}/lock", "shortDescription": {"text": "Unused endpoint: PATCH /{pago_id}/lock"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `PATCH /{pago_id}/lock` 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-817630103a7dc00a", "name": "Unused endpoint: DELETE /{pago_id}", "shortDescription": {"text": "Unused endpoint: DELETE /{pago_id}"}, "fullDescription": {"text": "`app/pagos_routes.py` declares `DELETE /{pago_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-a17b1b7568014dca", "name": "Unused endpoint: POST /portal/api/request-code", "shortDescription": {"text": "Unused endpoint: POST /portal/api/request-code"}, "fullDescription": {"text": "`app/portal_routes.py` declares `POST /portal/api/request-code` 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-87e82f8a0bdd1a91", "name": "Unused endpoint: POST /portal/api/verify-code", "shortDescription": {"text": "Unused endpoint: POST /portal/api/verify-code"}, "fullDescription": {"text": "`app/portal_routes.py` declares `POST /portal/api/verify-code` 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-6d90d93469213d8f", "name": "Unused endpoint: GET /portal/api/datos", "shortDescription": {"text": "Unused endpoint: GET /portal/api/datos"}, "fullDescription": {"text": "`app/portal_routes.py` declares `GET /portal/api/datos` 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-49c0c68f51edc7cd", "name": "Unused endpoint: POST /portal/api/logout", "shortDescription": {"text": "Unused endpoint: POST /portal/api/logout"}, "fullDescription": {"text": "`app/portal_routes.py` declares `POST /portal/api/logout` 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-ff613f63a9ea74a2", "name": "Unused endpoint: POST /portal/api/vitals", "shortDescription": {"text": "Unused endpoint: POST /portal/api/vitals"}, "fullDescription": {"text": "`app/portal_routes.py` declares `POST /portal/api/vitals` 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-b3ad40bd18893ca1", "name": "Unused endpoint: GET /portal/api/vitals", "shortDescription": {"text": "Unused endpoint: GET /portal/api/vitals"}, "fullDescription": {"text": "`app/portal_routes.py` declares `GET /portal/api/vitals` 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-efa2dfae9c25bc27", "name": "Unused endpoint: GET /portal/api/perfil", "shortDescription": {"text": "Unused endpoint: GET /portal/api/perfil"}, "fullDescription": {"text": "`app/portal_routes.py` declares `GET /portal/api/perfil` 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-f056e18583fc7055", "name": "Unused endpoint: POST /portal/api/perfil", "shortDescription": {"text": "Unused endpoint: POST /portal/api/perfil"}, "fullDescription": {"text": "`app/portal_routes.py` declares `POST /portal/api/perfil` 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-ade96cd5826ddd84", "name": "Unused endpoint: DELETE /portal/api/vitals/{vital_id}", "shortDescription": {"text": "Unused endpoint: DELETE /portal/api/vitals/{vital_id}"}, "fullDescription": {"text": "`app/portal_routes.py` declares `DELETE /portal/api/vitals/{vital_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-8e4c6dc40b3d5378", "name": "Unused endpoint: GET /portal/api/family", "shortDescription": {"text": "Unused endpoint: GET /portal/api/family"}, "fullDescription": {"text": "`app/portal_routes.py` declares `GET /portal/api/family` 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-01b6146842bbc1f4", "name": "Unused endpoint: GET /portal/api/family/overview", "shortDescription": {"text": "Unused endpoint: GET /portal/api/family/overview"}, "fullDescription": {"text": "`app/portal_routes.py` declares `GET /portal/api/family/overview` 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-a4b6d93fbed2b385", "name": "Unused endpoint: POST /portal/api/family/switch", "shortDescription": {"text": "Unused endpoint: POST /portal/api/family/switch"}, "fullDescription": {"text": "`app/portal_routes.py` declares `POST /portal/api/family/switch` 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-d152bdc694df6062", "name": "Unused endpoint: POST /portal/api/family/add-minor", "shortDescription": {"text": "Unused endpoint: POST /portal/api/family/add-minor"}, "fullDescription": {"text": "`app/portal_routes.py` declares `POST /portal/api/family/add-minor` 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-8eb40c04f24d90a0", "name": "Unused endpoint: POST /portal/api/family/request-otp", "shortDescription": {"text": "Unused endpoint: POST /portal/api/family/request-otp"}, "fullDescription": {"text": "`app/portal_routes.py` declares `POST /portal/api/family/request-otp` 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-00e021456d4b894f", "name": "Unused endpoint: POST /portal/api/family/verify-otp", "shortDescription": {"text": "Unused endpoint: POST /portal/api/family/verify-otp"}, "fullDescription": {"text": "`app/portal_routes.py` declares `POST /portal/api/family/verify-otp` 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-f12c186a8ed649ba", "name": "Unused endpoint: DELETE /portal/api/family/{dependent_rut}", "shortDescription": {"text": "Unused endpoint: DELETE /portal/api/family/{dependent_rut}"}, "fullDescription": {"text": "`app/portal_routes.py` declares `DELETE /portal/api/family/{dependent_rut}` 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-f5b66e530639e51f", "name": "Unused endpoint: GET /resumen", "shortDescription": {"text": "Unused endpoint: GET /resumen"}, "fullDescription": {"text": "`app/inventario_routes.py` declares `GET /resumen` 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-ca330f329807c6b6", "name": "Unused endpoint: GET /orden-compra", "shortDescription": {"text": "Unused endpoint: GET /orden-compra"}, "fullDescription": {"text": "`app/inventario_routes.py` declares `GET /orden-compra` 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-13d98571224ad125", "name": "Unused endpoint: PATCH /{producto_id}", "shortDescription": {"text": "Unused endpoint: PATCH /{producto_id}"}, "fullDescription": {"text": "`app/inventario_routes.py` declares `PATCH /{producto_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-bd1dae2910162401", "name": "Unused endpoint: POST /{producto_id}/movimiento", "shortDescription": {"text": "Unused endpoint: POST /{producto_id}/movimiento"}, "fullDescription": {"text": "`app/inventario_routes.py` declares `POST /{producto_id}/movimiento` 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-dd0f3bc1db83a088", "name": "Unused endpoint: GET /{producto_id}/movimientos", "shortDescription": {"text": "Unused endpoint: GET /{producto_id}/movimientos"}, "fullDescription": {"text": "`app/inventario_routes.py` declares `GET /{producto_id}/movimientos` 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-b9f0073d51d5cbc1", "name": "Unused endpoint: DELETE /{producto_id}", "shortDescription": {"text": "Unused endpoint: DELETE /{producto_id}"}, "fullDescription": {"text": "`app/inventario_routes.py` declares `DELETE /{producto_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-f3c4eb974e4684dd", "name": "Unused endpoint: POST /seed", "shortDescription": {"text": "Unused endpoint: POST /seed"}, "fullDescription": {"text": "`app/inventario_routes.py` declares `POST /seed` 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-fe02f3143d6871da", "name": "Unused endpoint: GET /alma/api/promo-postconsent/dryrun", "shortDescription": {"text": "Unused endpoint: GET /alma/api/promo-postconsent/dryrun"}, "fullDescription": {"text": "`app/promo_postconsent.py` declares `GET /alma/api/promo-postconsent/dryrun` 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-80dc23e2ee09e89c", "name": "Unused endpoint: GET /alma/api/promo-postconsent/report", "shortDescription": {"text": "Unused endpoint: GET /alma/api/promo-postconsent/report"}, "fullDescription": {"text": "`app/promo_postconsent.py` declares `GET /alma/api/promo-postconsent/report` 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-86d48ffafffcf4d8", "name": "Unused endpoint: GET /campanas", "shortDescription": {"text": "Unused endpoint: GET /campanas"}, "fullDescription": {"text": "`app/envios_routes.py` declares `GET /campanas` 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-0d3a434fedb1fa40", "name": "Unused endpoint: GET /chat", "shortDescription": {"text": "Unused endpoint: GET /chat"}, "fullDescription": {"text": "`app/envios_routes.py` declares `GET /chat` 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-292bc26035cc12cb", "name": "Unused endpoint: GET /admin/api/audit-findings", "shortDescription": {"text": "Unused endpoint: GET /admin/api/audit-findings"}, "fullDescription": {"text": "`app/audit_routes.py` declares `GET /admin/api/audit-findings` 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-59ed4acf6477091e", "name": "Unused endpoint: POST /admin/api/audit-findings/{fid}/resolve", "shortDescription": {"text": "Unused endpoint: POST /admin/api/audit-findings/{fid}/resolve"}, "fullDescription": {"text": "`app/audit_routes.py` declares `POST /admin/api/audit-findings/{fid}/resolve` 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-8bf33c5f99ed7a20", "name": "Unused endpoint: GET /admin/auditoria", "shortDescription": {"text": "Unused endpoint: GET /admin/auditoria"}, "fullDescription": {"text": "`app/audit_routes.py` declares `GET /admin/auditoria` 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-35d1f69281f3ee8b", "name": "Unused endpoint: GET /pacientes", "shortDescription": {"text": "Unused endpoint: GET /pacientes"}, "fullDescription": {"text": "`app/ortodoncia_routes.py` declares `GET /pacientes` 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-a5281f3c307e6e0e", "name": "Unused endpoint: PUT /plan/{paciente_id}", "shortDescription": {"text": "Unused endpoint: PUT /plan/{paciente_id}"}, "fullDescription": {"text": "`app/ortodoncia_routes.py` declares `PUT /plan/{paciente_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-bfa15c559f091297", "name": "Unused endpoint: GET /catalogo", "shortDescription": {"text": "Unused endpoint: GET /catalogo"}, "fullDescription": {"text": "`app/agendador_routes.py` declares `GET /catalogo` 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-ebf6744d53d9d555", "name": "Unused endpoint: GET /slots", "shortDescription": {"text": "Unused endpoint: GET /slots"}, "fullDescription": {"text": "`app/agendador_routes.py` declares `GET /slots` 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-426fc0b0f2707b28", "name": "Unused endpoint: POST /identificar", "shortDescription": {"text": "Unused endpoint: POST /identificar"}, "fullDescription": {"text": "`app/agendador_routes.py` declares `POST /identificar` 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-1d310efacb0eaec8", "name": "Unused endpoint: POST /reservar", "shortDescription": {"text": "Unused endpoint: POST /reservar"}, "fullDescription": {"text": "`app/agendador_routes.py` declares `POST /reservar` 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-f80c8509fded40bb", "name": "Unused endpoint: POST /mis-horas", "shortDescription": {"text": "Unused endpoint: POST /mis-horas"}, "fullDescription": {"text": "`app/agendador_routes.py` declares `POST /mis-horas` 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-a73b1e8ff2c9c3f7", "name": "Unused endpoint: POST /cancelar", "shortDescription": {"text": "Unused endpoint: POST /cancelar"}, "fullDescription": {"text": "`app/agendador_routes.py` declares `POST /cancelar` 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-720b9bcd0f420763", "name": "Unused endpoint: GET /buscar", "shortDescription": {"text": "Unused endpoint: GET /buscar"}, "fullDescription": {"text": "`app/checkin_routes.py` declares `GET /buscar` 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/18377"}, "properties": {"repository": "rodrigofernandoolavarriadelavega/chatbot-cmc", "repoUrl": "https://github.com/rodrigofernandoolavarriadelavega/chatbot-cmc", "branch": "main"}, "results": [{"ruleId": "scanner-d53031796af5a517", "level": "note", "message": {"text": "Possibly dead Python function: check_precio"}, "properties": {"repobilityId": "adf807e1df1740fc", "scanner": "scanner-primary", "fingerprint": "d53031796af5a517", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/audit_runner.py:49"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8e6d6f47c7fb0da2", "level": "note", "message": {"text": "Possibly dead Python function: check_consent"}, "properties": {"repobilityId": "66879edaef4308a2", "scanner": "scanner-primary", "fingerprint": "8e6d6f47c7fb0da2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/audit_runner.py:96"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56c3aee4c031fac7", "level": "note", "message": {"text": "Possibly dead Python function: check_agenda"}, "properties": {"repobilityId": "7a7bc3ca659c14c7", "scanner": "scanner-primary", "fingerprint": "56c3aee4c031fac7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/audit_runner.py:120"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-43edd190021a3950", "level": "note", "message": {"text": "Possibly dead Python function: check_leak"}, "properties": {"repobilityId": "c0e4a36b896ae73d", "scanner": "scanner-primary", "fingerprint": "43edd190021a3950", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/audit_runner.py:150"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-316ea59dc5fecedd", "level": "note", "message": {"text": "Possibly dead Python function: check_finanzas"}, "properties": {"repobilityId": "346e8caea204cb79", "scanner": "scanner-primary", "fingerprint": "316ea59dc5fecedd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/audit_runner.py:176"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ed0d8fcafc9327a6", "level": "note", "message": {"text": "Possibly dead Python function: fake_buscar_paciente"}, "properties": {"repobilityId": "38d36f08b58eac22", "scanner": "scanner-primary", "fingerprint": "ed0d8fcafc9327a6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:39"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6fdb6e5fea7f167c", "level": "note", "message": {"text": "Possibly dead Python function: fake_listar_citas_paciente"}, "properties": {"repobilityId": "fa61acdcebe1d093", "scanner": "scanner-primary", "fingerprint": "6fdb6e5fea7f167c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:43"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2b9acdd1fff667aa", "level": "note", "message": {"text": "Possibly dead Python function: fake_listar_citas_paciente_rut"}, "properties": {"repobilityId": "da94f69654033bb9", "scanner": "scanner-primary", "fingerprint": "2b9acdd1fff667aa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:47"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-239b69c1024b6ad3", "level": "note", "message": {"text": "Possibly dead Python function: fake_crear_cita"}, "properties": {"repobilityId": "c36adfa83febe9e6", "scanner": "scanner-primary", "fingerprint": "239b69c1024b6ad3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:51"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c193d34429c2cbf0", "level": "note", "message": {"text": "Possibly dead Python function: fake_cancelar_cita"}, "properties": {"repobilityId": "7d2e034b0345e354", "scanner": "scanner-primary", "fingerprint": "c193d34429c2cbf0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-201ecbd997ec46cb", "level": "note", "message": {"text": "Possibly dead Python function: fake_verificar_slot_disponible"}, "properties": {"repobilityId": "e6440fb2a47ed9fd", "scanner": "scanner-primary", "fingerprint": "201ecbd997ec46cb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:59"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-608751e0030aee7f", "level": "note", "message": {"text": "Possibly dead Python function: fake_buscar_slots_dia_por_ids"}, "properties": {"repobilityId": "df49edbb83bad954", "scanner": "scanner-primary", "fingerprint": "608751e0030aee7f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:108"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f0d98b275ec1cc9d", "level": "note", "message": {"text": "Possibly dead Python function: fake_consultar_proxima_fecha"}, "properties": {"repobilityId": "328d5374f824d332", "scanner": "scanner-primary", "fingerprint": "f0d98b275ec1cc9d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:112"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3aa50cd6206025a", "level": "note", "message": {"text": "Possibly dead Python function: fake_get_horario"}, "properties": {"repobilityId": "1c8730c85d5df15b", "scanner": "scanner-primary", "fingerprint": "d3aa50cd6206025a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:116"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-54b58a5611b45a05", "level": "note", "message": {"text": "Possibly dead Python function: fake_detect_intent"}, "properties": {"repobilityId": "c81133c7bd0dc1da", "scanner": "scanner-primary", "fingerprint": "54b58a5611b45a05", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:128"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2156cd3450333715", "level": "note", "message": {"text": "Possibly dead Python function: fake_respuesta_faq"}, "properties": {"repobilityId": "21cee0fdf59e9592", "scanner": "scanner-primary", "fingerprint": "2156cd3450333715", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adversarial_chat.py:152"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fa751005f5bcc305", "level": "note", "message": {"text": "Possibly dead Python function: m1_ecografia"}, "properties": {"repobilityId": "efc1716664569821", "scanner": "scanner-primary", "fingerprint": "fa751005f5bcc305", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/medir_conversion_postfix.py:171"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5b907c03f111fb10", "level": "note", "message": {"text": "Possibly dead Python function: m2_ctwa"}, "properties": {"repobilityId": "4686026471f6eb83", "scanner": "scanner-primary", "fingerprint": "5b907c03f111fb10", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/medir_conversion_postfix.py:236"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-83c665dd865a2b53", "level": "note", "message": {"text": "Possibly dead Python function: m3_precio"}, "properties": {"repobilityId": "a364294b59e2603e", "scanner": "scanner-primary", "fingerprint": "83c665dd865a2b53", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/medir_conversion_postfix.py:313"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b3798af0364895ec", "level": "note", "message": {"text": "Possibly dead Python function: m4_abandono"}, "properties": {"repobilityId": "b7ec47cc350f3298", "scanner": "scanner-primary", "fingerprint": "b3798af0364895ec", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/medir_conversion_postfix.py:388"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ac1f3170ff968571", "level": "note", "message": {"text": "Possibly dead Python function: m5_takeover"}, "properties": {"repobilityId": "776072712ef5db7e", "scanner": "scanner-primary", "fingerprint": "ac1f3170ff968571", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/medir_conversion_postfix.py:447"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f14b08a0fc336d3f", "level": "note", "message": {"text": "Possibly dead Python function: m6_proactive"}, "properties": {"repobilityId": "d1f835c28cfd79fb", "scanner": "scanner-primary", "fingerprint": "f14b08a0fc336d3f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/medir_conversion_postfix.py:509"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-892803213694dca0", "level": "note", "message": {"text": "Possibly dead Python function: m7_dental"}, "properties": {"repobilityId": "f046a502401372d0", "scanner": "scanner-primary", "fingerprint": "892803213694dca0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/medir_conversion_postfix.py:597"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-05439cbf8b91c20c", "level": "note", "message": {"text": "Possibly dead Python function: m8_degradado_orl"}, "properties": {"repobilityId": "4e764298db05e7c6", "scanner": "scanner-primary", "fingerprint": "05439cbf8b91c20c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/medir_conversion_postfix.py:662"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d9275e1699ecc4e1", "level": "note", "message": {"text": "Possibly dead Python function: m0_general"}, "properties": {"repobilityId": "ae1f78ef81bfd5b7", "scanner": "scanner-primary", "fingerprint": "d9275e1699ecc4e1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/medir_conversion_postfix.py:740"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5af0d757e155be9c", "level": "note", "message": {"text": "Possibly dead Python function: enviar_magic_link"}, "properties": {"repobilityId": "ba2ba238852db619", "scanner": "scanner-primary", "fingerprint": "5af0d757e155be9c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py:913"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56313a2fec8c4f7c", "level": "note", "message": {"text": "Possibly dead Python function: sync_todos"}, "properties": {"repobilityId": "e8ef2715dd78ef95", "scanner": "scanner-primary", "fingerprint": "56313a2fec8c4f7c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/bi_sync.py:171"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-835922547abbd5fc", "level": "note", "message": {"text": "Possibly dead Python function: cobertura_validacion"}, "properties": {"repobilityId": "3efd5bfb8aa9f47f", "scanner": "scanner-primary", "fingerprint": "835922547abbd5fc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/bi_sync.py:185"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-35afe738ed8f187b", "level": "note", "message": {"text": "Possibly dead Python function: process_inbound_dental"}, "properties": {"repobilityId": "a5e287139ea9c419", "scanner": "scanner-primary", "fingerprint": "35afe738ed8f187b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/dental_winback.py:660"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4f46f5d871b2aa79", "level": "note", "message": {"text": "Possibly dead Python function: send_whatsapp_document"}, "properties": {"repobilityId": "a1b81cf0d5f59bee", "scanner": "scanner-primary", "fingerprint": "4f46f5d871b2aa79", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/messaging.py:453"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-40559d47705e0664", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 sites/adkun-gpt/js/alma.jsx:125"}, "properties": {"repobilityId": "6750306e3fad2da8", "scanner": "scanner-primary", "fingerprint": "40559d47705e0664", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c101c5148cd8a75e", "level": "warning", "message": {"text": "Privileged port 19 in use"}, "properties": {"repobilityId": "a6b5b06deac36eac", "scanner": "scanner-primary", "fingerprint": "c101c5148cd8a75e", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/intent_gate.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-e066691601852931", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "properties": {"repobilityId": "f391052c9bfd7e8b", "scanner": "scanner-primary", "fingerprint": "e066691601852931", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 1}}}]}, {"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-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-0185558d86a3751d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in sitio-web/v3.html:1263"}, "properties": {"repobilityId": "1154ea5d83722671", "scanner": "scanner-primary", "fingerprint": "0185558d86a3751d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sitio-web/v3.html"}, "region": {"startLine": 1263}}}]}, {"ruleId": "scanner-1abea019d545dae2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/snapshots/dashboard_marzo_2026.html:1079"}, "properties": {"repobilityId": "1b28c6d7f5db36bc", "scanner": "scanner-primary", "fingerprint": "1abea019d545dae2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/snapshots/dashboard_marzo_2026.html"}, "region": {"startLine": 1079}}}]}, {"ruleId": "scanner-ebbf0293c90d5b97", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/snapshots/dashboard-flows.html:1077"}, "properties": {"repobilityId": "793b55686987e2ef", "scanner": "scanner-primary", "fingerprint": "ebbf0293c90d5b97", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/snapshots/dashboard-flows.html"}, "region": {"startLine": 1077}}}]}, {"ruleId": "scanner-8337b2c59aa961ae", "level": "error", "message": {"text": "Possible secret in app/admin_routes.py"}, "properties": {"repobilityId": "8447953c8fc8a42f", "scanner": "scanner-primary", "fingerprint": "8337b2c59aa961ae", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin_routes.py"}, "region": {"startLine": 271}}}]}, {"ruleId": "scanner-d31b5e60fcf87c1e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-05-02/cuando-consultar-medico-general.html:385"}, "properties": {"repobilityId": "4480b9b36fe77b60", "scanner": "scanner-primary", "fingerprint": "d31b5e60fcf87c1e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seo-backup-2026-05-02/cuando-consultar-medico-general.html"}, "region": {"startLine": 385}}}]}, {"ruleId": "scanner-961c3a5191c88944", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-05-02/home.html:1442"}, "properties": {"repobilityId": "d5c6745b712d2fcf", "scanner": "scanner-primary", "fingerprint": "961c3a5191c88944", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seo-backup-2026-05-02/home.html"}, "region": {"startLine": 1442}}}]}, {"ruleId": "scanner-a5ab30da3f2df808", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/index.html:1442"}, "properties": {"repobilityId": "642afb3cb2138620", "scanner": "scanner-primary", "fingerprint": "a5ab30da3f2df808", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seo-backup-2026-04-20/index.html"}, "region": {"startLine": 1442}}}]}, {"ruleId": "scanner-1e4f9b377dcf7407", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/elementor-26201.html:1426"}, "properties": {"repobilityId": "e4c693a82c52a42d", "scanner": "scanner-primary", "fingerprint": "1e4f9b377dcf7407", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seo-backup-2026-04-20/elementor-26201.html"}, "region": {"startLine": 1426}}}]}, {"ruleId": "scanner-244ef955542806b5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/cuando-consultar-medico-general.html:385"}, "properties": {"repobilityId": "a7989d91ed3ee452", "scanner": "scanner-primary", "fingerprint": "244ef955542806b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seo-backup-2026-04-20/cuando-consultar-medico-general.html"}, "region": {"startLine": 385}}}]}, {"ruleId": "scanner-256af27199fae341", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/centro-medico-carampangue-2.html:1345"}, "properties": {"repobilityId": "06e06ded6a1c6329", "scanner": "scanner-primary", "fingerprint": "256af27199fae341", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seo-backup-2026-04-20/centro-medico-carampangue-2.html"}, "region": {"startLine": 1345}}}]}, {"ruleId": "scanner-35e860f2c743b593", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/centro-medico-principal.html:1442"}, "properties": {"repobilityId": "bcfc5223f62a4c01", "scanner": "scanner-primary", "fingerprint": "35e860f2c743b593", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seo-backup-2026-04-20/centro-medico-principal.html"}, "region": {"startLine": 1442}}}]}, {"ruleId": "scanner-49cae05110d82d85", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/centro-medico-carampangue.html:1387"}, "properties": {"repobilityId": "851e6ca205ef948c", "scanner": "scanner-primary", "fingerprint": "49cae05110d82d85", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seo-backup-2026-04-20/centro-medico-carampangue.html"}, "region": {"startLine": 1387}}}]}, {"ruleId": "scanner-0f304f14934f6af0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seo-backup-2026-04-20/raiz-home.html:1442"}, "properties": {"repobilityId": "3ccc8eb4b3a6bf58", "scanner": "scanner-primary", "fingerprint": "0f304f14934f6af0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seo-backup-2026-04-20/raiz-home.html"}, "region": {"startLine": 1442}}}]}, {"ruleId": "scanner-1a50467f36b413ec", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "926b5aa2fc342af4", "scanner": "scanner-primary", "fingerprint": "1a50467f36b413ec", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/tests.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-9778d6ae78ba2392", "level": "note", "message": {"text": "Very large file: tests/test_regression_real_cases.py (1434 lines)"}, "properties": {"repobilityId": "49d8b1eb37165fb5", "scanner": "scanner-primary", "fingerprint": "9778d6ae78ba2392", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7b4b5963a3ef5e06", "level": "note", "message": {"text": "Very large file: tests/harness_stress_200.py (1606 lines)"}, "properties": {"repobilityId": "01349bc2a00f2d0c", "scanner": "scanner-primary", "fingerprint": "7b4b5963a3ef5e06", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-96601758be13d524", "level": "note", "message": {"text": "Very large file: tests/harness_50.py (1153 lines)"}, "properties": {"repobilityId": "d497bb517f54589e", "scanner": "scanner-primary", "fingerprint": "96601758be13d524", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-066d734573cc9208", "level": "note", "message": {"text": "Very large file: tests/harness_agenda_200.py (1896 lines)"}, "properties": {"repobilityId": "e008260f7ed53d6a", "scanner": "scanner-primary", "fingerprint": "066d734573cc9208", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-15522409291d9924", "level": "note", "message": {"text": "Very large file: scripts/gen_blogs_specialty.py (801 lines)"}, "properties": {"repobilityId": "0fdca42aa2105f6c", "scanner": "scanner-primary", "fingerprint": "15522409291d9924", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e5cad49f312874e0", "level": "note", "message": {"text": "Very large file: scripts/gen_blogs_specialty_v2.py (1016 lines)"}, "properties": {"repobilityId": "3a03736380a331b6", "scanner": "scanner-primary", "fingerprint": "e5cad49f312874e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3f457009346c70e3", "level": "note", "message": {"text": "Very large file: app/pagos_routes.py (2204 lines)"}, "properties": {"repobilityId": "228d1bcaa44fb2e0", "scanner": "scanner-primary", "fingerprint": "3f457009346c70e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ee3a67d3194f942", "level": "note", "message": {"text": "Very large file: app/fidelizacion.py (1651 lines)"}, "properties": {"repobilityId": "6e1d7d7c1934bc8f", "scanner": "scanner-primary", "fingerprint": "3ee3a67d3194f942", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0cd1f753e75be48c", "level": "note", "message": {"text": "Very large file: app/claude_helper.py (2632 lines)"}, "properties": {"repobilityId": "c9a6f598c45bead5", "scanner": "scanner-primary", "fingerprint": "0cd1f753e75be48c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ec9e43104378ae67", "level": "note", "message": {"text": "Very large file: app/winback.py (1335 lines)"}, "properties": {"repobilityId": "ee5361134e1fea06", "scanner": "scanner-primary", "fingerprint": "ec9e43104378ae67", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2de2f26bfb06de93", "level": "note", "message": {"text": "Very large file: app/medilink.py (2271 lines)"}, "properties": {"repobilityId": "b94189f480cbcee5", "scanner": "scanner-primary", "fingerprint": "2de2f26bfb06de93", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-52caad802c89762b", "level": "note", "message": {"text": "Very large file: app/jobs.py (4078 lines)"}, "properties": {"repobilityId": "e66f72b4e957ca04", "scanner": "scanner-primary", "fingerprint": "52caad802c89762b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a03baeaa4fe6c643", "level": "note", "message": {"text": "Very large file: app/programas.py (1479 lines)"}, "properties": {"repobilityId": "b9c23e4ea87f8e07", "scanner": "scanner-primary", "fingerprint": "a03baeaa4fe6c643", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-764f7d237a39bcbb", "level": "note", "message": {"text": "Very large file: app/session.py (5769 lines)"}, "properties": {"repobilityId": "860566bce99cc377", "scanner": "scanner-primary", "fingerprint": "764f7d237a39bcbb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1ae447b9bd6724a2", "level": "note", "message": {"text": "Very large file: app/main.py (9731 lines)"}, "properties": {"repobilityId": "566b37e8922cbe53", "scanner": "scanner-primary", "fingerprint": "1ae447b9bd6724a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b01dd66a8e5cee74", "level": "note", "message": {"text": "Very large file: app/admin_routes.py (2983 lines)"}, "properties": {"repobilityId": "d7828c7279ec9c4b", "scanner": "scanner-primary", "fingerprint": "b01dd66a8e5cee74", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c517e8df12553b57", "level": "note", "message": {"text": "Very large file: app/flows.py (14938 lines)"}, "properties": {"repobilityId": "1b13d4ccec034f8e", "scanner": "scanner-primary", "fingerprint": "c517e8df12553b57", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4a363422cb79aa99", "level": "note", "message": {"text": "Very large file: app/autopilot/routes.py (1247 lines)"}, "properties": {"repobilityId": "c10cd86fb0f54bce", "scanner": "scanner-primary", "fingerprint": "4a363422cb79aa99", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e8273fed39b6fe9a", "level": "note", "message": {"text": "115 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "e8273fed39b6fe9a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "af45f86d3d2b3cc1", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "dac928e82bbb7272", "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": "b34fec80f63eaa1b", "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": "480f8566789f7d92", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "68c0b4d0f53b9a04", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "ce16cd432a22507a", "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": "864db79559225633", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 3}}}]}, {"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-c645ff23ba28c153", "level": "note", "message": {"text": "Legacy-named symbol `test_get_recepcion_msgs_empty_when_old` in tests/test_recepcion_context.py:97"}, "properties": {"repobilityId": "6d5f91cbdddcc3a7", "scanner": "scanner-primary", "fingerprint": "c645ff23ba28c153", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-465351ab6b6667e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_horas_vacias.py:116"}, "properties": {"repobilityId": "e1f0d9303a2165b1", "scanner": "scanner-primary", "fingerprint": "465351ab6b6667e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87060df162066f01", "level": "note", "message": {"text": "Legacy-named symbol `consent_marketing_v1` in tests/test_winback_e2e.py:42"}, "properties": {"repobilityId": "f9c2edd1ef1964e1", "scanner": "scanner-primary", "fingerprint": "87060df162066f01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3c562a478c4aa7ac", "level": "note", "message": {"text": "Legacy-named symbol `crosssell_ortodoncia_post_dental_v1` in tests/test_crosssell_post_dental_template.py:4"}, "properties": {"repobilityId": "944add8981e15e7a", "scanner": "scanner-primary", "fingerprint": "3c562a478c4aa7ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-84c6e730312e9735", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/alma_kit.js:19"}, "properties": {"repobilityId": "957dfce440f2f640", "scanner": "scanner-primary", "fingerprint": "84c6e730312e9735", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ace8486054bc9566", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/nightly_order.py:10"}, "properties": {"repobilityId": "933f41a1b1c56c60", "scanner": "scanner-primary", "fingerprint": "ace8486054bc9566", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3b30217f1368133", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/nightly_order.py:32"}, "properties": {"repobilityId": "014dafafe226302a", "scanner": "scanner-primary", "fingerprint": "e3b30217f1368133", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f8d7b79b33aa2245", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/backfill_winback_attribution.py:361"}, "properties": {"repobilityId": "64a4ec3b230bad5d", "scanner": "scanner-primary", "fingerprint": "f8d7b79b33aa2245", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bfdb43bfb0dbf5c0", "level": "note", "message": {"text": "Legacy-named symbol `winback_generico_sensible_v1` in scripts/upload_templates_to_meta.py:59"}, "properties": {"repobilityId": "504cb36ad2172079", "scanner": "scanner-primary", "fingerprint": "bfdb43bfb0dbf5c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e975f6cd3a56ca13", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/heatmap_comunas.py:338"}, "properties": {"repobilityId": "da45434bb7259099", "scanner": "scanner-primary", "fingerprint": "e975f6cd3a56ca13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-065bf8f24739ffaf", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/cac_report.py:203"}, "properties": {"repobilityId": "115206ae8068983b", "scanner": "scanner-primary", "fingerprint": "065bf8f24739ffaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-405c530f62fd9b53", "level": "note", "message": {"text": "Legacy-named symbol `consent_marketing_v1` in scripts/migrate_consent_canonical.py:134"}, "properties": {"repobilityId": "a0ed23e6c6b66092", "scanner": "scanner-primary", "fingerprint": "405c530f62fd9b53", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-346fcbf38c10f162", "level": "note", "message": {"text": "Legacy-named symbol `gen_blogs_specialty_v2` in scripts/gen_blogs_specialty_v2.py:7"}, "properties": {"repobilityId": "8acdc78165a6677b", "scanner": "scanner-primary", "fingerprint": "346fcbf38c10f162", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-13107375d1479339", "level": "note", "message": {"text": "Legacy-named symbol `corregir_headers_v2` in scripts/corregir_headers_v2.py:13"}, "properties": {"repobilityId": "36c44f3c60b6171f", "scanner": "scanner-primary", "fingerprint": "13107375d1479339", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dcdcced05280faae", "level": "note", "message": {"text": "Legacy-named symbol `winback_mg_v1` in scripts/register_winback_templates.py:12"}, "properties": {"repobilityId": "0d5c4d881a2dff52", "scanner": "scanner-primary", "fingerprint": "dcdcced05280faae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-422400d066d15f5c", "level": "note", "message": {"text": "Legacy-named symbol `winback_mg_v1` in scripts/lanzar_campana_winback.py:9"}, "properties": {"repobilityId": "b97ea375449363f1", "scanner": "scanner-primary", "fingerprint": "422400d066d15f5c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2409f6fe9630a592", "level": "note", "message": {"text": "Legacy-named symbol `crear_templates_v2` in scripts/crear_templates_v2.py:12"}, "properties": {"repobilityId": "3c1c7d12b238df76", "scanner": "scanner-primary", "fingerprint": "2409f6fe9630a592", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-510d744a2d2e9d50", "level": "note", "message": {"text": "Stub function `fake_respuesta_faq` (body is just `pass`/`return`) \u2014 scripts/adversarial_chat.py:152"}, "properties": {"repobilityId": "9ece879ff08aa178", "scanner": "scanner-primary", "fingerprint": "510d744a2d2e9d50", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-7c694be1cd2cce79", "level": "note", "message": {"text": "Legacy-named symbol `origen_legacy` in app/pagos_routes.py:1624"}, "properties": {"repobilityId": "154618a51e426722", "scanner": "scanner-primary", "fingerprint": "7c694be1cd2cce79", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ede260dfccc4a524", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/pagos_routes.py:1016"}, "properties": {"repobilityId": "26d7c4572677c56f", "scanner": "scanner-primary", "fingerprint": "ede260dfccc4a524", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-660fbbd74d0b684f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/sobrecupo.py:143"}, "properties": {"repobilityId": "d0ec2ec15c21d17b", "scanner": "scanner-primary", "fingerprint": "660fbbd74d0b684f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bab82c790f83ad4f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/bi_sync.py:663"}, "properties": {"repobilityId": "cc2a1b87b8a2235a", "scanner": "scanner-primary", "fingerprint": "bab82c790f83ad4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee2c200b5f4e85d8", "level": "note", "message": {"text": "Legacy-named symbol `crosssell_ortodoncia_post_dental_v1` in app/fidelizacion.py:1558"}, "properties": {"repobilityId": "b89f3b55ef958569", "scanner": "scanner-primary", "fingerprint": "ee2c200b5f4e85d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-df62edcc3e998133", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/fidelizacion.py:270"}, "properties": {"repobilityId": "afc288e6cef0e689", "scanner": "scanner-primary", "fingerprint": "df62edcc3e998133", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e589367e8ac6865", "level": "note", "message": {"text": "Legacy-named symbol `consent_dental_v1` in app/promo_postconsent.py:25"}, "properties": {"repobilityId": "dd395a518ad19ea5", "scanner": "scanner-primary", "fingerprint": "7e589367e8ac6865", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0354c1555d48b3ef", "level": "note", "message": {"text": "Legacy-named symbol `dental_limpieza_junio_v2` in app/envios_routes.py:62"}, "properties": {"repobilityId": "2ce1af484887988f", "scanner": "scanner-primary", "fingerprint": "0354c1555d48b3ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bf38cd6ebd5774d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/ortodoncia_routes.py:108"}, "properties": {"repobilityId": "89dd98f1523497e4", "scanner": "scanner-primary", "fingerprint": "bf38cd6ebd5774d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e796cafae780a33c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/agendador_routes.py:126"}, "properties": {"repobilityId": "5c7926fa3dcd83dd", "scanner": "scanner-primary", "fingerprint": "e796cafae780a33c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2698197250c13872", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/agenda_routes.py:17"}, "properties": {"repobilityId": "5c56011be1179920", "scanner": "scanner-primary", "fingerprint": "2698197250c13872", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f268bb927b2f446", "level": "note", "message": {"text": "Legacy-named symbol `winback_dental_odonto_general_v1` in app/dental_winback.py:65"}, "properties": {"repobilityId": "ac888e7e4e5d1c29", "scanner": "scanner-primary", "fingerprint": "9f268bb927b2f446", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d1e71843000eda4f", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/dental_winback.py:49"}, "properties": {"repobilityId": "1e600b92c31097ae", "scanner": "scanner-primary", "fingerprint": "d1e71843000eda4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-641c392c753c71a7", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/messaging.py:229"}, "properties": {"repobilityId": "8caa25530c3bcade", "scanner": "scanner-primary", "fingerprint": "641c392c753c71a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6b32bd6dc70f1fe", "level": "note", "message": {"text": "Legacy-named symbol `consent_dental_v1` in app/config.py:205"}, "properties": {"repobilityId": "66ab9d67b6471ab0", "scanner": "scanner-primary", "fingerprint": "d6b32bd6dc70f1fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9b9ef3ef38ea1d43", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/config.py:114"}, "properties": {"repobilityId": "bb39acafb1df46bb", "scanner": "scanner-primary", "fingerprint": "9b9ef3ef38ea1d43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-842f3b35c52f9db8", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/meta_capi.py:191"}, "properties": {"repobilityId": "bd8ed7cdcfd5a043", "scanner": "scanner-primary", "fingerprint": "842f3b35c52f9db8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-914e3c3bb0f9e209", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/resilience.py:140"}, "properties": {"repobilityId": "6e96c8c71fd216c7", "scanner": "scanner-primary", "fingerprint": "914e3c3bb0f9e209", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87b63d3bf15f381a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/claude_helper.py:35"}, "properties": {"repobilityId": "a2bb87c9e2e8c71c", "scanner": "scanner-primary", "fingerprint": "87b63d3bf15f381a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4aaaad355c6e7887", "level": "note", "message": {"text": "Legacy-named symbol `dental_limpieza_junio_v2` in app/dental_promo_report.py:2"}, "properties": {"repobilityId": "62ee48e2b3e3ac13", "scanner": "scanner-primary", "fingerprint": "4aaaad355c6e7887", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6457dff5ce9becc0", "level": "note", "message": {"text": "Legacy-named symbol `winback_medicina_general_v2` in app/winback.py:195"}, "properties": {"repobilityId": "987641faa9eb64a1", "scanner": "scanner-primary", "fingerprint": "6457dff5ce9becc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-068577cbab3320bf", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/winback.py:155"}, "properties": {"repobilityId": "e301aa560480cd59", "scanner": "scanner-primary", "fingerprint": "068577cbab3320bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25d99848eb7eb99f", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/medilink.py:404"}, "properties": {"repobilityId": "dbf752b7af3787f3", "scanner": "scanner-primary", "fingerprint": "25d99848eb7eb99f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84bf6f1d91488212", "level": "note", "message": {"text": "Legacy-named symbol `vuelos_page_v2` in app/vuelos_routes.py:245"}, "properties": {"repobilityId": "99df49c7c3e130db", "scanner": "scanner-primary", "fingerprint": "84bf6f1d91488212", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b424a7d027eee410", "level": "note", "message": {"text": "Legacy-named symbol `crosssell_ortodoncia_post_dental_v1` in app/jobs.py:1234"}, "properties": {"repobilityId": "20397d1b31fc347b", "scanner": "scanner-primary", "fingerprint": "b424a7d027eee410", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e9c3e6a4b91d7f88", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/jobs.py:85"}, "properties": {"repobilityId": "4072117a0486b29c", "scanner": "scanner-primary", "fingerprint": "e9c3e6a4b91d7f88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fb725f6a0175713", "level": "note", "message": {"text": "Legacy-named symbol `google_places_v1` in app/google_rating.py:76"}, "properties": {"repobilityId": "8d3b5892ce18a4e6", "scanner": "scanner-primary", "fingerprint": "1fb725f6a0175713", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7739c08be6a29bea", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/programas.py:125"}, "properties": {"repobilityId": "ca40b83ecc74bc59", "scanner": "scanner-primary", "fingerprint": "7739c08be6a29bea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed61984ad4833f16", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/abonos_routes.py:40"}, "properties": {"repobilityId": "e427e972ddfdcadc", "scanner": "scanner-primary", "fingerprint": "ed61984ad4833f16", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c859be6bed32a7f", "level": "note", "message": {"text": "Legacy-named symbol `consent_marketing_v1` in app/session.py:2893"}, "properties": {"repobilityId": "0307d213dfba811a", "scanner": "scanner-primary", "fingerprint": "5c859be6bed32a7f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4317b0c8438f9277", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/session.py:81"}, "properties": {"repobilityId": "0526f84be0d59776", "scanner": "scanner-primary", "fingerprint": "4317b0c8438f9277", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6689ea50ec8b59a1", "level": "note", "message": {"text": "Legacy-named symbol `consent_dental_v1` in app/alma_control_routes.py:137"}, "properties": {"repobilityId": "c5e0146d354831d4", "scanner": "scanner-primary", "fingerprint": "6689ea50ec8b59a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0ba54bd34aaed3c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/ecografias.py:361"}, "properties": {"repobilityId": "286a5942d75bdacc", "scanner": "scanner-primary", "fingerprint": "0ba54bd34aaed3c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ade7e33d71b607c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/reminders.py:135"}, "properties": {"repobilityId": "62ad74a38d50c64a", "scanner": "scanner-primary", "fingerprint": "2ade7e33d71b607c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99e73101cf2f0cf2", "level": "note", "message": {"text": "Legacy-named symbol `fecha_old` in app/prof_notifications.py:321"}, "properties": {"repobilityId": "8dbf829809bf3397", "scanner": "scanner-primary", "fingerprint": "99e73101cf2f0cf2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e1a37934dec93206", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/triage_ges.py:23"}, "properties": {"repobilityId": "6b05710d7da6b6bf", "scanner": "scanner-primary", "fingerprint": "e1a37934dec93206", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5da4823cfacbebe8", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/staff_whitelist.py:19"}, "properties": {"repobilityId": "3b221af63ce363f4", "scanner": "scanner-primary", "fingerprint": "5da4823cfacbebe8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37ab5c8d3de6e682", "level": "note", "message": {"text": "Legacy-named symbol `consent_marketing_v2` in app/main.py:215"}, "properties": {"repobilityId": "dfdb3734b775be8f", "scanner": "scanner-primary", "fingerprint": "37ab5c8d3de6e682", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e953c1cd0ec5908b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/main.py:134"}, "properties": {"repobilityId": "5f0832e6f554bc14", "scanner": "scanner-primary", "fingerprint": "e953c1cd0ec5908b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f52c54c3968d55c0", "level": "note", "message": {"text": "Legacy-named symbol `admin_v2` in app/admin_routes.py:831"}, "properties": {"repobilityId": "d9ce66ab65ff7ea8", "scanner": "scanner-primary", "fingerprint": "f52c54c3968d55c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5aefde67d3c217f9", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin_routes.py:356"}, "properties": {"repobilityId": "60dcda972bcd737a", "scanner": "scanner-primary", "fingerprint": "5aefde67d3c217f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17326520ac290f1f", "level": "note", "message": {"text": "Legacy-named symbol `cita_old` in app/flows.py:1695"}, "properties": {"repobilityId": "f331c3351686d9b5", "scanner": "scanner-primary", "fingerprint": "17326520ac290f1f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8295d2bfb9c6c129", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/flows.py:376"}, "properties": {"repobilityId": "50e0aa69851236c2", "scanner": "scanner-primary", "fingerprint": "8295d2bfb9c6c129", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df61a43701f9a831", "level": "note", "message": {"text": "Legacy-named symbol `dental_limpieza_junio_v2` in app/autopilot/routes.py:1146"}, "properties": {"repobilityId": "e7d7b7bd89723772", "scanner": "scanner-primary", "fingerprint": "df61a43701f9a831", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9062ff9f2bade8a8", "level": "note", "message": {"text": "Legacy-named symbol `prof_mg_abarca_v1` in app/autopilot/plantillas_profesionales.py:32"}, "properties": {"repobilityId": "83e117d7f091a023", "scanner": "scanner-primary", "fingerprint": "9062ff9f2bade8a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6c41dc90bc69feb0", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/autopilot/engine.py:44"}, "properties": {"repobilityId": "94857c68ce5a1afd", "scanner": "scanner-primary", "fingerprint": "6c41dc90bc69feb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7021dddfe36c7f9", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/autopilot/policy.py:92"}, "properties": {"repobilityId": "74359455aef20443", "scanner": "scanner-primary", "fingerprint": "d7021dddfe36c7f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a7b74aa3b6e9d0e", "level": "none", "message": {"text": "Commented-code block (13 lines) in app/autopilot/seo_audit.py:84"}, "properties": {"repobilityId": "0e48fba3898027f9", "scanner": "scanner-primary", "fingerprint": "5a7b74aa3b6e9d0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d685a0142537ede4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/autopilot/learned_skills.py:130"}, "properties": {"repobilityId": "248e306ed3cc3ba8", "scanner": "scanner-primary", "fingerprint": "d685a0142537ede4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73c0a1569b646433", "level": "note", "message": {"text": "Legacy-named symbol `admin_v2` in app/autopilot/email_render.py:29"}, "properties": {"repobilityId": "cdf65f5ead89d0c8", "scanner": "scanner-primary", "fingerprint": "73c0a1569b646433", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-276cc1f01c3daa9a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/autopilot/winback_report.py:83"}, "properties": {"repobilityId": "b9a413de26826ca8", "scanner": "scanner-primary", "fingerprint": "276cc1f01c3daa9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-455a512a11141c6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/autopilot/approvals.py:260"}, "properties": {"repobilityId": "a79d51dfab611694", "scanner": "scanner-primary", "fingerprint": "455a512a11141c6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a4671c19d2f418d", "level": "none", "message": {"text": "Commented-code block (7 lines) in sites/adkun-gpt/js/tweaks-panel.jsx:15"}, "properties": {"repobilityId": "9c126c817dd7f538", "scanner": "scanner-primary", "fingerprint": "9a4671c19d2f418d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b2d9e1213fed50e", "level": "note", "message": {"text": "187 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "a3c3fef9a57edfbc", "scanner": "scanner-primary", "fingerprint": "3b2d9e1213fed50e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5f5ce8ba25a86dfb", "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": "8be46a321419454c", "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": "fa7e271730398cf6", "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": "b391c3b41d514d29", "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": "ba56b563afcfe57a", "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": "05341ed8c235832e", "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": "625c373b2c586e9c", "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": "82d9f5ce5ceef478", "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": "2dcd09406e9ed87d", "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": "6cd655bec4ff3858", "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": "cce88f6191f9821a", "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": "ae21c4c9e3c3b92e", "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": "89d2c14a90bd7ef3", "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": "30006b46fb951d48", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-b873925e6bfa53e8", "level": "note", "message": {"text": "Near-duplicate function bodies in 22 places"}, "properties": {"repobilityId": "90d6665ba9aed38b", "scanner": "scanner-primary", "fingerprint": "b873925e6bfa53e8", "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": "ac2c49ea20a1074b", "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": "c8dd80f82db53745", "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": "44401aabb27e46fc", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-9dad557909b86499", "level": "note", "message": {"text": "Near-duplicate function bodies in 10 places"}, "properties": {"repobilityId": "ebb4bd7a1723258a", "scanner": "scanner-primary", "fingerprint": "9dad557909b86499", "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": "f5fb82deb22178dd", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-689e4d855f16ecb0", "level": "error", "message": {"text": "FastAPI POST `post_pago` without auth dependency \u2014 app/pagos_routes.py:829"}, "properties": {"repobilityId": "e17cac822417c2ae", "scanner": "scanner-primary", "fingerprint": "689e4d855f16ecb0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/pagos_routes.py"}, "region": {"startLine": 829}}}]}, {"ruleId": "scanner-eee1e24484285f20", "level": "error", "message": {"text": "FastAPI PATCH `patch_pago` without auth dependency \u2014 app/pagos_routes.py:1089"}, "properties": {"repobilityId": "9b22eac9fdbbdb5a", "scanner": "scanner-primary", "fingerprint": "eee1e24484285f20", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/pagos_routes.py"}, "region": {"startLine": 1089}}}]}, {"ruleId": "scanner-aaf0e216df842539", "level": "error", "message": {"text": "FastAPI POST `cruzar_origen` without auth dependency \u2014 app/pagos_routes.py:1573"}, "properties": {"repobilityId": "5261f3f9443a8cbc", "scanner": "scanner-primary", "fingerprint": "aaf0e216df842539", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/pagos_routes.py"}, "region": {"startLine": 1573}}}]}, {"ruleId": "scanner-e139ef1f0c0d8b5d", "level": "error", "message": {"text": "FastAPI POST `prellenar_pagos` without auth dependency \u2014 app/pagos_routes.py:1662"}, "properties": {"repobilityId": "be860d7d51f26887", "scanner": "scanner-primary", "fingerprint": "e139ef1f0c0d8b5d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/pagos_routes.py"}, "region": {"startLine": 1662}}}]}, {"ruleId": "scanner-f2bb192cfd602e6f", "level": "error", "message": {"text": "FastAPI PATCH `toggle_lock_pago` without auth dependency \u2014 app/pagos_routes.py:2149"}, "properties": {"repobilityId": "c8cf49dbcbca0ff4", "scanner": "scanner-primary", "fingerprint": "f2bb192cfd602e6f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/pagos_routes.py"}, "region": {"startLine": 2149}}}]}, {"ruleId": "scanner-bb3976784d37cbb8", "level": "error", "message": {"text": "FastAPI DELETE `delete_pago` without auth dependency \u2014 app/pagos_routes.py:2182"}, "properties": {"repobilityId": "9af5e4cadab92219", "scanner": "scanner-primary", "fingerprint": "bb3976784d37cbb8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/pagos_routes.py"}, "region": {"startLine": 2182}}}]}, {"ruleId": "scanner-8fda9c47c1695c3a", "level": "error", "message": {"text": "FastAPI POST `portal_request_code` without auth dependency \u2014 app/portal_routes.py:296"}, "properties": {"repobilityId": "f010e56e6639593d", "scanner": "scanner-primary", "fingerprint": "8fda9c47c1695c3a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-9582ac00a089ebd4", "level": "error", "message": {"text": "FastAPI POST `portal_verify_code` without auth dependency \u2014 app/portal_routes.py:355"}, "properties": {"repobilityId": "31869a927033cbde", "scanner": "scanner-primary", "fingerprint": "9582ac00a089ebd4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 355}}}]}, {"ruleId": "scanner-46e952f6c808dcda", "level": "error", "message": {"text": "FastAPI POST `portal_logout` without auth dependency \u2014 app/portal_routes.py:446"}, "properties": {"repobilityId": "c1dc9f673f0b87a5", "scanner": "scanner-primary", "fingerprint": "46e952f6c808dcda", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 446}}}]}, {"ruleId": "scanner-89caa43c318afa16", "level": "error", "message": {"text": "FastAPI POST `portal_add_vital` without auth dependency \u2014 app/portal_routes.py:459"}, "properties": {"repobilityId": "c142cb809458b7b7", "scanner": "scanner-primary", "fingerprint": "89caa43c318afa16", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 459}}}]}, {"ruleId": "scanner-bc9107a47062c180", "level": "error", "message": {"text": "FastAPI POST `portal_update_perfil` without auth dependency \u2014 app/portal_routes.py:546"}, "properties": {"repobilityId": "ddd6d39b8ae1649a", "scanner": "scanner-primary", "fingerprint": "bc9107a47062c180", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 546}}}]}, {"ruleId": "scanner-f44c283de683c038", "level": "error", "message": {"text": "FastAPI DELETE `portal_delete_vital` without auth dependency \u2014 app/portal_routes.py:570"}, "properties": {"repobilityId": "5fb339fd0c9bbf26", "scanner": "scanner-primary", "fingerprint": "f44c283de683c038", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 570}}}]}, {"ruleId": "scanner-2424cbb06c2c4d8d", "level": "error", "message": {"text": "FastAPI POST `portal_family_switch` without auth dependency \u2014 app/portal_routes.py:696"}, "properties": {"repobilityId": "6380a63c8b68fe74", "scanner": "scanner-primary", "fingerprint": "2424cbb06c2c4d8d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 696}}}]}, {"ruleId": "scanner-e509e5d945d9ec6e", "level": "error", "message": {"text": "FastAPI POST `portal_family_add_minor` without auth dependency \u2014 app/portal_routes.py:729"}, "properties": {"repobilityId": "5fe3671bd6428f4f", "scanner": "scanner-primary", "fingerprint": "e509e5d945d9ec6e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 729}}}]}, {"ruleId": "scanner-6be94c74b3301ff2", "level": "error", "message": {"text": "FastAPI POST `portal_family_request_otp` without auth dependency \u2014 app/portal_routes.py:772"}, "properties": {"repobilityId": "712c99cc28094cd3", "scanner": "scanner-primary", "fingerprint": "6be94c74b3301ff2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 772}}}]}, {"ruleId": "scanner-44befc9c1c22d458", "level": "error", "message": {"text": "FastAPI POST `portal_family_verify_otp` without auth dependency \u2014 app/portal_routes.py:824"}, "properties": {"repobilityId": "689a0e8b3e8a095b", "scanner": "scanner-primary", "fingerprint": "44befc9c1c22d458", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 824}}}]}, {"ruleId": "scanner-aceda3a6a3757f68", "level": "error", "message": {"text": "FastAPI DELETE `portal_family_remove` without auth dependency \u2014 app/portal_routes.py:856"}, "properties": {"repobilityId": "5b94b4c8b5c7e77f", "scanner": "scanner-primary", "fingerprint": "aceda3a6a3757f68", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/portal_routes.py"}, "region": {"startLine": 856}}}]}, {"ruleId": "scanner-8d07eb362669607b", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/inventario_routes.py:337"}, "properties": {"repobilityId": "7a166dc88d045a96", "scanner": "scanner-primary", "fingerprint": "8d07eb362669607b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/inventario_routes.py"}, "region": {"startLine": 337}}}]}, {"ruleId": "scanner-c88cb104111eb320", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/inventario_routes.py:394"}, "properties": {"repobilityId": "6e6e61fe5c4365d7", "scanner": "scanner-primary", "fingerprint": "c88cb104111eb320", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/inventario_routes.py"}, "region": {"startLine": 394}}}]}, {"ruleId": "scanner-ab44dfa2efc33392", "level": "error", "message": {"text": "FastAPI POST `movimiento` without auth dependency \u2014 app/inventario_routes.py:437"}, "properties": {"repobilityId": "9d54c23ff162d2a0", "scanner": "scanner-primary", "fingerprint": "ab44dfa2efc33392", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/inventario_routes.py"}, "region": {"startLine": 437}}}]}, {"ruleId": "scanner-9007321533227728", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/inventario_routes.py:516"}, "properties": {"repobilityId": "c4d3ce1c4438c4ba", "scanner": "scanner-primary", "fingerprint": "9007321533227728", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/inventario_routes.py"}, "region": {"startLine": 516}}}]}, {"ruleId": "scanner-0d8eeb21886546c5", "level": "error", "message": {"text": "FastAPI POST `seed_endpoint` without auth dependency \u2014 app/inventario_routes.py:538"}, "properties": {"repobilityId": "0ff849d56529bd03", "scanner": "scanner-primary", "fingerprint": "0d8eeb21886546c5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/inventario_routes.py"}, "region": {"startLine": 538}}}]}, {"ruleId": "scanner-786a73262cc805b3", "level": "error", "message": {"text": "FastAPI PUT `set_plan` without auth dependency \u2014 app/ortodoncia_routes.py:337"}, "properties": {"repobilityId": "b11082804562df1d", "scanner": "scanner-primary", "fingerprint": "786a73262cc805b3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/ortodoncia_routes.py"}, "region": {"startLine": 337}}}]}, {"ruleId": "scanner-73f97c3502d3f6a4", "level": "error", "message": {"text": "FastAPI POST `identificar` without auth dependency \u2014 app/agendador_routes.py:341"}, "properties": {"repobilityId": "58c0e1f373fa2152", "scanner": "scanner-primary", "fingerprint": "73f97c3502d3f6a4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agendador_routes.py"}, "region": {"startLine": 341}}}]}, {"ruleId": "scanner-e12ba47bfe510ea4", "level": "error", "message": {"text": "FastAPI POST `reservar` without auth dependency \u2014 app/agendador_routes.py:381"}, "properties": {"repobilityId": "da8df4a63abce4e1", "scanner": "scanner-primary", "fingerprint": "e12ba47bfe510ea4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agendador_routes.py"}, "region": {"startLine": 381}}}]}, {"ruleId": "scanner-311716df81b2c415", "level": "error", "message": {"text": "FastAPI POST `mis_horas` without auth dependency \u2014 app/agendador_routes.py:553"}, "properties": {"repobilityId": "cd08a9293f43222f", "scanner": "scanner-primary", "fingerprint": "311716df81b2c415", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agendador_routes.py"}, "region": {"startLine": 553}}}]}, {"ruleId": "scanner-777dad7e7b88794d", "level": "error", "message": {"text": "FastAPI POST `cancelar` without auth dependency \u2014 app/agendador_routes.py:594"}, "properties": {"repobilityId": "685f4b285f74cb58", "scanner": "scanner-primary", "fingerprint": "777dad7e7b88794d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agendador_routes.py"}, "region": {"startLine": 594}}}]}, {"ruleId": "scanner-363e5faf6538b9e9", "level": "error", "message": {"text": "FastAPI POST `marcar_llegada` without auth dependency \u2014 app/checkin_routes.py:139"}, "properties": {"repobilityId": "59cd52410561b797", "scanner": "scanner-primary", "fingerprint": "363e5faf6538b9e9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checkin_routes.py"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-2578baa9e243fe91", "level": "error", "message": {"text": "FastAPI POST `marcar_atendido` without auth dependency \u2014 app/checkin_routes.py:209"}, "properties": {"repobilityId": "20435ea598f08874", "scanner": "scanner-primary", "fingerprint": "2578baa9e243fe91", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checkin_routes.py"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-3753a2c2e59acbcf", "level": "error", "message": {"text": "FastAPI POST `post_crear_cita` without auth dependency \u2014 app/agenda_routes.py:216"}, "properties": {"repobilityId": "d0770206833bc33c", "scanner": "scanner-primary", "fingerprint": "3753a2c2e59acbcf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/agenda_routes.py"}, "region": {"startLine": 216}}}]}, {"ruleId": "scanner-c6331513a0d24ecc", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/interconsultas_routes.py:85"}, "properties": {"repobilityId": "cf4ba9278c76bf93", "scanner": "scanner-primary", "fingerprint": "c6331513a0d24ecc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/interconsultas_routes.py"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-1b1c75c38a62bbd9", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/interconsultas_routes.py:117"}, "properties": {"repobilityId": "2aef5adcd10c11ab", "scanner": "scanner-primary", "fingerprint": "1b1c75c38a62bbd9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/interconsultas_routes.py"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-4691f16381062dd5", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/interconsultas_routes.py:145"}, "properties": {"repobilityId": "2f28e4618c396f0c", "scanner": "scanner-primary", "fingerprint": "4691f16381062dd5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/interconsultas_routes.py"}, "region": {"startLine": 145}}}]}, {"ruleId": "scanner-e10b1252fd7b2115", "level": "error", "message": {"text": "FastAPI POST `marcar` without auth dependency \u2014 app/checklist_routes.py:210"}, "properties": {"repobilityId": "9f3d172bc2c44a3a", "scanner": "scanner-primary", "fingerprint": "e10b1252fd7b2115", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checklist_routes.py"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-5a8ecf3048de9548", "level": "error", "message": {"text": "FastAPI POST `desmarcar` without auth dependency \u2014 app/checklist_routes.py:238"}, "properties": {"repobilityId": "847b856a1b02bd3c", "scanner": "scanner-primary", "fingerprint": "5a8ecf3048de9548", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checklist_routes.py"}, "region": {"startLine": 238}}}]}, {"ruleId": "scanner-cb8d9c22e2d01a74", "level": "error", "message": {"text": "FastAPI POST `crear_item` without auth dependency \u2014 app/checklist_routes.py:266"}, "properties": {"repobilityId": "041ef46d36fe37c3", "scanner": "scanner-primary", "fingerprint": "cb8d9c22e2d01a74", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checklist_routes.py"}, "region": {"startLine": 266}}}]}, {"ruleId": "scanner-aa17ca7c60e6dae3", "level": "error", "message": {"text": "FastAPI PATCH `editar_item` without auth dependency \u2014 app/checklist_routes.py:290"}, "properties": {"repobilityId": "ab62c33b51bc66d4", "scanner": "scanner-primary", "fingerprint": "aa17ca7c60e6dae3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checklist_routes.py"}, "region": {"startLine": 290}}}]}, {"ruleId": "scanner-80fb8134736a31a6", "level": "error", "message": {"text": "FastAPI DELETE `borrar_item` without auth dependency \u2014 app/checklist_routes.py:320"}, "properties": {"repobilityId": "c76328449c24fb74", "scanner": "scanner-primary", "fingerprint": "80fb8134736a31a6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checklist_routes.py"}, "region": {"startLine": 320}}}]}, {"ruleId": "scanner-6cb6ce7804427ad5", "level": "error", "message": {"text": "FastAPI POST `mural_post` without auth dependency \u2014 app/checklist_routes.py:390"}, "properties": {"repobilityId": "f787b39ca10fad85", "scanner": "scanner-primary", "fingerprint": "6cb6ce7804427ad5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checklist_routes.py"}, "region": {"startLine": 390}}}]}, {"ruleId": "scanner-ffe0543d42a0199d", "level": "error", "message": {"text": "FastAPI POST `mural_resolver` without auth dependency \u2014 app/checklist_routes.py:430"}, "properties": {"repobilityId": "66b6796719b3aa5b", "scanner": "scanner-primary", "fingerprint": "ffe0543d42a0199d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checklist_routes.py"}, "region": {"startLine": 430}}}]}, {"ruleId": "scanner-a79f6cc8ab96ca46", "level": "error", "message": {"text": "FastAPI POST `mural_pendiente` without auth dependency \u2014 app/checklist_routes.py:442"}, "properties": {"repobilityId": "0821f7a4175228ab", "scanner": "scanner-primary", "fingerprint": "a79f6cc8ab96ca46", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checklist_routes.py"}, "region": {"startLine": 442}}}]}, {"ruleId": "scanner-0d5312d98fb245c3", "level": "error", "message": {"text": "FastAPI DELETE `mural_borrar` without auth dependency \u2014 app/checklist_routes.py:451"}, "properties": {"repobilityId": "0a35fd80bff44a72", "scanner": "scanner-primary", "fingerprint": "0d5312d98fb245c3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/checklist_routes.py"}, "region": {"startLine": 451}}}]}, {"ruleId": "scanner-3cf94f969d0ae0de", "level": "error", "message": {"text": "FastAPI PUT `set_plan` without auth dependency \u2014 app/kine_routes.py:277"}, "properties": {"repobilityId": "5c702c70fcd9678e", "scanner": "scanner-primary", "fingerprint": "3cf94f969d0ae0de", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/kine_routes.py"}, "region": {"startLine": 277}}}]}, {"ruleId": "scanner-088c6b8c2ce921ea", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/finanzas_routes.py:107"}, "properties": {"repobilityId": "db6ce9d086c1d88d", "scanner": "scanner-primary", "fingerprint": "088c6b8c2ce921ea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/finanzas_routes.py"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-350057d989e78314", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/finanzas_routes.py:134"}, "properties": {"repobilityId": "995404f9001e0dda", "scanner": "scanner-primary", "fingerprint": "350057d989e78314", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/finanzas_routes.py"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-2b33b86d41beb8cb", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/finanzas_routes.py:162"}, "properties": {"repobilityId": "ff48534950d4ee42", "scanner": "scanner-primary", "fingerprint": "2b33b86d41beb8cb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/finanzas_routes.py"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-b048fcaca21a3f03", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/tareas_routes.py:78"}, "properties": {"repobilityId": "90aafd4e88791e57", "scanner": "scanner-primary", "fingerprint": "b048fcaca21a3f03", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tareas_routes.py"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-312c0876a4b38a8d", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/tareas_routes.py:101"}, "properties": {"repobilityId": "9d3e6c30e115d753", "scanner": "scanner-primary", "fingerprint": "312c0876a4b38a8d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tareas_routes.py"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-52a0790b849ac586", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/tareas_routes.py:132"}, "properties": {"repobilityId": "37969a4892d5096a", "scanner": "scanner-primary", "fingerprint": "52a0790b849ac586", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tareas_routes.py"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-1a0b803f3c8fceeb", "level": "error", "message": {"text": "FastAPI POST `set_fuente` without auth dependency \u2014 app/patient_source_routes.py:98"}, "properties": {"repobilityId": "bce5160c52bf1687", "scanner": "scanner-primary", "fingerprint": "1a0b803f3c8fceeb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/patient_source_routes.py"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-be56e3a89ddcdba0", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/esterilizacion_routes.py:89"}, "properties": {"repobilityId": "e67b14651d54fd4a", "scanner": "scanner-primary", "fingerprint": "be56e3a89ddcdba0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/esterilizacion_routes.py"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-8e01c25619309056", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/esterilizacion_routes.py:118"}, "properties": {"repobilityId": "329d7feb89779a27", "scanner": "scanner-primary", "fingerprint": "8e01c25619309056", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/esterilizacion_routes.py"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-bd3e8eaecbef8bbc", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/esterilizacion_routes.py:146"}, "properties": {"repobilityId": "b5e49c3e2c12c851", "scanner": "scanner-primary", "fingerprint": "bd3e8eaecbef8bbc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/esterilizacion_routes.py"}, "region": {"startLine": 146}}}]}, {"ruleId": "scanner-fff4af3521e0895d", "level": "error", "message": {"text": "FastAPI PATCH `patch_item` without auth dependency \u2014 app/habilitacion_routes.py:174"}, "properties": {"repobilityId": "20f7b5179846b158", "scanner": "scanner-primary", "fingerprint": "fff4af3521e0895d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/habilitacion_routes.py"}, "region": {"startLine": 174}}}]}, {"ruleId": "scanner-9c313491f67bb1c6", "level": "error", "message": {"text": "FastAPI POST `add_item` without auth dependency \u2014 app/habilitacion_routes.py:198"}, "properties": {"repobilityId": "440bcbad89d7e2ed", "scanner": "scanner-primary", "fingerprint": "9c313491f67bb1c6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/habilitacion_routes.py"}, "region": {"startLine": 198}}}]}, {"ruleId": "scanner-5a8a5e438a0e2c0c", "level": "error", "message": {"text": "FastAPI DELETE `del_item` without auth dependency \u2014 app/habilitacion_routes.py:219"}, "properties": {"repobilityId": "78c75c6adef29205", "scanner": "scanner-primary", "fingerprint": "5a8a5e438a0e2c0c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/habilitacion_routes.py"}, "region": {"startLine": 219}}}]}, {"ruleId": "scanner-5696aea42faef440", "level": "error", "message": {"text": "FastAPI PATCH `patch_sala` without auth dependency \u2014 app/habilitacion_routes.py:232"}, "properties": {"repobilityId": "4ff9d772e499c969", "scanner": "scanner-primary", "fingerprint": "5696aea42faef440", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/habilitacion_routes.py"}, "region": {"startLine": 232}}}]}, {"ruleId": "scanner-40d6dd931718d6f3", "level": "error", "message": {"text": "FastAPI POST `panel_cap_refresh` without auth dependency \u2014 app/panel_dia_routes.py:380"}, "properties": {"repobilityId": "3a07cef8f7b07967", "scanner": "scanner-primary", "fingerprint": "40d6dd931718d6f3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/panel_dia_routes.py"}, "region": {"startLine": 380}}}]}, {"ruleId": "scanner-c7e56ad449000882", "level": "error", "message": {"text": "FastAPI POST `generar` without auth dependency \u2014 app/liquidaciones_routes.py:90"}, "properties": {"repobilityId": "179ac03b26840229", "scanner": "scanner-primary", "fingerprint": "c7e56ad449000882", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/liquidaciones_routes.py"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-8c3c27a0703f388b", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/liquidaciones_routes.py:126"}, "properties": {"repobilityId": "64525a74714bbe5d", "scanner": "scanner-primary", "fingerprint": "8c3c27a0703f388b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/liquidaciones_routes.py"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-208b49ad2b0b7156", "level": "error", "message": {"text": "FastAPI PUT `set_plan` without auth dependency \u2014 app/programas.py:886"}, "properties": {"repobilityId": "ef4540d300094392", "scanner": "scanner-primary", "fingerprint": "208b49ad2b0b7156", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 886}}}]}, {"ruleId": "scanner-e1652f131f3f7835", "level": "error", "message": {"text": "FastAPI POST `crear_segmento` without auth dependency \u2014 app/programas.py:951"}, "properties": {"repobilityId": "b36b873aeb914f05", "scanner": "scanner-primary", "fingerprint": "e1652f131f3f7835", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 951}}}]}, {"ruleId": "scanner-38819a2b3cafcb90", "level": "error", "message": {"text": "FastAPI PUT `renombrar_segmento` without auth dependency \u2014 app/programas.py:970"}, "properties": {"repobilityId": "15b9a77046963f9a", "scanner": "scanner-primary", "fingerprint": "38819a2b3cafcb90", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 970}}}]}, {"ruleId": "scanner-d5a90990641f563f", "level": "error", "message": {"text": "FastAPI DELETE `borrar_segmento` without auth dependency \u2014 app/programas.py:997"}, "properties": {"repobilityId": "d471a495133eb752", "scanner": "scanner-primary", "fingerprint": "d5a90990641f563f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 997}}}]}, {"ruleId": "scanner-b0ba72b0cb10314e", "level": "error", "message": {"text": "FastAPI PUT `set_segmento` without auth dependency \u2014 app/programas.py:1011"}, "properties": {"repobilityId": "866f881ab607d0ef", "scanner": "scanner-primary", "fingerprint": "b0ba72b0cb10314e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 1011}}}]}, {"ruleId": "scanner-2083484b08f0a8f1", "level": "error", "message": {"text": "FastAPI PUT `set_pendientes` without auth dependency \u2014 app/programas.py:1032"}, "properties": {"repobilityId": "ad54e24884e45e8d", "scanner": "scanner-primary", "fingerprint": "2083484b08f0a8f1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 1032}}}]}, {"ruleId": "scanner-e776e925989b8e6f", "level": "error", "message": {"text": "FastAPI POST `agregar_medicion` without auth dependency \u2014 app/programas.py:1063"}, "properties": {"repobilityId": "e20565e9e36c4b1f", "scanner": "scanner-primary", "fingerprint": "e776e925989b8e6f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 1063}}}]}, {"ruleId": "scanner-1fc6d2ba60db490e", "level": "error", "message": {"text": "FastAPI DELETE `borrar_medicion` without auth dependency \u2014 app/programas.py:1091"}, "properties": {"repobilityId": "686808df084c18c8", "scanner": "scanner-primary", "fingerprint": "1fc6d2ba60db490e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 1091}}}]}, {"ruleId": "scanner-1519e962ea341021", "level": "error", "message": {"text": "FastAPI POST `crear_objetivo` without auth dependency \u2014 app/programas.py:1113"}, "properties": {"repobilityId": "c6f41adb303142ee", "scanner": "scanner-primary", "fingerprint": "1519e962ea341021", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 1113}}}]}, {"ruleId": "scanner-987a142b4272892f", "level": "error", "message": {"text": "FastAPI PUT `renombrar_objetivo` without auth dependency \u2014 app/programas.py:1132"}, "properties": {"repobilityId": "7934163e43f8f790", "scanner": "scanner-primary", "fingerprint": "987a142b4272892f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 1132}}}]}, {"ruleId": "scanner-1e5dd5e6dce50253", "level": "error", "message": {"text": "FastAPI DELETE `borrar_objetivo` without auth dependency \u2014 app/programas.py:1158"}, "properties": {"repobilityId": "c932ce239e84e3e0", "scanner": "scanner-primary", "fingerprint": "1e5dd5e6dce50253", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 1158}}}]}, {"ruleId": "scanner-ddafd28824a60bf4", "level": "error", "message": {"text": "FastAPI PUT `set_objetivo` without auth dependency \u2014 app/programas.py:1171"}, "properties": {"repobilityId": "f95a600fa5214cd8", "scanner": "scanner-primary", "fingerprint": "ddafd28824a60bf4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/programas.py"}, "region": {"startLine": 1171}}}]}, {"ruleId": "scanner-15960956646f4c45", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/mantencion_routes.py:128"}, "properties": {"repobilityId": "d45152c280d6df84", "scanner": "scanner-primary", "fingerprint": "15960956646f4c45", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/mantencion_routes.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-6f934cdfbbe5d33f", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/mantencion_routes.py:152"}, "properties": {"repobilityId": "7218bc4829cae0d3", "scanner": "scanner-primary", "fingerprint": "6f934cdfbbe5d33f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/mantencion_routes.py"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-e933e0bb208d3af3", "level": "error", "message": {"text": "FastAPI POST `registrar_mant` without auth dependency \u2014 app/mantencion_routes.py:180"}, "properties": {"repobilityId": "8883e4232725c8a2", "scanner": "scanner-primary", "fingerprint": "e933e0bb208d3af3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/mantencion_routes.py"}, "region": {"startLine": 180}}}]}, {"ruleId": "scanner-4dc85417b54edd0f", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/mantencion_routes.py:226"}, "properties": {"repobilityId": "cabd540f90179325", "scanner": "scanner-primary", "fingerprint": "4dc85417b54edd0f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/mantencion_routes.py"}, "region": {"startLine": 226}}}]}, {"ruleId": "scanner-5cb48f79188c07e9", "level": "error", "message": {"text": "FastAPI POST `post_abono` without auth dependency \u2014 app/abonos_routes.py:177"}, "properties": {"repobilityId": "41ba5c31895ae519", "scanner": "scanner-primary", "fingerprint": "5cb48f79188c07e9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/abonos_routes.py"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-956c464ea65e655b", "level": "error", "message": {"text": "FastAPI PUT `put_abono` without auth dependency \u2014 app/abonos_routes.py:354"}, "properties": {"repobilityId": "770a31902226b267", "scanner": "scanner-primary", "fingerprint": "956c464ea65e655b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/abonos_routes.py"}, "region": {"startLine": 354}}}]}, {"ruleId": "scanner-29d87f2a1303fbf7", "level": "error", "message": {"text": "FastAPI POST `aplicar_abono` without auth dependency \u2014 app/abonos_routes.py:447"}, "properties": {"repobilityId": "980c8e7688715465", "scanner": "scanner-primary", "fingerprint": "29d87f2a1303fbf7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/abonos_routes.py"}, "region": {"startLine": 447}}}]}, {"ruleId": "scanner-0248479693bb151f", "level": "error", "message": {"text": "FastAPI DELETE `delete_abono` without auth dependency \u2014 app/abonos_routes.py:534"}, "properties": {"repobilityId": "842bdc86f80043c0", "scanner": "scanner-primary", "fingerprint": "0248479693bb151f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/abonos_routes.py"}, "region": {"startLine": 534}}}]}, {"ruleId": "scanner-a09d4f8a65b4a177", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/proveedores_routes.py:96"}, "properties": {"repobilityId": "85663cc0ff76852a", "scanner": "scanner-primary", "fingerprint": "a09d4f8a65b4a177", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/proveedores_routes.py"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-891d200f09ed3ff4", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/proveedores_routes.py:121"}, "properties": {"repobilityId": "ebb32f4ab7a10e54", "scanner": "scanner-primary", "fingerprint": "891d200f09ed3ff4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/proveedores_routes.py"}, "region": {"startLine": 121}}}]}, {"ruleId": "scanner-981ba13d3dd822e6", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/proveedores_routes.py:147"}, "properties": {"repobilityId": "5a911290a70c3889", "scanner": "scanner-primary", "fingerprint": "981ba13d3dd822e6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/proveedores_routes.py"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-26a254bc91398031", "level": "error", "message": {"text": "FastAPI POST `crear_oc` without auth dependency \u2014 app/proveedores_routes.py:174"}, "properties": {"repobilityId": "b6f3b0147b9220a8", "scanner": "scanner-primary", "fingerprint": "26a254bc91398031", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/proveedores_routes.py"}, "region": {"startLine": 174}}}]}, {"ruleId": "scanner-7453d85173656611", "level": "error", "message": {"text": "FastAPI PATCH `editar_oc` without auth dependency \u2014 app/proveedores_routes.py:200"}, "properties": {"repobilityId": "fc348fc72cb815a1", "scanner": "scanner-primary", "fingerprint": "7453d85173656611", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/proveedores_routes.py"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-f3f6a2afda8bf04f", "level": "error", "message": {"text": "FastAPI DELETE `eliminar_oc` without auth dependency \u2014 app/proveedores_routes.py:227"}, "properties": {"repobilityId": "c2437b9ef17f2e1d", "scanner": "scanner-primary", "fingerprint": "f3f6a2afda8bf04f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/proveedores_routes.py"}, "region": {"startLine": 227}}}]}, {"ruleId": "scanner-b64445b627fb2eaa", "level": "error", "message": {"text": "FastAPI POST `control_toggle` without auth dependency \u2014 app/alma_control_routes.py:265"}, "properties": {"repobilityId": "c918deec699207e7", "scanner": "scanner-primary", "fingerprint": "b64445b627fb2eaa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_control_routes.py"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-62ebc210722954ff", "level": "error", "message": {"text": "FastAPI POST `control_reset` without auth dependency \u2014 app/alma_control_routes.py:280"}, "properties": {"repobilityId": "ac191be60f093560", "scanner": "scanner-primary", "fingerprint": "62ebc210722954ff", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_control_routes.py"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-1c22b5a6add9deb9", "level": "error", "message": {"text": "FastAPI POST `control_dryrun` without auth dependency \u2014 app/alma_control_routes.py:286"}, "properties": {"repobilityId": "ac595aeacbd9a6a3", "scanner": "scanner-primary", "fingerprint": "1c22b5a6add9deb9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_control_routes.py"}, "region": {"startLine": 286}}}]}, {"ruleId": "scanner-f15b09f650a6d2af", "level": "error", "message": {"text": "FastAPI PUT `reasignar` without auth dependency \u2014 app/pagos_medilink_routes.py:197"}, "properties": {"repobilityId": "832f2830835df8de", "scanner": "scanner-primary", "fingerprint": "f15b09f650a6d2af", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/pagos_medilink_routes.py"}, "region": {"startLine": 197}}}]}, {"ruleId": "scanner-2ea41af3cca70c50", "level": "error", "message": {"text": "FastAPI POST `aplicar_repasada_endpoint` without auth dependency \u2014 app/pagos_medilink_routes.py:308"}, "properties": {"repobilityId": "e9b801f6afba2b7a", "scanner": "scanner-primary", "fingerprint": "2ea41af3cca70c50", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/pagos_medilink_routes.py"}, "region": {"startLine": 308}}}]}, {"ruleId": "scanner-ac6dfaff5c2c3e87", "level": "error", "message": {"text": "FastAPI POST `api_gasto_add` without auth dependency \u2014 app/ebitda_routes.py:213"}, "properties": {"repobilityId": "e305f6bbc94c1dea", "scanner": "scanner-primary", "fingerprint": "ac6dfaff5c2c3e87", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/ebitda_routes.py"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-7d2efcc14f6ef94c", "level": "error", "message": {"text": "FastAPI DELETE `api_gasto_del` without auth dependency \u2014 app/ebitda_routes.py:241"}, "properties": {"repobilityId": "4ab4fc647d040661", "scanner": "scanner-primary", "fingerprint": "7d2efcc14f6ef94c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/ebitda_routes.py"}, "region": {"startLine": 241}}}]}, {"ruleId": "scanner-223595f12b40d810", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/equipo_routes.py:157"}, "properties": {"repobilityId": "430e7d8885889b8e", "scanner": "scanner-primary", "fingerprint": "223595f12b40d810", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/equipo_routes.py"}, "region": {"startLine": 157}}}]}, {"ruleId": "scanner-de2432e3c24b81c8", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/equipo_routes.py:182"}, "properties": {"repobilityId": "7dd5f364aad97c38", "scanner": "scanner-primary", "fingerprint": "de2432e3c24b81c8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/equipo_routes.py"}, "region": {"startLine": 182}}}]}, {"ruleId": "scanner-341dde56f7511b8f", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/equipo_routes.py:210"}, "properties": {"repobilityId": "b4497f50a9529461", "scanner": "scanner-primary", "fingerprint": "341dde56f7511b8f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/equipo_routes.py"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-489095d00e9c15cc", "level": "error", "message": {"text": "FastAPI POST `run_conciliacion` without auth dependency \u2014 app/conciliacion_routes.py:544"}, "properties": {"repobilityId": "d78d0f9058a12fb2", "scanner": "scanner-primary", "fingerprint": "489095d00e9c15cc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/conciliacion_routes.py"}, "region": {"startLine": 544}}}]}, {"ruleId": "scanner-eaac79b283e7f5b3", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/documentos_routes.py:119"}, "properties": {"repobilityId": "94df07fb1ecfc1c6", "scanner": "scanner-primary", "fingerprint": "eaac79b283e7f5b3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/documentos_routes.py"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-a1a8c095c741b7ab", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/documentos_routes.py:142"}, "properties": {"repobilityId": "02dcf15e44d405bc", "scanner": "scanner-primary", "fingerprint": "a1a8c095c741b7ab", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/documentos_routes.py"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-e3c10826f214c38b", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/documentos_routes.py:168"}, "properties": {"repobilityId": "766aad32e73d7643", "scanner": "scanner-primary", "fingerprint": "e3c10826f214c38b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/documentos_routes.py"}, "region": {"startLine": 168}}}]}, {"ruleId": "scanner-7d0532212499f0e2", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/examenes_routes.py:73"}, "properties": {"repobilityId": "6c1960520a257169", "scanner": "scanner-primary", "fingerprint": "7d0532212499f0e2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/examenes_routes.py"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-69367fefa1c79848", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/examenes_routes.py:99"}, "properties": {"repobilityId": "24092ebe78a76bc8", "scanner": "scanner-primary", "fingerprint": "69367fefa1c79848", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/examenes_routes.py"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-5abe2ed64e6533f6", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/examenes_routes.py:129"}, "properties": {"repobilityId": "89ae7f01c44e0948", "scanner": "scanner-primary", "fingerprint": "5abe2ed64e6533f6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/examenes_routes.py"}, "region": {"startLine": 129}}}]}, {"ruleId": "scanner-ebe4dd01b2513011", "level": "error", "message": {"text": "FastAPI POST `transcribir_foto` without auth dependency \u2014 app/examenes_routes.py:142"}, "properties": {"repobilityId": "24952729589a3078", "scanner": "scanner-primary", "fingerprint": "ebe4dd01b2513011", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/examenes_routes.py"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-11a1da471889e4b0", "level": "error", "message": {"text": "FastAPI POST `admin_login` without auth dependency \u2014 app/admin_routes.py:320"}, "properties": {"repobilityId": "f9e889512903cfb3", "scanner": "scanner-primary", "fingerprint": "11a1da471889e4b0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin_routes.py"}, "region": {"startLine": 320}}}]}, {"ruleId": "scanner-faeb5a468767410e", "level": "error", "message": {"text": "FastAPI POST `admin_logout` without auth dependency \u2014 app/admin_routes.py:346"}, "properties": {"repobilityId": "dec814119c7d4bd7", "scanner": "scanner-primary", "fingerprint": "faeb5a468767410e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/admin_routes.py"}, "region": {"startLine": 346}}}]}, {"ruleId": "scanner-118dacdeb8a2b232", "level": "error", "message": {"text": "FastAPI POST `crear` without auth dependency \u2014 app/calidad_routes.py:77"}, "properties": {"repobilityId": "4e869d3741b7f8ee", "scanner": "scanner-primary", "fingerprint": "118dacdeb8a2b232", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/calidad_routes.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-8d0d51bb6fdce030", "level": "error", "message": {"text": "FastAPI PATCH `editar` without auth dependency \u2014 app/calidad_routes.py:105"}, "properties": {"repobilityId": "cfe30a9c23c1476b", "scanner": "scanner-primary", "fingerprint": "8d0d51bb6fdce030", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/calidad_routes.py"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-9a92a3ead7574528", "level": "error", "message": {"text": "FastAPI DELETE `eliminar` without auth dependency \u2014 app/calidad_routes.py:133"}, "properties": {"repobilityId": "6f70d67c93d8fad6", "scanner": "scanner-primary", "fingerprint": "9a92a3ead7574528", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/calidad_routes.py"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-7dd1f82381615ba4", "level": "error", "message": {"text": "FastAPI POST `registrar_deposito` without auth dependency \u2014 app/caja_diaria_routes.py:284"}, "properties": {"repobilityId": "27637a4fdf5dddb1", "scanner": "scanner-primary", "fingerprint": "7dd1f82381615ba4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/caja_diaria_routes.py"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-2880018373686d31", "level": "error", "message": {"text": "FastAPI POST `upsert_caja_diaria` without auth dependency \u2014 app/caja_diaria_routes.py:332"}, "properties": {"repobilityId": "5eff38b2bfb193a1", "scanner": "scanner-primary", "fingerprint": "2880018373686d31", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/caja_diaria_routes.py"}, "region": {"startLine": 332}}}]}, {"ruleId": "scanner-8bfc6264f077ea90", "level": "error", "message": {"text": "FastAPI PATCH `patch_caja_diaria` without auth dependency \u2014 app/caja_diaria_routes.py:377"}, "properties": {"repobilityId": "adbd8983065e13d9", "scanner": "scanner-primary", "fingerprint": "8bfc6264f077ea90", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/caja_diaria_routes.py"}, "region": {"startLine": 377}}}]}, {"ruleId": "scanner-6536c18dfa50780f", "level": "error", "message": {"text": "FastAPI DELETE `delete_caja_diaria` without auth dependency \u2014 app/caja_diaria_routes.py:420"}, "properties": {"repobilityId": "78e8293ab5a58499", "scanner": "scanner-primary", "fingerprint": "6536c18dfa50780f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/caja_diaria_routes.py"}, "region": {"startLine": 420}}}]}, {"ruleId": "scanner-60be60cdfb8d469e", "level": "error", "message": {"text": "FastAPI POST `brain_refresh_api` without auth dependency \u2014 app/alma_brain/routes.py:74"}, "properties": {"repobilityId": "1c05bb1e6b65227b", "scanner": "scanner-primary", "fingerprint": "60be60cdfb8d469e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_brain/routes.py"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-398f7bad6b1fc732", "level": "error", "message": {"text": "FastAPI POST `brain_chat_api` without auth dependency \u2014 app/alma_brain/routes.py:94"}, "properties": {"repobilityId": "000036d01b771973", "scanner": "scanner-primary", "fingerprint": "398f7bad6b1fc732", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_brain/routes.py"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-2a08e26576f675b1", "level": "error", "message": {"text": "FastAPI POST `brain_proposal_approve` without auth dependency \u2014 app/alma_brain/routes.py:120"}, "properties": {"repobilityId": "857ffa2016df5a20", "scanner": "scanner-primary", "fingerprint": "2a08e26576f675b1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_brain/routes.py"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-fcff2338e6fc3dbe", "level": "error", "message": {"text": "FastAPI POST `brain_proposal_reject` without auth dependency \u2014 app/alma_brain/routes.py:132"}, "properties": {"repobilityId": "bcb57217733dfd7c", "scanner": "scanner-primary", "fingerprint": "fcff2338e6fc3dbe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_brain/routes.py"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-ebe8e2a755c0fc3d", "level": "error", "message": {"text": "FastAPI POST `autopilot_refresh` without auth dependency \u2014 app/autopilot/routes.py:92"}, "properties": {"repobilityId": "69697c525af163cb", "scanner": "scanner-primary", "fingerprint": "ebe8e2a755c0fc3d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-b954aa716a8ec1a0", "level": "error", "message": {"text": "FastAPI POST `autopilot_atribucion_refresh` without auth dependency \u2014 app/autopilot/routes.py:125"}, "properties": {"repobilityId": "677850d5b7409858", "scanner": "scanner-primary", "fingerprint": "b954aa716a8ec1a0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-8a7f388df549d81a", "level": "error", "message": {"text": "FastAPI POST `autopilot_designs_add` without auth dependency \u2014 app/autopilot/routes.py:157"}, "properties": {"repobilityId": "ec892e984c6bf192", "scanner": "scanner-primary", "fingerprint": "8a7f388df549d81a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 157}}}]}, {"ruleId": "scanner-52843760223b9683", "level": "error", "message": {"text": "FastAPI DELETE `autopilot_designs_del` without auth dependency \u2014 app/autopilot/routes.py:170"}, "properties": {"repobilityId": "0cf4e7e65e38e30b", "scanner": "scanner-primary", "fingerprint": "52843760223b9683", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-c3353fccdc67ac1c", "level": "error", "message": {"text": "FastAPI POST `autopilot_designs_status` without auth dependency \u2014 app/autopilot/routes.py:177"}, "properties": {"repobilityId": "13790f5df4a1605f", "scanner": "scanner-primary", "fingerprint": "c3353fccdc67ac1c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-ff179b48ac627419", "level": "error", "message": {"text": "FastAPI POST `autopilot_designs_generate` without auth dependency \u2014 app/autopilot/routes.py:219"}, "properties": {"repobilityId": "be9b86a29e9c7943", "scanner": "scanner-primary", "fingerprint": "ff179b48ac627419", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 219}}}]}, {"ruleId": "scanner-659685b281ba0238", "level": "error", "message": {"text": "FastAPI POST `autopilot_designs_save_edit` without auth dependency \u2014 app/autopilot/routes.py:258"}, "properties": {"repobilityId": "edd086a4b79402f3", "scanner": "scanner-primary", "fingerprint": "659685b281ba0238", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 258}}}]}, {"ruleId": "scanner-c2b2dce16e5aacb9", "level": "error", "message": {"text": "FastAPI POST `autopilot_designs_cutout` without auth dependency \u2014 app/autopilot/routes.py:295"}, "properties": {"repobilityId": "f213a2a2bb5f43f7", "scanner": "scanner-primary", "fingerprint": "c2b2dce16e5aacb9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 295}}}]}, {"ruleId": "scanner-f0e9809a19036012", "level": "error", "message": {"text": "FastAPI POST `email_segments_save` without auth dependency \u2014 app/autopilot/routes.py:367"}, "properties": {"repobilityId": "af5d7f579229ff06", "scanner": "scanner-primary", "fingerprint": "f0e9809a19036012", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 367}}}]}, {"ruleId": "scanner-2b4b29edeb1db0eb", "level": "error", "message": {"text": "FastAPI DELETE `email_segments_del` without auth dependency \u2014 app/autopilot/routes.py:381"}, "properties": {"repobilityId": "4374b5f808a76832", "scanner": "scanner-primary", "fingerprint": "2b4b29edeb1db0eb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 381}}}]}, {"ruleId": "scanner-2f6ab4f3211caa67", "level": "error", "message": {"text": "FastAPI POST `email_preview` without auth dependency \u2014 app/autopilot/routes.py:389"}, "properties": {"repobilityId": "47391ef65aff1ec7", "scanner": "scanner-primary", "fingerprint": "2f6ab4f3211caa67", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 389}}}]}, {"ruleId": "scanner-04a5fe9b4bb9f945", "level": "error", "message": {"text": "FastAPI POST `email_baja_post` without auth dependency \u2014 app/autopilot/routes.py:462"}, "properties": {"repobilityId": "cd36a150396cc435", "scanner": "scanner-primary", "fingerprint": "04a5fe9b4bb9f945", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 462}}}]}, {"ruleId": "scanner-bf7b0edcde475873", "level": "error", "message": {"text": "FastAPI POST `audiences_overview_ep` without auth dependency \u2014 app/autopilot/routes.py:500"}, "properties": {"repobilityId": "0a0dca97999d479e", "scanner": "scanner-primary", "fingerprint": "bf7b0edcde475873", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 500}}}]}, {"ruleId": "scanner-97cae46880148693", "level": "error", "message": {"text": "FastAPI POST `email_send_ep` without auth dependency \u2014 app/autopilot/routes.py:513"}, "properties": {"repobilityId": "9b381f81b6ad7ef3", "scanner": "scanner-primary", "fingerprint": "97cae46880148693", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 513}}}]}, {"ruleId": "scanner-a28958069e92e23e", "level": "error", "message": {"text": "FastAPI POST `optimizer_apply` without auth dependency \u2014 app/autopilot/routes.py:553"}, "properties": {"repobilityId": "b11193204f0f40a2", "scanner": "scanner-primary", "fingerprint": "a28958069e92e23e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 553}}}]}, {"ruleId": "scanner-e057d39f042f0413", "level": "error", "message": {"text": "FastAPI POST `learned_skills_run` without auth dependency \u2014 app/autopilot/routes.py:601"}, "properties": {"repobilityId": "e3bf19fc72764713", "scanner": "scanner-primary", "fingerprint": "e057d39f042f0413", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 601}}}]}, {"ruleId": "scanner-f99e04acca635764", "level": "error", "message": {"text": "FastAPI POST `director_set_budget` without auth dependency \u2014 app/autopilot/routes.py:727"}, "properties": {"repobilityId": "8b5381e8e93d8fc6", "scanner": "scanner-primary", "fingerprint": "f99e04acca635764", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 727}}}]}, {"ruleId": "scanner-fa3ebf1b902d86ca", "level": "error", "message": {"text": "FastAPI POST `publish_enqueue` without auth dependency \u2014 app/autopilot/routes.py:792"}, "properties": {"repobilityId": "4bd715ac7668fba2", "scanner": "scanner-primary", "fingerprint": "fa3ebf1b902d86ca", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 792}}}]}, {"ruleId": "scanner-9d5856e34e11168c", "level": "error", "message": {"text": "FastAPI POST `publish_approve` without auth dependency \u2014 app/autopilot/routes.py:808"}, "properties": {"repobilityId": "cfd489724ba5c1c1", "scanner": "scanner-primary", "fingerprint": "9d5856e34e11168c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 808}}}]}, {"ruleId": "scanner-560f97b649166641", "level": "error", "message": {"text": "FastAPI POST `publish_reschedule` without auth dependency \u2014 app/autopilot/routes.py:824"}, "properties": {"repobilityId": "07b0ddafae8b5a93", "scanner": "scanner-primary", "fingerprint": "560f97b649166641", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 824}}}]}, {"ruleId": "scanner-ee0ba28e51157b60", "level": "error", "message": {"text": "FastAPI POST `publish_now` without auth dependency \u2014 app/autopilot/routes.py:839"}, "properties": {"repobilityId": "81aa6ccfe4492c34", "scanner": "scanner-primary", "fingerprint": "ee0ba28e51157b60", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 839}}}]}, {"ruleId": "scanner-e934e4505826eee9", "level": "error", "message": {"text": "FastAPI DELETE `publish_delete` without auth dependency \u2014 app/autopilot/routes.py:849"}, "properties": {"repobilityId": "5713af3b1220e135", "scanner": "scanner-primary", "fingerprint": "e934e4505826eee9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 849}}}]}, {"ruleId": "scanner-dddb82fc6545b933", "level": "error", "message": {"text": "FastAPI POST `seo_audit_run` without auth dependency \u2014 app/autopilot/routes.py:900"}, "properties": {"repobilityId": "7183aa94daeb08cc", "scanner": "scanner-primary", "fingerprint": "dddb82fc6545b933", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 900}}}]}, {"ruleId": "scanner-e3ef025eade175d2", "level": "error", "message": {"text": "FastAPI POST `seo_targets_add` without auth dependency \u2014 app/autopilot/routes.py:926"}, "properties": {"repobilityId": "00a68738f47d9423", "scanner": "scanner-primary", "fingerprint": "e3ef025eade175d2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 926}}}]}, {"ruleId": "scanner-4a3b5b9eef6287c5", "level": "error", "message": {"text": "FastAPI DELETE `seo_targets_del` without auth dependency \u2014 app/autopilot/routes.py:940"}, "properties": {"repobilityId": "4567140537630445", "scanner": "scanner-primary", "fingerprint": "4a3b5b9eef6287c5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 940}}}]}, {"ruleId": "scanner-7e930c2059433415", "level": "error", "message": {"text": "FastAPI POST `pending_approve` without auth dependency \u2014 app/autopilot/routes.py:989"}, "properties": {"repobilityId": "cef69d2c18709400", "scanner": "scanner-primary", "fingerprint": "7e930c2059433415", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 989}}}]}, {"ruleId": "scanner-492b6452cbd69f78", "level": "error", "message": {"text": "FastAPI POST `pending_reject` without auth dependency \u2014 app/autopilot/routes.py:1001"}, "properties": {"repobilityId": "160890fb56cf421c", "scanner": "scanner-primary", "fingerprint": "492b6452cbd69f78", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 1001}}}]}, {"ruleId": "scanner-7842dba25b7a26a2", "level": "error", "message": {"text": "FastAPI POST `creatives_refresh` without auth dependency \u2014 app/autopilot/routes.py:1025"}, "properties": {"repobilityId": "aaac7090e9d11bc4", "scanner": "scanner-primary", "fingerprint": "7842dba25b7a26a2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 1025}}}]}, {"ruleId": "scanner-1086ae53d8b4d490", "level": "error", "message": {"text": "FastAPI POST `autopilot_settings_set` without auth dependency \u2014 app/autopilot/routes.py:1068"}, "properties": {"repobilityId": "f3e46cdf71ddc978", "scanner": "scanner-primary", "fingerprint": "1086ae53d8b4d490", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 1068}}}]}, {"ruleId": "scanner-8a9f15ff8a22a5e8", "level": "error", "message": {"text": "FastAPI POST `autopilot_creatives_autogen` without auth dependency \u2014 app/autopilot/routes.py:1083"}, "properties": {"repobilityId": "051e85747c9f1734", "scanner": "scanner-primary", "fingerprint": "8a9f15ff8a22a5e8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 1083}}}]}, {"ruleId": "scanner-f0effe58d01063bd", "level": "error", "message": {"text": "FastAPI POST `autopilot_capacity_set` without auth dependency \u2014 app/autopilot/routes.py:1110"}, "properties": {"repobilityId": "8406049880383f54", "scanner": "scanner-primary", "fingerprint": "f0effe58d01063bd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/autopilot/routes.py"}, "region": {"startLine": 1110}}}]}, {"ruleId": "scanner-88ef6e9fa909d187", "level": "error", "message": {"text": "FastAPI POST `agents_dryrun` without auth dependency \u2014 app/alma_agents/routes.py:72"}, "properties": {"repobilityId": "d35e3cce285d881e", "scanner": "scanner-primary", "fingerprint": "88ef6e9fa909d187", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_agents/routes.py"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-696024763b83527c", "level": "error", "message": {"text": "FastAPI POST `agents_effectiveness_measure` without auth dependency \u2014 app/alma_agents/routes.py:109"}, "properties": {"repobilityId": "7b582f2a6ad2bf73", "scanner": "scanner-primary", "fingerprint": "696024763b83527c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_agents/routes.py"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-497c84246143e6c4", "level": "error", "message": {"text": "FastAPI POST `agents_emit` without auth dependency \u2014 app/alma_agents/routes.py:154"}, "properties": {"repobilityId": "e2a8b2f33da6fe8f", "scanner": "scanner-primary", "fingerprint": "497c84246143e6c4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_agents/routes.py"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-71fa492c91e192af", "level": "error", "message": {"text": "FastAPI POST `agents_goals_create` without auth dependency \u2014 app/alma_agents/routes.py:176"}, "properties": {"repobilityId": "2b1f47c30640949d", "scanner": "scanner-primary", "fingerprint": "71fa492c91e192af", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_agents/routes.py"}, "region": {"startLine": 176}}}]}, {"ruleId": "scanner-fbdfc1171b839b3f", "level": "error", "message": {"text": "FastAPI POST `agents_control` without auth dependency \u2014 app/alma_agents/routes.py:195"}, "properties": {"repobilityId": "58572287be956d8f", "scanner": "scanner-primary", "fingerprint": "fbdfc1171b839b3f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_agents/routes.py"}, "region": {"startLine": 195}}}]}, {"ruleId": "scanner-9ea4cf7982023b77", "level": "error", "message": {"text": "FastAPI POST `agents_control_reset` without auth dependency \u2014 app/alma_agents/routes.py:206"}, "properties": {"repobilityId": "0edaad36b1c71db6", "scanner": "scanner-primary", "fingerprint": "9ea4cf7982023b77", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/alma_agents/routes.py"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-bb00425a2fe4626c", "level": "note", "message": {"text": "Unused endpoint: GET /arancel"}, "properties": {"repobilityId": "583a66f71e661c84", "scanner": "scanner-primary", "fingerprint": "bb00425a2fe4626c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-141bf0fc5a429a95", "level": "note", "message": {"text": "Unused endpoint: GET /sugerencia"}, "properties": {"repobilityId": "decc15e950c0a5e2", "scanner": "scanner-primary", "fingerprint": "141bf0fc5a429a95", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "2c32e3bd3bdcd01f", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "0438c7ce3d1537ae", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-16c101246c98ddc7", "level": "note", "message": {"text": "Unused endpoint: PATCH /{pago_id}"}, "properties": {"repobilityId": "afcbba4cbb962673", "scanner": "scanner-primary", "fingerprint": "16c101246c98ddc7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e686634beeea0bb8", "level": "note", "message": {"text": "Unused endpoint: GET /export"}, "properties": {"repobilityId": "cbb14289cac8ac47", "scanner": "scanner-primary", "fingerprint": "e686634beeea0bb8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8a5c081ef426ff1d", "level": "note", "message": {"text": "Unused endpoint: GET /comision-mes"}, "properties": {"repobilityId": "0717fbc2a16355d1", "scanner": "scanner-primary", "fingerprint": "8a5c081ef426ff1d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-73e59bf2bc206c85", "level": "note", "message": {"text": "Unused endpoint: POST /cruzar-origen"}, "properties": {"repobilityId": "934150e1725cb4bd", "scanner": "scanner-primary", "fingerprint": "73e59bf2bc206c85", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-917e8a3d9bdc874d", "level": "note", "message": {"text": "Unused endpoint: POST /prellenar"}, "properties": {"repobilityId": "252778ccf475a5d6", "scanner": "scanner-primary", "fingerprint": "917e8a3d9bdc874d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7fc789ad2f231330", "level": "note", "message": {"text": "Unused endpoint: PATCH /{pago_id}/lock"}, "properties": {"repobilityId": "e1472ddc962a76d0", "scanner": "scanner-primary", "fingerprint": "7fc789ad2f231330", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-817630103a7dc00a", "level": "note", "message": {"text": "Unused endpoint: DELETE /{pago_id}"}, "properties": {"repobilityId": "88feb2bad2a3d35e", "scanner": "scanner-primary", "fingerprint": "817630103a7dc00a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a17b1b7568014dca", "level": "note", "message": {"text": "Unused endpoint: POST /portal/api/request-code"}, "properties": {"repobilityId": "b4c59857aee55d53", "scanner": "scanner-primary", "fingerprint": "a17b1b7568014dca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-87e82f8a0bdd1a91", "level": "note", "message": {"text": "Unused endpoint: POST /portal/api/verify-code"}, "properties": {"repobilityId": "a37b745f022c7e1e", "scanner": "scanner-primary", "fingerprint": "87e82f8a0bdd1a91", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6d90d93469213d8f", "level": "note", "message": {"text": "Unused endpoint: GET /portal/api/datos"}, "properties": {"repobilityId": "d0cb53b111845854", "scanner": "scanner-primary", "fingerprint": "6d90d93469213d8f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-49c0c68f51edc7cd", "level": "note", "message": {"text": "Unused endpoint: POST /portal/api/logout"}, "properties": {"repobilityId": "7c617096805a8b0d", "scanner": "scanner-primary", "fingerprint": "49c0c68f51edc7cd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ff613f63a9ea74a2", "level": "note", "message": {"text": "Unused endpoint: POST /portal/api/vitals"}, "properties": {"repobilityId": "e5bee9710aa722c4", "scanner": "scanner-primary", "fingerprint": "ff613f63a9ea74a2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b3ad40bd18893ca1", "level": "note", "message": {"text": "Unused endpoint: GET /portal/api/vitals"}, "properties": {"repobilityId": "44fba454d9ef3919", "scanner": "scanner-primary", "fingerprint": "b3ad40bd18893ca1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-efa2dfae9c25bc27", "level": "note", "message": {"text": "Unused endpoint: GET /portal/api/perfil"}, "properties": {"repobilityId": "8951d708b5f88801", "scanner": "scanner-primary", "fingerprint": "efa2dfae9c25bc27", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f056e18583fc7055", "level": "note", "message": {"text": "Unused endpoint: POST /portal/api/perfil"}, "properties": {"repobilityId": "c424da08d2743470", "scanner": "scanner-primary", "fingerprint": "f056e18583fc7055", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ade96cd5826ddd84", "level": "note", "message": {"text": "Unused endpoint: DELETE /portal/api/vitals/{vital_id}"}, "properties": {"repobilityId": "06d0f7a1e6e8b74b", "scanner": "scanner-primary", "fingerprint": "ade96cd5826ddd84", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8e4c6dc40b3d5378", "level": "note", "message": {"text": "Unused endpoint: GET /portal/api/family"}, "properties": {"repobilityId": "ba9110309e5a9549", "scanner": "scanner-primary", "fingerprint": "8e4c6dc40b3d5378", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-01b6146842bbc1f4", "level": "note", "message": {"text": "Unused endpoint: GET /portal/api/family/overview"}, "properties": {"repobilityId": "fc0f5a8ed01e1803", "scanner": "scanner-primary", "fingerprint": "01b6146842bbc1f4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a4b6d93fbed2b385", "level": "note", "message": {"text": "Unused endpoint: POST /portal/api/family/switch"}, "properties": {"repobilityId": "9affb2211474620f", "scanner": "scanner-primary", "fingerprint": "a4b6d93fbed2b385", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d152bdc694df6062", "level": "note", "message": {"text": "Unused endpoint: POST /portal/api/family/add-minor"}, "properties": {"repobilityId": "f1f68bdab0933098", "scanner": "scanner-primary", "fingerprint": "d152bdc694df6062", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8eb40c04f24d90a0", "level": "note", "message": {"text": "Unused endpoint: POST /portal/api/family/request-otp"}, "properties": {"repobilityId": "a3732f41a76c4b50", "scanner": "scanner-primary", "fingerprint": "8eb40c04f24d90a0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-00e021456d4b894f", "level": "note", "message": {"text": "Unused endpoint: POST /portal/api/family/verify-otp"}, "properties": {"repobilityId": "bf5d5d792e191161", "scanner": "scanner-primary", "fingerprint": "00e021456d4b894f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f12c186a8ed649ba", "level": "note", "message": {"text": "Unused endpoint: DELETE /portal/api/family/{dependent_rut}"}, "properties": {"repobilityId": "a7609a8dcfffca5b", "scanner": "scanner-primary", "fingerprint": "f12c186a8ed649ba", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f5b66e530639e51f", "level": "note", "message": {"text": "Unused endpoint: GET /resumen"}, "properties": {"repobilityId": "eafa9474b4a84b44", "scanner": "scanner-primary", "fingerprint": "f5b66e530639e51f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca330f329807c6b6", "level": "note", "message": {"text": "Unused endpoint: GET /orden-compra"}, "properties": {"repobilityId": "9d3fe1c140f96eec", "scanner": "scanner-primary", "fingerprint": "ca330f329807c6b6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-13d98571224ad125", "level": "note", "message": {"text": "Unused endpoint: PATCH /{producto_id}"}, "properties": {"repobilityId": "619aa15b40c34bf8", "scanner": "scanner-primary", "fingerprint": "13d98571224ad125", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bd1dae2910162401", "level": "note", "message": {"text": "Unused endpoint: POST /{producto_id}/movimiento"}, "properties": {"repobilityId": "c71d00984a152b78", "scanner": "scanner-primary", "fingerprint": "bd1dae2910162401", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dd0f3bc1db83a088", "level": "note", "message": {"text": "Unused endpoint: GET /{producto_id}/movimientos"}, "properties": {"repobilityId": "329d7c214958d55c", "scanner": "scanner-primary", "fingerprint": "dd0f3bc1db83a088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b9f0073d51d5cbc1", "level": "note", "message": {"text": "Unused endpoint: DELETE /{producto_id}"}, "properties": {"repobilityId": "e54c00572c6fa796", "scanner": "scanner-primary", "fingerprint": "b9f0073d51d5cbc1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f3c4eb974e4684dd", "level": "note", "message": {"text": "Unused endpoint: POST /seed"}, "properties": {"repobilityId": "993cc983bed8895b", "scanner": "scanner-primary", "fingerprint": "f3c4eb974e4684dd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fe02f3143d6871da", "level": "note", "message": {"text": "Unused endpoint: GET /alma/api/promo-postconsent/dryrun"}, "properties": {"repobilityId": "10af01f6d9b0f80d", "scanner": "scanner-primary", "fingerprint": "fe02f3143d6871da", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-80dc23e2ee09e89c", "level": "note", "message": {"text": "Unused endpoint: GET /alma/api/promo-postconsent/report"}, "properties": {"repobilityId": "0ce0380256045e15", "scanner": "scanner-primary", "fingerprint": "80dc23e2ee09e89c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-86d48ffafffcf4d8", "level": "note", "message": {"text": "Unused endpoint: GET /campanas"}, "properties": {"repobilityId": "2eff3872515b8154", "scanner": "scanner-primary", "fingerprint": "86d48ffafffcf4d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0d3a434fedb1fa40", "level": "note", "message": {"text": "Unused endpoint: GET /chat"}, "properties": {"repobilityId": "4cd7400255343ce0", "scanner": "scanner-primary", "fingerprint": "0d3a434fedb1fa40", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-292bc26035cc12cb", "level": "note", "message": {"text": "Unused endpoint: GET /admin/api/audit-findings"}, "properties": {"repobilityId": "6b81a49f5b41085e", "scanner": "scanner-primary", "fingerprint": "292bc26035cc12cb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-59ed4acf6477091e", "level": "note", "message": {"text": "Unused endpoint: POST /admin/api/audit-findings/{fid}/resolve"}, "properties": {"repobilityId": "a7672da3720c87be", "scanner": "scanner-primary", "fingerprint": "59ed4acf6477091e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8bf33c5f99ed7a20", "level": "note", "message": {"text": "Unused endpoint: GET /admin/auditoria"}, "properties": {"repobilityId": "1f76581983ec1326", "scanner": "scanner-primary", "fingerprint": "8bf33c5f99ed7a20", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-35d1f69281f3ee8b", "level": "note", "message": {"text": "Unused endpoint: GET /pacientes"}, "properties": {"repobilityId": "8ff4eaf5ced7564a", "scanner": "scanner-primary", "fingerprint": "35d1f69281f3ee8b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a5281f3c307e6e0e", "level": "note", "message": {"text": "Unused endpoint: PUT /plan/{paciente_id}"}, "properties": {"repobilityId": "fd8b3576c7b43ccf", "scanner": "scanner-primary", "fingerprint": "a5281f3c307e6e0e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bfa15c559f091297", "level": "note", "message": {"text": "Unused endpoint: GET /catalogo"}, "properties": {"repobilityId": "fddd8f1fdd05b7b2", "scanner": "scanner-primary", "fingerprint": "bfa15c559f091297", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ebf6744d53d9d555", "level": "note", "message": {"text": "Unused endpoint: GET /slots"}, "properties": {"repobilityId": "1d605388cfc3ead2", "scanner": "scanner-primary", "fingerprint": "ebf6744d53d9d555", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-426fc0b0f2707b28", "level": "note", "message": {"text": "Unused endpoint: POST /identificar"}, "properties": {"repobilityId": "ce7334f2a49cbb3a", "scanner": "scanner-primary", "fingerprint": "426fc0b0f2707b28", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1d310efacb0eaec8", "level": "note", "message": {"text": "Unused endpoint: POST /reservar"}, "properties": {"repobilityId": "d5fbda97d9df1240", "scanner": "scanner-primary", "fingerprint": "1d310efacb0eaec8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f80c8509fded40bb", "level": "note", "message": {"text": "Unused endpoint: POST /mis-horas"}, "properties": {"repobilityId": "de8474f48d1641ea", "scanner": "scanner-primary", "fingerprint": "f80c8509fded40bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a73b1e8ff2c9c3f7", "level": "note", "message": {"text": "Unused endpoint: POST /cancelar"}, "properties": {"repobilityId": "cbff2d09c889daf7", "scanner": "scanner-primary", "fingerprint": "a73b1e8ff2c9c3f7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-720b9bcd0f420763", "level": "note", "message": {"text": "Unused endpoint: GET /buscar"}, "properties": {"repobilityId": "23ef884a92fe244e", "scanner": "scanner-primary", "fingerprint": "720b9bcd0f420763", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}