{"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-18b50b3f9569b30c", "name": "Possibly dead Python function: replace_ref", "shortDescription": {"text": "Possibly dead Python function: replace_ref"}, "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-8fac432efc7be45b", "name": "Stray `console.log` in TS/JS \u2014 server.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f2ded8863c04d335", "name": "Stray `console.log` in TS/JS \u2014 server-context.js:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server-context.js:31"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c6c4f1f30b4857cf", "name": "Stray `console.log` in TS/JS \u2014 scripts/integrations/ga4_fetch.js:270", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/integrations/ga4_fetch.js:270"}, "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-5b7f60cd55602030", "name": "Stray `console.log` in TS/JS \u2014 scripts/integrations/ga4_probe.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/integrations/ga4_probe.js:17"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-492629255191009f", "name": "Stray `console.log` in TS/JS \u2014 scripts/integrations/rd_fetch.js:238", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/integrations/rd_fetch.js:238"}, "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-85e83046bd00ea42", "name": "Stray `console.log` in TS/JS \u2014 scripts/integrations/apollo_pipeline_sync.js:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/integrations/apollo_pipeline_sync.js:59"}, "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-cd568c0694182d18", "name": "Stray `console.log` in TS/JS \u2014 scripts/integrations/ga4_oauth_setup.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/integrations/ga4_oauth_setup.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-fd6eaf8f20dac467", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync/log_voice_ssi.js:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/log_voice_ssi.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-e04553b00a059e13", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_calendario_duda.js:173", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_calendario_duda.js:173"}, "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-1d6335415bf898c6", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_cronograma_redatoria.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_cronograma_redatoria.js:34"}, "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-c94baca95df83564", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_clientes_sap_4me.js:119", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_clientes_sap_4me.js:119"}, "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-d11775b0ad6d94db", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_redatoria_to_calendar.js:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_redatoria_to_calendar.js:122"}, "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-dc6022532cd31fa3", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_zoho_deals.js:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_zoho_deals.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-9d834b507f3f457a", "name": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_rd_station.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_rd_station.js:37"}, "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-ba3d50d4c582beb0", "name": "Stray `console.log` in TS/JS \u2014 routes/cases.js:167", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 routes/cases.js:167"}, "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-404cc0aaeb27b8b4", "name": "Stray `console.log` in TS/JS \u2014 public/_versoes-office/v3.2-server.js:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 public/_versoes-office/v3.2-server.js:51"}, "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-0977cca8ba31adb0", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-bookworm-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-bookworm-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c71a2c05d2f109d9", "name": "Insecure pattern 'node_child_process' in server.js:1553", "shortDescription": {"text": "Insecure pattern 'node_child_process' in server.js:1553"}, "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-7da1fe951d5786e6", "name": "Insecure pattern 'node_child_process' in routes/cases.js:52", "shortDescription": {"text": "Insecure pattern 'node_child_process' in routes/cases.js:52"}, "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-9eb964fce7bc2bd2", "name": "Insecure pattern 'direct_innerhtml_assignment' in modulos/08-inbound-offline/static/index.html:164", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in modulos/08-inbound-offline/static/index.html:164"}, "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-8bada19b2aacf050", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/planilhas.html:59", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/planilhas.html:59"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8ad274e604ecf12d", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/clientes-sap-4me.html:93", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/clientes-sap-4me.html:93"}, "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-d96cd88f027c40e3", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/executivo.html:87", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/executivo.html:87"}, "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-63d76b8d95906c53", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork.html:128", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork.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-92b94be5eab570e9", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/war-room.html:78", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/war-room.html:78"}, "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-16e84eaae2fbf8df", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/pipeline.html:168", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/pipeline.html:168"}, "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-221088a933542a4c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/content-pipeline.html:119", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/content-pipeline.html:119"}, "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-e86ebe2b9befc0b3", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/optimizer.html:223", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/optimizer.html:223"}, "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-2409b9b906003ada", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/metas.html:389", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/metas.html:389"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-18b119ce761bf281", "name": "Insecure pattern 'local_storage_auth_token' in public/metas.html:210", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/metas.html:210"}, "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-c6e2be63944592e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/painel.html:308", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/painel.html:308"}, "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-1b4930855c43f7ba", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/design.html:545", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/design.html:545"}, "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-8e84296c3e776c70", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/optimizer-v2.html:253", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/optimizer-v2.html:253"}, "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-b97c2fb2ea3561d4", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/jornadas.html:97", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/jornadas.html:97"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8eb66571eb890641", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/relatorio.html:474", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/relatorio.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-e19ec4c6534b8826", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/cases.html:213", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cases.html:213"}, "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-5cc2c2f66e5ea3ff", "name": "Insecure pattern 'local_storage_auth_token' in public/cases.html:280", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/cases.html:280"}, "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-36811a33574c7770", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/office-footer.js:97", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/office-footer.js:97"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-faff21bbaa8fc740", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/agente.html:69", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/agente.html:69"}, "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-3822abbd5d883649", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/area.html:323", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/area.html:323"}, "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-d42bd25b9df68f79", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/development-funds.html:105", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/development-funds.html:105"}, "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-dc5fbb2a8fdd72d1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/ideias.html:258", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ideias.html:258"}, "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-08fce696aee7ad17", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/office.html:884", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/office.html:884"}, "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-eed114a00a1f862b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/office-nav.js:269", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/office-nav.js: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-56ed091c7e58b1a1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/metas-fy26.html:119", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/metas-fy26.html:119"}, "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-80a72478517d2bb3", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/agentes.html:89", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/agentes.html:89"}, "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-e87fedc55f2ce21c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/seja-voice.html:369", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/seja-voice.html:369"}, "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-9baa14154535ce62", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/changelog.html:230", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/changelog.html:230"}, "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-480b68e705cced21", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/linkedin.html:86", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/linkedin.html:86"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cca432bac6e8ea7c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/raccoon.html:1696", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/raccoon.html:1696"}, "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-2b60bed7ff515242", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/artigos.html:106", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/artigos.html:106"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ac8323b25574090", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/field-marketing.html:130", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/field-marketing.html:130"}, "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-fb3eca915f80afb3", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/voices.html:452", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/voices.html:452"}, "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-d59d07d47dcf5f5f", "name": "Insecure pattern 'local_storage_auth_token' in public/voices.html:1329", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/voices.html:1329"}, "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-3b50fbba85e74002", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/home.js:58", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/home.js:58"}, "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-f4891cfc5ab5af4a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/cmo-v2.js:660", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/cmo-v2.js:660"}, "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-bf644a888d48b91f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/live-charts.js:31", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/live-charts.js:31"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-811550069717247c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/calendar.html:354", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/calendar.html:354"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-83a503cd2ace2204", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/deck-stage.js:853", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/deck-stage.js:853"}, "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-ca07a38b4972cb75", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/index.html:267", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/index.html:267"}, "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-6c84bd564a99fc55", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/brief.html:598", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/brief.html:598"}, "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-f7934f4717f1ebde", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/carousel.html:192", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/carousel.html:192"}, "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-172697f3b16cad38", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-brief.html:527", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-brief.html:527"}, "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-657528c5b91d5ac4", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-calendar.html:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-calendar.html:404"}, "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-9487ad5814c0217d", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-carousel.html:53", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-carousel.html:532"}, "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-df2cb4f18b4acdc0", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-studio.html:400", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-studio.html:400"}, "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-17993abf4cb0fe4b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-game-engine.html:929", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-game-engine.html:929"}, "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-4064b757a47515ea", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-metas.html:359", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-metas.html:359"}, "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-a85221f943eca51d", "name": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.8-metas.html:409", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.8-metas.html:409"}, "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-954aa70bda5e6573", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.2-dashboard-classic.html:916", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.2-dashboard-classic.html:916"}, "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-31cbf7f2385f5af4", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-dashboard-classic.html:908", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-dashboard-classic.html:908"}, "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-690059ef12177232", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-cases.html:201", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-cases.html:201"}, "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-da633f9fed7b404c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-office-footer.js:46", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-office-footer.js:46"}, "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-8ad423fce983a993", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-inbound-brief.html:615", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-inbound-brief.html:615"}, "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-96878eacd86347aa", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-optimizer.html:1832", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-optimizer.html:1832"}, "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-d96dbb0d5034c68f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-inbound-carousel.html:191", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-inbound-carousel.html:191"}, "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-f1f2601c6eb35ac4", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.9-optimizer.html:2121", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.9-optimizer.html:2121"}, "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-21c43b840d35fdc0", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-dashboard-classic.html:908", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-dashboard-classic.html:908"}, "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-461ead031d1cc419", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-game-engine.html:985", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-game-engine.html:985"}, "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-b1a08fe9fda2bfcb", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-game-engine.html:916", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-game-engine.html:916"}, "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-9ea3233083a608cc", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.2-game-engine.html:932", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.2-game-engine.html:932"}, "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-4e66dbdae98fffec", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-dashboard.html:960", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-dashboard.html:960"}, "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-000ce1ddd71b189d", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-cases.html:209", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-cases.html:209"}, "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-04e02256f616d8f8", "name": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.8-cases.html:276", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.8-cases.html:276"}, "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-b679e856ee7f4107", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-voices.html:440", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-voices.html:440"}, "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-303ef1594377d9a4", "name": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.6-voices.html:1296", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.6-voices.html:1296"}, "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-1b5274944887dd52", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-inbound-carousel.html:535", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-inbound-carousel.html:535"}, "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-7c4138f1cf331fc6", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.2-voices.html:399", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.2-voices.html:399"}, "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-c7f6124dd20c0756", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-voices.html:440", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-voices.html:440"}, "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-49b997fb579cb110", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-changelog.html:261", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-changelog.html:261"}, "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-e5e16a462aa36bb3", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.1-game-engine.html:907", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.1-game-engine.html:907"}, "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-fff127853a9c37dc", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-office-nav.js:102", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-office-nav.js:102"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-767760549215d132", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-painel.html:232", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-painel.html:232"}, "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-d395cfd6480d21f5", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-seja-voice.html:374", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-seja-voice.html:374"}, "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-760fb3c94860a2cb", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-painel.html:283", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-painel.html:283"}, "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-4abaa8c8396e0934", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-voices.html:404", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-voices.html:404"}, "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-9d2c9d5bc27170fd", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-dashboard.html:960", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-dashboard.html:960"}, "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-cc9bb9ce654673d2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-voices.html:250", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-voices.html:250"}, "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-0deb2a7927e2198b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-seja-voice.html:374", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-seja-voice.html:374"}, "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-e4e4fbd59b00ea21", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-voices.html:190", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-voices.html:190"}, "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-552d5a4b20540f5f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-game-engine.html:916", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-game-engine.html:916"}, "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-fa482b675887181a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.2-painel.html:282", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.2-painel.html:282"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f23279563271c2a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-inbound-calendar.html:409", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-inbound-calendar.html:409"}, "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-65f9d2a28077f44e", "name": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.6-inbound-calendar.html:640", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.6-inbound-calendar.html:640"}, "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-a0b5aaece5684aa2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-dashboard-classic.html:952", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-dashboard-classic.html:952"}, "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-288a308a2fa9cc27", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-cases.html:209", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-cases.html:209"}, "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-b34287087267b797", "name": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.6-cases.html:276", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.6-cases.html:276"}, "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-c59b6d0a8b12d811", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-painel.html:233", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-painel.html:233"}, "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-eb7df4bcd832a373", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.1-dashboard-classic.html:876", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.1-dashboard-classic.html:876"}, "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-1c391c9b9039bba2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-game.html:1003", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-game.html:1003"}, "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-e27114239a727fd8", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.43.0-office-warroom.html:1005", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.43.0-office-warroom.html:1005"}, "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-3cdc5e5be6de5f1e", "name": "Very large file: server.js (4185 lines)", "shortDescription": {"text": "Very large file: server.js (4185 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-7894ae92ab51c706", "name": "Very large file: public/office-nav.js (1726 lines)", "shortDescription": {"text": "Very large file: public/office-nav.js (1726 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-37b92783abd7d087", "name": "Very large file: public/inbound/deck-stage.js (1748 lines)", "shortDescription": {"text": "Very large file: public/inbound/deck-stage.js (1748 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 61 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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f850cb90ef17db45", "name": "Node manifest has dependencies but no lockfile: _laboratorio/remotion-engine/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: _laboratorio/remotion-engine/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 218 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 24 placeholder/mock markers across 9 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: license, ci, tests, lockfile. 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 license, ci, tests, lockfile. 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-bea357a6497a2d5d", "name": "Agent authority lacks a verifier contract: CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2679282aa1c484b5", "name": "Agent authority lacks a verifier contract: AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ccc0dcfb2093adf", "name": "Agent authority lacks a verifier contract: .claude/commands/contratar.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/contratar.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ebf4bd5b29e83d4", "name": "Agent authority lacks a verifier contract: .claude/agents/landing-pages.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/landing-pages.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c66e7107b996ce3", "name": "Agent authority lacks a verifier contract: .claude/agents/ceo-mkt.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/ceo-mkt.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9745f64f6d4f1aab", "name": "Agent authority lacks a verifier contract: .claude/agents/relatorio-mensal.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/relatorio-mensal.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-57af2e210ed09eb8", "name": "Agent authority lacks a verifier contract: .claude/skills/relatorio-mensal/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/relatorio-mensal/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-793692e63f5de27a", "name": "Agent authority lacks a verifier contract: .claude/agents-v2/pm-tecnico.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents-v2/pm-tecnico.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72cb5c4a00da046d", "name": "Commented-code block (7 lines) in server.js:517", "shortDescription": {"text": "Commented-code block (7 lines) in server.js:517"}, "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-41f6b9697d1215c2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/integrations/apollo_pipeline_sync.js:27", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/integrations/apollo_pipeline_sync.js:27"}, "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-a6d35f579a1fc1f6", "name": "Commented-code block (9 lines) in scripts/sync/sync_calendario_duda.js:80", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/sync/sync_calendario_duda.js:80"}, "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-e32d4eeba946c030", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_calendario_duda.js:215", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_calendario_duda.js:215"}, "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-3da9f6f721e0ea1a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_cronograma_redatoria.js:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_cronograma_redatoria.js:36"}, "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-dc7aa476a21ca43b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_redatoria_to_calendar.js:134", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_redatoria_to_calendar.js:134"}, "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-ed55dfe6fec2db0f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_zoho_deals.js:89", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_zoho_deals.js:89"}, "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-21ba7c7b0a7a772b", "name": "Legacy-named symbol `fonte_old` in scripts/sync/sync_linkedin_historical.py:184", "shortDescription": {"text": "Legacy-named symbol `fonte_old` in scripts/sync/sync_linkedin_historical.py:184"}, "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-91a1b09d4b85cc84", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_rd_station.js:157", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_rd_station.js:157"}, "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-ea33f3fd7a2fb86a", "name": "Commented-code block (5 lines) in public/i18n.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in public/i18n.js:1"}, "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-3fda97b3f7f31fba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/office-nav.js:1712", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/office-nav.js:1712"}, "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-2356b691c65f4a09", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/home.js:673", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/home.js:673"}, "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-151d844697033a9b", "name": "Commented-code block (5 lines) in public/inbound/deck-stage.js:631", "shortDescription": {"text": "Commented-code block (5 lines) in public/inbound/deck-stage.js:631"}, "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-b0b7578dd2a289b6", "name": "26 env vars used in code but missing from .env.example", "shortDescription": {"text": "26 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `APOLLO_API_KEY`, `APP_BASE_URL`, `AZURE_REDIRECT_URI_DEV`, `COLORTERM`, `DATA_DIR`, `GA4_PROPERTY_ID`, `GA4_SA_JSON`, `GOOGLE_ACCESS_TOKEN` + 18 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/metas/gerar_planilha_smart.py:f_td, scripts/metas/gerar_planilha_template_em_branco.py:estilo_celula_vazia\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4c6a9b70644eeffe", "name": "Flask mutation route `factory` without `@login_required` \u2014 modulos/08-inbound-offline/app.py:25", "shortDescription": {"text": "Flask mutation route `factory` without `@login_required` \u2014 modulos/08-inbound-offline/app.py:25"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-48adcc0b2a92b087", "name": "Dangling fetch: POST https://accounts.zoho.com/oauth/v2/token?refresh_token=${refreshToken}&client_id=${clientId}&client", "shortDescription": {"text": "Dangling fetch: POST https://accounts.zoho.com/oauth/v2/token?refresh_token=${refreshToken}&client_id=${clientId}&client_secret=${clientSecret}&grant_type=refresh_token (scripts/sync/sync_zoho_deals.js:125)"}, "fullDescription": {"text": "`scripts/sync/sync_zoho_deals.js:125` calls `POST https://accounts.zoho.com/oauth/v2/token?refresh_token=${refreshToken}&client_id=${clientId}&client_secret=${clientSecret}&grant_type=refresh_token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/accounts.zoho.com/oauth/v2/token`\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-83bd90233a1020a3", "name": "Dangling fetch: POST https://www.zohoapis.com/crm/v7/coql (scripts/sync/sync_zoho_deals.js:138)", "shortDescription": {"text": "Dangling fetch: POST https://www.zohoapis.com/crm/v7/coql (scripts/sync/sync_zoho_deals.js:138)"}, "fullDescription": {"text": "`scripts/sync/sync_zoho_deals.js:138` calls `POST https://www.zohoapis.com/crm/v7/coql` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.zohoapis.com/crm/v7/coql`\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-73d9bc10fac56003", "name": "Dangling fetch: POST https://api.rd.services/auth/token (scripts/sync/sync_rd_station.js:157)", "shortDescription": {"text": "Dangling fetch: POST https://api.rd.services/auth/token (scripts/sync/sync_rd_station.js:157)"}, "fullDescription": {"text": "`scripts/sync/sync_rd_station.js:157` calls `POST https://api.rd.services/auth/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.rd.services/auth/token`\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-466bf25c76d85ecb", "name": "Dangling fetch: GET /api/voices.json (public/office-nav.js:1512)", "shortDescription": {"text": "Dangling fetch: GET /api/voices.json (public/office-nav.js:1512)"}, "fullDescription": {"text": "`public/office-nav.js:1512` calls `GET /api/voices.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voices.json`\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-cf86b29a4603201c", "name": "Dangling fetch: GET /api/voices.json (public/js/home.js:76)", "shortDescription": {"text": "Dangling fetch: GET /api/voices.json (public/js/home.js:76)"}, "fullDescription": {"text": "`public/js/home.js:76` calls `GET /api/voices.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voices.json`\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-4306d5e7df96fd75", "name": "Dangling fetch: GET /api/events.json (public/js/home.js:77)", "shortDescription": {"text": "Dangling fetch: GET /api/events.json (public/js/home.js:77)"}, "fullDescription": {"text": "`public/js/home.js:77` calls `GET /api/events.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/events.json`\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-417470139af51d87", "name": "Dangling fetch: GET /api/areas.json (public/js/home.js:124)", "shortDescription": {"text": "Dangling fetch: GET /api/areas.json (public/js/home.js:124)"}, "fullDescription": {"text": "`public/js/home.js:124` calls `GET /api/areas.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/areas.json`\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-a8e7adbcd90e150c", "name": "Dangling fetch: GET /api/areas.json (public/js/home.js:154)", "shortDescription": {"text": "Dangling fetch: GET /api/areas.json (public/js/home.js:154)"}, "fullDescription": {"text": "`public/js/home.js:154` calls `GET /api/areas.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/areas.json`\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-082aafacc00982a6", "name": "Dangling fetch: GET /api/events.json (public/js/home.js:464)", "shortDescription": {"text": "Dangling fetch: GET /api/events.json (public/js/home.js:464)"}, "fullDescription": {"text": "`public/js/home.js:464` calls `GET /api/events.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/events.json`\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-62b033c0e99d7e34", "name": "Dangling fetch: GET /api/deadlines-2026.json (public/js/home.js:466)", "shortDescription": {"text": "Dangling fetch: GET /api/deadlines-2026.json (public/js/home.js:466)"}, "fullDescription": {"text": "`public/js/home.js:466` calls `GET /api/deadlines-2026.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/deadlines-2026.json`\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-36677970dcf988cf", "name": "Dangling fetch: GET /api/datas-especiais-2026.json (public/js/home.js:468)", "shortDescription": {"text": "Dangling fetch: GET /api/datas-especiais-2026.json (public/js/home.js:468)"}, "fullDescription": {"text": "`public/js/home.js:468` calls `GET /api/datas-especiais-2026.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/datas-especiais-2026.json`\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-3892e34b62cdb18e", "name": "Dangling fetch: GET /api/team.json (public/js/home.js:539)", "shortDescription": {"text": "Dangling fetch: GET /api/team.json (public/js/home.js:539)"}, "fullDescription": {"text": "`public/js/home.js:539` calls `GET /api/team.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/team.json`\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-47c5d62e258865c8", "name": "Dangling fetch: GET /api/team.json (public/js/home.js:587)", "shortDescription": {"text": "Dangling fetch: GET /api/team.json (public/js/home.js:587)"}, "fullDescription": {"text": "`public/js/home.js:587` calls `GET /api/team.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/team.json`\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-1c31947bc5737a8c", "name": "Dangling fetch: GET /api/voices.json (public/js/home.js:685)", "shortDescription": {"text": "Dangling fetch: GET /api/voices.json (public/js/home.js:685)"}, "fullDescription": {"text": "`public/js/home.js:685` calls `GET /api/voices.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voices.json`\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-25d360038130ab85", "name": "Dangling fetch: GET /api/personas.json (public/js/home.js:808)", "shortDescription": {"text": "Dangling fetch: GET /api/personas.json (public/js/home.js:808)"}, "fullDescription": {"text": "`public/js/home.js:808` calls `GET /api/personas.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/personas.json`\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-51aadae73dfc09c9", "name": "Dangling fetch: GET /api/voices.json (public/_versoes-office/v0.4.8-office-nav.js:749)", "shortDescription": {"text": "Dangling fetch: GET /api/voices.json (public/_versoes-office/v0.4.8-office-nav.js:749)"}, "fullDescription": {"text": "`public/_versoes-office/v0.4.8-office-nav.js:749` calls `GET /api/voices.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voices.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a6d91f2236825bf", "name": "Unused endpoint: ANY /", "shortDescription": {"text": "Unused endpoint: ANY /"}, "fullDescription": {"text": "`modulos/08-inbound-offline/app.py` declares `ANY /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77ad55c38b7a99c0", "name": "Unused endpoint: ANY /api/factory", "shortDescription": {"text": "Unused endpoint: ANY /api/factory"}, "fullDescription": {"text": "`modulos/08-inbound-offline/app.py` declares `ANY /api/factory` 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-8ece8c987ff9c424", "name": "Unused endpoint: ANY /api/health", "shortDescription": {"text": "Unused endpoint: ANY /api/health"}, "fullDescription": {"text": "`modulos/08-inbound-offline/app.py` declares `ANY /api/health` 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-68025ade445d7ed3", "name": "Unused endpoint: GET /optimizer", "shortDescription": {"text": "Unused endpoint: GET /optimizer"}, "fullDescription": {"text": "`server.js` declares `GET /optimizer` 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-e9f91425957299af", "name": "Unused endpoint: GET /optimizer-v2", "shortDescription": {"text": "Unused endpoint: GET /optimizer-v2"}, "fullDescription": {"text": "`server.js` declares `GET /optimizer-v2` 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-2b9bf1fbe2c3c019", "name": "Unused endpoint: GET /api/optimizer/template", "shortDescription": {"text": "Unused endpoint: GET /api/optimizer/template"}, "fullDescription": {"text": "`server.js` declares `GET /api/optimizer/template` 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-b75487de52ba2062", "name": "Unused endpoint: GET /api/optimizer/template-v2", "shortDescription": {"text": "Unused endpoint: GET /api/optimizer/template-v2"}, "fullDescription": {"text": "`server.js` declares `GET /api/optimizer/template-v2` 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-f934c23da78719d7", "name": "Unused endpoint: GET /painel", "shortDescription": {"text": "Unused endpoint: GET /painel"}, "fullDescription": {"text": "`server.js` declares `GET /painel` 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-c44b9eca8179c0cc", "name": "Unused endpoint: GET /voices/painel", "shortDescription": {"text": "Unused endpoint: GET /voices/painel"}, "fullDescription": {"text": "`server.js` declares `GET /voices/painel` 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-d37956fd71dde92a", "name": "Unused endpoint: GET /voices", "shortDescription": {"text": "Unused endpoint: GET /voices"}, "fullDescription": {"text": "`server.js` declares `GET /voices` 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-6a0a1f115447f7a4", "name": "Unused endpoint: GET /seja-voice", "shortDescription": {"text": "Unused endpoint: GET /seja-voice"}, "fullDescription": {"text": "`server.js` declares `GET /seja-voice` 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-c374105459156956", "name": "Unused endpoint: GET /changelog", "shortDescription": {"text": "Unused endpoint: GET /changelog"}, "fullDescription": {"text": "`server.js` declares `GET /changelog` 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-241607c8c601cf4c", "name": "Unused endpoint: GET /api/translate/status", "shortDescription": {"text": "Unused endpoint: GET /api/translate/status"}, "fullDescription": {"text": "`server.js` declares `GET /api/translate/status` 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-4c53fb93c9af556f", "name": "Unused endpoint: GET /planilhas", "shortDescription": {"text": "Unused endpoint: GET /planilhas"}, "fullDescription": {"text": "`server.js` declares `GET /planilhas` 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-379efe19fe9209ca", "name": "Unused endpoint: GET /ideias", "shortDescription": {"text": "Unused endpoint: GET /ideias"}, "fullDescription": {"text": "`server.js` declares `GET /ideias` 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-abff60ab19520a92", "name": "Unused endpoint: GET /api/ideias", "shortDescription": {"text": "Unused endpoint: GET /api/ideias"}, "fullDescription": {"text": "`server.js` declares `GET /api/ideias` 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-a44d4d717fd92f35", "name": "Unused endpoint: POST /api/ideias", "shortDescription": {"text": "Unused endpoint: POST /api/ideias"}, "fullDescription": {"text": "`server.js` declares `POST /api/ideias` 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-8633abae7de5367c", "name": "Unused endpoint: POST /api/ideias/:id/voto", "shortDescription": {"text": "Unused endpoint: POST /api/ideias/:id/voto"}, "fullDescription": {"text": "`server.js` declares `POST /api/ideias/:id/voto` 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-79237699b5c031a5", "name": "Unused endpoint: GET /api/planilhas", "shortDescription": {"text": "Unused endpoint: GET /api/planilhas"}, "fullDescription": {"text": "`server.js` declares `GET /api/planilhas` 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-d465c3776549a4ca", "name": "Unused endpoint: GET /api/planilhas/:slug", "shortDescription": {"text": "Unused endpoint: GET /api/planilhas/:slug"}, "fullDescription": {"text": "`server.js` declares `GET /api/planilhas/:slug` 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-00f542188241619c", "name": "Unused endpoint: GET /api/sprints", "shortDescription": {"text": "Unused endpoint: GET /api/sprints"}, "fullDescription": {"text": "`server.js` declares `GET /api/sprints` 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-a7efab35ebfde5f3", "name": "Unused endpoint: GET /area", "shortDescription": {"text": "Unused endpoint: GET /area"}, "fullDescription": {"text": "`server.js` declares `GET /area` 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-b4f678355ed301da", "name": "Unused endpoint: GET /area/:id", "shortDescription": {"text": "Unused endpoint: GET /area/:id"}, "fullDescription": {"text": "`server.js` declares `GET /area/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5491f1d3cd91467f", "name": "Unused endpoint: GET /agentes", "shortDescription": {"text": "Unused endpoint: GET /agentes"}, "fullDescription": {"text": "`server.js` declares `GET /agentes` 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-56a36e365b1a6d34", "name": "Unused endpoint: GET /agentes/:slug", "shortDescription": {"text": "Unused endpoint: GET /agentes/:slug"}, "fullDescription": {"text": "`server.js` declares `GET /agentes/:slug` 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-a2932ed033cd608b", "name": "Unused endpoint: GET /war-room", "shortDescription": {"text": "Unused endpoint: GET /war-room"}, "fullDescription": {"text": "`server.js` declares `GET /war-room` 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-a151d2c264f3551e", "name": "Unused endpoint: GET /api/agentes/_counters", "shortDescription": {"text": "Unused endpoint: GET /api/agentes/_counters"}, "fullDescription": {"text": "`server.js` declares `GET /api/agentes/_counters` 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-3e322e56bcad051d", "name": "Unused endpoint: POST /api/agentes/:slug/inbox", "shortDescription": {"text": "Unused endpoint: POST /api/agentes/:slug/inbox"}, "fullDescription": {"text": "`server.js` declares `POST /api/agentes/:slug/inbox` 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-3383745dfe4cdccb", "name": "Unused endpoint: GET /api/agentes/:slug/workspace", "shortDescription": {"text": "Unused endpoint: GET /api/agentes/:slug/workspace"}, "fullDescription": {"text": "`server.js` declares `GET /api/agentes/:slug/workspace` 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-a31dcb0678a39fb8", "name": "Unused endpoint: GET /api/painel/inbox-duda", "shortDescription": {"text": "Unused endpoint: GET /api/painel/inbox-duda"}, "fullDescription": {"text": "`server.js` declares `GET /api/painel/inbox-duda` 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-eb5d16a36c652f45", "name": "Unused endpoint: GET /api/painel/digest", "shortDescription": {"text": "Unused endpoint: GET /api/painel/digest"}, "fullDescription": {"text": "`server.js` declares `GET /api/painel/digest` 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-7c4ad6187f7f98ed", "name": "Unused endpoint: GET /cowork", "shortDescription": {"text": "Unused endpoint: GET /cowork"}, "fullDescription": {"text": "`server.js` declares `GET /cowork` 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-d3b73d30077dfc57", "name": "Unused endpoint: GET /api/workflows", "shortDescription": {"text": "Unused endpoint: GET /api/workflows"}, "fullDescription": {"text": "`server.js` declares `GET /api/workflows` 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-acf5c270e1510728", "name": "Unused endpoint: GET /api/workflows/:slug", "shortDescription": {"text": "Unused endpoint: GET /api/workflows/:slug"}, "fullDescription": {"text": "`server.js` declares `GET /api/workflows/:slug` 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-1215b6a30a466a0c", "name": "Unused endpoint: POST /api/workflows/:slug/run", "shortDescription": {"text": "Unused endpoint: POST /api/workflows/:slug/run"}, "fullDescription": {"text": "`server.js` declares `POST /api/workflows/:slug/run` 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-5680706b396176d7", "name": "Unused endpoint: GET /api/cowork/runs", "shortDescription": {"text": "Unused endpoint: GET /api/cowork/runs"}, "fullDescription": {"text": "`server.js` declares `GET /api/cowork/runs` 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-f4ab9e23b1dc66ea", "name": "Unused endpoint: GET /api/cowork/atividade", "shortDescription": {"text": "Unused endpoint: GET /api/cowork/atividade"}, "fullDescription": {"text": "`server.js` declares `GET /api/cowork/atividade` 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-a7c080222f6ad349", "name": "Unused endpoint: GET /metas", "shortDescription": {"text": "Unused endpoint: GET /metas"}, "fullDescription": {"text": "`server.js` declares `GET /metas` 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-8807873abf70f42f", "name": "Unused endpoint: GET /api/metas", "shortDescription": {"text": "Unused endpoint: GET /api/metas"}, "fullDescription": {"text": "`server.js` declares `GET /api/metas` 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-d44ba3660310511c", "name": "Unused endpoint: POST /api/metas", "shortDescription": {"text": "Unused endpoint: POST /api/metas"}, "fullDescription": {"text": "`server.js` declares `POST /api/metas` 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-1232e0ee41dff998", "name": "Unused endpoint: GET /content-pipeline", "shortDescription": {"text": "Unused endpoint: GET /content-pipeline"}, "fullDescription": {"text": "`server.js` declares `GET /content-pipeline` 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-9e2a49a642a9fd64", "name": "Unused endpoint: GET /area/conteudo", "shortDescription": {"text": "Unused endpoint: GET /area/conteudo"}, "fullDescription": {"text": "`server.js` declares `GET /area/conteudo` 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-4931cced204fc820", "name": "Unused endpoint: GET /executivo", "shortDescription": {"text": "Unused endpoint: GET /executivo"}, "fullDescription": {"text": "`server.js` declares `GET /executivo` 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-72e1408febd2726a", "name": "Unused endpoint: GET /linkedin", "shortDescription": {"text": "Unused endpoint: GET /linkedin"}, "fullDescription": {"text": "`server.js` declares `GET /linkedin` 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-208f171ead7efcc5", "name": "Unused endpoint: GET /raccoon", "shortDescription": {"text": "Unused endpoint: GET /raccoon"}, "fullDescription": {"text": "`server.js` declares `GET /raccoon` 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-d8b3c5c77e608293", "name": "Unused endpoint: POST /api/zoho/sync", "shortDescription": {"text": "Unused endpoint: POST /api/zoho/sync"}, "fullDescription": {"text": "`server.js` declares `POST /api/zoho/sync` 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-b0982cf0d192c5e0", "name": "Unused endpoint: GET /api/field-marketing", "shortDescription": {"text": "Unused endpoint: GET /api/field-marketing"}, "fullDescription": {"text": "`server.js` declares `GET /api/field-marketing` 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-6a68e577472b5257", "name": "Unused endpoint: POST /api/field-marketing/:id", "shortDescription": {"text": "Unused endpoint: POST /api/field-marketing/:id"}, "fullDescription": {"text": "`server.js` declares `POST /api/field-marketing/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-782895eec40c784a", "name": "Unused endpoint: POST /api/content", "shortDescription": {"text": "Unused endpoint: POST /api/content"}, "fullDescription": {"text": "`server.js` declares `POST /api/content` 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-621aa42d8788211e", "name": "Unused endpoint: PUT /api/content/:id", "shortDescription": {"text": "Unused endpoint: PUT /api/content/:id"}, "fullDescription": {"text": "`server.js` declares `PUT /api/content/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18551"}, "properties": {"repository": "RudaCosta/epiuse-mkt-office", "repoUrl": "https://github.com/RudaCosta/epiuse-mkt-office", "branch": "main"}, "results": [{"ruleId": "scanner-18b50b3f9569b30c", "level": "note", "message": {"text": "Possibly dead Python function: replace_ref"}, "properties": {"repobilityId": "e03f1cb71b060876", "scanner": "scanner-primary", "fingerprint": "18b50b3f9569b30c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/design/gen_tokens.py:46"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8fac432efc7be45b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server.js:29"}, "properties": {"repobilityId": "a9deebb5fdc93edc", "scanner": "scanner-primary", "fingerprint": "8fac432efc7be45b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f2ded8863c04d335", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server-context.js:31"}, "properties": {"repobilityId": "20f649e8b41499cd", "scanner": "scanner-primary", "fingerprint": "f2ded8863c04d335", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c6c4f1f30b4857cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/integrations/ga4_fetch.js:270"}, "properties": {"repobilityId": "6cdd8b016ab09ed9", "scanner": "scanner-primary", "fingerprint": "c6c4f1f30b4857cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5b7f60cd55602030", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/integrations/ga4_probe.js:17"}, "properties": {"repobilityId": "80135d56aa563658", "scanner": "scanner-primary", "fingerprint": "5b7f60cd55602030", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-492629255191009f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/integrations/rd_fetch.js:238"}, "properties": {"repobilityId": "85d6cc31dc754c53", "scanner": "scanner-primary", "fingerprint": "492629255191009f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-85e83046bd00ea42", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/integrations/apollo_pipeline_sync.js:59"}, "properties": {"repobilityId": "74908227c10d8be0", "scanner": "scanner-primary", "fingerprint": "85e83046bd00ea42", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cd568c0694182d18", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/integrations/ga4_oauth_setup.js:27"}, "properties": {"repobilityId": "06598c72d75a6703", "scanner": "scanner-primary", "fingerprint": "cd568c0694182d18", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd6eaf8f20dac467", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/log_voice_ssi.js:41"}, "properties": {"repobilityId": "4211edc2851fa623", "scanner": "scanner-primary", "fingerprint": "fd6eaf8f20dac467", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e04553b00a059e13", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_calendario_duda.js:173"}, "properties": {"repobilityId": "dc8dcbbf12a3df14", "scanner": "scanner-primary", "fingerprint": "e04553b00a059e13", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d6335415bf898c6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_cronograma_redatoria.js:34"}, "properties": {"repobilityId": "989efd1ad0e84309", "scanner": "scanner-primary", "fingerprint": "1d6335415bf898c6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c94baca95df83564", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_clientes_sap_4me.js:119"}, "properties": {"repobilityId": "d613d73a8e6c844d", "scanner": "scanner-primary", "fingerprint": "c94baca95df83564", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d11775b0ad6d94db", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_redatoria_to_calendar.js:122"}, "properties": {"repobilityId": "74948c514a00dd8a", "scanner": "scanner-primary", "fingerprint": "d11775b0ad6d94db", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dc6022532cd31fa3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_zoho_deals.js:82"}, "properties": {"repobilityId": "072e8e54ca359f04", "scanner": "scanner-primary", "fingerprint": "dc6022532cd31fa3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9d834b507f3f457a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sync/sync_rd_station.js:37"}, "properties": {"repobilityId": "ba6ab67f8f0330dc", "scanner": "scanner-primary", "fingerprint": "9d834b507f3f457a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ba3d50d4c582beb0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 routes/cases.js:167"}, "properties": {"repobilityId": "d0f5eafee0d932f5", "scanner": "scanner-primary", "fingerprint": "ba3d50d4c582beb0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-404cc0aaeb27b8b4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 public/_versoes-office/v3.2-server.js:51"}, "properties": {"repobilityId": "edfc53ce9ee4e541", "scanner": "scanner-primary", "fingerprint": "404cc0aaeb27b8b4", "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-0977cca8ba31adb0", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-bookworm-slim"}, "properties": {"repobilityId": "7ccb71c91a30b670", "scanner": "scanner-primary", "fingerprint": "0977cca8ba31adb0", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 5}}}]}, {"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-c71a2c05d2f109d9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in server.js:1553"}, "properties": {"repobilityId": "23f3ba0b6e438ed3", "scanner": "scanner-primary", "fingerprint": "c71a2c05d2f109d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server.js"}, "region": {"startLine": 1553}}}]}, {"ruleId": "scanner-7da1fe951d5786e6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in routes/cases.js:52"}, "properties": {"repobilityId": "b95b452120c36fe8", "scanner": "scanner-primary", "fingerprint": "7da1fe951d5786e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/cases.js"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-9eb964fce7bc2bd2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in modulos/08-inbound-offline/static/index.html:164"}, "properties": {"repobilityId": "1266a31dd41f2c46", "scanner": "scanner-primary", "fingerprint": "9eb964fce7bc2bd2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "modulos/08-inbound-offline/static/index.html"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-8bada19b2aacf050", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/planilhas.html:59"}, "properties": {"repobilityId": "8d1709b68fc4a90e", "scanner": "scanner-primary", "fingerprint": "8bada19b2aacf050", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/planilhas.html"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-8ad274e604ecf12d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/clientes-sap-4me.html:93"}, "properties": {"repobilityId": "a6660eff6419dee3", "scanner": "scanner-primary", "fingerprint": "8ad274e604ecf12d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/clientes-sap-4me.html"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-d96cd88f027c40e3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/executivo.html:87"}, "properties": {"repobilityId": "571c2c1693ca23d8", "scanner": "scanner-primary", "fingerprint": "d96cd88f027c40e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/executivo.html"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-63d76b8d95906c53", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cowork.html:128"}, "properties": {"repobilityId": "a99d310c4e640cbe", "scanner": "scanner-primary", "fingerprint": "63d76b8d95906c53", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cowork.html"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-92b94be5eab570e9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/war-room.html:78"}, "properties": {"repobilityId": "61d29b86249a5b9e", "scanner": "scanner-primary", "fingerprint": "92b94be5eab570e9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/war-room.html"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-16e84eaae2fbf8df", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/pipeline.html:168"}, "properties": {"repobilityId": "d46d56dada8737c3", "scanner": "scanner-primary", "fingerprint": "16e84eaae2fbf8df", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/pipeline.html"}, "region": {"startLine": 168}}}]}, {"ruleId": "scanner-221088a933542a4c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/content-pipeline.html:119"}, "properties": {"repobilityId": "a3307c63228bc8a0", "scanner": "scanner-primary", "fingerprint": "221088a933542a4c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/content-pipeline.html"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-e86ebe2b9befc0b3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/optimizer.html:223"}, "properties": {"repobilityId": "feb73867955ff84a", "scanner": "scanner-primary", "fingerprint": "e86ebe2b9befc0b3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/optimizer.html"}, "region": {"startLine": 223}}}]}, {"ruleId": "scanner-2409b9b906003ada", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/metas.html:389"}, "properties": {"repobilityId": "632aef2e82d63499", "scanner": "scanner-primary", "fingerprint": "2409b9b906003ada", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/metas.html"}, "region": {"startLine": 389}}}]}, {"ruleId": "scanner-18b119ce761bf281", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/metas.html:210"}, "properties": {"repobilityId": "2cc93afca3bf8a4c", "scanner": "scanner-primary", "fingerprint": "18b119ce761bf281", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/metas.html"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-c6e2be63944592e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/painel.html:308"}, "properties": {"repobilityId": "c11254c14c512900", "scanner": "scanner-primary", "fingerprint": "c6e2be63944592e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/painel.html"}, "region": {"startLine": 308}}}]}, {"ruleId": "scanner-1b4930855c43f7ba", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/design.html:545"}, "properties": {"repobilityId": "9cb8d21ab7db7ace", "scanner": "scanner-primary", "fingerprint": "1b4930855c43f7ba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/design.html"}, "region": {"startLine": 545}}}]}, {"ruleId": "scanner-8e84296c3e776c70", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/optimizer-v2.html:253"}, "properties": {"repobilityId": "f7b277932f106a45", "scanner": "scanner-primary", "fingerprint": "8e84296c3e776c70", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/optimizer-v2.html"}, "region": {"startLine": 253}}}]}, {"ruleId": "scanner-b97c2fb2ea3561d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/jornadas.html:97"}, "properties": {"repobilityId": "1b9095d57d2c24ca", "scanner": "scanner-primary", "fingerprint": "b97c2fb2ea3561d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/jornadas.html"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-8eb66571eb890641", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/relatorio.html:474"}, "properties": {"repobilityId": "80a0441178622285", "scanner": "scanner-primary", "fingerprint": "8eb66571eb890641", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/relatorio.html"}, "region": {"startLine": 474}}}]}, {"ruleId": "scanner-e19ec4c6534b8826", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/cases.html:213"}, "properties": {"repobilityId": "a93d168e3bc8a859", "scanner": "scanner-primary", "fingerprint": "e19ec4c6534b8826", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cases.html"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-5cc2c2f66e5ea3ff", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/cases.html:280"}, "properties": {"repobilityId": "2a92ea818ff3105b", "scanner": "scanner-primary", "fingerprint": "5cc2c2f66e5ea3ff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/cases.html"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-36811a33574c7770", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/office-footer.js:97"}, "properties": {"repobilityId": "fad417292c7268f3", "scanner": "scanner-primary", "fingerprint": "36811a33574c7770", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/office-footer.js"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-faff21bbaa8fc740", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/agente.html:69"}, "properties": {"repobilityId": "4eca26d535bfe4b4", "scanner": "scanner-primary", "fingerprint": "faff21bbaa8fc740", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/agente.html"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-3822abbd5d883649", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/area.html:323"}, "properties": {"repobilityId": "9b7311fa3ad57478", "scanner": "scanner-primary", "fingerprint": "3822abbd5d883649", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/area.html"}, "region": {"startLine": 323}}}]}, {"ruleId": "scanner-d42bd25b9df68f79", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/development-funds.html:105"}, "properties": {"repobilityId": "a8c57144030a9823", "scanner": "scanner-primary", "fingerprint": "d42bd25b9df68f79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/development-funds.html"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-dc5fbb2a8fdd72d1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/ideias.html:258"}, "properties": {"repobilityId": "8351f1efdd926528", "scanner": "scanner-primary", "fingerprint": "dc5fbb2a8fdd72d1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/ideias.html"}, "region": {"startLine": 258}}}]}, {"ruleId": "scanner-08fce696aee7ad17", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/office.html:884"}, "properties": {"repobilityId": "f5cc0bf2e4f2bb5d", "scanner": "scanner-primary", "fingerprint": "08fce696aee7ad17", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/office.html"}, "region": {"startLine": 884}}}]}, {"ruleId": "scanner-eed114a00a1f862b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/office-nav.js:269"}, "properties": {"repobilityId": "fc02cb919ce31f1c", "scanner": "scanner-primary", "fingerprint": "eed114a00a1f862b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/office-nav.js"}, "region": {"startLine": 269}}}]}, {"ruleId": "scanner-56ed091c7e58b1a1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/metas-fy26.html:119"}, "properties": {"repobilityId": "8e91921fe42a71cb", "scanner": "scanner-primary", "fingerprint": "56ed091c7e58b1a1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/metas-fy26.html"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-80a72478517d2bb3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/agentes.html:89"}, "properties": {"repobilityId": "567b5dad27be88c1", "scanner": "scanner-primary", "fingerprint": "80a72478517d2bb3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/agentes.html"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-e87fedc55f2ce21c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/seja-voice.html:369"}, "properties": {"repobilityId": "474b5d90200cf1a6", "scanner": "scanner-primary", "fingerprint": "e87fedc55f2ce21c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/seja-voice.html"}, "region": {"startLine": 369}}}]}, {"ruleId": "scanner-9baa14154535ce62", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/changelog.html:230"}, "properties": {"repobilityId": "a54ac13b626bbe31", "scanner": "scanner-primary", "fingerprint": "9baa14154535ce62", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/changelog.html"}, "region": {"startLine": 230}}}]}, {"ruleId": "scanner-480b68e705cced21", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/linkedin.html:86"}, "properties": {"repobilityId": "75529f1b93ee4c29", "scanner": "scanner-primary", "fingerprint": "480b68e705cced21", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/linkedin.html"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-cca432bac6e8ea7c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/raccoon.html:1696"}, "properties": {"repobilityId": "111dac88aa93fc4c", "scanner": "scanner-primary", "fingerprint": "cca432bac6e8ea7c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/raccoon.html"}, "region": {"startLine": 1696}}}]}, {"ruleId": "scanner-2b60bed7ff515242", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/artigos.html:106"}, "properties": {"repobilityId": "4630b7130a617aa2", "scanner": "scanner-primary", "fingerprint": "2b60bed7ff515242", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/artigos.html"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-1ac8323b25574090", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/field-marketing.html:130"}, "properties": {"repobilityId": "7b4cd090bcf60d8a", "scanner": "scanner-primary", "fingerprint": "1ac8323b25574090", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/field-marketing.html"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-fb3eca915f80afb3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/voices.html:452"}, "properties": {"repobilityId": "c46780a3b7d79fed", "scanner": "scanner-primary", "fingerprint": "fb3eca915f80afb3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/voices.html"}, "region": {"startLine": 452}}}]}, {"ruleId": "scanner-d59d07d47dcf5f5f", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/voices.html:1329"}, "properties": {"repobilityId": "72a7a12561db0c5f", "scanner": "scanner-primary", "fingerprint": "d59d07d47dcf5f5f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/voices.html"}, "region": {"startLine": 1329}}}]}, {"ruleId": "scanner-3b50fbba85e74002", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/home.js:58"}, "properties": {"repobilityId": "7e358f386a1c5802", "scanner": "scanner-primary", "fingerprint": "3b50fbba85e74002", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/home.js"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-f4891cfc5ab5af4a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/cmo-v2.js:660"}, "properties": {"repobilityId": "5a978098be534543", "scanner": "scanner-primary", "fingerprint": "f4891cfc5ab5af4a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/cmo-v2.js"}, "region": {"startLine": 660}}}]}, {"ruleId": "scanner-bf644a888d48b91f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/live-charts.js:31"}, "properties": {"repobilityId": "3a5da85d551f03db", "scanner": "scanner-primary", "fingerprint": "bf644a888d48b91f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/live-charts.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-811550069717247c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/calendar.html:354"}, "properties": {"repobilityId": "2140274d86f4cc1c", "scanner": "scanner-primary", "fingerprint": "811550069717247c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/inbound/calendar.html"}, "region": {"startLine": 354}}}]}, {"ruleId": "scanner-83a503cd2ace2204", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/deck-stage.js:853"}, "properties": {"repobilityId": "2fd5f3f95f3ef769", "scanner": "scanner-primary", "fingerprint": "83a503cd2ace2204", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/inbound/deck-stage.js"}, "region": {"startLine": 853}}}]}, {"ruleId": "scanner-ca07a38b4972cb75", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/index.html:267"}, "properties": {"repobilityId": "1e7e791c7d44a3b1", "scanner": "scanner-primary", "fingerprint": "ca07a38b4972cb75", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/inbound/index.html"}, "region": {"startLine": 267}}}]}, {"ruleId": "scanner-6c84bd564a99fc55", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/brief.html:598"}, "properties": {"repobilityId": "43244d5ea6e8cff6", "scanner": "scanner-primary", "fingerprint": "6c84bd564a99fc55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/inbound/brief.html"}, "region": {"startLine": 598}}}]}, {"ruleId": "scanner-f7934f4717f1ebde", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/carousel.html:192"}, "properties": {"repobilityId": "f5a574b771c17cb2", "scanner": "scanner-primary", "fingerprint": "f7934f4717f1ebde", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/inbound/carousel.html"}, "region": {"startLine": 192}}}]}, {"ruleId": "scanner-172697f3b16cad38", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-brief.html:527"}, "properties": {"repobilityId": "058db39a69b180fb", "scanner": "scanner-primary", "fingerprint": "172697f3b16cad38", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/inbound/inbound-versions/v1.0-carousel/inbound-brief.html"}, "region": {"startLine": 527}}}]}, {"ruleId": "scanner-657528c5b91d5ac4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-calendar.html:404"}, "properties": {"repobilityId": "fa94c0e2cad73f76", "scanner": "scanner-primary", "fingerprint": "657528c5b91d5ac4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/inbound/inbound-versions/v1.0-carousel/inbound-calendar.html"}, "region": {"startLine": 404}}}]}, {"ruleId": "scanner-9487ad5814c0217d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-carousel.html:532"}, "properties": {"repobilityId": "c423a1ce34675290", "scanner": "scanner-primary", "fingerprint": "9487ad5814c0217d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/inbound/inbound-versions/v1.0-carousel/inbound-carousel.html"}, "region": {"startLine": 532}}}]}, {"ruleId": "scanner-df2cb4f18b4acdc0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/inbound/inbound-versions/v1.0-carousel/inbound-studio.html:400"}, "properties": {"repobilityId": "1bb78b21b74d3e47", "scanner": "scanner-primary", "fingerprint": "df2cb4f18b4acdc0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/inbound/inbound-versions/v1.0-carousel/inbound-studio.html"}, "region": {"startLine": 400}}}]}, {"ruleId": "scanner-17993abf4cb0fe4b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-game-engine.html:929"}, "properties": {"repobilityId": "e7889ff5a03018ac", "scanner": "scanner-primary", "fingerprint": "17993abf4cb0fe4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.4-game-engine.html"}, "region": {"startLine": 929}}}]}, {"ruleId": "scanner-4064b757a47515ea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-metas.html:359"}, "properties": {"repobilityId": "18e082eef3509097", "scanner": "scanner-primary", "fingerprint": "4064b757a47515ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.8-metas.html"}, "region": {"startLine": 359}}}]}, {"ruleId": "scanner-a85221f943eca51d", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.8-metas.html:409"}, "properties": {"repobilityId": "63a3da8f7c0fce17", "scanner": "scanner-primary", "fingerprint": "a85221f943eca51d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.8-metas.html"}, "region": {"startLine": 409}}}]}, {"ruleId": "scanner-954aa70bda5e6573", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.2-dashboard-classic.html:916"}, "properties": {"repobilityId": "3bfa8d85812f130a", "scanner": "scanner-primary", "fingerprint": "954aa70bda5e6573", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v2.2-dashboard-classic.html"}, "region": {"startLine": 916}}}]}, {"ruleId": "scanner-31cbf7f2385f5af4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-dashboard-classic.html:908"}, "properties": {"repobilityId": "4c5283a2d3a0f03e", "scanner": "scanner-primary", "fingerprint": "31cbf7f2385f5af4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.1-dashboard-classic.html"}, "region": {"startLine": 908}}}]}, {"ruleId": "scanner-690059ef12177232", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-cases.html:201"}, "properties": {"repobilityId": "33068bc6577a7b43", "scanner": "scanner-primary", "fingerprint": "690059ef12177232", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.0-cases.html"}, "region": {"startLine": 201}}}]}, {"ruleId": "scanner-da633f9fed7b404c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-office-footer.js:46"}, "properties": {"repobilityId": "6630a1335426ad46", "scanner": "scanner-primary", "fingerprint": "da633f9fed7b404c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.8-office-footer.js"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-8ad423fce983a993", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-inbound-brief.html:615"}, "properties": {"repobilityId": "ec2d441043c33c31", "scanner": "scanner-primary", "fingerprint": "8ad423fce983a993", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-inbound-brief.html"}, "region": {"startLine": 615}}}]}, {"ruleId": "scanner-96878eacd86347aa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-optimizer.html:1832"}, "properties": {"repobilityId": "f908f3450429fe88", "scanner": "scanner-primary", "fingerprint": "96878eacd86347aa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-optimizer.html"}, "region": {"startLine": 1832}}}]}, {"ruleId": "scanner-d96dbb0d5034c68f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-inbound-carousel.html:191"}, "properties": {"repobilityId": "3878924f81784064", "scanner": "scanner-primary", "fingerprint": "d96dbb0d5034c68f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-inbound-carousel.html"}, "region": {"startLine": 191}}}]}, {"ruleId": "scanner-f1f2601c6eb35ac4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.9-optimizer.html:2121"}, "properties": {"repobilityId": "c279352438f41cd3", "scanner": "scanner-primary", "fingerprint": "f1f2601c6eb35ac4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.9-optimizer.html"}, "region": {"startLine": 2121}}}]}, {"ruleId": "scanner-21c43b840d35fdc0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-dashboard-classic.html:908"}, "properties": {"repobilityId": "174a7319758fcf02", "scanner": "scanner-primary", "fingerprint": "21c43b840d35fdc0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.0-dashboard-classic.html"}, "region": {"startLine": 908}}}]}, {"ruleId": "scanner-461ead031d1cc419", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-game-engine.html:985"}, "properties": {"repobilityId": "71ad577f518122d0", "scanner": "scanner-primary", "fingerprint": "461ead031d1cc419", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.0-game-engine.html"}, "region": {"startLine": 985}}}]}, {"ruleId": "scanner-b1a08fe9fda2bfcb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-game-engine.html:916"}, "properties": {"repobilityId": "2b71cefd4b81e33b", "scanner": "scanner-primary", "fingerprint": "b1a08fe9fda2bfcb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.0-game-engine.html"}, "region": {"startLine": 916}}}]}, {"ruleId": "scanner-9ea3233083a608cc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.2-game-engine.html:932"}, "properties": {"repobilityId": "6f17ac3da1e1b59a", "scanner": "scanner-primary", "fingerprint": "9ea3233083a608cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v2.2-game-engine.html"}, "region": {"startLine": 932}}}]}, {"ruleId": "scanner-4e66dbdae98fffec", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-dashboard.html:960"}, "properties": {"repobilityId": "3f057972e514efa1", "scanner": "scanner-primary", "fingerprint": "4e66dbdae98fffec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-dashboard.html"}, "region": {"startLine": 960}}}]}, {"ruleId": "scanner-000ce1ddd71b189d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-cases.html:209"}, "properties": {"repobilityId": "8a109d9e8256b1e8", "scanner": "scanner-primary", "fingerprint": "000ce1ddd71b189d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.8-cases.html"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-04e02256f616d8f8", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.8-cases.html:276"}, "properties": {"repobilityId": "d8261e82e3267177", "scanner": "scanner-primary", "fingerprint": "04e02256f616d8f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.8-cases.html"}, "region": {"startLine": 276}}}]}, {"ruleId": "scanner-b679e856ee7f4107", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-voices.html:440"}, "properties": {"repobilityId": "712f79d149eace86", "scanner": "scanner-primary", "fingerprint": "b679e856ee7f4107", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-voices.html"}, "region": {"startLine": 440}}}]}, {"ruleId": "scanner-303ef1594377d9a4", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.6-voices.html:1296"}, "properties": {"repobilityId": "d6bd06895b32ca84", "scanner": "scanner-primary", "fingerprint": "303ef1594377d9a4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-voices.html"}, "region": {"startLine": 1296}}}]}, {"ruleId": "scanner-1b5274944887dd52", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-inbound-carousel.html:535"}, "properties": {"repobilityId": "db9a8feabd42f94e", "scanner": "scanner-primary", "fingerprint": "1b5274944887dd52", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.4-inbound-carousel.html"}, "region": {"startLine": 535}}}]}, {"ruleId": "scanner-7c4138f1cf331fc6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.2-voices.html:399"}, "properties": {"repobilityId": "6ec64005ada9f17a", "scanner": "scanner-primary", "fingerprint": "7c4138f1cf331fc6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.2-voices.html"}, "region": {"startLine": 399}}}]}, {"ruleId": "scanner-c7f6124dd20c0756", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-voices.html:440"}, "properties": {"repobilityId": "c8ea513bc2bf5da4", "scanner": "scanner-primary", "fingerprint": "c7f6124dd20c0756", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.0-voices.html"}, "region": {"startLine": 440}}}]}, {"ruleId": "scanner-49b997fb579cb110", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-changelog.html:261"}, "properties": {"repobilityId": "08deca19964202f1", "scanner": "scanner-primary", "fingerprint": "49b997fb579cb110", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-changelog.html"}, "region": {"startLine": 261}}}]}, {"ruleId": "scanner-e5e16a462aa36bb3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.1-game-engine.html:907"}, "properties": {"repobilityId": "8100451d323def31", "scanner": "scanner-primary", "fingerprint": "e5e16a462aa36bb3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v2.1-game-engine.html"}, "region": {"startLine": 907}}}]}, {"ruleId": "scanner-fff127853a9c37dc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.8-office-nav.js:102"}, "properties": {"repobilityId": "0b504bcc71fcad13", "scanner": "scanner-primary", "fingerprint": "fff127853a9c37dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.8-office-nav.js"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-767760549215d132", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-painel.html:232"}, "properties": {"repobilityId": "a971426209400199", "scanner": "scanner-primary", "fingerprint": "767760549215d132", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.0-painel.html"}, "region": {"startLine": 232}}}]}, {"ruleId": "scanner-d395cfd6480d21f5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-seja-voice.html:374"}, "properties": {"repobilityId": "2125e298ba078c33", "scanner": "scanner-primary", "fingerprint": "d395cfd6480d21f5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.0-seja-voice.html"}, "region": {"startLine": 374}}}]}, {"ruleId": "scanner-760fb3c94860a2cb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-painel.html:283"}, "properties": {"repobilityId": "c3dc81cd0f24176c", "scanner": "scanner-primary", "fingerprint": "760fb3c94860a2cb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.4-painel.html"}, "region": {"startLine": 283}}}]}, {"ruleId": "scanner-4abaa8c8396e0934", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-voices.html:404"}, "properties": {"repobilityId": "9f816486e2b032f9", "scanner": "scanner-primary", "fingerprint": "4abaa8c8396e0934", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.4-voices.html"}, "region": {"startLine": 404}}}]}, {"ruleId": "scanner-9d2c9d5bc27170fd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.0-dashboard.html:960"}, "properties": {"repobilityId": "089f6485b7ba8da3", "scanner": "scanner-primary", "fingerprint": "9d2c9d5bc27170fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.0-dashboard.html"}, "region": {"startLine": 960}}}]}, {"ruleId": "scanner-cc9bb9ce654673d2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-voices.html:250"}, "properties": {"repobilityId": "44eb2880fb43bb5a", "scanner": "scanner-primary", "fingerprint": "cc9bb9ce654673d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.1-voices.html"}, "region": {"startLine": 250}}}]}, {"ruleId": "scanner-0deb2a7927e2198b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-seja-voice.html:374"}, "properties": {"repobilityId": "26d5df4e93cd39fc", "scanner": "scanner-primary", "fingerprint": "0deb2a7927e2198b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.1-seja-voice.html"}, "region": {"startLine": 374}}}]}, {"ruleId": "scanner-e4e4fbd59b00ea21", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.0-voices.html:190"}, "properties": {"repobilityId": "cb89b45349568809", "scanner": "scanner-primary", "fingerprint": "e4e4fbd59b00ea21", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.0-voices.html"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-552d5a4b20540f5f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-game-engine.html:916"}, "properties": {"repobilityId": "f168d44e5f720fcd", "scanner": "scanner-primary", "fingerprint": "552d5a4b20540f5f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.1-game-engine.html"}, "region": {"startLine": 916}}}]}, {"ruleId": "scanner-fa482b675887181a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.2-painel.html:282"}, "properties": {"repobilityId": "abe115b5bfddbf69", "scanner": "scanner-primary", "fingerprint": "fa482b675887181a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.2-painel.html"}, "region": {"startLine": 282}}}]}, {"ruleId": "scanner-9f23279563271c2a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-inbound-calendar.html:409"}, "properties": {"repobilityId": "834c1d709effcd0b", "scanner": "scanner-primary", "fingerprint": "9f23279563271c2a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-inbound-calendar.html"}, "region": {"startLine": 409}}}]}, {"ruleId": "scanner-65f9d2a28077f44e", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.6-inbound-calendar.html:640"}, "properties": {"repobilityId": "d20ecd4df79601c4", "scanner": "scanner-primary", "fingerprint": "65f9d2a28077f44e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-inbound-calendar.html"}, "region": {"startLine": 640}}}]}, {"ruleId": "scanner-a0b5aaece5684aa2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.4-dashboard-classic.html:952"}, "properties": {"repobilityId": "2beec08b13399ca1", "scanner": "scanner-primary", "fingerprint": "a0b5aaece5684aa2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.4-dashboard-classic.html"}, "region": {"startLine": 952}}}]}, {"ruleId": "scanner-288a308a2fa9cc27", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-cases.html:209"}, "properties": {"repobilityId": "3a320a9af2520e03", "scanner": "scanner-primary", "fingerprint": "288a308a2fa9cc27", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-cases.html"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-b34287087267b797", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/_versoes-office/v0.4.6-cases.html:276"}, "properties": {"repobilityId": "4c5ffbc0f3e19ef6", "scanner": "scanner-primary", "fingerprint": "b34287087267b797", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-cases.html"}, "region": {"startLine": 276}}}]}, {"ruleId": "scanner-c59b6d0a8b12d811", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v3.1-painel.html:233"}, "properties": {"repobilityId": "b7d9bf4225d1d6a1", "scanner": "scanner-primary", "fingerprint": "c59b6d0a8b12d811", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v3.1-painel.html"}, "region": {"startLine": 233}}}]}, {"ruleId": "scanner-eb7df4bcd832a373", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v2.1-dashboard-classic.html:876"}, "properties": {"repobilityId": "06c1f1d1a0bdda0d", "scanner": "scanner-primary", "fingerprint": "eb7df4bcd832a373", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v2.1-dashboard-classic.html"}, "region": {"startLine": 876}}}]}, {"ruleId": "scanner-1c391c9b9039bba2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.4.6-game.html:1003"}, "properties": {"repobilityId": "428f6ff617333829", "scanner": "scanner-primary", "fingerprint": "1c391c9b9039bba2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.4.6-game.html"}, "region": {"startLine": 1003}}}]}, {"ruleId": "scanner-e27114239a727fd8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/_versoes-office/v0.43.0-office-warroom.html:1005"}, "properties": {"repobilityId": "e12b27bb11540b92", "scanner": "scanner-primary", "fingerprint": "e27114239a727fd8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/_versoes-office/v0.43.0-office-warroom.html"}, "region": {"startLine": 1005}}}]}, {"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-3cdc5e5be6de5f1e", "level": "note", "message": {"text": "Very large file: server.js (4185 lines)"}, "properties": {"repobilityId": "1479ba50e708c5c1", "scanner": "scanner-primary", "fingerprint": "3cdc5e5be6de5f1e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7894ae92ab51c706", "level": "note", "message": {"text": "Very large file: public/office-nav.js (1726 lines)"}, "properties": {"repobilityId": "c62b49e36d59eabe", "scanner": "scanner-primary", "fingerprint": "7894ae92ab51c706", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-37b92783abd7d087", "level": "note", "message": {"text": "Very large file: public/inbound/deck-stage.js (1748 lines)"}, "properties": {"repobilityId": "105a7c66fe26d182", "scanner": "scanner-primary", "fingerprint": "37b92783abd7d087", "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-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "847c9dcf88711da7", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-f850cb90ef17db45", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: _laboratorio/remotion-engine/package.json"}, "properties": {"repobilityId": "56e69d471fc26864", "scanner": "scanner-primary", "fingerprint": "f850cb90ef17db45", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_laboratorio/remotion-engine/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "c50984f29621d03a", "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": "90b7aa0d68bc0729", "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": "8399343d654960bf", "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": "4c28dd9ab7058ec6", "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": "e467408708fd025a", "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": "965acef4418a62ee", "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": "24f545b235e3b7cd", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-bea357a6497a2d5d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "properties": {"repobilityId": "aae72df3934829ac", "scanner": "scanner-primary", "fingerprint": "bea357a6497a2d5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2679282aa1c484b5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "properties": {"repobilityId": "27d579812e6be614", "scanner": "scanner-primary", "fingerprint": "2679282aa1c484b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ccc0dcfb2093adf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/contratar.md"}, "properties": {"repobilityId": "b70f0b173e5b9c93", "scanner": "scanner-primary", "fingerprint": "6ccc0dcfb2093adf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/contratar.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7ebf4bd5b29e83d4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/landing-pages.md"}, "properties": {"repobilityId": "2750c83ab0741f53", "scanner": "scanner-primary", "fingerprint": "7ebf4bd5b29e83d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/landing-pages.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8c66e7107b996ce3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/ceo-mkt.md"}, "properties": {"repobilityId": "a567e8ec44568f73", "scanner": "scanner-primary", "fingerprint": "8c66e7107b996ce3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/ceo-mkt.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9745f64f6d4f1aab", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/relatorio-mensal.md"}, "properties": {"repobilityId": "29772f45e5295e9e", "scanner": "scanner-primary", "fingerprint": "9745f64f6d4f1aab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/relatorio-mensal.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-57af2e210ed09eb8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/relatorio-mensal/SKILL.md"}, "properties": {"repobilityId": "b2847fc0e14b1f34", "scanner": "scanner-primary", "fingerprint": "57af2e210ed09eb8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/relatorio-mensal/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-793692e63f5de27a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents-v2/pm-tecnico.md"}, "properties": {"repobilityId": "4857566bc8b510ab", "scanner": "scanner-primary", "fingerprint": "793692e63f5de27a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents-v2/pm-tecnico.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-72cb5c4a00da046d", "level": "none", "message": {"text": "Commented-code block (7 lines) in server.js:517"}, "properties": {"repobilityId": "ce02309026f21dcb", "scanner": "scanner-primary", "fingerprint": "72cb5c4a00da046d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41f6b9697d1215c2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/integrations/apollo_pipeline_sync.js:27"}, "properties": {"repobilityId": "9b146b626edf2209", "scanner": "scanner-primary", "fingerprint": "41f6b9697d1215c2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a6d35f579a1fc1f6", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/sync/sync_calendario_duda.js:80"}, "properties": {"repobilityId": "77020a0c455889e3", "scanner": "scanner-primary", "fingerprint": "a6d35f579a1fc1f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e32d4eeba946c030", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_calendario_duda.js:215"}, "properties": {"repobilityId": "416597fa02e95805", "scanner": "scanner-primary", "fingerprint": "e32d4eeba946c030", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3da9f6f721e0ea1a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_cronograma_redatoria.js:36"}, "properties": {"repobilityId": "3917576f6ee37db5", "scanner": "scanner-primary", "fingerprint": "3da9f6f721e0ea1a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dc7aa476a21ca43b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_redatoria_to_calendar.js:134"}, "properties": {"repobilityId": "7d27ccde151c376d", "scanner": "scanner-primary", "fingerprint": "dc7aa476a21ca43b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed55dfe6fec2db0f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_zoho_deals.js:89"}, "properties": {"repobilityId": "f437064bbca9e847", "scanner": "scanner-primary", "fingerprint": "ed55dfe6fec2db0f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-21ba7c7b0a7a772b", "level": "note", "message": {"text": "Legacy-named symbol `fonte_old` in scripts/sync/sync_linkedin_historical.py:184"}, "properties": {"repobilityId": "1b2379c9d0d42a08", "scanner": "scanner-primary", "fingerprint": "21ba7c7b0a7a772b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-91a1b09d4b85cc84", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync/sync_rd_station.js:157"}, "properties": {"repobilityId": "9c0694cd9663374c", "scanner": "scanner-primary", "fingerprint": "91a1b09d4b85cc84", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ea33f3fd7a2fb86a", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/i18n.js:1"}, "properties": {"repobilityId": "0ff4292dd7248a7c", "scanner": "scanner-primary", "fingerprint": "ea33f3fd7a2fb86a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fda97b3f7f31fba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/office-nav.js:1712"}, "properties": {"repobilityId": "dabd0989b5cffa47", "scanner": "scanner-primary", "fingerprint": "3fda97b3f7f31fba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2356b691c65f4a09", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/home.js:673"}, "properties": {"repobilityId": "5f80caa14e047196", "scanner": "scanner-primary", "fingerprint": "2356b691c65f4a09", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-151d844697033a9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/inbound/deck-stage.js:631"}, "properties": {"repobilityId": "26254ef39c8848b0", "scanner": "scanner-primary", "fingerprint": "151d844697033a9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0b7578dd2a289b6", "level": "note", "message": {"text": "26 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "8099a5c5713d37b9", "scanner": "scanner-primary", "fingerprint": "b0b7578dd2a289b6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "fc5da3861fdaeed2", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-4c6a9b70644eeffe", "level": "error", "message": {"text": "Flask mutation route `factory` without `@login_required` \u2014 modulos/08-inbound-offline/app.py:25"}, "properties": {"repobilityId": "dc917415010f10a8", "scanner": "scanner-primary", "fingerprint": "4c6a9b70644eeffe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "modulos/08-inbound-offline/app.py"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-48adcc0b2a92b087", "level": "error", "message": {"text": "Dangling fetch: POST https://accounts.zoho.com/oauth/v2/token?refresh_token=${refreshToken}&client_id=${clientId}&client_secret=${clientSecret}&grant_type=refresh_token (scripts/sync/sync_zoho_deals.js:125)"}, "properties": {"repobilityId": "c399c4dbe3fd1a6d", "scanner": "scanner-primary", "fingerprint": "48adcc0b2a92b087", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-83bd90233a1020a3", "level": "error", "message": {"text": "Dangling fetch: POST https://www.zohoapis.com/crm/v7/coql (scripts/sync/sync_zoho_deals.js:138)"}, "properties": {"repobilityId": "7e679f924b1b16c6", "scanner": "scanner-primary", "fingerprint": "83bd90233a1020a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-73d9bc10fac56003", "level": "error", "message": {"text": "Dangling fetch: POST https://api.rd.services/auth/token (scripts/sync/sync_rd_station.js:157)"}, "properties": {"repobilityId": "132af746100ca7bd", "scanner": "scanner-primary", "fingerprint": "73d9bc10fac56003", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-466bf25c76d85ecb", "level": "error", "message": {"text": "Dangling fetch: GET /api/voices.json (public/office-nav.js:1512)"}, "properties": {"repobilityId": "e7b1a2d47f2a4412", "scanner": "scanner-primary", "fingerprint": "466bf25c76d85ecb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cf86b29a4603201c", "level": "error", "message": {"text": "Dangling fetch: GET /api/voices.json (public/js/home.js:76)"}, "properties": {"repobilityId": "be19242db762cbd6", "scanner": "scanner-primary", "fingerprint": "cf86b29a4603201c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4306d5e7df96fd75", "level": "error", "message": {"text": "Dangling fetch: GET /api/events.json (public/js/home.js:77)"}, "properties": {"repobilityId": "d4a8fa4eb024b6ba", "scanner": "scanner-primary", "fingerprint": "4306d5e7df96fd75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-417470139af51d87", "level": "error", "message": {"text": "Dangling fetch: GET /api/areas.json (public/js/home.js:124)"}, "properties": {"repobilityId": "3dadbb8b05a72e6c", "scanner": "scanner-primary", "fingerprint": "417470139af51d87", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a8e7adbcd90e150c", "level": "error", "message": {"text": "Dangling fetch: GET /api/areas.json (public/js/home.js:154)"}, "properties": {"repobilityId": "397e1eb7965ff605", "scanner": "scanner-primary", "fingerprint": "a8e7adbcd90e150c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-082aafacc00982a6", "level": "error", "message": {"text": "Dangling fetch: GET /api/events.json (public/js/home.js:464)"}, "properties": {"repobilityId": "7f3d774edd9c7883", "scanner": "scanner-primary", "fingerprint": "082aafacc00982a6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-62b033c0e99d7e34", "level": "error", "message": {"text": "Dangling fetch: GET /api/deadlines-2026.json (public/js/home.js:466)"}, "properties": {"repobilityId": "68c0247167c981df", "scanner": "scanner-primary", "fingerprint": "62b033c0e99d7e34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-36677970dcf988cf", "level": "error", "message": {"text": "Dangling fetch: GET /api/datas-especiais-2026.json (public/js/home.js:468)"}, "properties": {"repobilityId": "d04ed7656e38aa94", "scanner": "scanner-primary", "fingerprint": "36677970dcf988cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3892e34b62cdb18e", "level": "error", "message": {"text": "Dangling fetch: GET /api/team.json (public/js/home.js:539)"}, "properties": {"repobilityId": "cc9f466171241cc9", "scanner": "scanner-primary", "fingerprint": "3892e34b62cdb18e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-47c5d62e258865c8", "level": "error", "message": {"text": "Dangling fetch: GET /api/team.json (public/js/home.js:587)"}, "properties": {"repobilityId": "2f7a3a45498ccb39", "scanner": "scanner-primary", "fingerprint": "47c5d62e258865c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1c31947bc5737a8c", "level": "error", "message": {"text": "Dangling fetch: GET /api/voices.json (public/js/home.js:685)"}, "properties": {"repobilityId": "f00d487677481431", "scanner": "scanner-primary", "fingerprint": "1c31947bc5737a8c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-25d360038130ab85", "level": "error", "message": {"text": "Dangling fetch: GET /api/personas.json (public/js/home.js:808)"}, "properties": {"repobilityId": "81e198654cd1ba3d", "scanner": "scanner-primary", "fingerprint": "25d360038130ab85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-51aadae73dfc09c9", "level": "error", "message": {"text": "Dangling fetch: GET /api/voices.json (public/_versoes-office/v0.4.8-office-nav.js:749)"}, "properties": {"repobilityId": "85bd6be126fdb816", "scanner": "scanner-primary", "fingerprint": "51aadae73dfc09c9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a6d91f2236825bf", "level": "note", "message": {"text": "Unused endpoint: ANY /"}, "properties": {"repobilityId": "8e474a30984acffb", "scanner": "scanner-primary", "fingerprint": "1a6d91f2236825bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-77ad55c38b7a99c0", "level": "note", "message": {"text": "Unused endpoint: ANY /api/factory"}, "properties": {"repobilityId": "ef7c0e89d006de49", "scanner": "scanner-primary", "fingerprint": "77ad55c38b7a99c0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8ece8c987ff9c424", "level": "note", "message": {"text": "Unused endpoint: ANY /api/health"}, "properties": {"repobilityId": "02fe14e660eb9b56", "scanner": "scanner-primary", "fingerprint": "8ece8c987ff9c424", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-68025ade445d7ed3", "level": "note", "message": {"text": "Unused endpoint: GET /optimizer"}, "properties": {"repobilityId": "7659748e4bb3acc7", "scanner": "scanner-primary", "fingerprint": "68025ade445d7ed3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e9f91425957299af", "level": "note", "message": {"text": "Unused endpoint: GET /optimizer-v2"}, "properties": {"repobilityId": "d041224bb15f9a0f", "scanner": "scanner-primary", "fingerprint": "e9f91425957299af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2b9bf1fbe2c3c019", "level": "note", "message": {"text": "Unused endpoint: GET /api/optimizer/template"}, "properties": {"repobilityId": "bb60816a4533b5da", "scanner": "scanner-primary", "fingerprint": "2b9bf1fbe2c3c019", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b75487de52ba2062", "level": "note", "message": {"text": "Unused endpoint: GET /api/optimizer/template-v2"}, "properties": {"repobilityId": "1060b3d21f5708e9", "scanner": "scanner-primary", "fingerprint": "b75487de52ba2062", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f934c23da78719d7", "level": "note", "message": {"text": "Unused endpoint: GET /painel"}, "properties": {"repobilityId": "22056ed6cdbf92ae", "scanner": "scanner-primary", "fingerprint": "f934c23da78719d7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c44b9eca8179c0cc", "level": "note", "message": {"text": "Unused endpoint: GET /voices/painel"}, "properties": {"repobilityId": "7d974d41247407c7", "scanner": "scanner-primary", "fingerprint": "c44b9eca8179c0cc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d37956fd71dde92a", "level": "note", "message": {"text": "Unused endpoint: GET /voices"}, "properties": {"repobilityId": "ecce072a6dd321f5", "scanner": "scanner-primary", "fingerprint": "d37956fd71dde92a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6a0a1f115447f7a4", "level": "note", "message": {"text": "Unused endpoint: GET /seja-voice"}, "properties": {"repobilityId": "ab5e06c08372b847", "scanner": "scanner-primary", "fingerprint": "6a0a1f115447f7a4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c374105459156956", "level": "note", "message": {"text": "Unused endpoint: GET /changelog"}, "properties": {"repobilityId": "187057b6032371ad", "scanner": "scanner-primary", "fingerprint": "c374105459156956", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-241607c8c601cf4c", "level": "note", "message": {"text": "Unused endpoint: GET /api/translate/status"}, "properties": {"repobilityId": "6c1ff38344c3a064", "scanner": "scanner-primary", "fingerprint": "241607c8c601cf4c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4c53fb93c9af556f", "level": "note", "message": {"text": "Unused endpoint: GET /planilhas"}, "properties": {"repobilityId": "a20566785861143a", "scanner": "scanner-primary", "fingerprint": "4c53fb93c9af556f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-379efe19fe9209ca", "level": "note", "message": {"text": "Unused endpoint: GET /ideias"}, "properties": {"repobilityId": "99fde72dead3a34b", "scanner": "scanner-primary", "fingerprint": "379efe19fe9209ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-abff60ab19520a92", "level": "note", "message": {"text": "Unused endpoint: GET /api/ideias"}, "properties": {"repobilityId": "ec17180397ceb636", "scanner": "scanner-primary", "fingerprint": "abff60ab19520a92", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a44d4d717fd92f35", "level": "note", "message": {"text": "Unused endpoint: POST /api/ideias"}, "properties": {"repobilityId": "37fe4cb07bb75b1c", "scanner": "scanner-primary", "fingerprint": "a44d4d717fd92f35", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8633abae7de5367c", "level": "note", "message": {"text": "Unused endpoint: POST /api/ideias/:id/voto"}, "properties": {"repobilityId": "46bd90604dc2f33f", "scanner": "scanner-primary", "fingerprint": "8633abae7de5367c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-79237699b5c031a5", "level": "note", "message": {"text": "Unused endpoint: GET /api/planilhas"}, "properties": {"repobilityId": "2ef83ad7a24c0ae2", "scanner": "scanner-primary", "fingerprint": "79237699b5c031a5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d465c3776549a4ca", "level": "note", "message": {"text": "Unused endpoint: GET /api/planilhas/:slug"}, "properties": {"repobilityId": "316f2033d45e3409", "scanner": "scanner-primary", "fingerprint": "d465c3776549a4ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-00f542188241619c", "level": "note", "message": {"text": "Unused endpoint: GET /api/sprints"}, "properties": {"repobilityId": "00607e0accf19236", "scanner": "scanner-primary", "fingerprint": "00f542188241619c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a7efab35ebfde5f3", "level": "note", "message": {"text": "Unused endpoint: GET /area"}, "properties": {"repobilityId": "6a5012dd2ef1ed16", "scanner": "scanner-primary", "fingerprint": "a7efab35ebfde5f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b4f678355ed301da", "level": "note", "message": {"text": "Unused endpoint: GET /area/:id"}, "properties": {"repobilityId": "d72796aaf996bd56", "scanner": "scanner-primary", "fingerprint": "b4f678355ed301da", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5491f1d3cd91467f", "level": "note", "message": {"text": "Unused endpoint: GET /agentes"}, "properties": {"repobilityId": "791f19bb8c7c5ce1", "scanner": "scanner-primary", "fingerprint": "5491f1d3cd91467f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-56a36e365b1a6d34", "level": "note", "message": {"text": "Unused endpoint: GET /agentes/:slug"}, "properties": {"repobilityId": "5a7637391e183f18", "scanner": "scanner-primary", "fingerprint": "56a36e365b1a6d34", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a2932ed033cd608b", "level": "note", "message": {"text": "Unused endpoint: GET /war-room"}, "properties": {"repobilityId": "5ccb064015c5982d", "scanner": "scanner-primary", "fingerprint": "a2932ed033cd608b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a151d2c264f3551e", "level": "note", "message": {"text": "Unused endpoint: GET /api/agentes/_counters"}, "properties": {"repobilityId": "3acb2f5435ec7594", "scanner": "scanner-primary", "fingerprint": "a151d2c264f3551e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3e322e56bcad051d", "level": "note", "message": {"text": "Unused endpoint: POST /api/agentes/:slug/inbox"}, "properties": {"repobilityId": "400a16174ebcf44a", "scanner": "scanner-primary", "fingerprint": "3e322e56bcad051d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3383745dfe4cdccb", "level": "note", "message": {"text": "Unused endpoint: GET /api/agentes/:slug/workspace"}, "properties": {"repobilityId": "489046f06047d302", "scanner": "scanner-primary", "fingerprint": "3383745dfe4cdccb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a31dcb0678a39fb8", "level": "note", "message": {"text": "Unused endpoint: GET /api/painel/inbox-duda"}, "properties": {"repobilityId": "6cc967b321bf586c", "scanner": "scanner-primary", "fingerprint": "a31dcb0678a39fb8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eb5d16a36c652f45", "level": "note", "message": {"text": "Unused endpoint: GET /api/painel/digest"}, "properties": {"repobilityId": "f924211628862e4e", "scanner": "scanner-primary", "fingerprint": "eb5d16a36c652f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7c4ad6187f7f98ed", "level": "note", "message": {"text": "Unused endpoint: GET /cowork"}, "properties": {"repobilityId": "094a1bbdbdf2dd29", "scanner": "scanner-primary", "fingerprint": "7c4ad6187f7f98ed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d3b73d30077dfc57", "level": "note", "message": {"text": "Unused endpoint: GET /api/workflows"}, "properties": {"repobilityId": "ff44f412c28912c0", "scanner": "scanner-primary", "fingerprint": "d3b73d30077dfc57", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-acf5c270e1510728", "level": "note", "message": {"text": "Unused endpoint: GET /api/workflows/:slug"}, "properties": {"repobilityId": "346adbe198d3361f", "scanner": "scanner-primary", "fingerprint": "acf5c270e1510728", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1215b6a30a466a0c", "level": "note", "message": {"text": "Unused endpoint: POST /api/workflows/:slug/run"}, "properties": {"repobilityId": "9c454aa7b345ff83", "scanner": "scanner-primary", "fingerprint": "1215b6a30a466a0c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5680706b396176d7", "level": "note", "message": {"text": "Unused endpoint: GET /api/cowork/runs"}, "properties": {"repobilityId": "07fee59d0dd60503", "scanner": "scanner-primary", "fingerprint": "5680706b396176d7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f4ab9e23b1dc66ea", "level": "note", "message": {"text": "Unused endpoint: GET /api/cowork/atividade"}, "properties": {"repobilityId": "cb8ab6e574f4cd64", "scanner": "scanner-primary", "fingerprint": "f4ab9e23b1dc66ea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a7c080222f6ad349", "level": "note", "message": {"text": "Unused endpoint: GET /metas"}, "properties": {"repobilityId": "d723e41bd364ae93", "scanner": "scanner-primary", "fingerprint": "a7c080222f6ad349", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8807873abf70f42f", "level": "note", "message": {"text": "Unused endpoint: GET /api/metas"}, "properties": {"repobilityId": "3bab79949df0249d", "scanner": "scanner-primary", "fingerprint": "8807873abf70f42f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d44ba3660310511c", "level": "note", "message": {"text": "Unused endpoint: POST /api/metas"}, "properties": {"repobilityId": "aac062ba25fcdb38", "scanner": "scanner-primary", "fingerprint": "d44ba3660310511c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1232e0ee41dff998", "level": "note", "message": {"text": "Unused endpoint: GET /content-pipeline"}, "properties": {"repobilityId": "e4897096594ec57e", "scanner": "scanner-primary", "fingerprint": "1232e0ee41dff998", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9e2a49a642a9fd64", "level": "note", "message": {"text": "Unused endpoint: GET /area/conteudo"}, "properties": {"repobilityId": "b76d89a1a00ba171", "scanner": "scanner-primary", "fingerprint": "9e2a49a642a9fd64", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4931cced204fc820", "level": "note", "message": {"text": "Unused endpoint: GET /executivo"}, "properties": {"repobilityId": "8617f5f214dd82f0", "scanner": "scanner-primary", "fingerprint": "4931cced204fc820", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-72e1408febd2726a", "level": "note", "message": {"text": "Unused endpoint: GET /linkedin"}, "properties": {"repobilityId": "08c225fd16fea79e", "scanner": "scanner-primary", "fingerprint": "72e1408febd2726a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-208f171ead7efcc5", "level": "note", "message": {"text": "Unused endpoint: GET /raccoon"}, "properties": {"repobilityId": "cf01a3af829d46fd", "scanner": "scanner-primary", "fingerprint": "208f171ead7efcc5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d8b3c5c77e608293", "level": "note", "message": {"text": "Unused endpoint: POST /api/zoho/sync"}, "properties": {"repobilityId": "e2a33b564e1e1ef0", "scanner": "scanner-primary", "fingerprint": "d8b3c5c77e608293", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b0982cf0d192c5e0", "level": "note", "message": {"text": "Unused endpoint: GET /api/field-marketing"}, "properties": {"repobilityId": "1b845442ef9245dd", "scanner": "scanner-primary", "fingerprint": "b0982cf0d192c5e0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6a68e577472b5257", "level": "note", "message": {"text": "Unused endpoint: POST /api/field-marketing/:id"}, "properties": {"repobilityId": "cc749f8b1abc8097", "scanner": "scanner-primary", "fingerprint": "6a68e577472b5257", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-782895eec40c784a", "level": "note", "message": {"text": "Unused endpoint: POST /api/content"}, "properties": {"repobilityId": "35477ca2e7bd4e9e", "scanner": "scanner-primary", "fingerprint": "782895eec40c784a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-621aa42d8788211e", "level": "note", "message": {"text": "Unused endpoint: PUT /api/content/:id"}, "properties": {"repobilityId": "52e85f636863de0a", "scanner": "scanner-primary", "fingerprint": "621aa42d8788211e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}