{"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-8b56d6e7d06c875c", "name": "Possibly dead Python function: limpia_fecha", "shortDescription": {"text": "Possibly dead Python function: limpia_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-0f86ae3f08d7209c", "name": "Possibly dead Python function: limpia_num", "shortDescription": {"text": "Possibly dead Python function: limpia_num"}, "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-44aeffc05db681ce", "name": "Possibly dead Python function: limpia_bool", "shortDescription": {"text": "Possibly dead Python function: limpia_bool"}, "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-56a0d264c1eda3e5", "name": "Stray `console.log` in TS/JS \u2014 setup-db.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 setup-db.js:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad0eef04b1a499f9", "name": "Stray `console.log` in TS/JS \u2014 shared/feriados.js:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 shared/feriados.js:73"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7f18c395914d420", "name": "Stray `console.log` in TS/JS \u2014 shared/config/database.js:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 shared/config/database.js:48"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8886b029d4cacc96", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-duplicates.js:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-duplicates.js:54"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e8b3820f3b41d204", "name": "Stray `console.log` in TS/JS \u2014 scripts/volcar-bd.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/volcar-bd.js:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c2b570c3f9f57fd4", "name": "Stray `console.log` in TS/JS \u2014 scripts/recover-num-op.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/recover-num-op.js:27"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33c994f59dea352a", "name": "Stray `console.log` in TS/JS \u2014 scripts/audit-permisos.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-permisos.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e1bc138424ecd03", "name": "Stray `console.log` in TS/JS \u2014 api-gateway/public/js/xlsx.full.min.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api-gateway/public/js/xlsx.full.min.js:12"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-53598f9c5e9eb0e0", "name": "Icon-only button without accessible name \u2014 api-gateway/public/dashboard/app.js:3720", "shortDescription": {"text": "Icon-only button without accessible name \u2014 api-gateway/public/dashboard/app.js:3720"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-25df7ac26c7da084", "name": "Icon-only button without accessible name \u2014 api-gateway/public/cartas-aprobacion/app.js:4510", "shortDescription": {"text": "Icon-only button without accessible name \u2014 api-gateway/public/cartas-aprobacion/app.js:4510"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df903f041787bfaa", "name": "Stray `console.log` in TS/JS \u2014 api-gateway/public/cartas-aprobacion/app.js:2826", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api-gateway/public/cartas-aprobacion/app.js:2826"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-502c610405514f46", "name": "Stray `console.log` in TS/JS \u2014 api-gateway/src/index.js:440", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api-gateway/src/index.js:440"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3182f1f056d4ad12", "name": "Stray `console.log` in TS/JS \u2014 services/desempeno/src/controllers/desempeno.controller.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/desempeno/src/controllers/desempeno.controller.js:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c5f75c999241c32a", "name": "Stray `console.log` in TS/JS \u2014 services/dealers-incorporacion/src/controllers/fichas.controller.js:143", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/dealers-incorporacion/src/controllers/fichas.controller.js:143"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a6fd4fbadf33ca8", "name": "Stray `console.log` in TS/JS \u2014 services/clientes/src/controllers/dealernet-ws.controller.js:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/clientes/src/controllers/dealernet-ws.controller.js:93"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef47ac7d4adc7c6f", "name": "Stray `console.log` in TS/JS \u2014 services/clientes/src/controllers/informes-dealernet.controller.js:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/clientes/src/controllers/informes-dealernet.controller.js:41"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76fbfbf0f0c89d3c", "name": "Stray `console.log` in TS/JS \u2014 services/cobranza/src/controllers/cobranza.controller.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/cobranza/src/controllers/cobranza.controller.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-129f1f0ec31a83f0", "name": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/carga-trinidad.controller.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/carga-trinidad.controller.js:12"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-30f2c8873f3959c0", "name": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/fundantes.controller.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/fundantes.controller.js:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b03fc013187eeca", "name": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/operaciones.controller.js:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/operaciones.controller.js:60"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7167d7c709bf91bc", "name": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/trinidad-config.controller.js:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/trinidad-config.controller.js:82"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e89a57acc2284e25", "name": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/broker-validaciones.controller.js:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/broker-validaciones.controller.js:52"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e4708d2d6f949651", "name": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/creditos.controller.js:574", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/creditos.controller.js:574"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b2cdc6c2a6bfc49b", "name": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/carga-masiva.controller.js:310", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/carga-masiva.controller.js:310"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1340b4c8cddc5c1b", "name": "Stray `console.log` in TS/JS \u2014 services/cartas/src/controllers/cartas.controller.js:240", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/cartas/src/controllers/cartas.controller.js:240"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2a4ec362b382c03c", "name": "Stray `console.log` in TS/JS \u2014 services/cartas/src/controllers/cartolas.controller.js:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/cartas/src/controllers/cartolas.controller.js:79"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c480402202bfa903", "name": "Stray `console.log` in TS/JS \u2014 services/comisiones/src/controllers/comisiones.controller.js:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/comisiones/src/controllers/comisiones.controller.js:95"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6f96c50d98bc088a", "name": "Stray `console.log` in TS/JS \u2014 services/tesoreria/src/controllers/brokerage.controller.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/tesoreria/src/controllers/brokerage.controller.js:30"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf7a75db1f70612d", "name": "Stray `console.log` in TS/JS \u2014 services/reporteria/src/controllers/tablas-dinamicas.controller.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/reporteria/src/controllers/tablas-dinamicas.controller.js:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-99bc8c838a72e56a", "name": "Stray `console.log` in TS/JS \u2014 services/notificaciones/src/controllers/notificaciones.controller.js:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/notificaciones/src/controllers/notificaciones.controller.js:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b8d3b592898ea932", "name": "Stray `console.log` in TS/JS \u2014 services/auditoria/src/controllers/auditoria.controller.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/auditoria/src/controllers/auditoria.controller.js:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-149cbda1a5850fb2", "name": "Stray `console.log` in TS/JS \u2014 services/crm/src/controllers/gestiones.controller.js:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/crm/src/controllers/gestiones.controller.js:68"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28292661632b125c", "name": "Stray `console.log` in TS/JS \u2014 services/usuarios/src/controllers/perfiles.controller.js:213", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/usuarios/src/controllers/perfiles.controller.js:213"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-82059b5ef90169c3", "name": "Stray `console.log` in TS/JS \u2014 services/postventa/src/controllers/postventa.controller.js:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/postventa/src/controllers/postventa.controller.js:81"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f283b498582c8166", "name": "Stray `console.log` in TS/JS \u2014 services/atencion-remota/src/ws.js:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/atencion-remota/src/ws.js:98"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f6571340d3032f69", "name": "Stray `console.log` in TS/JS \u2014 services/atencion-remota/src/controllers/atencion.controller.js:197", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/atencion-remota/src/controllers/atencion.controller.js:197"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-283479ea53a787b2", "name": "Stray `console.log` in TS/JS \u2014 services/ayuda/src/controllers/ayuda.controller.js:221", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/ayuda/src/controllers/ayuda.controller.js:221"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa691588ae5b3214", "name": "Stray `console.log` in TS/JS \u2014 services/alertas/src/controllers/alertas.controller.js:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/alertas/src/controllers/alertas.controller.js:80"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2aa6f6dc673af627", "name": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/politica-aprobacion.controller.js:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/politica-aprobacion.controller.js:83"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f838593ddb13211", "name": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/dealer-categorias.controller.js:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/dealer-categorias.controller.js:73"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09486b522c101b3d", "name": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/parques.controller.js:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/parques.controller.js:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-581fccbb810bbcb8", "name": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/definiciones.controller.js:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/definiciones.controller.js:32"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f0c75de9fb8e1592", "name": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/tipos-documento.controller.js:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/tipos-documento.controller.js:55"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cf445647b1775225", "name": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/comisiones-seguro.controller.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/comisiones-seguro.controller.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-8987d6d1c30c7202", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e9e47b75f6c2a909", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/adapt_dashboard.py:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/adapt_dashboard.py:38"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e996c0efb7b3110e", "name": "Possible secret in scripts/importar_detalle.py", "shortDescription": {"text": "Possible secret in scripts/importar_detalle.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-7ed1065babd669ef", "name": "Possible secret in scripts/check_abril.py", "shortDescription": {"text": "Possible secret in scripts/check_abril.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-f2e40fdb70dfb19e", "name": "Insecure pattern 'node_child_process' in scripts/audit-permisos.js:89", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/audit-permisos.js:89"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7372d4f974a3648a", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/login.html:189", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/login.html:189"}, "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-11c6900eb4367e95", "name": "Insecure pattern 'local_storage_auth_token' in api-gateway/public/login.html:183", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in api-gateway/public/login.html:183"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-71b45f2e85bc6bab", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/index.html:375", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/index.html:375"}, "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-1c5a4d86813e4d9f", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/dealers-incorporacion/nuevo.html:427", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/dealers-incorporacion/nuevo.html:427"}, "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-6575a3944319e0ba", "name": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/dealers-incorporacion/nuevo.html:545", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/dealers-incorporacion/nuevo.html:545"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4bbb2e639e3377c7", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/dealers-incorporacion/mantencion.html:153", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/dealers-incorporacion/mantencion.html:153"}, "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-2a79288f3e444844", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/clientes/index.html:860", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/clientes/index.html:860"}, "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-ae8b074fb1150553", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/index.html:241", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/index.html:241"}, "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-8fd2b6b0be81d2ae", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/prejudicial.html:363", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/prejudicial.html:363"}, "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-f7b38bcc89d95c21", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/judicial.html:297", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/judicial.html:297"}, "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-9172ccfe9ed1eaf3", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/mis-cobranza.html:269", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/mis-cobranza.html:269"}, "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-6cc2326a58a7f506", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/digitacion-autofin.html:504", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/digitacion-autofin.html:504"}, "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-39091a0ab28004fd", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/carga-documentos-af.html:202", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/carga-documentos-af.html:202"}, "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-e55672dbb4b9de0c", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/auditoria.html:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/auditoria.html:265"}, "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-fd7785d514c18eca", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/pagar-cuotas.html:344", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/pagar-cuotas.html:344"}, "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-977c2a1c161a0064", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/documentos.html:380", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/documentos.html:380"}, "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-8b02ef2e35478258", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/validacion-firma.html:328", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/validacion-firma.html:328"}, "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-e980391e5ca185f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/fundantes.html:269", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/fundantes.html:269"}, "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-fde10ee16b5b5a1c", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/app.js:44", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/app.js:44"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e9a57718963cbb70", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/respaldos.html:344", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/respaldos.html:344"}, "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-6260d338e1c4921b", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/digitacion-unidad.html:422", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/digitacion-unidad.html:422"}, "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-eb3e02fba4c4d477", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/revisar.html:419", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/revisar.html:419"}, "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-2c81ed63425e56d3", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/orden-toast.js:20", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/orden-toast.js:20"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc9c113bd343fdb5", "name": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/js/orden-toast.js:21", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/js/orden-toast.js:21"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4778c5db145cc021", "name": "Insecure pattern 'document_write' in api-gateway/public/js/html2pdf.bundle.min.js:2", "shortDescription": {"text": "Insecure pattern 'document_write' in api-gateway/public/js/html2pdf.bundle.min.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f36fdff7c250b790", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/html2pdf.bundle.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/html2pdf.bundle.min.js:2"}, "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-23b4fd34959e74dc", "name": "Insecure pattern 'direct_outerhtml_assignment' in api-gateway/public/js/html2pdf.bundle.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in api-gateway/public/js/html2pdf.bundle.min.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0d587ec65716154c", "name": "Insecure pattern 'domparser_html_parse' in api-gateway/public/js/html2pdf.bundle.min.js:2", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in api-gateway/public/js/html2pdf.bundle.min.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b420b64bef2a3ff", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/webrtc-atencion.js:80", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/webrtc-atencion.js:80"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13506d60262108db", "name": "Insecure pattern 'exec_used' in api-gateway/public/js/xlsx.full.min.js:11", "shortDescription": {"text": "Insecure pattern 'exec_used' in api-gateway/public/js/xlsx.full.min.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b5e4103ef3872ece", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/app-version.js:332", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/app-version.js:332"}, "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-71844d2dc92aa099", "name": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/js/app-version.js:258", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/js/app-version.js:258"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fec635575c1ced83", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/comprobante.js:176", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/comprobante.js:176"}, "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-cdfa7d08e5af641c", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/bootstrap.bundle.min.js:6", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/bootstrap.bundle.min.js:6"}, "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-3a41fb7b8c361b59", "name": "Insecure pattern 'domparser_html_parse' in api-gateway/public/js/bootstrap.bundle.min.js:6", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in api-gateway/public/js/bootstrap.bundle.min.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5198d59a7434706", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/alertas-vencimiento.js:67", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/alertas-vencimiento.js:67"}, "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-216cc463ededaad0", "name": "Insecure pattern 'document_write' in api-gateway/public/comisiones/revision/index.html:1115", "shortDescription": {"text": "Insecure pattern 'document_write' in api-gateway/public/comisiones/revision/index.html:1115"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-13c41670086cbc98", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/comisiones/revision/index.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/comisiones/revision/index.html:237"}, "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-4576a05d0f333ad9", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/comisiones/variables/index.html:167", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/comisiones/variables/index.html:167"}, "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-c90449836d094fb8", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/simulador/index.html:320", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/simulador/index.html:320"}, "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-8813f669df40850b", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/dashboard/app.js:28", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/dashboard/app.js:28"}, "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-463e2da051082ead", "name": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/dashboard/app.js:1288", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/dashboard/app.js:1288"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f63a57cb6b7f80b", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/cuentas-transitorias.html:222", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/cuentas-transitorias.html:222"}, "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-d37734eb40049fca", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/cajas.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/cajas.html:316"}, "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-ba324188ac142730", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/cierre-caja.html:361", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/cierre-caja.html:361"}, "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-93b2dd7babbb8135", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/index.html:208", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/index.html:208"}, "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-bea5ce4cf684f4f3", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/brokerage.html:260", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/brokerage.html:260"}, "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-b978c125d2960548", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/caja.html:476", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/caja.html:476"}, "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-c64641fc76135049", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/caja/index.html:167", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/caja/index.html:167"}, "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-e1ea6dbaf1c9f9f3", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/edicion-creditos/edicion-page.js:43", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/edicion-creditos/edicion-page.js:43"}, "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-bbeadc74670fd1d5", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/reporteria/index.html:498", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/reporteria/index.html:498"}, "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-5c8fbce064158e76", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/reporteria/tablas-dinamicas/index.html:406", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/reporteria/tablas-dinamicas/index.html:406"}, "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-0a924045bcbf7cb4", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/antecedentes-laborales/index.html:447", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/antecedentes-laborales/index.html:447"}, "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-c1d777b6dbf26785", "name": "Insecure pattern 'document_write' in api-gateway/public/cartas-aprobacion/app.js:1880", "shortDescription": {"text": "Insecure pattern 'document_write' in api-gateway/public/cartas-aprobacion/app.js:1880"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f8e9f1f6e9d86cb", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cartas-aprobacion/app.js:150", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cartas-aprobacion/app.js:150"}, "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-59f7db7025d566c1", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/politica/index.html:565", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/politica/index.html:565"}, "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-f5bbd1dccc4d8e78", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cotizaciones/index.html:780", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cotizaciones/index.html:780"}, "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-7636b2a534c36dc3", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/portal-dealer/index.html:269", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/portal-dealer/index.html:269"}, "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-b890e919170bf997", "name": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/portal-dealer/index.html:278", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/portal-dealer/index.html:278"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-59837378240557cf", "name": "Insecure pattern 'local_storage_auth_token' in api-gateway/public/portal-dealer/index.html:168", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in api-gateway/public/portal-dealer/index.html:168"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68b5c758c7e37aa3", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/auditoria/index.html:182", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/auditoria/index.html:182"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb1a1ceb79c21440", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/gestiones.html:517", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/gestiones.html:517"}, "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-b6ee1e03d981e3be", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/estadisticas.html:377", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/estadisticas.html:377"}, "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-15421eb7cd9e4ef5", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/index.html:167", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/index.html:167"}, "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-36e0db75c8a9fd84", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/campanas/crear.html:418", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/campanas/crear.html:418"}, "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-69481f90c15eaaf0", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/campanas/resultados.html:301", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/campanas/resultados.html:301"}, "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-f5b3d2847c861a99", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/usuarios/index.html:766", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/usuarios/index.html:766"}, "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-49d1b9989cb17f9b", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/historial/index.html:200", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/historial/index.html:200"}, "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-d5bee1264c64851f", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/trinidad/index.html:177", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/trinidad/index.html:177"}, "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-9a36fc4ff3322787", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/cargar/index.html:236", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/cargar/index.html:236"}, "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-ea41acc8e5a8a576", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/eq-ejecutivos/index.html:153", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/eq-ejecutivos/index.html:153"}, "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-ef0660a5f94b788e", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/eq-estados/index.html:145", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/eq-estados/index.html:145"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ba1452be59fee6f", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/orden-pago-comision/index.html:129", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/orden-pago-comision/index.html:129"}, "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-b8707c6eb3bf9efd", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/comisiones-a-pagar/index.html:244", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/comisiones-a-pagar/index.html:244"}, "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-58cb360c14f15812", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/seguimiento/index.html:161", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/seguimiento/index.html:161"}, "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-1ae80c76ac096678", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/saldos-a-pagar/index.html:257", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/saldos-a-pagar/index.html:257"}, "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-72bb04fcc82b5cb0", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/orden-pago/index.html:141", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/orden-pago/index.html:141"}, "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-910b251bf70775ac", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/mantenedores/index.html:117", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/mantenedores/index.html:117"}, "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-6148093562514281", "name": "Insecure pattern 'document_write' in api-gateway/public/aprobaciones/index.html:1936", "shortDescription": {"text": "Insecure pattern 'document_write' in api-gateway/public/aprobaciones/index.html:1936"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-703e6c106b3f1b59", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/aprobaciones/index.html:862", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/aprobaciones/index.html:862"}, "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-8bb5406b9ff1c870", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/aprobaciones/mantenedor/index.html:179", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/aprobaciones/mantenedor/index.html:179"}, "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-1a5b62c931a806d4", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/atencion-remota/index.html:383", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/atencion-remota/index.html:383"}, "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-1dcc384ed6543230", "name": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/atencion-remota/index.html:459", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/atencion-remota/index.html:459"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-022b5d3add049ac3", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/index.html:203", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/index.html:203"}, "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-8de1e7ba7b6248c6", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/cuentas-bancarias/index.html:315", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/cuentas-bancarias/index.html:315"}, "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-c1943697939dd0ce", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/tasas/index.html:382", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/tasas/index.html:382"}, "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-2863aa79ae524d12", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/parametros/index.html:187", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/parametros/index.html:187"}, "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-5a2c61a67165240f", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/dealernet-productos/index.html:153", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/dealernet-productos/index.html:153"}, "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-288e16ecfac849a7", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/comisiones-seguro/index.html:134", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/comisiones-seguro/index.html:134"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a2abee81e4aae24", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/alertas-saldos/index.html:149", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/alertas-saldos/index.html:149"}, "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-d86b01368dee0194", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/db-maintenance/index.html:446", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/db-maintenance/index.html:446"}, "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-8b0c00525b1b0a51", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-operaciones/index.html:257", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-operaciones/index.html:257"}, "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-3ff205ea829c1b1f", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/comunas/index.html:224", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/comunas/index.html:224"}, "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-2184adcf3b0babd4", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/pagares/index.html:239", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/pagares/index.html:239"}, "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-14986bbf0b608460", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/presupuesto/index.html:132", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/presupuesto/index.html:132"}, "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-4012bbe5f83ebf12", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/impuestos/index.html:92", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/impuestos/index.html:92"}, "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-9768f9180309beae", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/factores-seguro/index.html:334", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/factores-seguro/index.html:334"}, "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-450bb499c1a58c51", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/flujo-brokerage/index.html:234", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/flujo-brokerage/index.html:234"}, "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-df90c0ccbc66931c", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/definiciones/index.html:117", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/definiciones/index.html:117"}, "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-bd0e69183de0934a", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/vista-pantallas/index.html:148", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/vista-pantallas/index.html:148"}, "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-49ca3618b37cc975", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-clientes/index.html:236", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-clientes/index.html:236"}, "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-139bad2385ec0231", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/financieras/index.html:368", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/financieras/index.html:368"}, "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-dbf65a1ba91f60f6", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/tipos-documento/index.html:273", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/tipos-documento/index.html:273"}, "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-75f49a75eb627cfd", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/servidor-hora/index.html:220", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/servidor-hora/index.html:220"}, "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-c62da724898e4323", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-antecedentes/index.html:163", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-antecedentes/index.html:163"}, "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-083ed6480d1bd9d1", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/parques/index.html:227", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/parques/index.html:227"}, "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-e3cb5bf7d4944f71", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/uf/index.html:235", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/uf/index.html:235"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6de26b029f10f6b3", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/productos-financiera/index.html:215", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/productos-financiera/index.html:215"}, "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-d70418bbae3508fa", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/meses-cerrados/index.html:176", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/meses-cerrados/index.html:176"}, "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-851302d2bc396e9b", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/feriados/index.html:128", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/feriados/index.html:128"}, "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-151ab7b2d80585dc", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/cobranza-parametros/index.html:171", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/cobranza-parametros/index.html:171"}, "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-d573c639f7f958f2", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/ayuda/index.html:124", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/ayuda/index.html:124"}, "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-5cae97e411f9134f", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/vehiculos/index.html:333", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/vehiculos/index.html:333"}, "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-e9a6ce416377c0b3", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/alertas/index.html:135", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/alertas/index.html:135"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-43198f51f0386504", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/broker-validaciones/index.html:186", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/broker-validaciones/index.html:186"}, "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-a657c42a31fd5bb0", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/dealers/index.html:474", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/dealers/index.html:474"}, "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-6adab4c07f38f1bb", "name": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/mantenedores/dealers/index.html:503", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/mantenedores/dealers/index.html:503"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0441b1e95ef04eb9", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-informacion-comercial/index.html:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-informacion-comercial/index.html:163"}, "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-a0fdd3484cb94873", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/dealer-categorias/index.html:110", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/dealer-categorias/index.html:110"}, "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-be5098bf55916ac4", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/respuestas-rapidas/index.html:125", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/respuestas-rapidas/index.html:125"}, "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-f08e923ff224b971", "name": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/informes-dealernet/index.html:358", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/informes-dealernet/index.html:358"}, "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-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca9ab7f715b04361", "name": "Very large file: api-gateway/public/creditos/app.js (1661 lines)", "shortDescription": {"text": "Very large file: api-gateway/public/creditos/app.js (1661 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-353f31d745b233dc", "name": "Very large file: api-gateway/public/js/qrcode-generator.js (2297 lines)", "shortDescription": {"text": "Very large file: api-gateway/public/js/qrcode-generator.js (2297 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-bff321ffcc4bfef2", "name": "Very large file: api-gateway/public/dashboard/app.js (3806 lines)", "shortDescription": {"text": "Very large file: api-gateway/public/dashboard/app.js (3806 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-eb9474c7b7f917bb", "name": "Very large file: api-gateway/public/cartas-aprobacion/app.js (4882 lines)", "shortDescription": {"text": "Very large file: api-gateway/public/cartas-aprobacion/app.js (4882 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-48fc1c665046dc6c", "name": "Very large file: services/usuarios/src/controllers/perfiles.controller.js (1912 lines)", "shortDescription": {"text": "Very large file: services/usuarios/src/controllers/perfiles.controller.js (1912 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-3d03ae2a1991e742", "name": "Very large file: services/postventa/src/controllers/postventa.controller.js (1148 lines)", "shortDescription": {"text": "Very large file: services/postventa/src/controllers/postventa.controller.js (1148 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 187 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01f96f71d9907a8c", "name": "README lacks setup or run instructions", "shortDescription": {"text": "README lacks setup or run instructions"}, "fullDescription": {"text": "A README exists, but it does not contain common install/setup/run markers. This matches a frequent generated-code pattern: UI is present, operational handoff is thin."}, "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 174 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 21 placeholder/mock markers across 6 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: ci, tests, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "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 ci, tests, operator-readme. 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-f4a9978b585a7d74", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/creditos/app.js:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/creditos/app.js:40"}, "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-648c11ed05291ec4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/js/html2pdf.bundle.min.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/js/html2pdf.bundle.min.js:2"}, "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-21cef5bf679cc646", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/js/app-version.js:605", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/js/app-version.js:605"}, "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-6ee21f2eedba5102", "name": "Legacy-named symbol `placement_v2` in api-gateway/public/js/placement-manifest.js:98", "shortDescription": {"text": "Legacy-named symbol `placement_v2` in api-gateway/public/js/placement-manifest.js:98"}, "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-ad85f080170d6ad6", "name": "Commented-code block (5 lines) in api-gateway/public/js/placement-manifest.js:40", "shortDescription": {"text": "Commented-code block (5 lines) in api-gateway/public/js/placement-manifest.js: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-9d7f15beab7507df", "name": "Legacy-named symbol `detalle_v2` in api-gateway/public/dashboard/app.js:110", "shortDescription": {"text": "Legacy-named symbol `detalle_v2` in api-gateway/public/dashboard/app.js:110"}, "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-75e31b6966f2e0ea", "name": "Commented-code block (6 lines) in api-gateway/public/dashboard/app.js:1139", "shortDescription": {"text": "Commented-code block (6 lines) in api-gateway/public/dashboard/app.js:1139"}, "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-6131e8faf939d170", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/dashboard/app.js:3797", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/dashboard/app.js:3797"}, "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-4eac9dd00a059931", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/edicion-creditos/edicion-page.js:285", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/edicion-creditos/edicion-page.js:285"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1ef686f9c96a2b3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/cartas-aprobacion/app.js:79", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/cartas-aprobacion/app.js:79"}, "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-1483356eab7be3b6", "name": "Commented-code block (5 lines) in services/cobranza/src/controllers/cobranza.controller.js:149", "shortDescription": {"text": "Commented-code block (5 lines) in services/cobranza/src/controllers/cobranza.controller.js:149"}, "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-08b3f837d686d7d0", "name": "Commented-code block (5 lines) in services/creditos/src/utils/calcular-operacion.js:131", "shortDescription": {"text": "Commented-code block (5 lines) in services/creditos/src/utils/calcular-operacion.js:131"}, "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-fdae03916b1bbaa0", "name": "Legacy-named symbol `workflow_estados_v1` in services/mantenedores/src/controllers/workflow.controller.js:5", "shortDescription": {"text": "Legacy-named symbol `workflow_estados_v1` in services/mantenedores/src/controllers/workflow.controller.js:5"}, "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-3482f7e5dd70cd1a", "name": "6 env vars used in code but missing from .env.example", "shortDescription": {"text": "6 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `CORS_ORIGIN`, `DEALERNET_ENDPOINT`, `DEALERNET_PASS`, `DEALERNET_TIPOCNS`, `DEALERNET_USER`, `TZ`. 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-98ccb3110867f207", "name": "Dangling fetch: GET /api/parametros-credito (api-gateway/public/creditos/app.js:752)", "shortDescription": {"text": "Dangling fetch: GET /api/parametros-credito (api-gateway/public/creditos/app.js:752)"}, "fullDescription": {"text": "`api-gateway/public/creditos/app.js:752` calls `GET /api/parametros-credito` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/parametros-credito`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74b62fcce56ee8a2", "name": "Dangling fetch: GET /api/uf/vigente (api-gateway/public/creditos/app.js:753)", "shortDescription": {"text": "Dangling fetch: GET /api/uf/vigente (api-gateway/public/creditos/app.js:753)"}, "fullDescription": {"text": "`api-gateway/public/creditos/app.js:753` calls `GET /api/uf/vigente` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/uf/vigente`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b897b3a57e40bd5f", "name": "Dangling fetch: GET /api/tasas/vigente (api-gateway/public/creditos/app.js:754)", "shortDescription": {"text": "Dangling fetch: GET /api/tasas/vigente (api-gateway/public/creditos/app.js:754)"}, "fullDescription": {"text": "`api-gateway/public/creditos/app.js:754` calls `GET /api/tasas/vigente` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tasas/vigente`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b381693b2c4434f4", "name": "Dangling fetch: POST /api/creditos (api-gateway/public/creditos/app.js:1308)", "shortDescription": {"text": "Dangling fetch: POST /api/creditos (api-gateway/public/creditos/app.js:1308)"}, "fullDescription": {"text": "`api-gateway/public/creditos/app.js:1308` calls `POST /api/creditos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/creditos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a83be161a50a079f", "name": "Dangling fetch: GET /api/cartas-ejecutivos (api-gateway/public/creditos/app.js:1597)", "shortDescription": {"text": "Dangling fetch: GET /api/cartas-ejecutivos (api-gateway/public/creditos/app.js:1597)"}, "fullDescription": {"text": "`api-gateway/public/creditos/app.js:1597` calls `GET /api/cartas-ejecutivos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cartas-ejecutivos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c10fc5da7a5d06a", "name": "Dangling fetch: POST /api/auth/cambiar-clave (api-gateway/public/js/app-version.js:336)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/cambiar-clave (api-gateway/public/js/app-version.js:336)"}, "fullDescription": {"text": "`api-gateway/public/js/app-version.js:336` calls `POST /api/auth/cambiar-clave` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/cambiar-clave`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a45395d4d2723bc", "name": "Dangling fetch: GET /api/notif (api-gateway/public/js/app-version.js:517)", "shortDescription": {"text": "Dangling fetch: GET /api/notif (api-gateway/public/js/app-version.js:517)"}, "fullDescription": {"text": "`api-gateway/public/js/app-version.js:517` calls `GET /api/notif` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/notif`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc6c2cff31b60b12", "name": "Dangling fetch: DELETE /api/notif/todas (api-gateway/public/js/app-version.js:568)", "shortDescription": {"text": "Dangling fetch: DELETE /api/notif/todas (api-gateway/public/js/app-version.js:568)"}, "fullDescription": {"text": "`api-gateway/public/js/app-version.js:568` calls `DELETE /api/notif/todas` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/notif/todas`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8db75c98f1ae510b", "name": "Dangling fetch: PUT /api/notif/leidas (api-gateway/public/js/app-version.js:580)", "shortDescription": {"text": "Dangling fetch: PUT /api/notif/leidas (api-gateway/public/js/app-version.js:580)"}, "fullDescription": {"text": "`api-gateway/public/js/app-version.js:580` calls `PUT /api/notif/leidas` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/notif/leidas`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fc0d4adf255aaa0f", "name": "Dangling fetch: GET /api/notif/vapid-key (api-gateway/public/js/app-version.js:600)", "shortDescription": {"text": "Dangling fetch: GET /api/notif/vapid-key (api-gateway/public/js/app-version.js:600)"}, "fullDescription": {"text": "`api-gateway/public/js/app-version.js:600` calls `GET /api/notif/vapid-key` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/notif/vapid-key`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e06e7a35be88edf3", "name": "Dangling fetch: POST /api/notif/subscribe (api-gateway/public/js/app-version.js:605)", "shortDescription": {"text": "Dangling fetch: POST /api/notif/subscribe (api-gateway/public/js/app-version.js:605)"}, "fullDescription": {"text": "`api-gateway/public/js/app-version.js:605` calls `POST /api/notif/subscribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/notif/subscribe`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22e838e8ad1247cd", "name": "Dangling fetch: POST /api/desempeno/ping (api-gateway/public/js/app-version.js:637)", "shortDescription": {"text": "Dangling fetch: POST /api/desempeno/ping (api-gateway/public/js/app-version.js:637)"}, "fullDescription": {"text": "`api-gateway/public/js/app-version.js:637` calls `POST /api/desempeno/ping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/desempeno/ping`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9237ce66c9de57f", "name": "Dangling fetch: GET /api/config/ui/placement_v2 (api-gateway/public/js/placement-manifest.js:98)", "shortDescription": {"text": "Dangling fetch: GET /api/config/ui/placement_v2 (api-gateway/public/js/placement-manifest.js:98)"}, "fullDescription": {"text": "`api-gateway/public/js/placement-manifest.js:98` calls `GET /api/config/ui/placement_v2` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/config/ui/placement_v2`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ab23cb081f1fecc", "name": "Dangling fetch: GET /api/alertas/vencimientos (api-gateway/public/js/alertas-vencimiento.js:14)", "shortDescription": {"text": "Dangling fetch: GET /api/alertas/vencimientos (api-gateway/public/js/alertas-vencimiento.js:14)"}, "fullDescription": {"text": "`api-gateway/public/js/alertas-vencimiento.js:14` calls `GET /api/alertas/vencimientos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/alertas/vencimientos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-edbf1bceeed04747", "name": "Dangling fetch: GET /api/dashboard/datos (api-gateway/public/dashboard/app.js:1186)", "shortDescription": {"text": "Dangling fetch: GET /api/dashboard/datos (api-gateway/public/dashboard/app.js:1186)"}, "fullDescription": {"text": "`api-gateway/public/dashboard/app.js:1186` calls `GET /api/dashboard/datos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/dashboard/datos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ae9d11a1667a4c8", "name": "Dangling fetch: GET /api/perfiles (api-gateway/public/dashboard/app.js:2366)", "shortDescription": {"text": "Dangling fetch: GET /api/perfiles (api-gateway/public/dashboard/app.js:2366)"}, "fullDescription": {"text": "`api-gateway/public/dashboard/app.js:2366` calls `GET /api/perfiles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/perfiles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b441495e1891f161", "name": "Dangling fetch: GET /api/creditos/otorgados-incompletos (api-gateway/public/dashboard/app.js:3659)", "shortDescription": {"text": "Dangling fetch: GET /api/creditos/otorgados-incompletos (api-gateway/public/dashboard/app.js:3659)"}, "fullDescription": {"text": "`api-gateway/public/dashboard/app.js:3659` calls `GET /api/creditos/otorgados-incompletos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/creditos/otorgados-incompletos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c72cbdce4140b047", "name": "Dangling fetch: PATCH /api/creditos/${id}/datos-ingresos (api-gateway/public/dashboard/app.js:3779)", "shortDescription": {"text": "Dangling fetch: PATCH /api/creditos/${id}/datos-ingresos (api-gateway/public/dashboard/app.js:3779)"}, "fullDescription": {"text": "`api-gateway/public/dashboard/app.js:3779` calls `PATCH /api/creditos/${id}/datos-ingresos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/creditos/<p>/datos-ingresos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c74bb20b806fc52", "name": "Dangling fetch: POST /api/operaciones/recalcular-comisiones (api-gateway/public/dashboard/app.js:3797)", "shortDescription": {"text": "Dangling fetch: POST /api/operaciones/recalcular-comisiones (api-gateway/public/dashboard/app.js:3797)"}, "fullDescription": {"text": "`api-gateway/public/dashboard/app.js:3797` calls `POST /api/operaciones/recalcular-comisiones` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/operaciones/recalcular-comisiones`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-710bb82496d0c1b2", "name": "Dangling fetch: GET /api/cartas-ejecutivos (api-gateway/public/cartas-aprobacion/app.js:34)", "shortDescription": {"text": "Dangling fetch: GET /api/cartas-ejecutivos (api-gateway/public/cartas-aprobacion/app.js:34)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:34` calls `GET /api/cartas-ejecutivos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cartas-ejecutivos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-218062e9dcacce35", "name": "Dangling fetch: DELETE /api/cartas-ejecutivos/${id} (api-gateway/public/cartas-aprobacion/app.js:52)", "shortDescription": {"text": "Dangling fetch: DELETE /api/cartas-ejecutivos/${id} (api-gateway/public/cartas-aprobacion/app.js:52)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:52` calls `DELETE /api/cartas-ejecutivos/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cartas-ejecutivos/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37e254748eca5f57", "name": "Dangling fetch: POST /api/clientes (api-gateway/public/cartas-aprobacion/app.js:92)", "shortDescription": {"text": "Dangling fetch: POST /api/clientes (api-gateway/public/cartas-aprobacion/app.js:92)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:92` calls `POST /api/clientes` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/clientes`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94d3ddd6ef9439eb", "name": "Dangling fetch: GET /api/cartas-params/${encodeURIComponent(key)} (api-gateway/public/cartas-aprobacion/app.js:126)", "shortDescription": {"text": "Dangling fetch: GET /api/cartas-params/${encodeURIComponent(key)} (api-gateway/public/cartas-aprobacion/app.js:126)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:126` calls `GET /api/cartas-params/${encodeURIComponent(key)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cartas-params/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4931d5f0f630e2b8", "name": "Dangling fetch: POST /api/cartas-params/${encodeURIComponent(key)} (api-gateway/public/cartas-aprobacion/app.js:135)", "shortDescription": {"text": "Dangling fetch: POST /api/cartas-params/${encodeURIComponent(key)} (api-gateway/public/cartas-aprobacion/app.js:135)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:135` calls `POST /api/cartas-params/${encodeURIComponent(key)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cartas-params/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ccde4a306b1bc555", "name": "Dangling fetch: GET /api/uf/vigente (api-gateway/public/cartas-aprobacion/app.js:887)", "shortDescription": {"text": "Dangling fetch: GET /api/uf/vigente (api-gateway/public/cartas-aprobacion/app.js:887)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:887` calls `GET /api/uf/vigente` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/uf/vigente`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3eb8041674e218a7", "name": "Dangling fetch: GET /api/tasas/vigente (api-gateway/public/cartas-aprobacion/app.js:900)", "shortDescription": {"text": "Dangling fetch: GET /api/tasas/vigente (api-gateway/public/cartas-aprobacion/app.js:900)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:900` calls `GET /api/tasas/vigente` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tasas/vigente`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e025bd257244e627", "name": "Dangling fetch: GET /api/vehiculos/cascada (api-gateway/public/cartas-aprobacion/app.js:2799)", "shortDescription": {"text": "Dangling fetch: GET /api/vehiculos/cascada (api-gateway/public/cartas-aprobacion/app.js:2799)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:2799` calls `GET /api/vehiculos/cascada` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/vehiculos/cascada`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7d4660acf18c2112", "name": "Dangling fetch: GET /api/dealers?limit=2000 (api-gateway/public/cartas-aprobacion/app.js:2811)", "shortDescription": {"text": "Dangling fetch: GET /api/dealers?limit=2000 (api-gateway/public/cartas-aprobacion/app.js:2811)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:2811` calls `GET /api/dealers?limit=2000` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/dealers`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c73e47882f805c1", "name": "Dangling fetch: GET /api/dealers/ccs (api-gateway/public/cartas-aprobacion/app.js:2837)", "shortDescription": {"text": "Dangling fetch: GET /api/dealers/ccs (api-gateway/public/cartas-aprobacion/app.js:2837)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:2837` calls `GET /api/dealers/ccs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/dealers/ccs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-99be800a500790a3", "name": "Dangling fetch: POST /api/cartas/carga-masiva (api-gateway/public/cartas-aprobacion/app.js:2986)", "shortDescription": {"text": "Dangling fetch: POST /api/cartas/carga-masiva (api-gateway/public/cartas-aprobacion/app.js:2986)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:2986` calls `POST /api/cartas/carga-masiva` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/cartas/carga-masiva`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cbe4dfffe0b2968a", "name": "Dangling fetch: POST /api/creditos (api-gateway/public/cartas-aprobacion/app.js:3983)", "shortDescription": {"text": "Dangling fetch: POST /api/creditos (api-gateway/public/cartas-aprobacion/app.js:3983)"}, "fullDescription": {"text": "`api-gateway/public/cartas-aprobacion/app.js:3983` calls `POST /api/creditos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/creditos`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2524e3aeb76927f9", "name": "Unused endpoint: PUT /variables", "shortDescription": {"text": "Unused endpoint: PUT /variables"}, "fullDescription": {"text": "`shared/middleware/permisos.js` declares `PUT /variables` 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-6eb452fbfb454d20", "name": "Unused endpoint: USE /api/auth", "shortDescription": {"text": "Unused endpoint: USE /api/auth"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/auth` 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-c74a179f3b4939cf", "name": "Unused endpoint: USE /api/usuarios", "shortDescription": {"text": "Unused endpoint: USE /api/usuarios"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/usuarios` 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-e75cd6861062b864", "name": "Unused endpoint: USE /api/perfiles", "shortDescription": {"text": "Unused endpoint: USE /api/perfiles"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/perfiles` 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-6f63dbe78bf2280a", "name": "Unused endpoint: USE /api/config", "shortDescription": {"text": "Unused endpoint: USE /api/config"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/config` 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-2f65d60b2eba46de", "name": "Unused endpoint: USE /api/clientes", "shortDescription": {"text": "Unused endpoint: USE /api/clientes"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/clientes` 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-372ed9db1f843a90", "name": "Unused endpoint: USE /api/antecedentes-laborales", "shortDescription": {"text": "Unused endpoint: USE /api/antecedentes-laborales"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/antecedentes-laborales` 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-92e330062374b3d4", "name": "Unused endpoint: USE /api/informacion-comercial", "shortDescription": {"text": "Unused endpoint: USE /api/informacion-comercial"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/informacion-comercial` 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-bdcf262f90fb26d9", "name": "Unused endpoint: USE /api/informes-dealernet", "shortDescription": {"text": "Unused endpoint: USE /api/informes-dealernet"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/informes-dealernet` 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-413ea91483887e32", "name": "Unused endpoint: USE /api/dealernet", "shortDescription": {"text": "Unused endpoint: USE /api/dealernet"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/dealernet` 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-a786e9d98c4149a2", "name": "Unused endpoint: USE /api/impuestos", "shortDescription": {"text": "Unused endpoint: USE /api/impuestos"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/impuestos` 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-9a58b0681c42f58e", "name": "Unused endpoint: USE /api/tasas", "shortDescription": {"text": "Unused endpoint: USE /api/tasas"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/tasas` 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-ce9215904e84a261", "name": "Unused endpoint: USE /api/uf", "shortDescription": {"text": "Unused endpoint: USE /api/uf"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/uf` 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-d9143e8276b92b7f", "name": "Unused endpoint: USE /api/geografico", "shortDescription": {"text": "Unused endpoint: USE /api/geografico"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/geografico` 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-2e7a2b5209af91f5", "name": "Unused endpoint: USE /api/vehiculos", "shortDescription": {"text": "Unused endpoint: USE /api/vehiculos"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/vehiculos` 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-d558c40f729ae23d", "name": "Unused endpoint: USE /api/dealers", "shortDescription": {"text": "Unused endpoint: USE /api/dealers"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/dealers` 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-09006af8d0382493", "name": "Unused endpoint: USE /api/dealer-incorporacion", "shortDescription": {"text": "Unused endpoint: USE /api/dealer-incorporacion"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/dealer-incorporacion` 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-6bb8982ecb58af73", "name": "Unused endpoint: USE /api/dealer-categorias", "shortDescription": {"text": "Unused endpoint: USE /api/dealer-categorias"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/dealer-categorias` 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-36ee03cce5614477", "name": "Unused endpoint: USE /api/parametros-credito", "shortDescription": {"text": "Unused endpoint: USE /api/parametros-credito"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/parametros-credito` 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-b0711bac7d89721a", "name": "Unused endpoint: USE /api/definiciones", "shortDescription": {"text": "Unused endpoint: USE /api/definiciones"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/definiciones` 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-87083465af57319f", "name": "Unused endpoint: USE /api/feriados", "shortDescription": {"text": "Unused endpoint: USE /api/feriados"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/feriados` 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-573a95d73457a2fc", "name": "Unused endpoint: USE /api/politica-aprobacion", "shortDescription": {"text": "Unused endpoint: USE /api/politica-aprobacion"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/politica-aprobacion` 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-ff26094a9c7e54f6", "name": "Unused endpoint: USE /api/workflow-estados", "shortDescription": {"text": "Unused endpoint: USE /api/workflow-estados"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/workflow-estados` 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-4ab84b1418efacfc", "name": "Unused endpoint: USE /api/tipos-documento", "shortDescription": {"text": "Unused endpoint: USE /api/tipos-documento"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/tipos-documento` 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-a9b1a0e5350f450e", "name": "Unused endpoint: USE /api/plantillas-documento", "shortDescription": {"text": "Unused endpoint: USE /api/plantillas-documento"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/plantillas-documento` 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-cd198aa95cfc9e3e", "name": "Unused endpoint: USE /api/cuentas-bancarias", "shortDescription": {"text": "Unused endpoint: USE /api/cuentas-bancarias"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/cuentas-bancarias` 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-e8493f5d395283bb", "name": "Unused endpoint: USE /api/parques-comisiones", "shortDescription": {"text": "Unused endpoint: USE /api/parques-comisiones"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/parques-comisiones` 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-03545f9a6d35d04e", "name": "Unused endpoint: USE /api/bd-operaciones", "shortDescription": {"text": "Unused endpoint: USE /api/bd-operaciones"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/bd-operaciones` 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-538685e1020f7c4b", "name": "Unused endpoint: USE /api/bd-clientes", "shortDescription": {"text": "Unused endpoint: USE /api/bd-clientes"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/bd-clientes` 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-114967541d192056", "name": "Unused endpoint: USE /api/bd-antecedentes", "shortDescription": {"text": "Unused endpoint: USE /api/bd-antecedentes"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/bd-antecedentes` 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-40b3e1e7ce7cf7cb", "name": "Unused endpoint: USE /api/bd-informacion-comercial", "shortDescription": {"text": "Unused endpoint: USE /api/bd-informacion-comercial"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/bd-informacion-comercial` 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-99f4b64f19e92fd1", "name": "Unused endpoint: USE /api/productos-financiera", "shortDescription": {"text": "Unused endpoint: USE /api/productos-financiera"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/productos-financiera` 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-8517d7ce226fbe02", "name": "Unused endpoint: USE /api/noticias", "shortDescription": {"text": "Unused endpoint: USE /api/noticias"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/noticias` 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-f8e680fd54121178", "name": "Unused endpoint: USE /api/servidor-hora", "shortDescription": {"text": "Unused endpoint: USE /api/servidor-hora"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/servidor-hora` 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-f73b4ea1acbf2028", "name": "Unused endpoint: USE /api/db-maintenance", "shortDescription": {"text": "Unused endpoint: USE /api/db-maintenance"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/db-maintenance` 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-51053a9419be9ac4", "name": "Unused endpoint: USE /api/alertas", "shortDescription": {"text": "Unused endpoint: USE /api/alertas"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/alertas` 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-3bac304259712250", "name": "Unused endpoint: USE /api/meses-cerrados", "shortDescription": {"text": "Unused endpoint: USE /api/meses-cerrados"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/meses-cerrados` 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-e72bc6552409d265", "name": "Unused endpoint: USE /api/tablas-dinamicas", "shortDescription": {"text": "Unused endpoint: USE /api/tablas-dinamicas"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/tablas-dinamicas` 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-6be114d9222dcf46", "name": "Unused endpoint: USE /api/cotizaciones", "shortDescription": {"text": "Unused endpoint: USE /api/cotizaciones"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/cotizaciones` 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-124b197275632004", "name": "Unused endpoint: USE /api/creditos", "shortDescription": {"text": "Unused endpoint: USE /api/creditos"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/creditos` 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-9406828bcc34931a", "name": "Unused endpoint: USE /api/edicion-creditos", "shortDescription": {"text": "Unused endpoint: USE /api/edicion-creditos"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/edicion-creditos` 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-fe85a0250b40e47f", "name": "Unused endpoint: USE /api/credito-documentos", "shortDescription": {"text": "Unused endpoint: USE /api/credito-documentos"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/credito-documentos` 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-a269b4249be3f1f2", "name": "Unused endpoint: USE /api/documentos-af", "shortDescription": {"text": "Unused endpoint: USE /api/documentos-af"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/documentos-af` 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-dd2199f19156ab82", "name": "Unused endpoint: USE /api/pagos-credito", "shortDescription": {"text": "Unused endpoint: USE /api/pagos-credito"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/pagos-credito` 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-eebc7674473e2932", "name": "Unused endpoint: USE /api/operaciones", "shortDescription": {"text": "Unused endpoint: USE /api/operaciones"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/operaciones` 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-43c575adce9f2a35", "name": "Unused endpoint: USE /api/auditoria-credito", "shortDescription": {"text": "Unused endpoint: USE /api/auditoria-credito"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/auditoria-credito` 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-1eba80e11b35d682", "name": "Unused endpoint: USE /api/broker-validation-items", "shortDescription": {"text": "Unused endpoint: USE /api/broker-validation-items"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/broker-validation-items` 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-19a360f60294fbd1", "name": "Unused endpoint: USE /api/broker-validaciones", "shortDescription": {"text": "Unused endpoint: USE /api/broker-validaciones"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/broker-validaciones` 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-765911db2dd9f03d", "name": "Unused endpoint: USE /api/fundantes", "shortDescription": {"text": "Unused endpoint: USE /api/fundantes"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/fundantes` 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-795e33db93f3a38f", "name": "Unused endpoint: USE /api/cajas", "shortDescription": {"text": "Unused endpoint: USE /api/cajas"}, "fullDescription": {"text": "`api-gateway/src/index.js` declares `USE /api/cajas` 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/18040"}, "properties": {"repository": "reportes-ai/credit-system", "repoUrl": "https://github.com/reportes-ai/credit-system", "branch": "main"}, "results": [{"ruleId": "scanner-8b56d6e7d06c875c", "level": "note", "message": {"text": "Possibly dead Python function: limpia_fecha"}, "properties": {"repobilityId": "9c41d664361c444f", "scanner": "scanner-primary", "fingerprint": "8b56d6e7d06c875c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/importar_detalle.py:192"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0f86ae3f08d7209c", "level": "note", "message": {"text": "Possibly dead Python function: limpia_num"}, "properties": {"repobilityId": "894e97ed590c471f", "scanner": "scanner-primary", "fingerprint": "0f86ae3f08d7209c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/importar_detalle.py:200"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-44aeffc05db681ce", "level": "note", "message": {"text": "Possibly dead Python function: limpia_bool"}, "properties": {"repobilityId": "9362565befb48fd9", "scanner": "scanner-primary", "fingerprint": "44aeffc05db681ce", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/importar_detalle.py:241"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56a0d264c1eda3e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 setup-db.js:24"}, "properties": {"repobilityId": "04bf860fff5a9169", "scanner": "scanner-primary", "fingerprint": "56a0d264c1eda3e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ad0eef04b1a499f9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 shared/feriados.js:73"}, "properties": {"repobilityId": "6227ddc6123496ea", "scanner": "scanner-primary", "fingerprint": "ad0eef04b1a499f9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c7f18c395914d420", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 shared/config/database.js:48"}, "properties": {"repobilityId": "b1858ddd267b5125", "scanner": "scanner-primary", "fingerprint": "c7f18c395914d420", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8886b029d4cacc96", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-duplicates.js:54"}, "properties": {"repobilityId": "8eb9693c8d725913", "scanner": "scanner-primary", "fingerprint": "8886b029d4cacc96", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e8b3820f3b41d204", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/volcar-bd.js:24"}, "properties": {"repobilityId": "3020559fd4e9d798", "scanner": "scanner-primary", "fingerprint": "e8b3820f3b41d204", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c2b570c3f9f57fd4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/recover-num-op.js:27"}, "properties": {"repobilityId": "a882b66d8c09b680", "scanner": "scanner-primary", "fingerprint": "c2b570c3f9f57fd4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-33c994f59dea352a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/audit-permisos.js:20"}, "properties": {"repobilityId": "357ebb60c1511774", "scanner": "scanner-primary", "fingerprint": "33c994f59dea352a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3e1bc138424ecd03", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api-gateway/public/js/xlsx.full.min.js:12"}, "properties": {"repobilityId": "8130acb1b788f8cc", "scanner": "scanner-primary", "fingerprint": "3e1bc138424ecd03", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-53598f9c5e9eb0e0", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 api-gateway/public/dashboard/app.js:3720"}, "properties": {"repobilityId": "4784a717b6e52f91", "scanner": "scanner-primary", "fingerprint": "53598f9c5e9eb0e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-25df7ac26c7da084", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 api-gateway/public/cartas-aprobacion/app.js:4510"}, "properties": {"repobilityId": "455b8869b051b60a", "scanner": "scanner-primary", "fingerprint": "25df7ac26c7da084", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-df903f041787bfaa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api-gateway/public/cartas-aprobacion/app.js:2826"}, "properties": {"repobilityId": "4716aebb6b524458", "scanner": "scanner-primary", "fingerprint": "df903f041787bfaa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-502c610405514f46", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api-gateway/src/index.js:440"}, "properties": {"repobilityId": "fec1a116c4c29461", "scanner": "scanner-primary", "fingerprint": "502c610405514f46", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3182f1f056d4ad12", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/desempeno/src/controllers/desempeno.controller.js:40"}, "properties": {"repobilityId": "846ce2aa5eb1b156", "scanner": "scanner-primary", "fingerprint": "3182f1f056d4ad12", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c5f75c999241c32a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/dealers-incorporacion/src/controllers/fichas.controller.js:143"}, "properties": {"repobilityId": "180b3875eb2e57b5", "scanner": "scanner-primary", "fingerprint": "c5f75c999241c32a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0a6fd4fbadf33ca8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/clientes/src/controllers/dealernet-ws.controller.js:93"}, "properties": {"repobilityId": "8a5d4dee05b2af50", "scanner": "scanner-primary", "fingerprint": "0a6fd4fbadf33ca8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ef47ac7d4adc7c6f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/clientes/src/controllers/informes-dealernet.controller.js:41"}, "properties": {"repobilityId": "793ef4be3692397c", "scanner": "scanner-primary", "fingerprint": "ef47ac7d4adc7c6f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-76fbfbf0f0c89d3c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/cobranza/src/controllers/cobranza.controller.js:36"}, "properties": {"repobilityId": "d003f827697c5014", "scanner": "scanner-primary", "fingerprint": "76fbfbf0f0c89d3c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-129f1f0ec31a83f0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/carga-trinidad.controller.js:12"}, "properties": {"repobilityId": "c6c8409b1e864cab", "scanner": "scanner-primary", "fingerprint": "129f1f0ec31a83f0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-30f2c8873f3959c0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/fundantes.controller.js:33"}, "properties": {"repobilityId": "120eecb64abcfec3", "scanner": "scanner-primary", "fingerprint": "30f2c8873f3959c0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1b03fc013187eeca", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/operaciones.controller.js:60"}, "properties": {"repobilityId": "520cd52e9cb04996", "scanner": "scanner-primary", "fingerprint": "1b03fc013187eeca", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7167d7c709bf91bc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/trinidad-config.controller.js:82"}, "properties": {"repobilityId": "446be7efaae16d93", "scanner": "scanner-primary", "fingerprint": "7167d7c709bf91bc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e89a57acc2284e25", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/broker-validaciones.controller.js:52"}, "properties": {"repobilityId": "a00677e4ff7712e7", "scanner": "scanner-primary", "fingerprint": "e89a57acc2284e25", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e4708d2d6f949651", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/creditos.controller.js:574"}, "properties": {"repobilityId": "420a6afaa74c73d1", "scanner": "scanner-primary", "fingerprint": "e4708d2d6f949651", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b2cdc6c2a6bfc49b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/creditos/src/controllers/carga-masiva.controller.js:310"}, "properties": {"repobilityId": "e9c6199352bc7ae2", "scanner": "scanner-primary", "fingerprint": "b2cdc6c2a6bfc49b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1340b4c8cddc5c1b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/cartas/src/controllers/cartas.controller.js:240"}, "properties": {"repobilityId": "4cddf42c9befc132", "scanner": "scanner-primary", "fingerprint": "1340b4c8cddc5c1b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2a4ec362b382c03c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/cartas/src/controllers/cartolas.controller.js:79"}, "properties": {"repobilityId": "af994e615b70ccb8", "scanner": "scanner-primary", "fingerprint": "2a4ec362b382c03c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c480402202bfa903", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/comisiones/src/controllers/comisiones.controller.js:95"}, "properties": {"repobilityId": "3060aed276b9dbb4", "scanner": "scanner-primary", "fingerprint": "c480402202bfa903", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6f96c50d98bc088a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/tesoreria/src/controllers/brokerage.controller.js:30"}, "properties": {"repobilityId": "303d85bb7dddc789", "scanner": "scanner-primary", "fingerprint": "6f96c50d98bc088a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bf7a75db1f70612d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/reporteria/src/controllers/tablas-dinamicas.controller.js:21"}, "properties": {"repobilityId": "c67f93b04631a39b", "scanner": "scanner-primary", "fingerprint": "bf7a75db1f70612d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-99bc8c838a72e56a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/notificaciones/src/controllers/notificaciones.controller.js:42"}, "properties": {"repobilityId": "5bf5a866277fa08f", "scanner": "scanner-primary", "fingerprint": "99bc8c838a72e56a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b8d3b592898ea932", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/auditoria/src/controllers/auditoria.controller.js:21"}, "properties": {"repobilityId": "1003cd00f2321a99", "scanner": "scanner-primary", "fingerprint": "b8d3b592898ea932", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-149cbda1a5850fb2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/crm/src/controllers/gestiones.controller.js:68"}, "properties": {"repobilityId": "14675b6536ef1a0b", "scanner": "scanner-primary", "fingerprint": "149cbda1a5850fb2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-28292661632b125c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/usuarios/src/controllers/perfiles.controller.js:213"}, "properties": {"repobilityId": "6b3a7c9cf5f5b7cf", "scanner": "scanner-primary", "fingerprint": "28292661632b125c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-82059b5ef90169c3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/postventa/src/controllers/postventa.controller.js:81"}, "properties": {"repobilityId": "6542a30192c69a36", "scanner": "scanner-primary", "fingerprint": "82059b5ef90169c3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f283b498582c8166", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/atencion-remota/src/ws.js:98"}, "properties": {"repobilityId": "7ca8dbae30ddf882", "scanner": "scanner-primary", "fingerprint": "f283b498582c8166", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f6571340d3032f69", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/atencion-remota/src/controllers/atencion.controller.js:197"}, "properties": {"repobilityId": "efe944748ab51087", "scanner": "scanner-primary", "fingerprint": "f6571340d3032f69", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-283479ea53a787b2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/ayuda/src/controllers/ayuda.controller.js:221"}, "properties": {"repobilityId": "0d85ecf42844dc81", "scanner": "scanner-primary", "fingerprint": "283479ea53a787b2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa691588ae5b3214", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/alertas/src/controllers/alertas.controller.js:80"}, "properties": {"repobilityId": "b348837180113c66", "scanner": "scanner-primary", "fingerprint": "aa691588ae5b3214", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2aa6f6dc673af627", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/politica-aprobacion.controller.js:83"}, "properties": {"repobilityId": "23f6b64dd9c5b856", "scanner": "scanner-primary", "fingerprint": "2aa6f6dc673af627", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1f838593ddb13211", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/dealer-categorias.controller.js:73"}, "properties": {"repobilityId": "ad58752bddbd3a42", "scanner": "scanner-primary", "fingerprint": "1f838593ddb13211", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-09486b522c101b3d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/parques.controller.js:42"}, "properties": {"repobilityId": "6df83cb829f154be", "scanner": "scanner-primary", "fingerprint": "09486b522c101b3d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-581fccbb810bbcb8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/definiciones.controller.js:32"}, "properties": {"repobilityId": "7e39a7c06aba0ae2", "scanner": "scanner-primary", "fingerprint": "581fccbb810bbcb8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f0c75de9fb8e1592", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/tipos-documento.controller.js:55"}, "properties": {"repobilityId": "f5e570b1a069b2a6", "scanner": "scanner-primary", "fingerprint": "f0c75de9fb8e1592", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cf445647b1775225", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 services/mantenedores/src/controllers/comisiones-seguro.controller.js:36"}, "properties": {"repobilityId": "534fccb89f9669f4", "scanner": "scanner-primary", "fingerprint": "cf445647b1775225", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"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-8987d6d1c30c7202", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "068fbf45727eac17", "scanner": "scanner-primary", "fingerprint": "8987d6d1c30c7202", "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-e9e47b75f6c2a909", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/adapt_dashboard.py:38"}, "properties": {"repobilityId": "7a3f86079662feec", "scanner": "scanner-primary", "fingerprint": "e9e47b75f6c2a909", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/adapt_dashboard.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-e996c0efb7b3110e", "level": "error", "message": {"text": "Possible secret in scripts/importar_detalle.py"}, "properties": {"repobilityId": "3826c9ae42f8e8fa", "scanner": "scanner-primary", "fingerprint": "e996c0efb7b3110e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/importar_detalle.py"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-7ed1065babd669ef", "level": "error", "message": {"text": "Possible secret in scripts/check_abril.py"}, "properties": {"repobilityId": "f525405b635957c1", "scanner": "scanner-primary", "fingerprint": "7ed1065babd669ef", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/check_abril.py"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-f2e40fdb70dfb19e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/audit-permisos.js:89"}, "properties": {"repobilityId": "51bad3932c543574", "scanner": "scanner-primary", "fingerprint": "f2e40fdb70dfb19e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/audit-permisos.js"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-7372d4f974a3648a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/login.html:189"}, "properties": {"repobilityId": "61e7c29ed6aad0ba", "scanner": "scanner-primary", "fingerprint": "7372d4f974a3648a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/login.html"}, "region": {"startLine": 189}}}]}, {"ruleId": "scanner-11c6900eb4367e95", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in api-gateway/public/login.html:183"}, "properties": {"repobilityId": "87bd043858685240", "scanner": "scanner-primary", "fingerprint": "11c6900eb4367e95", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/login.html"}, "region": {"startLine": 183}}}]}, {"ruleId": "scanner-71b45f2e85bc6bab", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/index.html:375"}, "properties": {"repobilityId": "5662151135126089", "scanner": "scanner-primary", "fingerprint": "71b45f2e85bc6bab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/index.html"}, "region": {"startLine": 375}}}]}, {"ruleId": "scanner-1c5a4d86813e4d9f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/dealers-incorporacion/nuevo.html:427"}, "properties": {"repobilityId": "04a35e1eef395f4a", "scanner": "scanner-primary", "fingerprint": "1c5a4d86813e4d9f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/dealers-incorporacion/nuevo.html"}, "region": {"startLine": 427}}}]}, {"ruleId": "scanner-6575a3944319e0ba", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/dealers-incorporacion/nuevo.html:545"}, "properties": {"repobilityId": "a710b670ac4bdfd0", "scanner": "scanner-primary", "fingerprint": "6575a3944319e0ba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/dealers-incorporacion/nuevo.html"}, "region": {"startLine": 545}}}]}, {"ruleId": "scanner-4bbb2e639e3377c7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/dealers-incorporacion/mantencion.html:153"}, "properties": {"repobilityId": "eb73434bc6a9e1a9", "scanner": "scanner-primary", "fingerprint": "4bbb2e639e3377c7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/dealers-incorporacion/mantencion.html"}, "region": {"startLine": 153}}}]}, {"ruleId": "scanner-2a79288f3e444844", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/clientes/index.html:860"}, "properties": {"repobilityId": "5a427e58a3e655a0", "scanner": "scanner-primary", "fingerprint": "2a79288f3e444844", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/clientes/index.html"}, "region": {"startLine": 860}}}]}, {"ruleId": "scanner-ae8b074fb1150553", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/index.html:241"}, "properties": {"repobilityId": "44a9f2f35406be14", "scanner": "scanner-primary", "fingerprint": "ae8b074fb1150553", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/cobranza/index.html"}, "region": {"startLine": 241}}}]}, {"ruleId": "scanner-8fd2b6b0be81d2ae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/prejudicial.html:363"}, "properties": {"repobilityId": "a256dfc3261a5ade", "scanner": "scanner-primary", "fingerprint": "8fd2b6b0be81d2ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/cobranza/prejudicial.html"}, "region": {"startLine": 363}}}]}, {"ruleId": "scanner-f7b38bcc89d95c21", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/judicial.html:297"}, "properties": {"repobilityId": "1971a8c26e4e9e41", "scanner": "scanner-primary", "fingerprint": "f7b38bcc89d95c21", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/cobranza/judicial.html"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-9172ccfe9ed1eaf3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cobranza/mis-cobranza.html:269"}, "properties": {"repobilityId": "a1f3c50ee19c8c67", "scanner": "scanner-primary", "fingerprint": "9172ccfe9ed1eaf3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/cobranza/mis-cobranza.html"}, "region": {"startLine": 269}}}]}, {"ruleId": "scanner-6cc2326a58a7f506", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/digitacion-autofin.html:504"}, "properties": {"repobilityId": "f94a402dc5140c12", "scanner": "scanner-primary", "fingerprint": "6cc2326a58a7f506", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/digitacion-autofin.html"}, "region": {"startLine": 504}}}]}, {"ruleId": "scanner-39091a0ab28004fd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/carga-documentos-af.html:202"}, "properties": {"repobilityId": "6d9a26a52775a917", "scanner": "scanner-primary", "fingerprint": "39091a0ab28004fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/carga-documentos-af.html"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-e55672dbb4b9de0c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/auditoria.html:265"}, "properties": {"repobilityId": "21a1662ce3d82573", "scanner": "scanner-primary", "fingerprint": "e55672dbb4b9de0c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/auditoria.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-fd7785d514c18eca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/pagar-cuotas.html:344"}, "properties": {"repobilityId": "f7f9cf4527244d16", "scanner": "scanner-primary", "fingerprint": "fd7785d514c18eca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/pagar-cuotas.html"}, "region": {"startLine": 344}}}]}, {"ruleId": "scanner-977c2a1c161a0064", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/documentos.html:380"}, "properties": {"repobilityId": "2b0e4863615b53ef", "scanner": "scanner-primary", "fingerprint": "977c2a1c161a0064", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/documentos.html"}, "region": {"startLine": 380}}}]}, {"ruleId": "scanner-8b02ef2e35478258", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/validacion-firma.html:328"}, "properties": {"repobilityId": "31841a0aa038ef2b", "scanner": "scanner-primary", "fingerprint": "8b02ef2e35478258", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/validacion-firma.html"}, "region": {"startLine": 328}}}]}, {"ruleId": "scanner-e980391e5ca185f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/fundantes.html:269"}, "properties": {"repobilityId": "e69f37c4f2bd37e7", "scanner": "scanner-primary", "fingerprint": "e980391e5ca185f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/fundantes.html"}, "region": {"startLine": 269}}}]}, {"ruleId": "scanner-fde10ee16b5b5a1c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/app.js:44"}, "properties": {"repobilityId": "cc2e4b348609fb5f", "scanner": "scanner-primary", "fingerprint": "fde10ee16b5b5a1c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/app.js"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-e9a57718963cbb70", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/respaldos.html:344"}, "properties": {"repobilityId": "5f6098dbc3cc574c", "scanner": "scanner-primary", "fingerprint": "e9a57718963cbb70", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/respaldos.html"}, "region": {"startLine": 344}}}]}, {"ruleId": "scanner-6260d338e1c4921b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/digitacion-unidad.html:422"}, "properties": {"repobilityId": "e9d5caa5c60a4385", "scanner": "scanner-primary", "fingerprint": "6260d338e1c4921b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/digitacion-unidad.html"}, "region": {"startLine": 422}}}]}, {"ruleId": "scanner-eb3e02fba4c4d477", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/creditos/revisar.html:419"}, "properties": {"repobilityId": "7a04ee02bcbc0153", "scanner": "scanner-primary", "fingerprint": "eb3e02fba4c4d477", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/creditos/revisar.html"}, "region": {"startLine": 419}}}]}, {"ruleId": "scanner-2c81ed63425e56d3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/orden-toast.js:20"}, "properties": {"repobilityId": "950d7f897e59986c", "scanner": "scanner-primary", "fingerprint": "2c81ed63425e56d3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/orden-toast.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-bc9c113bd343fdb5", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/js/orden-toast.js:21"}, "properties": {"repobilityId": "6ac0a9bc03b94ba7", "scanner": "scanner-primary", "fingerprint": "bc9c113bd343fdb5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/orden-toast.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-4778c5db145cc021", "level": "note", "message": {"text": "Insecure pattern 'document_write' in api-gateway/public/js/html2pdf.bundle.min.js:2"}, "properties": {"repobilityId": "81a13b337cb6617f", "scanner": "scanner-primary", "fingerprint": "4778c5db145cc021", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/html2pdf.bundle.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-f36fdff7c250b790", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/html2pdf.bundle.min.js:2"}, "properties": {"repobilityId": "70e0c23b1d8151b2", "scanner": "scanner-primary", "fingerprint": "f36fdff7c250b790", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/html2pdf.bundle.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-23b4fd34959e74dc", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in api-gateway/public/js/html2pdf.bundle.min.js:2"}, "properties": {"repobilityId": "d2e360a847c6c543", "scanner": "scanner-primary", "fingerprint": "23b4fd34959e74dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/html2pdf.bundle.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-0d587ec65716154c", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in api-gateway/public/js/html2pdf.bundle.min.js:2"}, "properties": {"repobilityId": "247c4262731e151f", "scanner": "scanner-primary", "fingerprint": "0d587ec65716154c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/html2pdf.bundle.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-6b420b64bef2a3ff", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/webrtc-atencion.js:80"}, "properties": {"repobilityId": "9d0d94c8baffc48b", "scanner": "scanner-primary", "fingerprint": "6b420b64bef2a3ff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/webrtc-atencion.js"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-13506d60262108db", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in api-gateway/public/js/xlsx.full.min.js:11"}, "properties": {"repobilityId": "91dc10eff219c54d", "scanner": "scanner-primary", "fingerprint": "13506d60262108db", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/xlsx.full.min.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-b5e4103ef3872ece", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/app-version.js:332"}, "properties": {"repobilityId": "4e8c0d13829dbc57", "scanner": "scanner-primary", "fingerprint": "b5e4103ef3872ece", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/app-version.js"}, "region": {"startLine": 332}}}]}, {"ruleId": "scanner-71844d2dc92aa099", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/js/app-version.js:258"}, "properties": {"repobilityId": "3c9469d606f8ab30", "scanner": "scanner-primary", "fingerprint": "71844d2dc92aa099", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/app-version.js"}, "region": {"startLine": 258}}}]}, {"ruleId": "scanner-fec635575c1ced83", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/comprobante.js:176"}, "properties": {"repobilityId": "84ac51454a07443d", "scanner": "scanner-primary", "fingerprint": "fec635575c1ced83", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/comprobante.js"}, "region": {"startLine": 176}}}]}, {"ruleId": "scanner-cdfa7d08e5af641c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/bootstrap.bundle.min.js:6"}, "properties": {"repobilityId": "a294208ff219a262", "scanner": "scanner-primary", "fingerprint": "cdfa7d08e5af641c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/bootstrap.bundle.min.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-3a41fb7b8c361b59", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in api-gateway/public/js/bootstrap.bundle.min.js:6"}, "properties": {"repobilityId": "7f118639df4aa5d8", "scanner": "scanner-primary", "fingerprint": "3a41fb7b8c361b59", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/bootstrap.bundle.min.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-c5198d59a7434706", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/js/alertas-vencimiento.js:67"}, "properties": {"repobilityId": "838e7369ffe0fb5b", "scanner": "scanner-primary", "fingerprint": "c5198d59a7434706", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/js/alertas-vencimiento.js"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-216cc463ededaad0", "level": "note", "message": {"text": "Insecure pattern 'document_write' in api-gateway/public/comisiones/revision/index.html:1115"}, "properties": {"repobilityId": "32a4a80914906822", "scanner": "scanner-primary", "fingerprint": "216cc463ededaad0", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/comisiones/revision/index.html"}, "region": {"startLine": 1115}}}]}, {"ruleId": "scanner-13c41670086cbc98", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/comisiones/revision/index.html:237"}, "properties": {"repobilityId": "a917d2f09d73b222", "scanner": "scanner-primary", "fingerprint": "13c41670086cbc98", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/comisiones/revision/index.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-4576a05d0f333ad9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/comisiones/variables/index.html:167"}, "properties": {"repobilityId": "8e8fad972f008718", "scanner": "scanner-primary", "fingerprint": "4576a05d0f333ad9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/comisiones/variables/index.html"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-c90449836d094fb8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/simulador/index.html:320"}, "properties": {"repobilityId": "d21b55f1ecbfd188", "scanner": "scanner-primary", "fingerprint": "c90449836d094fb8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/simulador/index.html"}, "region": {"startLine": 320}}}]}, {"ruleId": "scanner-8813f669df40850b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/dashboard/app.js:28"}, "properties": {"repobilityId": "229bd3db5acc2ebf", "scanner": "scanner-primary", "fingerprint": "8813f669df40850b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/dashboard/app.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-463e2da051082ead", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/dashboard/app.js:1288"}, "properties": {"repobilityId": "c2ed3fddd87cc808", "scanner": "scanner-primary", "fingerprint": "463e2da051082ead", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/dashboard/app.js"}, "region": {"startLine": 1288}}}]}, {"ruleId": "scanner-3f63a57cb6b7f80b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/cuentas-transitorias.html:222"}, "properties": {"repobilityId": "932cb0d7e2241dac", "scanner": "scanner-primary", "fingerprint": "3f63a57cb6b7f80b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/tesoreria/cuentas-transitorias.html"}, "region": {"startLine": 222}}}]}, {"ruleId": "scanner-d37734eb40049fca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/cajas.html:316"}, "properties": {"repobilityId": "796e64912a9e7766", "scanner": "scanner-primary", "fingerprint": "d37734eb40049fca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/tesoreria/cajas.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-ba324188ac142730", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/cierre-caja.html:361"}, "properties": {"repobilityId": "8f0d5276ace5e587", "scanner": "scanner-primary", "fingerprint": "ba324188ac142730", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/tesoreria/cierre-caja.html"}, "region": {"startLine": 361}}}]}, {"ruleId": "scanner-93b2dd7babbb8135", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/index.html:208"}, "properties": {"repobilityId": "9a78837256d8665a", "scanner": "scanner-primary", "fingerprint": "93b2dd7babbb8135", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/tesoreria/index.html"}, "region": {"startLine": 208}}}]}, {"ruleId": "scanner-bea5ce4cf684f4f3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/brokerage.html:260"}, "properties": {"repobilityId": "b7f1b754f9cf05b0", "scanner": "scanner-primary", "fingerprint": "bea5ce4cf684f4f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/tesoreria/brokerage.html"}, "region": {"startLine": 260}}}]}, {"ruleId": "scanner-b978c125d2960548", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/caja.html:476"}, "properties": {"repobilityId": "359b9dbcdd423308", "scanner": "scanner-primary", "fingerprint": "b978c125d2960548", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/tesoreria/caja.html"}, "region": {"startLine": 476}}}]}, {"ruleId": "scanner-c64641fc76135049", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/tesoreria/caja/index.html:167"}, "properties": {"repobilityId": "b94c732dda2b577a", "scanner": "scanner-primary", "fingerprint": "c64641fc76135049", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/tesoreria/caja/index.html"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-e1ea6dbaf1c9f9f3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/edicion-creditos/edicion-page.js:43"}, "properties": {"repobilityId": "934ce926b3755c21", "scanner": "scanner-primary", "fingerprint": "e1ea6dbaf1c9f9f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/edicion-creditos/edicion-page.js"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-bbeadc74670fd1d5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/reporteria/index.html:498"}, "properties": {"repobilityId": "a5c5d545aa8f8e53", "scanner": "scanner-primary", "fingerprint": "bbeadc74670fd1d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/reporteria/index.html"}, "region": {"startLine": 498}}}]}, {"ruleId": "scanner-5c8fbce064158e76", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/reporteria/tablas-dinamicas/index.html:406"}, "properties": {"repobilityId": "cdf3d6d7094d86cc", "scanner": "scanner-primary", "fingerprint": "5c8fbce064158e76", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/reporteria/tablas-dinamicas/index.html"}, "region": {"startLine": 406}}}]}, {"ruleId": "scanner-0a924045bcbf7cb4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/antecedentes-laborales/index.html:447"}, "properties": {"repobilityId": "97ef46d3b7aca8be", "scanner": "scanner-primary", "fingerprint": "0a924045bcbf7cb4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/antecedentes-laborales/index.html"}, "region": {"startLine": 447}}}]}, {"ruleId": "scanner-c1d777b6dbf26785", "level": "note", "message": {"text": "Insecure pattern 'document_write' in api-gateway/public/cartas-aprobacion/app.js:1880"}, "properties": {"repobilityId": "730165a8b8bc5588", "scanner": "scanner-primary", "fingerprint": "c1d777b6dbf26785", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/cartas-aprobacion/app.js"}, "region": {"startLine": 1880}}}]}, {"ruleId": "scanner-0f8e9f1f6e9d86cb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cartas-aprobacion/app.js:150"}, "properties": {"repobilityId": "9c94dc3ea4a37b0a", "scanner": "scanner-primary", "fingerprint": "0f8e9f1f6e9d86cb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/cartas-aprobacion/app.js"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-59f7db7025d566c1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/politica/index.html:565"}, "properties": {"repobilityId": "3b01b2a8864cf998", "scanner": "scanner-primary", "fingerprint": "59f7db7025d566c1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/politica/index.html"}, "region": {"startLine": 565}}}]}, {"ruleId": "scanner-f5bbd1dccc4d8e78", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/cotizaciones/index.html:780"}, "properties": {"repobilityId": "57c6aad270e1738e", "scanner": "scanner-primary", "fingerprint": "f5bbd1dccc4d8e78", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/cotizaciones/index.html"}, "region": {"startLine": 780}}}]}, {"ruleId": "scanner-7636b2a534c36dc3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/portal-dealer/index.html:269"}, "properties": {"repobilityId": "ee1924425e979ee9", "scanner": "scanner-primary", "fingerprint": "7636b2a534c36dc3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/portal-dealer/index.html"}, "region": {"startLine": 269}}}]}, {"ruleId": "scanner-b890e919170bf997", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/portal-dealer/index.html:278"}, "properties": {"repobilityId": "72ffd9d50ca9fee6", "scanner": "scanner-primary", "fingerprint": "b890e919170bf997", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/portal-dealer/index.html"}, "region": {"startLine": 278}}}]}, {"ruleId": "scanner-59837378240557cf", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in api-gateway/public/portal-dealer/index.html:168"}, "properties": {"repobilityId": "f32ff1e6009e7fc7", "scanner": "scanner-primary", "fingerprint": "59837378240557cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/portal-dealer/index.html"}, "region": {"startLine": 168}}}]}, {"ruleId": "scanner-68b5c758c7e37aa3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/auditoria/index.html:182"}, "properties": {"repobilityId": "64fe9e2bdf33258d", "scanner": "scanner-primary", "fingerprint": "68b5c758c7e37aa3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/auditoria/index.html"}, "region": {"startLine": 182}}}]}, {"ruleId": "scanner-eb1a1ceb79c21440", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/gestiones.html:517"}, "properties": {"repobilityId": "15af90447243401b", "scanner": "scanner-primary", "fingerprint": "eb1a1ceb79c21440", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/crm/gestiones.html"}, "region": {"startLine": 517}}}]}, {"ruleId": "scanner-b6ee1e03d981e3be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/estadisticas.html:377"}, "properties": {"repobilityId": "59cae531adf9427d", "scanner": "scanner-primary", "fingerprint": "b6ee1e03d981e3be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/crm/estadisticas.html"}, "region": {"startLine": 377}}}]}, {"ruleId": "scanner-15421eb7cd9e4ef5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/index.html:167"}, "properties": {"repobilityId": "39f0c17f153b7466", "scanner": "scanner-primary", "fingerprint": "15421eb7cd9e4ef5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/crm/index.html"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-36e0db75c8a9fd84", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/campanas/crear.html:418"}, "properties": {"repobilityId": "cb17413ea26aa2be", "scanner": "scanner-primary", "fingerprint": "36e0db75c8a9fd84", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/crm/campanas/crear.html"}, "region": {"startLine": 418}}}]}, {"ruleId": "scanner-69481f90c15eaaf0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/crm/campanas/resultados.html:301"}, "properties": {"repobilityId": "147dafb047a3c8de", "scanner": "scanner-primary", "fingerprint": "69481f90c15eaaf0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/crm/campanas/resultados.html"}, "region": {"startLine": 301}}}]}, {"ruleId": "scanner-f5b3d2847c861a99", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/usuarios/index.html:766"}, "properties": {"repobilityId": "878b2c7eddd666c6", "scanner": "scanner-primary", "fingerprint": "f5b3d2847c861a99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/usuarios/index.html"}, "region": {"startLine": 766}}}]}, {"ruleId": "scanner-49d1b9989cb17f9b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/historial/index.html:200"}, "properties": {"repobilityId": "7550b1b363418f4f", "scanner": "scanner-primary", "fingerprint": "49d1b9989cb17f9b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/carga-masiva/historial/index.html"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-d5bee1264c64851f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/trinidad/index.html:177"}, "properties": {"repobilityId": "cca62a6a86c34646", "scanner": "scanner-primary", "fingerprint": "d5bee1264c64851f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/carga-masiva/trinidad/index.html"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-9a36fc4ff3322787", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/cargar/index.html:236"}, "properties": {"repobilityId": "c852365b8fcc1424", "scanner": "scanner-primary", "fingerprint": "9a36fc4ff3322787", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/carga-masiva/cargar/index.html"}, "region": {"startLine": 236}}}]}, {"ruleId": "scanner-ea41acc8e5a8a576", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/eq-ejecutivos/index.html:153"}, "properties": {"repobilityId": "f25bd11a1016ff16", "scanner": "scanner-primary", "fingerprint": "ea41acc8e5a8a576", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/carga-masiva/eq-ejecutivos/index.html"}, "region": {"startLine": 153}}}]}, {"ruleId": "scanner-ef0660a5f94b788e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/carga-masiva/eq-estados/index.html:145"}, "properties": {"repobilityId": "3f91c1c10cfcff64", "scanner": "scanner-primary", "fingerprint": "ef0660a5f94b788e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/carga-masiva/eq-estados/index.html"}, "region": {"startLine": 145}}}]}, {"ruleId": "scanner-6ba1452be59fee6f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/orden-pago-comision/index.html:129"}, "properties": {"repobilityId": "1918604bf176ac74", "scanner": "scanner-primary", "fingerprint": "6ba1452be59fee6f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/postventa/orden-pago-comision/index.html"}, "region": {"startLine": 129}}}]}, {"ruleId": "scanner-b8707c6eb3bf9efd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/comisiones-a-pagar/index.html:244"}, "properties": {"repobilityId": "b1599b90bc3ddc51", "scanner": "scanner-primary", "fingerprint": "b8707c6eb3bf9efd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/postventa/comisiones-a-pagar/index.html"}, "region": {"startLine": 244}}}]}, {"ruleId": "scanner-58cb360c14f15812", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/seguimiento/index.html:161"}, "properties": {"repobilityId": "10325d3819cc45e2", "scanner": "scanner-primary", "fingerprint": "58cb360c14f15812", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/postventa/seguimiento/index.html"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-1ae80c76ac096678", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/saldos-a-pagar/index.html:257"}, "properties": {"repobilityId": "cc0767fcd69eadca", "scanner": "scanner-primary", "fingerprint": "1ae80c76ac096678", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/postventa/saldos-a-pagar/index.html"}, "region": {"startLine": 257}}}]}, {"ruleId": "scanner-72bb04fcc82b5cb0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/orden-pago/index.html:141"}, "properties": {"repobilityId": "1b03da978e621ea5", "scanner": "scanner-primary", "fingerprint": "72bb04fcc82b5cb0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/postventa/orden-pago/index.html"}, "region": {"startLine": 141}}}]}, {"ruleId": "scanner-910b251bf70775ac", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/postventa/mantenedores/index.html:117"}, "properties": {"repobilityId": "a49db33c76a3ef6e", "scanner": "scanner-primary", "fingerprint": "910b251bf70775ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/postventa/mantenedores/index.html"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-6148093562514281", "level": "note", "message": {"text": "Insecure pattern 'document_write' in api-gateway/public/aprobaciones/index.html:1936"}, "properties": {"repobilityId": "c302f9272e3443a1", "scanner": "scanner-primary", "fingerprint": "6148093562514281", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/aprobaciones/index.html"}, "region": {"startLine": 1936}}}]}, {"ruleId": "scanner-703e6c106b3f1b59", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/aprobaciones/index.html:862"}, "properties": {"repobilityId": "bc90474d02147ca5", "scanner": "scanner-primary", "fingerprint": "703e6c106b3f1b59", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/aprobaciones/index.html"}, "region": {"startLine": 862}}}]}, {"ruleId": "scanner-8bb5406b9ff1c870", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/aprobaciones/mantenedor/index.html:179"}, "properties": {"repobilityId": "9219aa3c8902e964", "scanner": "scanner-primary", "fingerprint": "8bb5406b9ff1c870", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/aprobaciones/mantenedor/index.html"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-1a5b62c931a806d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/atencion-remota/index.html:383"}, "properties": {"repobilityId": "e323784320bcf347", "scanner": "scanner-primary", "fingerprint": "1a5b62c931a806d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/atencion-remota/index.html"}, "region": {"startLine": 383}}}]}, {"ruleId": "scanner-1dcc384ed6543230", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/atencion-remota/index.html:459"}, "properties": {"repobilityId": "741ff307649d7f66", "scanner": "scanner-primary", "fingerprint": "1dcc384ed6543230", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/atencion-remota/index.html"}, "region": {"startLine": 459}}}]}, {"ruleId": "scanner-022b5d3add049ac3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/index.html:203"}, "properties": {"repobilityId": "59f1db81e9d9a666", "scanner": "scanner-primary", "fingerprint": "022b5d3add049ac3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/index.html"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-8de1e7ba7b6248c6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/cuentas-bancarias/index.html:315"}, "properties": {"repobilityId": "7da24f3f1bfe3e75", "scanner": "scanner-primary", "fingerprint": "8de1e7ba7b6248c6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/cuentas-bancarias/index.html"}, "region": {"startLine": 315}}}]}, {"ruleId": "scanner-c1943697939dd0ce", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/tasas/index.html:382"}, "properties": {"repobilityId": "1427c0c7f187bcca", "scanner": "scanner-primary", "fingerprint": "c1943697939dd0ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/tasas/index.html"}, "region": {"startLine": 382}}}]}, {"ruleId": "scanner-2863aa79ae524d12", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/parametros/index.html:187"}, "properties": {"repobilityId": "25862a50bc5a1ff0", "scanner": "scanner-primary", "fingerprint": "2863aa79ae524d12", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/parametros/index.html"}, "region": {"startLine": 187}}}]}, {"ruleId": "scanner-5a2c61a67165240f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/dealernet-productos/index.html:153"}, "properties": {"repobilityId": "c1bc12beac222301", "scanner": "scanner-primary", "fingerprint": "5a2c61a67165240f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/dealernet-productos/index.html"}, "region": {"startLine": 153}}}]}, {"ruleId": "scanner-288e16ecfac849a7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/comisiones-seguro/index.html:134"}, "properties": {"repobilityId": "b21b013682abbcc8", "scanner": "scanner-primary", "fingerprint": "288e16ecfac849a7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/comisiones-seguro/index.html"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-0a2abee81e4aae24", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/alertas-saldos/index.html:149"}, "properties": {"repobilityId": "0921fe718ea46122", "scanner": "scanner-primary", "fingerprint": "0a2abee81e4aae24", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/alertas-saldos/index.html"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-d86b01368dee0194", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/db-maintenance/index.html:446"}, "properties": {"repobilityId": "6735ac98407e50b2", "scanner": "scanner-primary", "fingerprint": "d86b01368dee0194", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/db-maintenance/index.html"}, "region": {"startLine": 446}}}]}, {"ruleId": "scanner-8b0c00525b1b0a51", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-operaciones/index.html:257"}, "properties": {"repobilityId": "1f1662c17ada49a9", "scanner": "scanner-primary", "fingerprint": "8b0c00525b1b0a51", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/bd-operaciones/index.html"}, "region": {"startLine": 257}}}]}, {"ruleId": "scanner-3ff205ea829c1b1f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/comunas/index.html:224"}, "properties": {"repobilityId": "43016b66334aa052", "scanner": "scanner-primary", "fingerprint": "3ff205ea829c1b1f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/comunas/index.html"}, "region": {"startLine": 224}}}]}, {"ruleId": "scanner-2184adcf3b0babd4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/pagares/index.html:239"}, "properties": {"repobilityId": "3bac07ea05aafc6c", "scanner": "scanner-primary", "fingerprint": "2184adcf3b0babd4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/pagares/index.html"}, "region": {"startLine": 239}}}]}, {"ruleId": "scanner-14986bbf0b608460", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/presupuesto/index.html:132"}, "properties": {"repobilityId": "45f49314acba7716", "scanner": "scanner-primary", "fingerprint": "14986bbf0b608460", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/presupuesto/index.html"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-4012bbe5f83ebf12", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/impuestos/index.html:92"}, "properties": {"repobilityId": "2e44dbbcfa717361", "scanner": "scanner-primary", "fingerprint": "4012bbe5f83ebf12", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/impuestos/index.html"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-9768f9180309beae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/factores-seguro/index.html:334"}, "properties": {"repobilityId": "3775a77fc0e57232", "scanner": "scanner-primary", "fingerprint": "9768f9180309beae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/factores-seguro/index.html"}, "region": {"startLine": 334}}}]}, {"ruleId": "scanner-450bb499c1a58c51", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/flujo-brokerage/index.html:234"}, "properties": {"repobilityId": "6cf718650250b6e7", "scanner": "scanner-primary", "fingerprint": "450bb499c1a58c51", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/flujo-brokerage/index.html"}, "region": {"startLine": 234}}}]}, {"ruleId": "scanner-df90c0ccbc66931c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/definiciones/index.html:117"}, "properties": {"repobilityId": "f8ea29b6aff7a2eb", "scanner": "scanner-primary", "fingerprint": "df90c0ccbc66931c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/definiciones/index.html"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-bd0e69183de0934a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/vista-pantallas/index.html:148"}, "properties": {"repobilityId": "ec744031fe1e76ba", "scanner": "scanner-primary", "fingerprint": "bd0e69183de0934a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/vista-pantallas/index.html"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-49ca3618b37cc975", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-clientes/index.html:236"}, "properties": {"repobilityId": "91a2d0874a56041c", "scanner": "scanner-primary", "fingerprint": "49ca3618b37cc975", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/bd-clientes/index.html"}, "region": {"startLine": 236}}}]}, {"ruleId": "scanner-139bad2385ec0231", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/financieras/index.html:368"}, "properties": {"repobilityId": "7722c9d7c78067a3", "scanner": "scanner-primary", "fingerprint": "139bad2385ec0231", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/financieras/index.html"}, "region": {"startLine": 368}}}]}, {"ruleId": "scanner-dbf65a1ba91f60f6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/tipos-documento/index.html:273"}, "properties": {"repobilityId": "5d4f13686b8a25db", "scanner": "scanner-primary", "fingerprint": "dbf65a1ba91f60f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/tipos-documento/index.html"}, "region": {"startLine": 273}}}]}, {"ruleId": "scanner-75f49a75eb627cfd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/servidor-hora/index.html:220"}, "properties": {"repobilityId": "f75c4183831de1a3", "scanner": "scanner-primary", "fingerprint": "75f49a75eb627cfd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/servidor-hora/index.html"}, "region": {"startLine": 220}}}]}, {"ruleId": "scanner-c62da724898e4323", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-antecedentes/index.html:163"}, "properties": {"repobilityId": "6178c8a60451d405", "scanner": "scanner-primary", "fingerprint": "c62da724898e4323", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/bd-antecedentes/index.html"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-083ed6480d1bd9d1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/parques/index.html:227"}, "properties": {"repobilityId": "41219b24c7f0d59e", "scanner": "scanner-primary", "fingerprint": "083ed6480d1bd9d1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/parques/index.html"}, "region": {"startLine": 227}}}]}, {"ruleId": "scanner-e3cb5bf7d4944f71", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/uf/index.html:235"}, "properties": {"repobilityId": "732a03b7a748de57", "scanner": "scanner-primary", "fingerprint": "e3cb5bf7d4944f71", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/uf/index.html"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-6de26b029f10f6b3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/productos-financiera/index.html:215"}, "properties": {"repobilityId": "39a1e81bb186c36e", "scanner": "scanner-primary", "fingerprint": "6de26b029f10f6b3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/productos-financiera/index.html"}, "region": {"startLine": 215}}}]}, {"ruleId": "scanner-d70418bbae3508fa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/meses-cerrados/index.html:176"}, "properties": {"repobilityId": "c7441fc0db95c5ef", "scanner": "scanner-primary", "fingerprint": "d70418bbae3508fa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/meses-cerrados/index.html"}, "region": {"startLine": 176}}}]}, {"ruleId": "scanner-851302d2bc396e9b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/feriados/index.html:128"}, "properties": {"repobilityId": "b13f268116433c2e", "scanner": "scanner-primary", "fingerprint": "851302d2bc396e9b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/feriados/index.html"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-151ab7b2d80585dc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/cobranza-parametros/index.html:171"}, "properties": {"repobilityId": "ba0ef1e0dbb8062d", "scanner": "scanner-primary", "fingerprint": "151ab7b2d80585dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/cobranza-parametros/index.html"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-d573c639f7f958f2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/ayuda/index.html:124"}, "properties": {"repobilityId": "44fbe6b6092df3ac", "scanner": "scanner-primary", "fingerprint": "d573c639f7f958f2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/ayuda/index.html"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-5cae97e411f9134f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/vehiculos/index.html:333"}, "properties": {"repobilityId": "a737b629781a23a0", "scanner": "scanner-primary", "fingerprint": "5cae97e411f9134f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/vehiculos/index.html"}, "region": {"startLine": 333}}}]}, {"ruleId": "scanner-e9a6ce416377c0b3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/alertas/index.html:135"}, "properties": {"repobilityId": "de3d3e18a3eefb0f", "scanner": "scanner-primary", "fingerprint": "e9a6ce416377c0b3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/alertas/index.html"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-43198f51f0386504", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/broker-validaciones/index.html:186"}, "properties": {"repobilityId": "7f0895d845de2df0", "scanner": "scanner-primary", "fingerprint": "43198f51f0386504", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/broker-validaciones/index.html"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-a657c42a31fd5bb0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/dealers/index.html:474"}, "properties": {"repobilityId": "ac515aaedf2a1648", "scanner": "scanner-primary", "fingerprint": "a657c42a31fd5bb0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/dealers/index.html"}, "region": {"startLine": 474}}}]}, {"ruleId": "scanner-6adab4c07f38f1bb", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in api-gateway/public/mantenedores/dealers/index.html:503"}, "properties": {"repobilityId": "5b75f758b8e42a79", "scanner": "scanner-primary", "fingerprint": "6adab4c07f38f1bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/dealers/index.html"}, "region": {"startLine": 503}}}]}, {"ruleId": "scanner-0441b1e95ef04eb9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/bd-informacion-comercial/index.html:163"}, "properties": {"repobilityId": "ffb92ba8e8f778d7", "scanner": "scanner-primary", "fingerprint": "0441b1e95ef04eb9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/bd-informacion-comercial/index.html"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-a0fdd3484cb94873", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/dealer-categorias/index.html:110"}, "properties": {"repobilityId": "62edc865c497b0c9", "scanner": "scanner-primary", "fingerprint": "a0fdd3484cb94873", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/dealer-categorias/index.html"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-be5098bf55916ac4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/mantenedores/respuestas-rapidas/index.html:125"}, "properties": {"repobilityId": "3894fcae80fc007f", "scanner": "scanner-primary", "fingerprint": "be5098bf55916ac4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/mantenedores/respuestas-rapidas/index.html"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-f08e923ff224b971", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in api-gateway/public/informes-dealernet/index.html:358"}, "properties": {"repobilityId": "a433c7b939437861", "scanner": "scanner-primary", "fingerprint": "f08e923ff224b971", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-gateway/public/informes-dealernet/index.html"}, "region": {"startLine": 358}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-ca9ab7f715b04361", "level": "note", "message": {"text": "Very large file: api-gateway/public/creditos/app.js (1661 lines)"}, "properties": {"repobilityId": "aeaee69837ca498e", "scanner": "scanner-primary", "fingerprint": "ca9ab7f715b04361", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-353f31d745b233dc", "level": "note", "message": {"text": "Very large file: api-gateway/public/js/qrcode-generator.js (2297 lines)"}, "properties": {"repobilityId": "279af4ef9ece49bc", "scanner": "scanner-primary", "fingerprint": "353f31d745b233dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bff321ffcc4bfef2", "level": "note", "message": {"text": "Very large file: api-gateway/public/dashboard/app.js (3806 lines)"}, "properties": {"repobilityId": "136b391cbe409ab6", "scanner": "scanner-primary", "fingerprint": "bff321ffcc4bfef2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eb9474c7b7f917bb", "level": "note", "message": {"text": "Very large file: api-gateway/public/cartas-aprobacion/app.js (4882 lines)"}, "properties": {"repobilityId": "164659458c6c4990", "scanner": "scanner-primary", "fingerprint": "eb9474c7b7f917bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-48fc1c665046dc6c", "level": "note", "message": {"text": "Very large file: services/usuarios/src/controllers/perfiles.controller.js (1912 lines)"}, "properties": {"repobilityId": "0c40ea12878932d9", "scanner": "scanner-primary", "fingerprint": "48fc1c665046dc6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3d03ae2a1991e742", "level": "note", "message": {"text": "Very large file: services/postventa/src/controllers/postventa.controller.js (1148 lines)"}, "properties": {"repobilityId": "af9fb2ae9d50b35b", "scanner": "scanner-primary", "fingerprint": "3d03ae2a1991e742", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-01f96f71d9907a8c", "level": "note", "message": {"text": "README lacks setup or run instructions"}, "properties": {"repobilityId": "5fb02a565a3b2c2f", "scanner": "scanner-primary", "fingerprint": "01f96f71d9907a8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "8fafd851c7714f3f", "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": "a809f9dffa3b04bc", "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": "9b68eeea84a74d4e", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "f97ac800473845f6", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "c97568be2a57eb98", "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": "594dcebfc8e10e67", "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": "17404cd8030dcc0a", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-f4a9978b585a7d74", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/creditos/app.js:40"}, "properties": {"repobilityId": "83528134638c89ae", "scanner": "scanner-primary", "fingerprint": "f4a9978b585a7d74", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-648c11ed05291ec4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/js/html2pdf.bundle.min.js:2"}, "properties": {"repobilityId": "b59e2378108d91cb", "scanner": "scanner-primary", "fingerprint": "648c11ed05291ec4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-21cef5bf679cc646", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/js/app-version.js:605"}, "properties": {"repobilityId": "49e8f450f5db94c6", "scanner": "scanner-primary", "fingerprint": "21cef5bf679cc646", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6ee21f2eedba5102", "level": "note", "message": {"text": "Legacy-named symbol `placement_v2` in api-gateway/public/js/placement-manifest.js:98"}, "properties": {"repobilityId": "95a55fb929c3f4a1", "scanner": "scanner-primary", "fingerprint": "6ee21f2eedba5102", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ad85f080170d6ad6", "level": "none", "message": {"text": "Commented-code block (5 lines) in api-gateway/public/js/placement-manifest.js:40"}, "properties": {"repobilityId": "6847d930aeedaded", "scanner": "scanner-primary", "fingerprint": "ad85f080170d6ad6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d7f15beab7507df", "level": "note", "message": {"text": "Legacy-named symbol `detalle_v2` in api-gateway/public/dashboard/app.js:110"}, "properties": {"repobilityId": "1849185e8b37a09e", "scanner": "scanner-primary", "fingerprint": "9d7f15beab7507df", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-75e31b6966f2e0ea", "level": "none", "message": {"text": "Commented-code block (6 lines) in api-gateway/public/dashboard/app.js:1139"}, "properties": {"repobilityId": "1a654d76771a4281", "scanner": "scanner-primary", "fingerprint": "75e31b6966f2e0ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6131e8faf939d170", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/dashboard/app.js:3797"}, "properties": {"repobilityId": "f42da67be9257134", "scanner": "scanner-primary", "fingerprint": "6131e8faf939d170", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4eac9dd00a059931", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/edicion-creditos/edicion-page.js:285"}, "properties": {"repobilityId": "3d62627199ca3ce3", "scanner": "scanner-primary", "fingerprint": "4eac9dd00a059931", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e1ef686f9c96a2b3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-gateway/public/cartas-aprobacion/app.js:79"}, "properties": {"repobilityId": "d836c58bee12126b", "scanner": "scanner-primary", "fingerprint": "e1ef686f9c96a2b3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1483356eab7be3b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/cobranza/src/controllers/cobranza.controller.js:149"}, "properties": {"repobilityId": "0d6bf1427dd41261", "scanner": "scanner-primary", "fingerprint": "1483356eab7be3b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08b3f837d686d7d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/creditos/src/utils/calcular-operacion.js:131"}, "properties": {"repobilityId": "682747b928ae1460", "scanner": "scanner-primary", "fingerprint": "08b3f837d686d7d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdae03916b1bbaa0", "level": "note", "message": {"text": "Legacy-named symbol `workflow_estados_v1` in services/mantenedores/src/controllers/workflow.controller.js:5"}, "properties": {"repobilityId": "c0fa916c1948fdfe", "scanner": "scanner-primary", "fingerprint": "fdae03916b1bbaa0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3482f7e5dd70cd1a", "level": "note", "message": {"text": "6 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "1da70f25aa46f6e9", "scanner": "scanner-primary", "fingerprint": "3482f7e5dd70cd1a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-98ccb3110867f207", "level": "error", "message": {"text": "Dangling fetch: GET /api/parametros-credito (api-gateway/public/creditos/app.js:752)"}, "properties": {"repobilityId": "38486caae3e40513", "scanner": "scanner-primary", "fingerprint": "98ccb3110867f207", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-74b62fcce56ee8a2", "level": "error", "message": {"text": "Dangling fetch: GET /api/uf/vigente (api-gateway/public/creditos/app.js:753)"}, "properties": {"repobilityId": "76b9293631fa0d14", "scanner": "scanner-primary", "fingerprint": "74b62fcce56ee8a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b897b3a57e40bd5f", "level": "error", "message": {"text": "Dangling fetch: GET /api/tasas/vigente (api-gateway/public/creditos/app.js:754)"}, "properties": {"repobilityId": "89d8424e9fc52b37", "scanner": "scanner-primary", "fingerprint": "b897b3a57e40bd5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b381693b2c4434f4", "level": "error", "message": {"text": "Dangling fetch: POST /api/creditos (api-gateway/public/creditos/app.js:1308)"}, "properties": {"repobilityId": "745f3bc9447fe731", "scanner": "scanner-primary", "fingerprint": "b381693b2c4434f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a83be161a50a079f", "level": "error", "message": {"text": "Dangling fetch: GET /api/cartas-ejecutivos (api-gateway/public/creditos/app.js:1597)"}, "properties": {"repobilityId": "d55ee87dd7a2dd3e", "scanner": "scanner-primary", "fingerprint": "a83be161a50a079f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9c10fc5da7a5d06a", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/cambiar-clave (api-gateway/public/js/app-version.js:336)"}, "properties": {"repobilityId": "55990032db9660c0", "scanner": "scanner-primary", "fingerprint": "9c10fc5da7a5d06a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a45395d4d2723bc", "level": "error", "message": {"text": "Dangling fetch: GET /api/notif (api-gateway/public/js/app-version.js:517)"}, "properties": {"repobilityId": "08f96bb75cafef20", "scanner": "scanner-primary", "fingerprint": "1a45395d4d2723bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fc6c2cff31b60b12", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/notif/todas (api-gateway/public/js/app-version.js:568)"}, "properties": {"repobilityId": "ae8170072a9078f7", "scanner": "scanner-primary", "fingerprint": "fc6c2cff31b60b12", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8db75c98f1ae510b", "level": "error", "message": {"text": "Dangling fetch: PUT /api/notif/leidas (api-gateway/public/js/app-version.js:580)"}, "properties": {"repobilityId": "90ea98630a341082", "scanner": "scanner-primary", "fingerprint": "8db75c98f1ae510b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fc0d4adf255aaa0f", "level": "error", "message": {"text": "Dangling fetch: GET /api/notif/vapid-key (api-gateway/public/js/app-version.js:600)"}, "properties": {"repobilityId": "eb0c324605cd77b2", "scanner": "scanner-primary", "fingerprint": "fc0d4adf255aaa0f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e06e7a35be88edf3", "level": "error", "message": {"text": "Dangling fetch: POST /api/notif/subscribe (api-gateway/public/js/app-version.js:605)"}, "properties": {"repobilityId": "f8199b05fb61cec4", "scanner": "scanner-primary", "fingerprint": "e06e7a35be88edf3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-22e838e8ad1247cd", "level": "error", "message": {"text": "Dangling fetch: POST /api/desempeno/ping (api-gateway/public/js/app-version.js:637)"}, "properties": {"repobilityId": "6429e519ec64a06c", "scanner": "scanner-primary", "fingerprint": "22e838e8ad1247cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f9237ce66c9de57f", "level": "error", "message": {"text": "Dangling fetch: GET /api/config/ui/placement_v2 (api-gateway/public/js/placement-manifest.js:98)"}, "properties": {"repobilityId": "c66e1a20269e62d1", "scanner": "scanner-primary", "fingerprint": "f9237ce66c9de57f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ab23cb081f1fecc", "level": "error", "message": {"text": "Dangling fetch: GET /api/alertas/vencimientos (api-gateway/public/js/alertas-vencimiento.js:14)"}, "properties": {"repobilityId": "75054f6113461698", "scanner": "scanner-primary", "fingerprint": "8ab23cb081f1fecc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-edbf1bceeed04747", "level": "error", "message": {"text": "Dangling fetch: GET /api/dashboard/datos (api-gateway/public/dashboard/app.js:1186)"}, "properties": {"repobilityId": "bd6440c4c9069e01", "scanner": "scanner-primary", "fingerprint": "edbf1bceeed04747", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ae9d11a1667a4c8", "level": "error", "message": {"text": "Dangling fetch: GET /api/perfiles (api-gateway/public/dashboard/app.js:2366)"}, "properties": {"repobilityId": "6d3d8687257d95dc", "scanner": "scanner-primary", "fingerprint": "8ae9d11a1667a4c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b441495e1891f161", "level": "error", "message": {"text": "Dangling fetch: GET /api/creditos/otorgados-incompletos (api-gateway/public/dashboard/app.js:3659)"}, "properties": {"repobilityId": "feb458972db73d2c", "scanner": "scanner-primary", "fingerprint": "b441495e1891f161", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c72cbdce4140b047", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/creditos/${id}/datos-ingresos (api-gateway/public/dashboard/app.js:3779)"}, "properties": {"repobilityId": "dd0e8f700b4216d1", "scanner": "scanner-primary", "fingerprint": "c72cbdce4140b047", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c74bb20b806fc52", "level": "error", "message": {"text": "Dangling fetch: POST /api/operaciones/recalcular-comisiones (api-gateway/public/dashboard/app.js:3797)"}, "properties": {"repobilityId": "83d93a8275e0280d", "scanner": "scanner-primary", "fingerprint": "2c74bb20b806fc52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-710bb82496d0c1b2", "level": "error", "message": {"text": "Dangling fetch: GET /api/cartas-ejecutivos (api-gateway/public/cartas-aprobacion/app.js:34)"}, "properties": {"repobilityId": "348b073957c78ac5", "scanner": "scanner-primary", "fingerprint": "710bb82496d0c1b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-218062e9dcacce35", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/cartas-ejecutivos/${id} (api-gateway/public/cartas-aprobacion/app.js:52)"}, "properties": {"repobilityId": "54f5b2517640d59e", "scanner": "scanner-primary", "fingerprint": "218062e9dcacce35", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-37e254748eca5f57", "level": "error", "message": {"text": "Dangling fetch: POST /api/clientes (api-gateway/public/cartas-aprobacion/app.js:92)"}, "properties": {"repobilityId": "ec66b224b63f31d1", "scanner": "scanner-primary", "fingerprint": "37e254748eca5f57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-94d3ddd6ef9439eb", "level": "error", "message": {"text": "Dangling fetch: GET /api/cartas-params/${encodeURIComponent(key)} (api-gateway/public/cartas-aprobacion/app.js:126)"}, "properties": {"repobilityId": "e589a337c39b201d", "scanner": "scanner-primary", "fingerprint": "94d3ddd6ef9439eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4931d5f0f630e2b8", "level": "error", "message": {"text": "Dangling fetch: POST /api/cartas-params/${encodeURIComponent(key)} (api-gateway/public/cartas-aprobacion/app.js:135)"}, "properties": {"repobilityId": "48ee36076909ce31", "scanner": "scanner-primary", "fingerprint": "4931d5f0f630e2b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ccde4a306b1bc555", "level": "error", "message": {"text": "Dangling fetch: GET /api/uf/vigente (api-gateway/public/cartas-aprobacion/app.js:887)"}, "properties": {"repobilityId": "b301e9b2d93ea1b2", "scanner": "scanner-primary", "fingerprint": "ccde4a306b1bc555", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3eb8041674e218a7", "level": "error", "message": {"text": "Dangling fetch: GET /api/tasas/vigente (api-gateway/public/cartas-aprobacion/app.js:900)"}, "properties": {"repobilityId": "c29922f4affd3d94", "scanner": "scanner-primary", "fingerprint": "3eb8041674e218a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e025bd257244e627", "level": "error", "message": {"text": "Dangling fetch: GET /api/vehiculos/cascada (api-gateway/public/cartas-aprobacion/app.js:2799)"}, "properties": {"repobilityId": "0664335444969d04", "scanner": "scanner-primary", "fingerprint": "e025bd257244e627", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7d4660acf18c2112", "level": "error", "message": {"text": "Dangling fetch: GET /api/dealers?limit=2000 (api-gateway/public/cartas-aprobacion/app.js:2811)"}, "properties": {"repobilityId": "6f810bac4f7cc002", "scanner": "scanner-primary", "fingerprint": "7d4660acf18c2112", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c73e47882f805c1", "level": "error", "message": {"text": "Dangling fetch: GET /api/dealers/ccs (api-gateway/public/cartas-aprobacion/app.js:2837)"}, "properties": {"repobilityId": "01c7faa13435a507", "scanner": "scanner-primary", "fingerprint": "2c73e47882f805c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-99be800a500790a3", "level": "error", "message": {"text": "Dangling fetch: POST /api/cartas/carga-masiva (api-gateway/public/cartas-aprobacion/app.js:2986)"}, "properties": {"repobilityId": "f24633b623e3b630", "scanner": "scanner-primary", "fingerprint": "99be800a500790a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cbe4dfffe0b2968a", "level": "error", "message": {"text": "Dangling fetch: POST /api/creditos (api-gateway/public/cartas-aprobacion/app.js:3983)"}, "properties": {"repobilityId": "c0df9f28c4efcb3b", "scanner": "scanner-primary", "fingerprint": "cbe4dfffe0b2968a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2524e3aeb76927f9", "level": "note", "message": {"text": "Unused endpoint: PUT /variables"}, "properties": {"repobilityId": "3cad875d12419385", "scanner": "scanner-primary", "fingerprint": "2524e3aeb76927f9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6eb452fbfb454d20", "level": "note", "message": {"text": "Unused endpoint: USE /api/auth"}, "properties": {"repobilityId": "233a8ad2d1ce04de", "scanner": "scanner-primary", "fingerprint": "6eb452fbfb454d20", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c74a179f3b4939cf", "level": "note", "message": {"text": "Unused endpoint: USE /api/usuarios"}, "properties": {"repobilityId": "87e26d887816eabb", "scanner": "scanner-primary", "fingerprint": "c74a179f3b4939cf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e75cd6861062b864", "level": "note", "message": {"text": "Unused endpoint: USE /api/perfiles"}, "properties": {"repobilityId": "107152d3a21f0b89", "scanner": "scanner-primary", "fingerprint": "e75cd6861062b864", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6f63dbe78bf2280a", "level": "note", "message": {"text": "Unused endpoint: USE /api/config"}, "properties": {"repobilityId": "65dadc48bb57787f", "scanner": "scanner-primary", "fingerprint": "6f63dbe78bf2280a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2f65d60b2eba46de", "level": "note", "message": {"text": "Unused endpoint: USE /api/clientes"}, "properties": {"repobilityId": "bc8921eb30f11afc", "scanner": "scanner-primary", "fingerprint": "2f65d60b2eba46de", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-372ed9db1f843a90", "level": "note", "message": {"text": "Unused endpoint: USE /api/antecedentes-laborales"}, "properties": {"repobilityId": "9cf00a834fe2f58d", "scanner": "scanner-primary", "fingerprint": "372ed9db1f843a90", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-92e330062374b3d4", "level": "note", "message": {"text": "Unused endpoint: USE /api/informacion-comercial"}, "properties": {"repobilityId": "5be9c0f21134e92c", "scanner": "scanner-primary", "fingerprint": "92e330062374b3d4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bdcf262f90fb26d9", "level": "note", "message": {"text": "Unused endpoint: USE /api/informes-dealernet"}, "properties": {"repobilityId": "21810dab30108b9b", "scanner": "scanner-primary", "fingerprint": "bdcf262f90fb26d9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-413ea91483887e32", "level": "note", "message": {"text": "Unused endpoint: USE /api/dealernet"}, "properties": {"repobilityId": "a1b0831a3b6cc324", "scanner": "scanner-primary", "fingerprint": "413ea91483887e32", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a786e9d98c4149a2", "level": "note", "message": {"text": "Unused endpoint: USE /api/impuestos"}, "properties": {"repobilityId": "92fc6ee25c8f00d0", "scanner": "scanner-primary", "fingerprint": "a786e9d98c4149a2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9a58b0681c42f58e", "level": "note", "message": {"text": "Unused endpoint: USE /api/tasas"}, "properties": {"repobilityId": "5666ba23e7b55901", "scanner": "scanner-primary", "fingerprint": "9a58b0681c42f58e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ce9215904e84a261", "level": "note", "message": {"text": "Unused endpoint: USE /api/uf"}, "properties": {"repobilityId": "6052dea040c01216", "scanner": "scanner-primary", "fingerprint": "ce9215904e84a261", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d9143e8276b92b7f", "level": "note", "message": {"text": "Unused endpoint: USE /api/geografico"}, "properties": {"repobilityId": "2c52c4cc57e39eef", "scanner": "scanner-primary", "fingerprint": "d9143e8276b92b7f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2e7a2b5209af91f5", "level": "note", "message": {"text": "Unused endpoint: USE /api/vehiculos"}, "properties": {"repobilityId": "b8d99712cabb5898", "scanner": "scanner-primary", "fingerprint": "2e7a2b5209af91f5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d558c40f729ae23d", "level": "note", "message": {"text": "Unused endpoint: USE /api/dealers"}, "properties": {"repobilityId": "2770215c4f2206bc", "scanner": "scanner-primary", "fingerprint": "d558c40f729ae23d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-09006af8d0382493", "level": "note", "message": {"text": "Unused endpoint: USE /api/dealer-incorporacion"}, "properties": {"repobilityId": "14d2ee032babdafb", "scanner": "scanner-primary", "fingerprint": "09006af8d0382493", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6bb8982ecb58af73", "level": "note", "message": {"text": "Unused endpoint: USE /api/dealer-categorias"}, "properties": {"repobilityId": "e349db4f4cf89f4e", "scanner": "scanner-primary", "fingerprint": "6bb8982ecb58af73", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-36ee03cce5614477", "level": "note", "message": {"text": "Unused endpoint: USE /api/parametros-credito"}, "properties": {"repobilityId": "3544d8b2e254ff9e", "scanner": "scanner-primary", "fingerprint": "36ee03cce5614477", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b0711bac7d89721a", "level": "note", "message": {"text": "Unused endpoint: USE /api/definiciones"}, "properties": {"repobilityId": "8ff7186e535f055f", "scanner": "scanner-primary", "fingerprint": "b0711bac7d89721a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-87083465af57319f", "level": "note", "message": {"text": "Unused endpoint: USE /api/feriados"}, "properties": {"repobilityId": "0aacf9232e8a6fe9", "scanner": "scanner-primary", "fingerprint": "87083465af57319f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-573a95d73457a2fc", "level": "note", "message": {"text": "Unused endpoint: USE /api/politica-aprobacion"}, "properties": {"repobilityId": "e5a02bd637f8fa95", "scanner": "scanner-primary", "fingerprint": "573a95d73457a2fc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ff26094a9c7e54f6", "level": "note", "message": {"text": "Unused endpoint: USE /api/workflow-estados"}, "properties": {"repobilityId": "d476759e99a44c48", "scanner": "scanner-primary", "fingerprint": "ff26094a9c7e54f6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4ab84b1418efacfc", "level": "note", "message": {"text": "Unused endpoint: USE /api/tipos-documento"}, "properties": {"repobilityId": "668649e705c3d67b", "scanner": "scanner-primary", "fingerprint": "4ab84b1418efacfc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a9b1a0e5350f450e", "level": "note", "message": {"text": "Unused endpoint: USE /api/plantillas-documento"}, "properties": {"repobilityId": "c420dee9561a1d32", "scanner": "scanner-primary", "fingerprint": "a9b1a0e5350f450e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd198aa95cfc9e3e", "level": "note", "message": {"text": "Unused endpoint: USE /api/cuentas-bancarias"}, "properties": {"repobilityId": "229f3e40dfd1dd03", "scanner": "scanner-primary", "fingerprint": "cd198aa95cfc9e3e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e8493f5d395283bb", "level": "note", "message": {"text": "Unused endpoint: USE /api/parques-comisiones"}, "properties": {"repobilityId": "1b1feb0ea84021bf", "scanner": "scanner-primary", "fingerprint": "e8493f5d395283bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-03545f9a6d35d04e", "level": "note", "message": {"text": "Unused endpoint: USE /api/bd-operaciones"}, "properties": {"repobilityId": "c39f327a874500af", "scanner": "scanner-primary", "fingerprint": "03545f9a6d35d04e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-538685e1020f7c4b", "level": "note", "message": {"text": "Unused endpoint: USE /api/bd-clientes"}, "properties": {"repobilityId": "e9da2a5bfce9b834", "scanner": "scanner-primary", "fingerprint": "538685e1020f7c4b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-114967541d192056", "level": "note", "message": {"text": "Unused endpoint: USE /api/bd-antecedentes"}, "properties": {"repobilityId": "609ea1021e242fc5", "scanner": "scanner-primary", "fingerprint": "114967541d192056", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-40b3e1e7ce7cf7cb", "level": "note", "message": {"text": "Unused endpoint: USE /api/bd-informacion-comercial"}, "properties": {"repobilityId": "f241b9e1d78d8aeb", "scanner": "scanner-primary", "fingerprint": "40b3e1e7ce7cf7cb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-99f4b64f19e92fd1", "level": "note", "message": {"text": "Unused endpoint: USE /api/productos-financiera"}, "properties": {"repobilityId": "dfd23b9f27af1b67", "scanner": "scanner-primary", "fingerprint": "99f4b64f19e92fd1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8517d7ce226fbe02", "level": "note", "message": {"text": "Unused endpoint: USE /api/noticias"}, "properties": {"repobilityId": "5081ad6da48d17eb", "scanner": "scanner-primary", "fingerprint": "8517d7ce226fbe02", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f8e680fd54121178", "level": "note", "message": {"text": "Unused endpoint: USE /api/servidor-hora"}, "properties": {"repobilityId": "b6e4389bf86f5f7d", "scanner": "scanner-primary", "fingerprint": "f8e680fd54121178", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f73b4ea1acbf2028", "level": "note", "message": {"text": "Unused endpoint: USE /api/db-maintenance"}, "properties": {"repobilityId": "16d4169567f8856a", "scanner": "scanner-primary", "fingerprint": "f73b4ea1acbf2028", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-51053a9419be9ac4", "level": "note", "message": {"text": "Unused endpoint: USE /api/alertas"}, "properties": {"repobilityId": "c501c34bec1c325b", "scanner": "scanner-primary", "fingerprint": "51053a9419be9ac4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3bac304259712250", "level": "note", "message": {"text": "Unused endpoint: USE /api/meses-cerrados"}, "properties": {"repobilityId": "2e9835d2ffd13081", "scanner": "scanner-primary", "fingerprint": "3bac304259712250", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e72bc6552409d265", "level": "note", "message": {"text": "Unused endpoint: USE /api/tablas-dinamicas"}, "properties": {"repobilityId": "086ab28b32a282c6", "scanner": "scanner-primary", "fingerprint": "e72bc6552409d265", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6be114d9222dcf46", "level": "note", "message": {"text": "Unused endpoint: USE /api/cotizaciones"}, "properties": {"repobilityId": "ff7678b49fede823", "scanner": "scanner-primary", "fingerprint": "6be114d9222dcf46", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-124b197275632004", "level": "note", "message": {"text": "Unused endpoint: USE /api/creditos"}, "properties": {"repobilityId": "0c0f20f4c7144215", "scanner": "scanner-primary", "fingerprint": "124b197275632004", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9406828bcc34931a", "level": "note", "message": {"text": "Unused endpoint: USE /api/edicion-creditos"}, "properties": {"repobilityId": "db20e100945ff990", "scanner": "scanner-primary", "fingerprint": "9406828bcc34931a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fe85a0250b40e47f", "level": "note", "message": {"text": "Unused endpoint: USE /api/credito-documentos"}, "properties": {"repobilityId": "3378cf1e27126ee2", "scanner": "scanner-primary", "fingerprint": "fe85a0250b40e47f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a269b4249be3f1f2", "level": "note", "message": {"text": "Unused endpoint: USE /api/documentos-af"}, "properties": {"repobilityId": "f94e9e485394b4b8", "scanner": "scanner-primary", "fingerprint": "a269b4249be3f1f2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dd2199f19156ab82", "level": "note", "message": {"text": "Unused endpoint: USE /api/pagos-credito"}, "properties": {"repobilityId": "9973b8a8bb0d9d3d", "scanner": "scanner-primary", "fingerprint": "dd2199f19156ab82", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eebc7674473e2932", "level": "note", "message": {"text": "Unused endpoint: USE /api/operaciones"}, "properties": {"repobilityId": "f2823d079fd1af30", "scanner": "scanner-primary", "fingerprint": "eebc7674473e2932", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-43c575adce9f2a35", "level": "note", "message": {"text": "Unused endpoint: USE /api/auditoria-credito"}, "properties": {"repobilityId": "4c2a525cc69a656c", "scanner": "scanner-primary", "fingerprint": "43c575adce9f2a35", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1eba80e11b35d682", "level": "note", "message": {"text": "Unused endpoint: USE /api/broker-validation-items"}, "properties": {"repobilityId": "be29ea8098be3991", "scanner": "scanner-primary", "fingerprint": "1eba80e11b35d682", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-19a360f60294fbd1", "level": "note", "message": {"text": "Unused endpoint: USE /api/broker-validaciones"}, "properties": {"repobilityId": "e7ea5c528afe5693", "scanner": "scanner-primary", "fingerprint": "19a360f60294fbd1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-765911db2dd9f03d", "level": "note", "message": {"text": "Unused endpoint: USE /api/fundantes"}, "properties": {"repobilityId": "6eed4d69ffa99668", "scanner": "scanner-primary", "fingerprint": "765911db2dd9f03d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-795e33db93f3a38f", "level": "note", "message": {"text": "Unused endpoint: USE /api/cajas"}, "properties": {"repobilityId": "6b37c829709b10ce", "scanner": "scanner-primary", "fingerprint": "795e33db93f3a38f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}